示例#1
0
 public List<OrderBO> GetOrders(OrderSearch orderSearchObj)
 {
     return orderDao.GetOrders(orderSearchObj);
 }
        private void BindData()
        {
            OrderSearch searchObj = new OrderSearch() {
                BusManId = this.MemberId,
                OrderFrom = this.From,
                OrderTo = this.To,
                OrderId = 0,
                CustId = 0,
                ProductId = 0,
                ShipMethodId = 0,
                DepositMethodId = 0,
                OrderDetailStatus = 0,
                OrderStatus = new List<OrderStatusEnum>(),
                DesignerManId = 0,
                PrintingTypeIds = new List<int>()
            };
            List<OrderBO> orders = this.OrderService.GetOrders(searchObj);
            MemberBO mem = this.MemberService.GetMember(this.MemberId);
            if(mem!=null)
            {
                lbUserName.Text = mem.FullName;
                lbUserId.Text = string.Format("{0} - {1}", mem.UserId.ToString(), mem.UserName);
            }

            //NOT Completed
            lbNumberOfOrderNOTCompleted.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.NotCompleted).Count().ToString();
            decimal orderTotalNotComleted = orders.Where(o => o.OrderStatus == OrderStatusEnum.NotCompleted).Sum(o => o.OrderTotal);
            lbOrderTotalNOTCompleted.Text = orderTotalNotComleted.ToString("C0");
            decimal depositNotCompleted = 0;
            decimal.TryParse(orders.Where(o => o.OrderStatus == OrderStatusEnum.NotCompleted).Sum(o => o.Deposit).ToString(), out depositNotCompleted);
            lbDepositNOTCompleted.Text = depositNotCompleted.ToString("C0");
            lbRemainingNOTCompleted.Text = (orderTotalNotComleted - depositNotCompleted).ToString("C0");

            hplViewDetailNotCompleted.NavigateUrl = CreateOrderUrl(OrderStatusEnum.NotCompleted);
            hplViewDetailNotCompleted.Target = "_blanks";

            //Completed
            lbNumberOfOrderCompleted.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.Completed).Count().ToString();
            lbOrderTotalContractCompleted.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.Completed).Sum(o => o.OrderTotal).ToString("C0");

            var ordersCompleted = orders.Where(o => o.OrderStatus == OrderStatusEnum.Completed);
            List<ProductApprovedBO> approved = new List<ProductApprovedBO>();
            foreach (OrderBO o in ordersCompleted)
            {
                List<ProductApprovedBO> approvedProducts = this.OrderService.GetApprovedProductByOrderId(o.OrderId);
                foreach (ProductApprovedBO p in approvedProducts)
                {
                    approved.Add(p);
                }
            }
            lbOrderTotalCompleted.Text = approved.Sum(a => a.Total).ToString("C0");
            decimal depositCompleted =0;
            decimal.TryParse(orders.Where(o => o.OrderStatus == OrderStatusEnum.Completed).Sum(o => o.Deposit).ToString(),out depositCompleted);
            lbDepositCompleted.Text = depositCompleted.ToString("C0");
            lbRemainingCompleted.Text = (approved.Sum(a => a.Total) - depositCompleted).ToString("C0");
            hplViewDetailCompleted.NavigateUrl = this.CreateOrderUrl(OrderStatusEnum.Completed);
            hplViewDetailCompleted.Target = "_blank";

            //Failed
            lbNumberOfOrderFailed.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.IsFailed).Count().ToString();
            lbOrderTotalFailded.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.IsFailed).Sum(o => o.OrderTotal).ToString("C0");
            var failedOrders = orders.Where(o => o.OrderStatus == OrderStatusEnum.IsFailed);
            List<ProductApprovedBO> failedProductsResult = new List<ProductApprovedBO>();
            foreach (OrderBO o in failedOrders)
            {
                List<ProductApprovedBO> failedProducts = this.OrderService.GetFailedProductByOrderId(o.OrderId);
                foreach (ProductApprovedBO pa in failedProducts)
                {
                    failedProductsResult.Add(pa);
                }
            }

            lbOrderDetailTotalFailed.Text = failedProductsResult.Sum(fd => fd.Total).ToString("C0");
            decimal depositFailed = 0;
            decimal.TryParse(orders.Where(o => o.OrderStatus == OrderStatusEnum.IsFailed).Sum(o => o.Deposit).ToString(), out depositFailed);
            lbDepositFailed.Text = depositFailed.ToString("C0");
            hplViewDetailFailed.NavigateUrl = this.CreateOrderUrl(OrderStatusEnum.IsFailed);
            hplViewDetailFailed.Target = "_blank";
            //Overdue
            lbNumberOfOrderOverdue.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.Overdue).Count().ToString();
            lbOrderTotalOverdue.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.Overdue).Sum(o => o.OrderTotal).ToString("C0");
            var overdueOrders = orders.Where(o => o.OrderStatus == OrderStatusEnum.Overdue);
            decimal orderDetailOverdue = 0;
            foreach (OrderBO o in overdueOrders)
            {
                foreach (OrderItemlBO od in o.OrderItems)
                {
                    if (od.OrderItemStatus == OrderItemStatusEnum.Overdue)
                    {
                        orderDetailOverdue+= od.Quantity*od.Price;
                    }
                }
            }
            lbOrderDetailTotalOverdue.Text = orderDetailOverdue.ToString("C0");
            decimal depositOverdue = 0;
            decimal.TryParse(orders.Where(o => o.OrderStatus == OrderStatusEnum.Overdue).Sum(o => o.Deposit).ToString(), out depositOverdue);
            lbDepositOverdue.Text = depositOverdue.ToString("C0");
            hplViewDetailOverdue.NavigateUrl = this.CreateOrderUrl(OrderStatusEnum.Overdue);
            hplViewDetailOverdue.Target = "_blank";
        }
