Пример #1
0
        public static int?FetchLocation(PXGraph graph, int?vendorID, int?itemID, int?subItemID, int?siteID)
        {
            BAccountR company = PXSelectJoin <BAccountR,
                                              InnerJoin <Branch, On <Branch.bAccountID, Equal <BAccountR.bAccountID> > >,
                                              Where <BAccountR.bAccountID, Equal <Required <BAccountR.bAccountID> > > > .Select(graph, vendorID);

            if (company != null)
            {
                return(company.DefLocationID);
            }

            var rec = (PXResult <INItemSiteSettings, POVendorInventory>)
                      PXSelectJoin <INItemSiteSettings,
                                    LeftJoin <POVendorInventory,
                                              On <POVendorInventory.inventoryID, Equal <INItemSiteSettings.inventoryID>,
                                                  And <POVendorInventory.active, Equal <boolTrue>,
                                                       And <POVendorInventory.vendorID, Equal <Required <Vendor.bAccountID> >,
                                                            And <Where <POVendorInventory.subItemID, Equal <Required <POVendorInventory.subItemID> >,
                                                                        Or <POVendorInventory.subItemID, Equal <INItemSiteSettings.defaultSubItemID>,
                                                                            Or <POVendorInventory.subItemID, IsNull,
                                                                                Or <Where <Required <POVendorInventory.subItemID>, IsNull,
                                                                                           And <POVendorInventory.subItemID, Equal <True> > > > > > > > > > > >,
                                    Where <INItemSiteSettings.inventoryID, Equal <Required <INItemSiteSettings.inventoryID> >,
                                           And <INItemSiteSettings.siteID, Equal <Required <INItemSiteSettings.siteID> > > >,
                                    OrderBy <Asc <POVendorInventory.lastPrice,
                                                  Asc <Switch <Case <Where <POVendorInventory.subItemID, Equal <INItemSiteSettings.defaultSubItemID> >, boolTrue>, boolFalse>,
                                                       Asc <Switch <Case <Where <POVendorInventory.vendorLocationID, IsNull>, boolTrue>, boolFalse> > > > > >
                      .SelectWindowed(graph, 0, 1, vendorID, subItemID, subItemID, itemID, siteID);

            if (rec == null)
            {
                return(null);
            }
            POVendorInventory  i    = rec;
            INItemSiteSettings site = rec;

            if (i.VendorLocationID != null)
            {
                return(i.VendorLocationID);
            }

            Vendor vendor = PXSelectReadonly <Vendor, Where <Vendor.bAccountID, Equal <Required <Vendor.bAccountID> > > > .Select(graph, vendorID);

            if (site.PreferredVendorID == vendorID)
            {
                return(site.PreferredVendorLocationID ?? (vendor != null ? vendor.DefLocationID : null));
            }
            if (vendor != null && vendor.BAccountID == vendorID)
            {
                return(vendor.DefLocationID);
            }
            return(null);
        }
Пример #2
0
 public CostLayerComparer(INItemSiteSettings itemSite)
 {
     _itemSite = itemSite;
 }