private StatisticMenuSearchDto CreateSearchDto()
        {
            var dto = new StatisticMenuSearchDto();

            if (ngayRadioButton.Checked)
            {
                dto.FromDate = txtFromDate.Text.Trim();
                dto.ToDate   = txtToDate.Text.Trim();
            }
            if (thangRadioButton.Checked)
            {
                dto.Thang = thangComboBox.Text.Trim();
            }
            if (quyRadioButton.Checked)
            {
                dto.Quy = quyComboBox.Text.Trim();
            }
            if (namRadioButton.Checked)
            {
                dto.Nam = namComboBox.Text.Trim();
            }
            return(dto);
        }
 public List <ResOrderDto> GetAllResOrderDto(StatisticMenuSearchDto dto)
 {
     return(_controller.GetAllResOrderDto(dto));
 }
Esempio n. 3
0
 public List <ResOrderDto> GetAllResOrderDto(StatisticMenuSearchDto dto)
 {
     return(m_PersistenceManager.GetAllResOrderDto(dto));
 }
        public List <ResOrderDto> GetAllResOrderDto(StatisticMenuSearchDto dto)
        {
            using (ISession session = m_SessionFactory.OpenSession())
            {
                string sqlQuery = "select new ResOrder(o.Id, m.Name, o.Amount, o.Discount, u.Name, m.Price)"
                                  + " from ResOrder o, Menu m, Unit u where o.MenuId = m.Id and m.UnitId = u.Id";
                var mapParams = new Hashtable();
                if (!String.IsNullOrEmpty(dto.FromDate))
                {
                    sqlQuery += " and o.CreatedDate >= :fromDate";
                    mapParams.Add("fromDate", DateUtil.GetDateTime(dto.FromDate));
                }
                if (!String.IsNullOrEmpty(dto.ToDate))
                {
                    sqlQuery += " and o.CreatedDate < :toDate";
                    mapParams.Add("toDate", ((DateTime)DateUtil.GetDateTime(dto.ToDate)).AddDays(1));
                }
                if (!String.IsNullOrEmpty(dto.Thang))
                {
                    DateTime fromDate = (DateTime)DateUtil.GetDateTime("01/" + dto.Thang);
                    sqlQuery += " and o.CreatedDate >= :fromDate";
                    mapParams.Add("fromDate", fromDate);
                    DateTime toDate = fromDate.AddMonths(1);
                    sqlQuery += " and o.CreatedDate < :toDate";
                    mapParams.Add("toDate", toDate);
                }
                if (!String.IsNullOrEmpty(dto.Nam))
                {
                    DateTime fromDate = (DateTime)DateUtil.GetDateTime("01/01/" + dto.Nam);
                    sqlQuery += " and o.CreatedDate >= :fromDate";
                    mapParams.Add("fromDate", fromDate);
                    DateTime toDate = fromDate.AddYears(1);
                    sqlQuery += " and o.CreatedDate < :toDate";
                    mapParams.Add("toDate", toDate);
                }
                if (!String.IsNullOrEmpty(dto.Quy))
                {
                    var      quater = int.Parse(dto.Quy.Substring(0, 1));
                    var      year   = dto.Quy.Substring(2);
                    DateTime fromDate;
                    switch (quater)
                    {
                    case 1:
                        fromDate = (DateTime)DateUtil.GetDateTime("01/01/" + year);
                        break;

                    case 2:
                        fromDate = (DateTime)DateUtil.GetDateTime("01/04/" + year);
                        break;

                    case 3:
                        fromDate = (DateTime)DateUtil.GetDateTime("01/07/" + year);
                        break;

                    default:
                        fromDate = (DateTime)DateUtil.GetDateTime("01/10/" + year);
                        break;
                    }
                    sqlQuery += " and o.CreatedDate >= :fromDate";
                    mapParams.Add("fromDate", fromDate);
                    DateTime toDate = fromDate.AddMonths(3);
                    sqlQuery += " and o.CreatedDate < :toDate";
                    mapParams.Add("toDate", toDate);
                }
                var query = session.CreateQuery(sqlQuery);
                foreach (DictionaryEntry param in mapParams)
                {
                    query.SetParameter(param.Key.ToString(), param.Value);
                }

                // Get the matching objects
                var allResOrders = query.List();

                // Update Role info
                var listResOrderDtos = new List <ResOrderDto>();
                var mapResOrder      = new Hashtable();
                foreach (ResOrder resOrder in allResOrders)
                {
                    var    total = resOrder.Amount * resOrder.MenuPrice * (1 - resOrder.Discount);
                    string key   = resOrder.MenuName + "|" + resOrder.UnitName;
                    if (mapResOrder.ContainsKey(key))
                    {
                        var resOrderdto = (ResOrderDto)mapResOrder[key];
                        resOrderdto.Amount += resOrder.Amount;
                        resOrderdto.Total  += total;
                    }
                    else
                    {
                        var resOrderdto = new ResOrderDto()
                        {
                            MenuName = resOrder.MenuName,
                            UnitName = resOrder.UnitName,
                            Amount   = resOrder.Amount,
                            Total    = total
                        };
                        listResOrderDtos.Add(resOrderdto);
                        mapResOrder.Add(key, resOrderdto);
                    }
                }
                return(listResOrderDtos);
            }
        }