示例#3
0
        protected void btFind_Click(object sender, EventArgs e)
        {
            DateTime? orderFrom = ctrlDatePickerFrom.SelectedDate;
            DateTime? orderTo = ctrlDatePickerTo.SelectedDate;

            int orderId = 0;
            int.TryParse(txtOrderCode.Text, out orderId);

            int custId = 0;
            int.TryParse(ctrlCustomerSelect.CustomerId, out custId);

            int productId = 0;
            int.TryParse(ddlProduct.SelectedValue, out productId);

            int shipMethodId = 0;
            int.TryParse(ddlShipping.SelectedValue, out shipMethodId);

            int depositMethodId = 0;
            int.TryParse(ddlDeposit.SelectedValue, out depositMethodId);

            int orderDetailStatusId = 0;
            int.TryParse(ddlOrderDetailStatus.SelectedValue, out orderDetailStatusId);

            int busManId = 0;
            int.TryParse(ddlBusinessManId.SelectedValue,out busManId);

            int designerManId = 0;
            int.TryParse(ddlDesingerId.SelectedValue, out designerManId);

            List<OrderStatusEnum> orderStatus = new List<OrderStatusEnum>();
            foreach(ListItem i in cblOrderStatus.Items)
            {
                if (i.Selected)
                {
                    orderStatus.Add((OrderStatusEnum)int.Parse(i.Value));
                }
            }

            List<int> printingTypeIds = ctrlPrintingTypeSelect.SelectedValues;

            OrderSearch orderSearchObj = new OrderSearch()
            {
                OrderFrom = orderFrom,
                OrderTo = orderTo,
                OrderId= orderId,
                CustId = custId,
                ProductId = productId,
                ShipMethodId = shipMethodId,
                DepositMethodId = depositMethodId,
                OrderDetailStatus = (OrderItemStatusEnum)orderDetailStatusId,
                OrderStatus = orderStatus,
                BusManId = busManId,
                DesignerManId = designerManId,
                PrintingTypeIds = printingTypeIds
            };

            List<OrderBO> orders = this.OrderService.GetOrders(orderSearchObj);
            grvOrders.DataSource = orders;
            grvOrders.DataBind();

            lbNumberOfOrders.Text = orders.Count.ToString();
            lbOrderTotal.Text = orders.Sum(o => o.OrderTotal).ToString("C0");

            lbNotCompletedNumberOfOrders.Text = orders.Where(o=>o.OrderStatus == OrderStatusEnum.NotCompleted).Count().ToString();
            lbNotCompletedOrderTotal.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.NotCompleted).Sum(o => o.OrderTotal).ToString("C0");

            lbCompletedNumberOfOrders.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.Completed).Count().ToString();
            lbCompletedOrderTotal.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.Completed).Sum(o => o.OrderTotal).ToString("C0");

            lbFailedNumberOfOrders.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.IsFailed).Count().ToString();
            lbFailedOrderTotal.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.IsFailed).Sum(o => o.OrderTotal).ToString("C0");

            List<ProductApprovedBO> failedProductsResult = new List<ProductApprovedBO>();
            foreach (OrderBO o in orders)
            {
                List<ProductApprovedBO> failedProducts = this.OrderService.GetFailedProductByOrderId(o.OrderId);
                foreach (ProductApprovedBO pa in failedProducts)
                {
                    failedProductsResult.Add(pa);
                }
            }

            lbFailedOrderDetailTotal.Text = failedProductsResult.Sum(fd => fd.Total).ToString("C0");

            lbOverdueNumberOfOrders.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.Overdue).Count().ToString();
            lbOverdueOrderTotal.Text = orders.Where(o => o.OrderStatus == OrderStatusEnum.Overdue).Sum(o => o.OrderTotal).ToString("C0");
            var overdueOrders = orders.Where(o => o.OrderStatus == OrderStatusEnum.Overdue);
            decimal overdueOrderDetailTotal = 0;
            foreach (OrderBO o in overdueOrders)
            {
                foreach (OrderItemlBO od in o.OrderItems)
                {
                    if (od.OrderItemStatus == OrderItemStatusEnum.Overdue)
                    {
                        overdueOrderDetailTotal += od.Quantity * od.Price;
                    }
                }
            }
            lbOverdueOrderDetailTotal.Text = overdueOrderDetailTotal.ToString("C0");
        }
