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))
            }));
        }
Exemplo n.º 2
0
        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),
            }));
        }
Exemplo n.º 6
0
        internal static Expression <Func <Customer, CompanySummaryReturn> > SelectCompanySummary()
        {
            var summary = CompanyProjectors.SelectSummary();

            return(c => summary.Invoke(c.Company));
        }