public ParcelReportEditForm(EditFormMode mode, ParcelReportItem parcelReportItem) : base(mode, parcelReportItem) { CheckHelper.ArgumentWithinCondition(mode == EditFormMode.View, "Form is readonly."); InitializeComponent(); }
private static ParcelReportItem GetParcelReportItem1() { var parcelReportItem = new ParcelReportItem { Id = ParcelMockFactory.Parcel_1.Id, ParcelName = DTO.Parcel.GetParcelName(ParcelMockFactory.Parcel_1.Id), SentDate = ParcelMockFactory.Parcel_1.SentDate, ReceivedDate = ParcelMockFactory.Parcel_1.ReceivedDate, DistributorName = UserMockFactory.Olesya.GetFullName(), PurchaserPaid = // Order 1 OrderItemMockFactory.OrderItem_2.PurchaserPaid + OrderItemMockFactory.OrderItem_6.PurchaserPaid + // Order 2 OrderItemMockFactory.OrderItem_3.PurchaserPaid + OrderItemMockFactory.OrderItem_4.PurchaserPaid, PurchaserSpentOnDelivery = ParcelMockFactory.Parcel_1.PurchaserSpentOnDelivery, DistributorSpentOnDelivery = (OrderMockFactory.Order_1.DistributorSpentOnDelivery / OrderMockFactory.Order_1.RublesPerDollar).ToMoney() + (OrderMockFactory.Order_2.DistributorSpentOnDelivery / OrderMockFactory.Order_2.RublesPerDollar).ToMoney(), CustomersPrepaid = (OrderMockFactory.Order_1.CustomerPrepaid / OrderMockFactory.Order_1.RublesPerDollar).ToMoney() + (OrderMockFactory.Order_2.CustomerPrepaid / OrderMockFactory.Order_2.RublesPerDollar).ToMoney(), CustomersPaid = (OrderMockFactory.Order_1.CustomerPaid / OrderMockFactory.Order_1.RublesPerDollar).ToMoney() + (OrderMockFactory.Order_2.CustomerPaid / OrderMockFactory.Order_2.RublesPerDollar).ToMoney(), ExpectedTotalCustomerPaid = // Order 1 (OrderItemMockFactory.OrderItem_2.TotalPrice / OrderMockFactory.Order_1.RublesPerDollar).ToMoney() + (OrderItemMockFactory.OrderItem_6.TotalPrice / OrderMockFactory.Order_1.RublesPerDollar).ToMoney() + // Order 2 (OrderItemMockFactory.OrderItem_3.TotalPrice / OrderMockFactory.Order_2.RublesPerDollar).ToMoney() + (OrderItemMockFactory.OrderItem_4.TotalPrice / OrderMockFactory.Order_2.RublesPerDollar).ToMoney() }; parcelReportItem.TotalPaid = parcelReportItem.PurchaserPaid + parcelReportItem.PurchaserSpentOnDelivery + parcelReportItem.DistributorSpentOnDelivery; parcelReportItem.TotalCustomersPaid = parcelReportItem.CustomersPrepaid + parcelReportItem.CustomersPaid; parcelReportItem.TotalProfit = parcelReportItem.TotalCustomersPaid - parcelReportItem.TotalPaid; parcelReportItem.ExpectedTotalProfit = parcelReportItem.ExpectedTotalCustomerPaid - parcelReportItem.TotalPaid; return(parcelReportItem); }
private static ParcelReportItem GetParcelReportItem2() { var parcelReportItem = new ParcelReportItem { Id = ParcelMockFactory.Parcel_2.Id, ParcelName = DTO.Parcel.GetParcelName(ParcelMockFactory.Parcel_2.Id), SentDate = ParcelMockFactory.Parcel_2.SentDate, ReceivedDate = ParcelMockFactory.Parcel_2.ReceivedDate, DistributorName = UserMockFactory.Diana.GetFullName(), PurchaserPaid = // Order 7 OrderItemMockFactory.OrderItem_10.PurchaserPaid + // Order 8 OrderItemMockFactory.OrderItem_11.PurchaserPaid, PurchaserSpentOnDelivery = ParcelMockFactory.Parcel_2.PurchaserSpentOnDelivery, DistributorSpentOnDelivery = (OrderMockFactory.Order_7.DistributorSpentOnDelivery / OrderMockFactory.Order_7.RublesPerDollar).ToMoney() + (OrderMockFactory.Order_8.DistributorSpentOnDelivery / OrderMockFactory.Order_8.RublesPerDollar).ToMoney(), CustomersPrepaid = (OrderMockFactory.Order_7.CustomerPrepaid / OrderMockFactory.Order_7.RublesPerDollar).ToMoney() + (OrderMockFactory.Order_8.CustomerPrepaid / OrderMockFactory.Order_8.RublesPerDollar).ToMoney(), CustomersPaid = (OrderMockFactory.Order_7.CustomerPaid / OrderMockFactory.Order_7.RublesPerDollar).ToMoney() + (OrderMockFactory.Order_8.CustomerPaid / OrderMockFactory.Order_8.RublesPerDollar).ToMoney(), ExpectedTotalCustomerPaid = // Order 7 (OrderItemMockFactory.OrderItem_10.TotalPrice / OrderMockFactory.Order_7.RublesPerDollar).ToMoney() + // Order 8 (OrderItemMockFactory.OrderItem_11.TotalPrice / OrderMockFactory.Order_8.RublesPerDollar).ToMoney() }; parcelReportItem.TotalPaid = parcelReportItem.PurchaserPaid + parcelReportItem.PurchaserSpentOnDelivery + parcelReportItem.DistributorSpentOnDelivery; parcelReportItem.TotalCustomersPaid = parcelReportItem.CustomersPrepaid + parcelReportItem.CustomersPaid; parcelReportItem.TotalProfit = parcelReportItem.TotalCustomersPaid - parcelReportItem.TotalPaid; parcelReportItem.ExpectedTotalProfit = parcelReportItem.ExpectedTotalCustomerPaid - parcelReportItem.TotalPaid; return(parcelReportItem); }
protected override void SetDtoToControls(ParcelReportItem parcelReportItem) { _parcelNameTextBox.Text = parcelReportItem.ParcelName; _sentDatePicker.UtcValue = parcelReportItem.SentDate; _receivedDatePicker.UtcValue = parcelReportItem.ReceivedDate; _distributorTextBox.Text = parcelReportItem.DistributorName; _purchaserPaidNumericUpDown.Value = parcelReportItem.PurchaserPaid; _purchaserSpentOnDeliveryNumericUpDown.Value = parcelReportItem.PurchaserSpentOnDelivery; _distributorSpentOnDeliveryNumericUpDown.Value = parcelReportItem.DistributorSpentOnDelivery; _totalPaidNumericUpDown.Value = parcelReportItem.TotalPaid; _customersPrepaidNumericUpDown.Value = parcelReportItem.CustomersPrepaid; _customersPaidNumericUpDown.Value = parcelReportItem.CustomersPaid; _totalCustomersPaidNumericUpDown.Value = parcelReportItem.TotalCustomersPaid; _expectedTotalCustomerPaidNumericUpDown.Value = parcelReportItem.ExpectedTotalCustomerPaid; _totalProfitNumericUpDown.Value = parcelReportItem.TotalProfit; _expectedTotalProfitNumericUpDown.Value = parcelReportItem.ExpectedTotalProfit; }
protected override object[] GetDtoValues(ParcelReportItem parcelReportItem) { return (new object[] { parcelReportItem.ParcelName, parcelReportItem.SentDate.HasValue ? parcelReportItem.SentDate.Value.ToString("d") : string.Empty, parcelReportItem.ReceivedDate.HasValue ? parcelReportItem.ReceivedDate.Value.ToString("d") : string.Empty, parcelReportItem.DistributorName, parcelReportItem.PurchaserPaid, parcelReportItem.PurchaserSpentOnDelivery, parcelReportItem.DistributorSpentOnDelivery, parcelReportItem.TotalPaid, parcelReportItem.CustomersPrepaid, parcelReportItem.CustomersPaid, parcelReportItem.TotalCustomersPaid, parcelReportItem.ExpectedTotalCustomerPaid, parcelReportItem.TotalProfit, parcelReportItem.ExpectedTotalProfit }); }
private static ParcelReportItem GetParcelReportItem3() { var parcelReportItem = new ParcelReportItem { Id = ParcelMockFactory.Parcel_3.Id, ParcelName = DTO.Parcel.GetParcelName(ParcelMockFactory.Parcel_3.Id), SentDate = ParcelMockFactory.Parcel_3.SentDate, ReceivedDate = ParcelMockFactory.Parcel_3.ReceivedDate, DistributorName = string.Empty, PurchaserPaid = // Order 5 OrderItemMockFactory.OrderItem_8.PurchaserPaid, PurchaserSpentOnDelivery = ParcelMockFactory.Parcel_2.PurchaserSpentOnDelivery, DistributorSpentOnDelivery = (OrderMockFactory.Order_5.DistributorSpentOnDelivery / OrderMockFactory.Order_5.RublesPerDollar).ToMoney(), CustomersPrepaid = (OrderMockFactory.Order_5.CustomerPrepaid / OrderMockFactory.Order_5.RublesPerDollar).ToMoney(), CustomersPaid = (OrderMockFactory.Order_5.CustomerPaid / OrderMockFactory.Order_5.RublesPerDollar).ToMoney(), ExpectedTotalCustomerPaid = // Order 5 (OrderItemMockFactory.OrderItem_8.TotalPrice / OrderMockFactory.Order_5.RublesPerDollar).ToMoney() }; parcelReportItem.TotalPaid = parcelReportItem.PurchaserPaid + parcelReportItem.PurchaserSpentOnDelivery + parcelReportItem.DistributorSpentOnDelivery; parcelReportItem.TotalCustomersPaid = parcelReportItem.CustomersPrepaid + parcelReportItem.CustomersPaid; parcelReportItem.TotalProfit = parcelReportItem.TotalCustomersPaid - parcelReportItem.TotalPaid; parcelReportItem.ExpectedTotalProfit = parcelReportItem.ExpectedTotalCustomerPaid - parcelReportItem.TotalPaid; return(parcelReportItem); }
public ParcelReportListForm(ListFormMode mode, ParcelReportItem parcelReportItem) : base(mode, parcelReportItem) { InitializeComponent(); }
public ParcelReportItem[] GenerateParcelsReport() { CheckHelper.WithinCondition(SecurityService.IsLoggedIn, "User is not logged in."); CheckHelper.WithinCondition( SecurityService.IsCurrentUserSeller || SecurityService.IsCurrentUserPurchaser || SecurityService.IsCurrentUserDistributor, "Only seller, purchaser and distributor can generate parcels report."); var persistenceService = Container.Get <IPersistentService>(); var parcelQuery = persistenceService .GetEntitySet <DataAccess.Parcel>() .AsQueryable(); parcelQuery = QueryHelper.FilterParcelsBySecurityPermissions(parcelQuery, Container); var parcelReportItemPrototypes = parcelQuery .SelectMany(p => p.Orders) .SelectMany(o => o.OrderItems) .Where(oi => oi.Active && oi.Order.Active && oi.Order.Parcel != null) .Select(oi => new { ParcelId = oi.Order.ParcelId.Value, DistributorName = oi.Order.Parcel.Distributor != null ? oi.Order.Parcel.Distributor.LastName + " " + oi.Order.Parcel.Distributor.FirstName : string.Empty, oi.Order.Parcel.SentDate, oi.Order.Parcel.ReceivedDate, oi.Order.Parcel.PurchaserSpentOnDelivery, oi.OrderId, DistributorSpentOnDelivery = oi.Order.DistributorSpentOnDelivery / oi.Order.RublesPerDollar, CustomerPrepaid = oi.Order.CustomerPrepaid / oi.Order.RublesPerDollar, CustomerPaid = oi.Order.CustomerPaid / oi.Order.RublesPerDollar, oi.PurchaserPaid, TotalPrice = oi.TotalPrice / oi.Order.RublesPerDollar }) .ToArray(); return (parcelReportItemPrototypes .GroupBy(pr => pr.ParcelId) .OrderBy(gr => gr.Key) .Select(grouping => { var parcelReportItem = new ParcelReportItem { Id = grouping.Key, ParcelName = DTO.Parcel.GetParcelName(grouping.Key), DistributorName = grouping.Select(i => i.DistributorName).Distinct().Single(), SentDate = grouping.Select(i => i.SentDate).Distinct().Single(), ReceivedDate = grouping.Select(i => i.ReceivedDate).Distinct().Single(), PurchaserPaid = grouping.Sum(i => i.PurchaserPaid.ToMoney()), PurchaserSpentOnDelivery = grouping.Select(i => i.PurchaserSpentOnDelivery).Distinct().Single().ToMoney(), DistributorSpentOnDelivery = grouping .GroupBy(i => i.OrderId) .Select(gr => gr.Select(i => i.DistributorSpentOnDelivery).Distinct().Single()) .Sum(i => i.ToMoney()), CustomersPrepaid = grouping .GroupBy(i => i.OrderId) .Select(gr => gr.Select(i => i.CustomerPrepaid).Distinct().Single()) .Sum(i => i.ToMoney()), CustomersPaid = grouping .GroupBy(i => i.OrderId) .Select(gr => gr.Select(i => i.CustomerPaid).Distinct().Single()) .Sum(i => i.ToMoney()), ExpectedTotalCustomerPaid = grouping.Sum(i => i.TotalPrice.ToMoney()) }; parcelReportItem.TotalPaid = parcelReportItem.PurchaserPaid + parcelReportItem.PurchaserSpentOnDelivery + parcelReportItem.DistributorSpentOnDelivery; parcelReportItem.TotalCustomersPaid = parcelReportItem.CustomersPrepaid + parcelReportItem.CustomersPaid; parcelReportItem.TotalProfit = parcelReportItem.TotalCustomersPaid - parcelReportItem.TotalPaid; parcelReportItem.ExpectedTotalProfit = parcelReportItem.ExpectedTotalCustomerPaid - parcelReportItem.TotalPaid; return parcelReportItem; }) .ToArray()); }