Esempio n. 1
0
        protected override void DeductAllocated(SiteStatus allocated, IMatrixItemLine line)
        {
            SOLine soLine = (SOLine)line;

            allocated.QtyAvail     += soLine.LineQtyAvail;
            allocated.QtyHardAvail += soLine.LineQtyHardAvail;
        }
Esempio n. 2
0
        protected override void DeductAllocated(SiteStatus allocated, IMatrixItemLine line)
        {
            POLine poLine = (POLine)line;

            decimal lineQtyAvail     = 0m;
            decimal lineQtyHardAvail = 0m;

            decimal signQtyAvail;
            decimal signQtyHardAvail;

            INItemPlanIDAttribute.GetInclQtyAvail <SiteStatus>(Base.Transactions.Cache, poLine, out signQtyAvail, out signQtyHardAvail);

            if (signQtyAvail != 0m)
            {
                lineQtyAvail -= signQtyAvail * (poLine.BaseOrderQty ?? 0m);
            }

            if (signQtyHardAvail != 0m)
            {
                lineQtyHardAvail -= signQtyHardAvail * (poLine.BaseOrderQty ?? 0m);
            }

            allocated.QtyAvail     += lineQtyAvail;
            allocated.QtyHardAvail += lineQtyHardAvail;
        }
Esempio n. 3
0
        protected virtual string GetAvailability(int?siteID, int?inventoryID, decimal?qty)
        {
            if (inventoryID == null)
            {
                return(null);
            }

            InventoryItem item = InventoryItem.PK.Find(Base, inventoryID);

            if (item == null)
            {
                throw new Common.Exceptions.RowNotFoundException(Base.Caches <InventoryItem>(), inventoryID);
            }

            int?inventorySiteID = siteID;

            if (inventorySiteID == null)
            {
                inventorySiteID = item.DfltSiteID;
            }

            SiteStatus allocated = new SiteStatus
            {
                InventoryID = inventoryID,
                SubItemID   = item.DefaultSubItemID,
                SiteID      = inventorySiteID
            };

            allocated = InsertWith(Base, allocated,
                                   (cache, e) =>
            {
                cache.SetStatus(e.Row, PXEntryStatus.Notchanged);
                cache.IsDirty = false;
            });
            allocated = PXCache <SiteStatus> .CreateCopy(allocated);

            INSiteStatus status = INSiteStatus.PK.Find(Base, inventoryID, item.DefaultSubItemID, inventorySiteID);

            if (status != null)
            {
                allocated.QtyOnHand    += status.QtyOnHand;
                allocated.QtyAvail     += status.QtyAvail;
                allocated.QtyHardAvail += status.QtyHardAvail;
                allocated.QtyActual    += status.QtyActual;
                allocated.QtyPOOrders  += status.QtyPOOrders;
            }

            foreach (var line in GetLines(inventorySiteID, inventoryID))
            {
                DeductAllocated(allocated, line);
            }

            return(GetAvailabilityMessage(inventorySiteID, item, allocated));
        }
Esempio n. 4
0
 protected override string GetAvailabilityMessage(int?siteID, InventoryItem item, SiteStatus availability)
 {
     if (Base.lsselect.IsAllocationEntryEnabled)
     {
         decimal?allocated = GetLines(siteID, item.InventoryID).Sum(l => ((SOLine)l).LineQtyHardAvail);
         return(PXMessages.LocalizeFormatNoPrefix(SO.Messages.Availability_AllocatedInfo,
                                                  item.BaseUnit, FormatQty(availability.QtyOnHand), FormatQty(availability.QtyAvail), FormatQty(availability.QtyHardAvail), FormatQty(allocated)));
     }
     else
     {
         return(PXMessages.LocalizeFormatNoPrefix(Messages.Availability_Info,
                                                  item.BaseUnit, FormatQty(availability.QtyOnHand), FormatQty(availability.QtyAvail), FormatQty(availability.QtyHardAvail)));
     }
 }
Esempio n. 5
0
 protected abstract void DeductAllocated(SiteStatus allocated, IMatrixItemLine line);
Esempio n. 6
0
 protected abstract string GetAvailabilityMessage(int?siteID, InventoryItem item, SiteStatus allocated);
Esempio n. 7
0
 protected override string GetAvailabilityMessage(int?siteID, InventoryItem item, SiteStatus allocated)
 {
     return(PXMessages.LocalizeFormatNoPrefix(PO.Messages.Availability_POOrder,
                                              item.BaseUnit,
                                              FormatQty(allocated.QtyOnHand),
                                              FormatQty(allocated.QtyAvail),
                                              FormatQty(allocated.QtyHardAvail),
                                              FormatQty(allocated.QtyActual),
                                              FormatQty(allocated.QtyPOOrders)));
 }