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"; }
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"); }
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; } }