Esempio n. 1
0
        public static void AddInventoryBOMByItemID(Session session, int itemID, Inventory inventoryID)
        {
            InventoryBOMs inventoryBom = null;

            using (XPCollection <BOMs> itemBom = new XPCollection <BOMs>(session, new BinaryOperator(BOMs.Fields.BOMFiniGoodID.ItemID.PropertyName, itemID, BinaryOperatorType.Equal)))
            {
                foreach (BOMs bomItem in itemBom)
                {
                    inventoryBom = new InventoryBOMs(session)
                    {
                        InventoryBOMRawMatID    = bomItem.BOMRawMatID,
                        InventoryBOMInventoryID = inventoryID,
                        InventoryBOMQuantity    = bomItem.BOMQuantity,
                        ScrapFactor             = bomItem.ScrapFactor / 100
                    };
                    inventoryBom.Save();
                }
            }
        }
Esempio n. 2
0
        public void UpdateStock(Session session, int itemID, int?inventoryID, float quantity, bool updateBOM, int locationID, string lot = "", int?LPNNumber = null, DateTime?ExpirationDate = null, bool IsNewInventory = true)
        {
            double scrapfactor = 0;

            //To do update the stock for the item and bom's associated with it
            if (updateBOM == true)
            {
                if (inventoryID.HasValue)
                {
                    //Dim inventoryBOMs As InventoryBOMsBLL = New InventoryBOMsBLL
                    //Dim inventoryItemBOM As SPG.InventoryBOMsDataTable = inventoryBOMs.GetInventoryBOMsBYInventoryID(inventoryID.Value)
                    XPCollection <InventoryBOMs> inventoryItemBOM = InventoryBOMsBLL.GetInventoryBOMsByInventoryID(session, inventoryID.Value);
                    //If inventoryItemBOM.Rows.Count <> 0 Then
                    if (inventoryItemBOM.Count != 0)
                    {
                        //Dim itemsBOM As SPG.InventoryBOMsRow
                        InventoryBOMs itemsBOM = null;
                        for (int i = 0; i < inventoryItemBOM.Count; i++)
                        {
                            //itemsBOM = CType(inventoryItemBOM.Rows(i), SPG.InventoryBOMsRow)
                            itemsBOM = inventoryItemBOM[i];
                            if (itemsBOM.IsDeleted == false)
                            {
                                //updates the raw material
                                if (itemsBOM.ScrapFactor > 0)
                                {
                                    scrapfactor = itemsBOM.InventoryBOMQuantity * itemsBOM.ScrapFactor;
                                }
                                else
                                {
                                    scrapfactor = 0;
                                }
                                UpdateStock(session, itemsBOM.InventoryBOMRawMatID.ItemID, (Convert.ToSingle(quantity * (itemsBOM.InventoryBOMQuantity + scrapfactor)) * -1), false, locationID);
                            }
                        }
                        updateBOM = false;
                    }
                }
            }

            if (updateBOM == true)
            {
                //The item has a bom attached to it
                BOMBLL boms = new BOMBLL();
                //Dim itemsBOMs As SPG.BOMDataTable = boms.GetBOMBYFGItemID(itemID)
                XPCollection <BOMs> itemsBOMs = BOMBLL.GetBOMByFGItemID(session, itemID);

                //If itemsBOMs.Rows.Count <> 0 Then
                if (itemsBOMs.Count != 0)
                {
                    //Dim itemsBOM As SPG.BOMRow
                    BOMs itemsBOM = null;
                    //For i As Integer = 0 To itemsBOMs.Rows.Count - 1
                    for (int i = 0; i < itemsBOMs.Count; i++)
                    {
                        //itemsBOM = CType(itemsBOMs.Rows(i), SPG.BOMRow)
                        itemsBOM = itemsBOMs[i];
                        //updates the raw material
                        if (itemsBOM.BOMRawMatID.ItemID != itemID)
                        {
                            if (itemsBOM.ScrapFactor > 0)
                            {
                                scrapfactor = itemsBOM.BOMQuantity * (itemsBOM.ScrapFactor / 100);
                            }
                            else
                            {
                                scrapfactor = 0;
                            }
                            UpdateStock(session, itemsBOM.BOMRawMatID.ItemID, (Convert.ToSingle(quantity * (itemsBOM.BOMQuantity + scrapfactor)) * -1), false, locationID);
                        }
                    }
                }
            }

            LocationInventoryBLL.UpdateStock(session, itemID, locationID, quantity, lot, LPNNumber, ExpirationDate, IsNewInventory);

            //Dim item As SPG.ItemsRow = CType(GetItemBYId(itemID).Rows(0), SPG.ItemsRow)
            //item.s ngQuantityOnHand += quantity
            //Adapter.Update(item)
        }