Package no.ugland.utransprod.dao.hibernate

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

package no.ugland.utransprod.dao.hibernate;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import no.ugland.utransprod.dao.OrderStatusNotSentVDAO;
import no.ugland.utransprod.model.OrderStatusNotSentV;
import no.ugland.utransprod.model.StatusOrdersNotSent;
import no.ugland.utransprod.util.excel.ExcelReportSetting;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;

/**
* Implementasjon av DAO mot view ORDER_STATUS_NOT_SENT_V
*
* @author atle.brekka
*
*/
public class OrderStatusNotSentVDAOHibernate extends
    BaseDAOHibernate<OrderStatusNotSentV> implements OrderStatusNotSentVDAO {
  /**
   * Konstrukt�r
   */
  public OrderStatusNotSentVDAOHibernate() {
    super(OrderStatusNotSentV.class);
  }

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

      public Object doInHibernate(Session session)
          throws HibernateException {
        List<Object[]> list = getSumPacklistNotReady(params, session);
       
        if (list.size() > 1) {
          return null;
        }
       
        List returnList = new ArrayList<Object>();
       
        StatusOrdersNotSent statusOrdersNotSent = createStatusOrderNotSentAndSetCountNoPacklist(list);

        list = getSumOrderNotReady(params, session);
        if (list.size() > 1) {
          return null;
        }

       
        setCountNotReady(list, statusOrdersNotSent);

        list = getSumOrderReady(params, session);
        if (list.size() > 1) {
          return null;
        }

        setCountNotSent(list, statusOrdersNotSent);

        returnList.add(statusOrdersNotSent);

        return returnList;
      }
    });
  }
  void setCountNotSent(List<Object[]> list, StatusOrdersNotSent statusOrdersNotSent) {
    Object[] object = list.get(0);

    statusOrdersNotSent.setCountNotSent((Integer) object[0]);
    statusOrdersNotSent
        .setGarageValueNotSent((BigDecimal) object[1]);
  }
  @SuppressWarnings("unchecked") List<Object[]> getSumOrderReady(final ExcelReportSetting params, Session session) {
    List<Object[]> list;
    list = session
        .createQuery(
            "select count(orderStatusNotSentV.orderId),"
                + "sum(orderStatusNotSentV.garageValue) "
                + "from OrderStatusNotSentV orderStatusNotSentV "
                + "where orderStatusNotSentV.orderReady is not null and "
                + "    orderStatusNotSentV.productArea=:productArea").setParameter("productArea", params.getProductAreaName())
        .list();
    return list;
  }
  void setCountNotReady(List<Object[]> list, StatusOrdersNotSent statusOrdersNotSent) {
    Object[] object = list.get(0);

    statusOrdersNotSent.setCountNotReady((Integer) object[0]);
    statusOrdersNotSent
        .setGarageValueNotReady((BigDecimal) object[1]);
  }
  @SuppressWarnings("unchecked") List<Object[]> getSumPacklistNotReady(final ExcelReportSetting params, Session session) {
    List<Object[]> list = session
        .createQuery(
            "select count(orderStatusNotSentV.orderId),"
                + "sum(orderStatusNotSentV.garageValue) "
                + "from OrderStatusNotSentV orderStatusNotSentV "
                + "where orderStatusNotSentV.packlistReady is null and "
                + "    orderStatusNotSentV.productArea=:productArea").setParameter("productArea", params.getProductAreaName())
        .list();
    return list;
  }
  StatusOrdersNotSent createStatusOrderNotSentAndSetCountNoPacklist(List<Object[]> list) {
    StatusOrdersNotSent statusOrdersNotSent = new StatusOrdersNotSent();
    Object[] object = list.get(0);
    statusOrdersNotSent.setCountNoPacklist((Integer) object[0]);
    statusOrdersNotSent
        .setGarageValueNoPacklist((BigDecimal) object[1]);
    return statusOrdersNotSent;
  }
  @SuppressWarnings("unchecked") List<Object[]> getSumOrderNotReady(final ExcelReportSetting params, Session session) {
    List<Object[]> list;
    list = session
        .createQuery(
            "select count(orderStatusNotSentV.orderId),"
                + "sum(orderStatusNotSentV.garageValue) "
                + "from OrderStatusNotSentV orderStatusNotSentV "
                + "where orderStatusNotSentV.orderReady is null and "
                + "    orderStatusNotSentV.productArea=:productArea").setParameter("productArea", params.getProductAreaName())
        .list();
    return list;
  }

}
TOP

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

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.