private static IEnumerable <Expression <Func <SalesOrder, CustomerPickOrderReturn> > > SplitSelectPickOrderDetail() { var key = InventoryPickOrderProjectors.SelectKey(); return(new Projectors <SalesOrder, CustomerPickOrderReturn> { o => new CustomerPickOrderReturn { InventoryPickOrderKeyReturn = key.Invoke(o.InventoryShipmentOrder.InventoryPickOrder) }, { SalesOrderItemProjectors.SplitSelect(), p => o => new CustomerPickOrderReturn { PickOrderItems = o.SalesOrderItems.Select(i => p.Invoke(i)) } } }); }
internal static IEnumerable <Expression <Func <SalesOrder, SalesOrderAcknowledgementReturn> > > SplitSelectAcknowledgement() { var key = SelectKey(); var shipment = ShipmentInformationProjectors.SelectShipmentInformation(); var pickOrderItem = SalesOrderItemProjectors.SplitSelect(); return(new Projectors <SalesOrder, SalesOrderAcknowledgementReturn> { o => new SalesOrderAcknowledgementReturn { SalesOrderKeyReturn = key.Invoke(o), MovementNumber = o.InventoryShipmentOrder.MoveNum, PurchaseOrderNumber = o.InventoryShipmentOrder.PurchaseOrderNumber, DateReceived = o.InventoryShipmentOrder.DateReceived, RequestedBy = o.InventoryShipmentOrder.RequestedBy, TakenBy = o.InventoryShipmentOrder.TakenBy, PaymentTerms = o.PaymentTerms, Broker = new[] { o.Broker }.Select(b => b.Name).FirstOrDefault(), SoldToShippingLabel = o.SoldTo, OriginFacility = o.InventoryShipmentOrder.SourceFacility.Name }, o => new SalesOrderAcknowledgementReturn { ShipmentInformation = shipment.Invoke(o.InventoryShipmentOrder.ShipmentInformation) }, { pickOrderItem, p => Projector <SalesOrder> .To(o => new SalesOrderAcknowledgementReturn { PickOrderItems = o.SalesOrderItems.Select(i => p.Invoke(i)) }) }, o => new SalesOrderAcknowledgementReturn { TotalQuantity = o.InventoryShipmentOrder.InventoryPickOrder.Items.Any() ? o.InventoryShipmentOrder.InventoryPickOrder.Items.Sum(i => i.Quantity) : 0, NetWeight = o.InventoryShipmentOrder.InventoryPickOrder.Items.Any() ? o.InventoryShipmentOrder.InventoryPickOrder.Items.Sum(i => i.Quantity * i.PackagingProduct.Weight) : 0, TotalGrossWeight = o.InventoryShipmentOrder.InventoryPickOrder.Items.Any() ? o.InventoryShipmentOrder.InventoryPickOrder.Items.Sum(i => i.Quantity * (i.PackagingProduct.Weight + i.PackagingProduct.PackagingWeight)) : 0, PalletWeight = o.InventoryShipmentOrder.InventoryPickOrder.Items.Any() ? o.InventoryShipmentOrder.InventoryPickOrder.Items.Sum(i => i.Quantity * (i.PackagingProduct.PalletWeight)) : 0, EstimatedShippingWeight = o.InventoryShipmentOrder.InventoryPickOrder.Items.Any() ? o.InventoryShipmentOrder.InventoryPickOrder.Items.Sum(i => i.Quantity * (i.PackagingProduct.Weight + i.PackagingProduct.PackagingWeight + i.PackagingProduct.PalletWeight)) : 0, } }); }