예제 #1
0
        public virtual bool PrepareImportRow(string viewName, IDictionary keys, IDictionary values)
        {
            if (string.Compare(viewName, "VendorCatalogue", true) == 0)
            {
                string inventoryCD = (string)values[_inventoryID];

                var r = (PXResult <InventoryItem, INSubItem>)
                        PXSelectJoin <InventoryItem,
                                      LeftJoin <INSubItem,
                                                On <INSubItem.subItemCD, Equal <Required <INSubItem.subItemCD> >,
                                                    Or <Where <Required <INSubItem.subItemCD>, IsNull,
                                                               And <INSubItem.subItemID, Equal <InventoryItem.defaultSubItemID> > > > > >,
                                      Where <InventoryItem.inventoryCD, Equal <Required <InventoryItem.inventoryCD> > > > .Select(this,
                                                                                                                                  values[_subItemID], values[_subItemID], inventoryCD);

                InventoryItem item    = r;
                INSubItem     subitem = r;
                if (item != null && item.InventoryID != null)
                {
                    string uom = (string)values[_uOM] ?? item.PurchaseUnit;

                    if (values[_subItemID] == null)
                    {
                        values[_subItemID] = subitem.SubItemCD;
                    }

                    POVendorInventory old_row =
                        subitem.SubItemID != null
                                                        ? PXSelect <POVendorInventory,
                                                                    Where <POVendorInventory.vendorID, Equal <Required <POVendorInventory.vendorID> >,
                                                                           And <POVendorInventory.vendorLocationID, Equal <Required <POVendorInventory.vendorLocationID> >,
                                                                                And <POVendorInventory.inventoryID, Equal <Required <POVendorInventory.inventoryID> >,
                                                                                     And <POVendorInventory.purchaseUnit, Equal <Required <POVendorInventory.purchaseUnit> >,
                                                                                          And <Where <POVendorInventory.subItemID, Equal <Required <POVendorInventory.subItemID> > > > > > > > >
                        .SelectWindowed(this, 0, 1, this.BAccount.Current.BAccountID, this.BAccount.Current.LocationID, item.InventoryID, uom, subitem.SubItemID)
                                                        : PXSelect <POVendorInventory,
                                                                    Where <POVendorInventory.vendorID, Equal <Required <POVendorInventory.vendorID> >,
                                                                           And <POVendorInventory.vendorLocationID, Equal <Required <POVendorInventory.vendorLocationID> >,
                                                                                And <POVendorInventory.inventoryID, Equal <Required <POVendorInventory.inventoryID> >,
                                                                                     And <POVendorInventory.purchaseUnit, Equal <Required <POVendorInventory.purchaseUnit> >,
                                                                                          And <POVendorInventory.subItemID, IsNull> > > > > >
                        .SelectWindowed(this, 0, 1, this.BAccount.Current.BAccountID, this.BAccount.Current.LocationID, item.InventoryID, uom);

                    if (old_row != null)
                    {
                        if (values[_uOM] == null)
                        {
                            values[_uOM] = old_row.PurchaseUnit;
                        }

                        if (keys.Contains(_recordID))
                        {
                            keys[_recordID]   = old_row.RecordID;
                            values[_recordID] = old_row.RecordID;
                        }
                    }
                }
            }
            return(true);
        }
예제 #2
0
        public static PIItemLocationInfo Create(PXResult result)
        {
            InventoryItem     inventoryItem   = result.GetItem <InventoryItem>();
            INSubItem         subItem         = result.GetItem <INSubItem>();
            INLocation        location        = result.GetItem <INLocation>();
            INLotSerialStatus lotSerialStatus = result.GetItem <INLotSerialStatus>();

            return(new PIItemLocationInfo
            {
                InventoryID = (int)inventoryItem.InventoryID,
                SubItemID = subItem?.SubItemID,
                LocationID = (int)location.LocationID,
                QueryResult = result,

                InventoryCD = inventoryItem.InventoryCD,
                SubItemCD = subItem?.SubItemCD,
                LocationCD = location.LocationCD,
                LotSerialNbr = lotSerialStatus?.LotSerialNbr,
                Description = inventoryItem.Descr
            });
        }
        public virtual System.Collections.IEnumerable InventorySummary(PXAdapter adapter)
        {
            PXCache       tCache = FixedDemand.Cache;
            SOFixedDemand line   = FixedDemand.Current;

            if (line == null)
            {
                return(adapter.Get());
            }

            InventoryItem item = (InventoryItem)PXSelectorAttribute.Select <SOFixedDemand.inventoryID>(tCache, line);

            if (item != null && item.StkItem == true)
            {
                INSubItem sbitem = (INSubItem)PXSelectorAttribute.Select <SOFixedDemand.subItemID>(tCache, line);
                InventorySummaryEnq.Redirect(item.InventoryID,
                                             ((sbitem != null) ? sbitem.SubItemCD : null),
                                             line.SiteID,
                                             line.LocationID);
            }
            return(adapter.Get());
        }