public static Expression <Func <SalesQuote, SalesQuoteDetailReturn> > SelectDetail() { var key = SelectKey(); var shipment = ShipmentInformationProjectors.SelectDetail(InventoryOrderEnum.Unknown); var facility = FacilityProjectors.Select(false, false); var company = CompanyProjectors.SelectSummary(); var item = SalesQuoteItemProjectors.Select(); return(Projector <SalesQuote> .To(q => new SalesQuoteDetailReturn { SalesQuoteKeyReturn = key.Invoke(q), QuoteNumber = q.QuoteNum, QuoteDate = q.QuoteDate, DateReceived = q.DateReceived, CalledBy = q.CalledBy, TakenBy = q.TakenBy, PaymentTerms = q.PaymentTerms, ShipFromReplace = q.SoldTo, Shipment = shipment.Invoke(q.ShipmentInformation), SourceFacility = new[] { q.SourceFacility }.Where(f => f != null).Select(f => facility.Invoke(f)).FirstOrDefault(), Customer = new[] { q.Customer }.Where(c => c != null).Select(c => company.Invoke(c.Company)).FirstOrDefault(), Broker = new[] { q.Broker }.Where(b => b != null).Select(b => company.Invoke(b)).FirstOrDefault(), Items = q.Items.Select(i => item.Invoke(i)) })); }
private static IEnumerable <Expression <Func <Contract, ContractBaseReturn> > > SelectContractBase() { var key = SelectKey(); var company = CompanyProjectors.SelectSummary(); var warehouse = FacilityProjectors.Select(false, true); return(new[] { Projector <Contract> .To(c => new ContractBaseReturn { ContractKeyReturn = key.Invoke(c), CustomerPurchaseOrder = c.CustomerPurchaseOrder, ContractNumber = c.ContractId, ContractDate = c.ContractDate, TermBegin = c.TermBegin, TermEnd = c.TermEnd, PaymentTerms = c.PaymentTerms, ContactName = c.ContactName, FOB = c.FOB, ContractType = c.ContractType, ContractStatus = c.ContractStatus, DefaultPickFromFacility = warehouse.Invoke(c.DefaultPickFromFacility) }), Projector <Contract> .To(c => new ContractBaseReturn { Customer = company.Invoke(c.Customer.Company), Broker = company.Invoke(c.Broker), }) }); }
internal static IEnumerable <Expression <Func <SalesOrder, SalesOrderDetailReturn> > > SplitSelectDetail(IInventoryShipmentOrderUnitOfWork inventoryUnitOfWork, DateTime currentDate) { var company = CompanyProjectors.SelectSummary(); return(new Projectors <SalesOrder, SalesOrderDetailReturn> { { InventoryShipmentOrderProjectors.SplitSelectInventoryShipmentOrderDetailBase(inventoryUnitOfWork, currentDate, InventoryOrderEnum.CustomerOrder, inventoryUnitOfWork), p => p.Translate().To <SalesOrder, SalesOrderDetailReturn>(o => o.InventoryShipmentOrder) }, o => new SalesOrderDetailReturn { IsMiscellaneous = o.InventoryShipmentOrder.OrderType == InventoryShipmentOrderTypeEnum.MiscellaneousOrder, SalesOrderStatus = o.OrderStatus, PaymentTerms = o.PaymentTerms, ShipFromReplace = o.SoldTo, CreditMemo = o.CreditMemo, InvoiceDate = o.InvoiceDate, InvoiceNotes = o.InvoiceNotes, FreightCharge = o.FreightCharge, Customer = new[] { o.Customer }.Where(c => c != null).Select(c => company.Invoke(c.Company)).FirstOrDefault(), Broker = new[] { o.Broker }.Where(b => b != null).Select(b => company.Invoke(b)).FirstOrDefault() }, { SplitSelectPickOrderDetail(), p => o => new SalesOrderDetailReturn { PickOrder = p.Invoke(o) } } }); }
internal static IEnumerable <Expression <Func <SalesOrder, SalesOrderSummaryReturn> > > SplitSelectSummary() { var company = CompanyProjectors.SelectSummary(); return(new Projectors <SalesOrder, SalesOrderSummaryReturn> { InventoryShipmentOrderProjectors.SelectInventoryShipmentOrderSummary().Translate().To <SalesOrder, SalesOrderSummaryReturn>(c => c.InventoryShipmentOrder), c => new SalesOrderSummaryReturn { SalesOrderStatus = c.OrderStatus, PaymentTerms = c.PaymentTerms, DateOrderReceived = c.InventoryShipmentOrder.DateReceived, InvoiceDate = c.InvoiceDate, CreditMemo = c.CreditMemo, Customer = new[] { c.Customer }.Where(u => u != null).Select(u => company.Invoke(u.Company)).FirstOrDefault(), Broker = new[] { c.Broker }.Where(b => b != null).Select(b => company.Invoke(b)).FirstOrDefault() } }); }
private static Expression <Func <ChileMaterialsReceived, ChileMaterialsReceivedReturn> > SelectBase() { var key = LotProjectors.SelectLotKey <ChileMaterialsReceived>(); var chileProduct = ProductProjectors.SelectChileProductSummary(); var company = CompanyProjectors.SelectSummary(); var treatment = InventoryTreatmentProjectors.SelectInventoryTreatment(); return(Projector <ChileMaterialsReceived> .To(m => new ChileMaterialsReceivedReturn { DateReceived = m.DateReceived, LoadNumber = m.LoadNumber, PurchaseOrder = m.ChileLot.Lot.PurchaseOrderNumber, ShipperNumber = m.ChileLot.Lot.ShipperNumber, ChileProduct = chileProduct.Invoke(m.ChileProduct), Supplier = company.Invoke(m.Supplier), Treatment = treatment.Invoke(m.InventoryTreatment), LotKeyReturn = key.Invoke(m), })); }
internal static Expression <Func <Customer, CompanySummaryReturn> > SelectCompanySummary() { var summary = CompanyProjectors.SelectSummary(); return(c => summary.Invoke(c.Company)); }