Esempio n. 1
0
        protected virtual void INItemSite_RowUpdated(PXCache sender, PXRowUpdatedEventArgs e)
        {
            INItemSite    itemsite    = (INItemSite)e.Row;
            INItemSite    olditemsite = (INItemSite)e.OldRow;
            InventoryItem item        = itemrecord.Current;

            if (olditemsite.StdCostOverride == true && itemsite.StdCostOverride == false)
            {
                itemsite.PendingStdCost     = item.PendingStdCost;
                itemsite.PendingStdCostDate = item.PendingStdCostDate;
                itemsite.StdCost            = item.StdCost;
                itemsite.StdCostDate        = item.StdCostDate;
                itemsite.LastStdCost        = item.LastStdCost;
            }

            if (olditemsite.BasePriceOverride == true && itemsite.BasePriceOverride == false)
            {
                itemsite.PendingBasePrice     = item.PendingBasePrice;
                itemsite.PendingBasePriceDate = item.PendingBasePriceDate;
                itemsite.BasePrice            = item.BasePrice;
                itemsite.BasePriceDate        = item.BasePriceDate;
                itemsite.LastBasePrice        = item.LastBasePrice;
            }

            if (olditemsite.ABCCodeOverride == true && itemsite.ABCCodeOverride == false)
            {
                itemsite.ABCCodeID      = item.ABCCodeID;
                itemsite.ABCCodeIsFixed = item.ABCCodeIsFixed;
            }

            if (olditemsite.MovementClassOverride == true && itemsite.MovementClassOverride == false)
            {
                itemsite.ABCCodeID      = item.MovementClassID;
                itemsite.ABCCodeIsFixed = item.MovementClassIsFixed;
            }

            if (olditemsite.RecPriceOverride == true && itemsite.RecPriceOverride == false)
            {
                itemsite.RecPrice = item.RecPrice;
            }
            if (olditemsite.MarkupPctOverride == true && itemsite.MarkupPctOverride == false)
            {
                itemsite.MarkupPct = item.MarkupPct;
            }
            if (olditemsite.PreferredVendorOverride == true && itemsite.PreferredVendorOverride == false)
            {
                itemsite.PreferredVendorID         = item.PreferredVendorID;
                itemsite.PreferredVendorLocationID = item.PreferredVendorLocationID;
            }

            INItemSiteMaint.DefaultItemReplenishment(this, itemsite);

            foreach (ItemStats stats in itemstats.Cache.Inserted)
            {
                itemstats.Cache.Delete(stats);
            }

            if (itemsite.PreferredVendorID == null)
            {
                itemsite.PreferredVendorLocationID = null;
            }

            if (itemsite.LastCostDate != null && itemsite.LastCost != null && itemsite.LastCost != 0m)
            {
                ItemStats stats = new ItemStats();
                stats.InventoryID = itemsite.InventoryID;
                stats.SiteID      = itemsite.SiteID;

                stats = itemstats.Insert(stats);

                stats.LastCost     = itemsite.LastCost;
                stats.LastCostDate = itemsite.LastCostDate;
            }
            if ((olditemsite.ReplenishmentClassID != itemsite.ReplenishmentClassID && itemsite.SubItemOverride != true) ||
                (olditemsite.SubItemOverride == true && itemsite.SubItemOverride == false))
            {
                DefaultSubItemReplenishment(this, itemsite);
            }

            if (itemsite.PreferredVendorOverride == true && item.DefaultSubItemID != null &&
                (itemsite.PreferredVendorID != olditemsite.PreferredVendorID ||
                 itemsite.PreferredVendorLocationID != olditemsite.PreferredVendorLocationID))
            {
                POVendorInventory rec = PXSelect <POVendorInventory,
                                                  Where <POVendorInventory.inventoryID, Equal <Current <INItemSite.inventoryID> >,
                                                         And <POVendorInventory.subItemID, Equal <Current <InventoryItem.defaultSubItemID> >,
                                                              And <POVendorInventory.purchaseUnit, Equal <Current <InventoryItem.purchaseUnit> >,
                                                                   And <POVendorInventory.vendorID, Equal <Current <INItemSite.preferredVendorID> >,
                                                                        And <Where2 <Where <Current <INItemSite.preferredVendorLocationID>, IsNotNull,
                                                                                            And <POVendorInventory.vendorLocationID, Equal <Current <INItemSite.preferredVendorLocationID> > > >,
                                                                                     Or <Where <Current <INItemSite.preferredVendorLocationID>, IsNull,
                                                                                                And <POVendorInventory.vendorLocationID, IsNull> > > > > > > > > >
                                        .SelectSingleBound(this, new object[] { itemsite, item });

                if (rec == null)
                {
                    rec                  = new POVendorInventory();
                    rec.InventoryID      = item.InventoryID;
                    rec.SubItemID        = item.DefaultSubItemID;
                    rec.PurchaseUnit     = item.PurchaseUnit;
                    rec.VendorID         = itemsite.PreferredVendorID;
                    rec.VendorLocationID = itemsite.PreferredVendorLocationID;
                    this.PreferredVendorItem.Insert(rec);
                }
            }
        }