Package no.ugland.utransprod.dao.hibernate

Source Code of no.ugland.utransprod.dao.hibernate.OwnProductionVDAOHibernate

package no.ugland.utransprod.dao.hibernate;

import java.util.List;

import no.ugland.utransprod.dao.OwnProductionVDAO;
import no.ugland.utransprod.model.OwnProductionV;
import no.ugland.utransprod.util.excel.ExcelReportSetting;
import no.ugland.utransprod.util.excel.ExcelReportSettingOwnProduction;

import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.HibernateCallback;

/**
* Implementasjon av DAO mot view OWN_PRODUCTION_V
*
* @author atle.brekka
*/
public class OwnProductionVDAOHibernate extends
    BaseDAOHibernate<OwnProductionV> implements OwnProductionVDAO {
  /**
   * Konstrukt�r
   */
  public OwnProductionVDAOHibernate() {
    super(OwnProductionV.class);
  }

  /**
   * @see no.ugland.utransprod.dao.OwnProductionVDAO#findByParams(no.ugland.utransprod.util.excel.ExcelReportSetting)
   */
  @SuppressWarnings("unchecked")
  public List<OwnProductionV> findByParams(final ExcelReportSetting params) {
    return (List) getHibernateTemplate().execute(new HibernateCallback() {

      public Object doInHibernate(Session session)
          throws HibernateException {
        Criteria criteria = session
            .createCriteria(OwnProductionV.class)
            .add(Restrictions.eq("orderReadyYear", params.getYear()))
            .add(Restrictions.eq("orderReadyWeek",
                params.getWeekFrom()));

        String productAreaGroupName = ((ExcelReportSettingOwnProduction) params)
            .getProductAreaGroupName();
        if (!productAreaGroupName.equalsIgnoreCase("Alle")) {
          criteria.add(Restrictions.eq("productAreaGroupName",
              productAreaGroupName));
        }
        criteria.addOrder(Order.desc("productArea")).addOrder(
            Order.asc("orderReadyDay"));
        return criteria.list();
      }

    });
  }

  /**
   * @see no.ugland.utransprod.dao.OwnProductionVDAO#findPacklistReady(java.lang.String)
   */
  @SuppressWarnings("unchecked")
  public List<OwnProductionV> findPacklistReady(
      final String productAreaGroupName) {
    return (List) getHibernateTemplate().execute(new HibernateCallback() {

      public Object doInHibernate(Session session)
          throws HibernateException {
        return session
            .createCriteria(OwnProductionV.class)
            .add(Restrictions.isNull("sent"))
            .add(Restrictions.isNotNull("packlistReady"))
            .add(Restrictions.isNull("orderReadyDay"))
            .add(Restrictions.eq("productAreaGroupName",
                productAreaGroupName))
            .addOrder(Order.asc("productArea"))
            .addOrder(Order.asc("transportYear"))
            .addOrder(Order.asc("transportWeek")).list();
      }

    });
  }

  /**
   * @see no.ugland.utransprod.dao.OwnProductionVDAO#findPacklistNotReady(java.lang.String)
   */
  @SuppressWarnings("unchecked")
  public List<OwnProductionV> findPacklistNotReady(
      final String productAreaName, final String productAreaGroupName) {
    return (List) getHibernateTemplate().execute(new HibernateCallback() {

      public Object doInHibernate(Session session)
          throws HibernateException {
        Criteria criteria = session
            .createCriteria(OwnProductionV.class)
            .add(Restrictions.isNull("sent"))
            .add(Restrictions.isNull("packlistReady"))
            .add(Restrictions.isNull("orderReadyDay"));
        if (productAreaName != null) {
          criteria.add(Restrictions
              .eq("productArea", productAreaName));
        }
        if (productAreaGroupName != null) {
          criteria.add(Restrictions.eq("productAreaGroupName",
              productAreaGroupName));
        }
        criteria.addOrder(Order.asc("productArea"))
            .addOrder(Order.asc("transportYear"))
            .addOrder(Order.asc("transportWeek")).list();
        return criteria.list();
      }

    });
  }

}
TOP

Related Classes of no.ugland.utransprod.dao.hibernate.OwnProductionVDAOHibernate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.