示例#4
0
        public List<OrderBO> GetOrders(OrderSearch orderSearchObj)
        {
            using (var context = new InThuDoEntities())
            {
                var query = (from o in context.Orders
                             join oitem in context.OrderItems
                             on o.OrderId equals oitem.OrderId into orderItemGrop
                             from oitem2 in orderItemGrop.DefaultIfEmpty()
                             join designRequest in context.DesignRequests on oitem2.OrderItemId equals designRequest.OrderItemId into dsGroup
                             from designRequest2 in dsGroup.DefaultIfEmpty()
                             join or in context.UserOrganizationMapppings on o.UserId equals or.UserId
                             //join oStatusMapping in context.OrderStatusMappings on oitem2.OrderItemId equals oStatusMapping.OrderItemId into oStatusMappingGroup
                             //from oStatusMapping2 in oStatusMappingGroup.DefaultIfEmpty()
                             where
                             (oitem2.Deleted == false || oitem2.Deleted == null) &&
                             (orderSearchObj.OrderId == 0 || o.OrderId == orderSearchObj.OrderId) &&
                             (orderSearchObj.CustId == 0 || o.CustomerId == orderSearchObj.CustId) &&
                             (orderSearchObj.ProductId == 0 || oitem2.ProductId == orderSearchObj.ProductId) &&
                             (orderSearchObj.ShipMethodId == 0 || o.ShippingMethodId == orderSearchObj.ShipMethodId) &&
                             (orderSearchObj.DepositMethodId == 0 || o.DepositTypeId == orderSearchObj.DepositMethodId) &&
                                 //(orderSearchObj.OrderStatusId == 0 || oStatusMapping2.OrderStatusId == orderSearchObj.OrderStatusId)&&
                             (orderSearchObj.BusManId == 0 || o.UserId == orderSearchObj.BusManId) &&
                             (orderSearchObj.DesignerManId == 0 || designRequest2.DesignerId == orderSearchObj.DesignerManId) &&
                             (orderSearchObj.OrderFrom == null || o.OrderDate >= orderSearchObj.OrderFrom) &&
                             (orderSearchObj.OrderTo == null || o.OrderDate <= orderSearchObj.OrderTo) &&
                             (orderSearchObj.OrganizationId == 0 || or.OrganizationId == orderSearchObj.OrganizationId) &&
                             (orderSearchObj.PrintingTypeIds.Count ==0 || orderSearchObj.PrintingTypeIds.Contains(oitem2.PrintingTypeId))&&
                             (o.Deleted == null || o.Deleted == false)
                             select new OrderBO
                             {
                                 OrderId = o.OrderId,
                                 OrderDate = o.OrderDate,
                                 Deposit = o.Deposit,
                                 DepositTypeId = o.DepositTypeId,
                                 ShippingMethodId = o.ShippingMethodId,
                                 CustomerId = o.CustomerId,
                                 BusinessManId = o.UserId,
                                 CreatedBy = o.CreatedBy,
                                 CreatedDate = o.CreatedDate,
                                 LastEditedBy = o.LastEditedBy,
                                 LastEditedDate = o.LastEditedDate,
                                 CustomerName = o.Customer.Name,
                                 BusinessManName = o.User.FullName,
                                 DepositTypeName = o.LibDepositType.Name,
                                 ShippingMethodName = o.LibShippingMethod.Name,
                                 ExpectedCompleteDate = o.ExpectedCompleteDate,
                                 Note = o.Note,
                                 DeliveryAddress = o.DeliveryAddress
                             }).Distinct().ToList();

                foreach (OrderBO o in query)
                {
                    o.OrderStatus = this.GetOrderStatus(o.OrderId);
                    o.OrderTotal = this.GetOrderTotal(o);

                    var orderItems = (from od in context.OrderItems
                                      where
                                      (od.OrderId == o.OrderId) && (od.Deleted == null || od.Deleted == false)
                                      select new OrderItemlBO()
                                      {
                                          OrderItemId = od.OrderItemId,
                                          OrderId = od.OrderId,
                                          Quantity= od.Quantity,
                                          Price = od.Price,
                                          PrintingTypeId = od.PrintingTypeId
                                      }).ToList();
                    if (orderItems.Count > 0)
                    {
                        foreach (OrderItemlBO od in orderItems)
                        {
                            od.OrderItemStatus = this.GetOrderItemStatusIncludedOverDue(od.OrderItemId);
                        }

                        o.OrderItems = orderItems.Distinct().ToList();
                    }
                }

                if (orderSearchObj.OrderDetailStatus != 0)
                {
                    var orderItems = (from od in context.OrderItems
                                      where
                                       (od.Deleted == null || od.Deleted == false)

                                      select new OrderItemlBO()
                                      {
                                          OrderItemId = od.OrderItemId,
                                          OrderId = od.OrderId,
                                          Quantity = od.Quantity,
                                          Price = od.Price
                                      }).ToList();
                    if (orderItems.Count > 0)
                    {
                        foreach (OrderItemlBO od in orderItems)
                        {
                            od.OrderItemStatus = this.GetOrderItemStatusIncludedOverDue(od.OrderItemId);
                        }
                    }

                    query = (from q in query
                             join od in orderItems on q.OrderId equals od.OrderId
                             where od.OrderItemStatus == orderSearchObj.OrderDetailStatus
                             select q).Distinct().ToList();
                }

                if (orderSearchObj.OrderStatus.Count >0)
                {
                    query = (from q in query
                             where orderSearchObj.OrderStatus.Contains(q.OrderStatus)
                             select q).Distinct().ToList();
                }

                return query;
            }
        }