Example #1
0
        // ===========================
        // Receiving Receipt Inventory
        // ===========================
        public void InsertRRInventory(Int32 RRId)
        {
            // retrieve Receiving Receipt Items IsInventory == TRUE
            var receivingReceiptItems = from d in db.TrnReceivingReceiptItems
                                        where d.RRId == RRId && d.MstArticle.IsInventory == true
                                        select new Models.TrnReceivingReceiptItem
                                        {
                                            Id = d.Id,
                                            RRId = d.RRId,
                                            RR = d.TrnReceivingReceipt.RRNumber,
                                            RRDate = d.TrnReceivingReceipt.RRDate.ToShortDateString(),
                                            POId = d.POId,
                                            PO = d.TrnPurchaseOrder.PONumber,
                                            ItemId = d.ItemId,
                                            Item = d.MstArticle.Article,
                                            ItemCode = d.MstArticle.ManualArticleCode,
                                            Particulars = d.Particulars,
                                            UnitId = d.UnitId,
                                            Unit = d.MstUnit.Unit,
                                            Quantity = d.Quantity,
                                            Cost = d.Cost,
                                            Amount = d.Amount,
                                            VATId = d.VATId,
                                            VAT = d.MstTaxType.TaxType,
                                            VATPercentage = d.VATPercentage,
                                            VATAmount = d.VATAmount,
                                            WTAXId = d.WTAXId,
                                            WTAX = d.MstTaxType1.TaxType,
                                            WTAXPercentage = d.WTAXPercentage,
                                            WTAXAmount = d.WTAXAmount,
                                            BranchId = d.BranchId,
                                            Branch = d.MstBranch.Branch,
                                            BranchCode = d.MstBranch.BranchCode,
                                            BaseUnitId = d.BaseUnitId,
                                            BaseUnit = d.MstUnit1.Unit,
                                            BaseQuantity = d.BaseQuantity,
                                            BaseCost = d.BaseCost
                                        };

            try
            {
                if (receivingReceiptItems.Any())
                {
                    foreach (var RRItems in receivingReceiptItems)
                    {
                        // retrieve Artticle Inventory
                        var articleInventories = from d in db.MstArticleInventories
                                                 where d.BranchId == RRItems.BranchId
                                                 && d.ArticleId == RRItems.ItemId
                                                 && d.InventoryCode == "RR-" + RRItems.BranchCode + "-" + RRItems.RR
                                                 select new Models.MstArticleInventory
                                                 {
                                                     Id = d.Id,
                                                     BranchId = d.BranchId,
                                                     ArticleId = d.ArticleId,
                                                     InventoryCode = d.InventoryCode,
                                                     Quantity = d.Quantity,
                                                     Cost = d.Cost,
                                                     Amount = d.Amount,
                                                     Particulars = d.Particulars
                                                 };

                        Int32 articleInventoryId = 0;
                        foreach (var articleInventory in articleInventories)
                        {
                            articleInventoryId = articleInventory.Id;
                        }

                        Data.TrnInventory newInventory = new Data.TrnInventory();

                        if (RRItems.BaseQuantity > 0)
                        {
                            if (articleInventories.Any())
                            {
                                newInventory.BranchId = RRItems.BranchId;
                                newInventory.InventoryDate = Convert.ToDateTime(RRItems.RRDate);
                                newInventory.ArticleId = RRItems.ItemId;
                                newInventory.ArticleInventoryId = articleInventoryId;
                                newInventory.RRId = RRId;
                                newInventory.SIId = null;
                                newInventory.INId = null;
                                newInventory.OTId = null;
                                newInventory.STId = null;
                                newInventory.QuantityIn = RRItems.BaseQuantity;
                                newInventory.QuantityOut = 0;
                                newInventory.Quantity = RRItems.BaseQuantity;
                                newInventory.Amount = RRItems.Amount - RRItems.VATAmount;
                                newInventory.Particulars = "NA";

                                db.TrnInventories.InsertOnSubmit(newInventory);
                                db.SubmitChanges();

                                UpdateArticleInventory(articleInventoryId);
                            }
                            else
                            {
                                // InsertRRInventory article Inventory
                                Data.MstArticleInventory newArticleInventory = new Data.MstArticleInventory();

                                newArticleInventory.BranchId = RRItems.BranchId;
                                newArticleInventory.ArticleId = RRItems.ItemId;
                                newArticleInventory.InventoryCode = "RR-" + RRItems.BranchCode + "-" + RRItems.RR;
                                newArticleInventory.Quantity = RRItems.Quantity;
                                newArticleInventory.Cost = (RRItems.Amount - RRItems.VATAmount) / RRItems.Quantity;
                                newArticleInventory.Amount = RRItems.Amount - RRItems.VATAmount;
                                newArticleInventory.Particulars = "SPECIFIC IDENTIFICATION";

                                db.MstArticleInventories.InsertOnSubmit(newArticleInventory);
                                db.SubmitChanges();

                                // retrieve Artticle Inventory - Id
                                var newArticleInventoryId = (from d in db.MstArticleInventories
                                                             where d.BranchId == RRItems.BranchId
                                                             && d.ArticleId == RRItems.ItemId
                                                             && d.InventoryCode == "RR-" + RRItems.BranchCode + "-" + RRItems.RR
                                                             select d.Id).SingleOrDefault();

                                newInventory.BranchId = RRItems.BranchId;
                                newInventory.InventoryDate = Convert.ToDateTime(RRItems.RRDate);
                                newInventory.ArticleId = RRItems.ItemId;
                                newInventory.ArticleInventoryId = newArticleInventoryId;
                                newInventory.RRId = RRId;
                                newInventory.SIId = null;
                                newInventory.INId = null;
                                newInventory.OTId = null;
                                newInventory.STId = null;
                                newInventory.QuantityIn = RRItems.BaseQuantity;
                                newInventory.QuantityOut = 0;
                                newInventory.Quantity = RRItems.BaseQuantity;
                                newInventory.Amount = RRItems.Amount - RRItems.VATAmount;
                                newInventory.Particulars = "NA";

                                db.TrnInventories.InsertOnSubmit(newInventory);
                                db.SubmitChanges();
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
            }
        }
Example #2
0
        // ===================
        // Stock Out Inventory
        // ===================
        public void InsertOTInventory(Int32 OTId)
        {
            // stock headers
            var stockOutHeaders = from d in db.TrnStockOuts
                                  where d.Id == OTId
                                  select new Models.TrnStockOut
                                  {
                                      Id = d.Id,
                                      BranchId = d.BranchId,
                                      Branch = d.MstBranch.Branch,
                                      OTNumber = d.OTNumber,
                                      OTDate = d.OTDate.ToShortDateString(),
                                      AccountId = d.AccountId,
                                      Account = d.MstAccount.Account,
                                      ArticleId = d.ArticleId,
                                      Article = d.MstArticle.Article,
                                      Particulars = d.Particulars,
                                      ManualOTNumber = d.ManualOTNumber,
                                      PreparedById = d.PreparedById,
                                      PreparedBy = d.MstUser3.FullName,
                                      CheckedById = d.CheckedById,
                                      CheckedBy = d.MstUser1.FullName,
                                      ApprovedById = d.ApprovedById,
                                      ApprovedBy = d.MstUser.FullName,
                                      IsLocked = d.IsLocked,
                                      CreatedById = d.CreatedById,
                                      CreatedBy = d.MstUser2.FullName,
                                      CreatedDateTime = d.CreatedDateTime.ToShortDateString(),
                                      UpdatedById = d.UpdatedById,
                                      UpdatedBy = d.MstUser4.FullName,
                                      UpdatedDateTime = d.UpdatedDateTime.ToShortDateString()
                                  };

            // stock out items
            var stockOutItems = from d in db.TrnStockOutItems
                                where d.OTId == OTId
                                select new Models.TrnStockOutItem
                                {
                                    Id = d.Id,
                                    OTId = d.OTId,
                                    OT = d.TrnStockOut.OTNumber,
                                    ExpenseAccountId = d.ExpenseAccountId,
                                    ExpenseAccount = d.MstAccount.Account,
                                    ItemId = d.ItemId,
                                    ItemCode = d.MstArticle.ManualArticleCode,
                                    Item = d.MstArticle.Article,
                                    ItemInventoryId = d.ItemInventoryId,
                                    ItemInventory = d.MstArticleInventory.InventoryCode,
                                    Particulars = d.Particulars,
                                    UnitId = d.UnitId,
                                    Unit = d.MstUnit.Unit,
                                    Quantity = d.Quantity,
                                    Cost = d.Cost,
                                    Amount = d.Amount,
                                    BaseUnitId = d.BaseUnitId,
                                    BaseUnit = d.MstUnit1.Unit,
                                    BaseQuantity = d.BaseQuantity,
                                    BaseCost = d.BaseCost
                                };

            try
            {
                if (stockOutHeaders.Any())
                {
                    foreach (var stockOutHeader in stockOutHeaders)
                    {
                        if (stockOutItems.Any())
                        {
                            foreach (var stockOutItem in stockOutItems)
                            {
                                Data.TrnInventory newInventoryForStockOut = new Data.TrnInventory();

                                newInventoryForStockOut.BranchId = stockOutHeader.BranchId;
                                newInventoryForStockOut.InventoryDate = Convert.ToDateTime(stockOutHeader.OTDate);
                                newInventoryForStockOut.ArticleId = stockOutItem.ItemId;
                                newInventoryForStockOut.ArticleInventoryId = stockOutItem.ItemInventoryId;
                                newInventoryForStockOut.RRId = null;
                                newInventoryForStockOut.SIId = null;
                                newInventoryForStockOut.INId = null;
                                newInventoryForStockOut.OTId = OTId;
                                newInventoryForStockOut.STId = null;
                                newInventoryForStockOut.QuantityIn = 0;
                                newInventoryForStockOut.QuantityOut = stockOutItem.BaseQuantity;
                                newInventoryForStockOut.Quantity = stockOutItem.BaseQuantity * -1;
                                newInventoryForStockOut.Amount = stockOutItem.Amount * -1;
                                newInventoryForStockOut.Particulars = "Stock Out";

                                db.TrnInventories.InsertOnSubmit(newInventoryForStockOut);
                                db.SubmitChanges();

                                UpdateArticleInventory(stockOutItem.ItemInventoryId);
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
            }
        }
Example #3
0
        // ========================
        // Stock Transfer Inventory
        // ========================
        public void InsertSTInventory(Int32 STId)
        {
            // stock transfer header
            var stockTransferHeaders = from d in db.TrnStockTransfers
                                       where d.Id == STId
                                       select new Models.TrnStockTransfer
                                       {
                                           Id = d.Id,
                                           BranchId = d.BranchId,
                                           Branch = d.MstBranch.Branch,
                                           BranchCode = d.MstBranch1.BranchCode,
                                           STNumber = d.STNumber,
                                           STDate = d.STDate.ToShortDateString(),
                                           ToBranchId = d.ToBranchId,
                                           ToBranch = d.MstBranch1.Branch,
                                           ToBranchCode = d.MstBranch1.BranchCode,
                                           Particulars = d.Particulars,
                                           ManualSTNumber = d.ManualSTNumber,
                                           PreparedById = d.PreparedById,
                                           PreparedBy = d.MstUser3.FullName,
                                           CheckedById = d.CheckedById,
                                           CheckedBy = d.MstUser1.FullName,
                                           ApprovedById = d.ApprovedById,
                                           ApprovedBy = d.MstUser.FullName,
                                           IsLocked = d.IsLocked,
                                           CreatedById = d.CreatedById,
                                           CreatedBy = d.MstUser2.FullName,
                                           CreatedDateTime = d.CreatedDateTime.ToShortDateString(),
                                           UpdatedById = d.UpdatedById,
                                           UpdatedBy = d.MstUser4.FullName,
                                           UpdatedDateTime = d.UpdatedDateTime.ToShortDateString()
                                       };

            // stock transfer items
            var stockTransferItems = from d in db.TrnStockTransferItems
                                     where d.STId == STId
                                     select new Models.TrnStockTransferItem
                                     {
                                         Id = d.Id,
                                         STId = d.STId,
                                         ST = d.TrnStockTransfer.STNumber,
                                         ItemId = d.ItemId,
                                         ItemCode = d.MstArticle.ManualArticleCode,
                                         Item = d.MstArticle.Article,
                                         ItemInventoryId = d.ItemInventoryId,
                                         ItemInventory = d.MstArticleInventory.InventoryCode,
                                         Particulars = d.Particulars,
                                         UnitId = d.UnitId,
                                         Unit = d.MstUnit.Unit,
                                         Quantity = d.Quantity,
                                         Cost = d.Cost,
                                         Amount = d.Amount,
                                         BaseUnitId = d.BaseUnitId,
                                         BaseUnit = d.MstUnit1.Unit,
                                         BaseQuantity = d.BaseQuantity,
                                         BaseCost = d.BaseCost
                                     };

            try
            {
                if (stockTransferHeaders.Any())
                {
                    foreach (var stockTransferHeader in stockTransferHeaders)
                    {
                        if (stockTransferItems.Any())
                        {
                            foreach (var stockTransferItem in stockTransferItems)
                            {
                                if (stockTransferItem.BaseQuantity > 0)
                                {

                                    // stock transfer - out
                                    Data.TrnInventory newInventoryForStockTransferStockOut = new Data.TrnInventory();

                                    newInventoryForStockTransferStockOut.BranchId = stockTransferHeader.BranchId;
                                    newInventoryForStockTransferStockOut.InventoryDate = Convert.ToDateTime(stockTransferHeader.STDate);
                                    newInventoryForStockTransferStockOut.ArticleId = stockTransferItem.ItemId;
                                    newInventoryForStockTransferStockOut.ArticleInventoryId = stockTransferItem.ItemInventoryId;
                                    newInventoryForStockTransferStockOut.RRId = null;
                                    newInventoryForStockTransferStockOut.SIId = null;
                                    newInventoryForStockTransferStockOut.INId = null;
                                    newInventoryForStockTransferStockOut.OTId = null;
                                    newInventoryForStockTransferStockOut.STId = STId;
                                    newInventoryForStockTransferStockOut.QuantityIn = 0;
                                    newInventoryForStockTransferStockOut.QuantityOut = stockTransferItem.BaseQuantity;
                                    newInventoryForStockTransferStockOut.Quantity = stockTransferItem.BaseQuantity * -1;
                                    newInventoryForStockTransferStockOut.Amount = stockTransferItem.Amount * -1;
                                    newInventoryForStockTransferStockOut.Particulars = "Stock Transfer - Out";

                                    db.TrnInventories.InsertOnSubmit(newInventoryForStockTransferStockOut);
                                    db.SubmitChanges();

                                    Debug.WriteLine(stockTransferItem.ItemInventoryId);

                                    UpdateArticleInventory(stockTransferItem.ItemInventoryId);

                                    // retrieve Artticle Inventory
                                    var articleInventories = from d in db.MstArticleInventories
                                                             where d.BranchId == stockTransferHeader.ToBranchId
                                                             && d.ArticleId == stockTransferItem.ItemId
                                                             && d.InventoryCode == "ST-" + stockTransferHeader.ToBranchCode + "-" + stockTransferHeader.STNumber
                                                             select new Models.MstArticleInventory
                                                             {
                                                                 Id = d.Id,
                                                                 BranchId = d.BranchId,
                                                                 ArticleId = d.ArticleId,
                                                                 InventoryCode = d.InventoryCode,
                                                                 Quantity = d.Quantity,
                                                                 Cost = d.Cost,
                                                                 Amount = d.Amount,
                                                                 Particulars = d.Particulars
                                                             };

                                    Int32 articleInventoryId = 0;
                                    foreach (var articleInventory in articleInventories)
                                    {
                                        articleInventoryId = articleInventory.Id;
                                    }

                                    if (articleInventories.Any())
                                    {
                                        // stock transfer - In
                                        Data.TrnInventory newInventoryForStockTransferStockIn = new Data.TrnInventory();

                                        newInventoryForStockTransferStockIn.BranchId = stockTransferHeader.ToBranchId;
                                        newInventoryForStockTransferStockIn.InventoryDate = Convert.ToDateTime(stockTransferHeader.STDate);
                                        newInventoryForStockTransferStockIn.ArticleId = stockTransferItem.ItemId;
                                        newInventoryForStockTransferStockIn.ArticleInventoryId = articleInventoryId;
                                        newInventoryForStockTransferStockIn.RRId = null;
                                        newInventoryForStockTransferStockIn.SIId = null;
                                        newInventoryForStockTransferStockIn.INId = null;
                                        newInventoryForStockTransferStockIn.OTId = null;
                                        newInventoryForStockTransferStockIn.STId = STId;
                                        newInventoryForStockTransferStockIn.QuantityIn = stockTransferItem.BaseQuantity;
                                        newInventoryForStockTransferStockIn.QuantityOut = 0;
                                        newInventoryForStockTransferStockIn.Quantity = stockTransferItem.BaseQuantity;
                                        newInventoryForStockTransferStockIn.Amount = stockTransferItem.Amount;
                                        newInventoryForStockTransferStockIn.Particulars = "Stock Transfer - In";

                                        db.TrnInventories.InsertOnSubmit(newInventoryForStockTransferStockIn);
                                        db.SubmitChanges();

                                        UpdateArticleInventory(articleInventoryId);
                                    }
                                    else
                                    {
                                        // article Inventory
                                        Data.MstArticleInventory newArticleInventory = new Data.MstArticleInventory();

                                        newArticleInventory.BranchId = stockTransferHeader.ToBranchId;
                                        newArticleInventory.ArticleId = stockTransferItem.ItemId;
                                        newArticleInventory.InventoryCode = "ST-" + stockTransferHeader.ToBranchCode + "-" + stockTransferHeader.STNumber;
                                        newArticleInventory.Quantity = stockTransferItem.Quantity;
                                        newArticleInventory.Cost = stockTransferItem.Amount / stockTransferItem.Quantity;
                                        newArticleInventory.Amount = stockTransferItem.Amount;
                                        newArticleInventory.Particulars = "SPECIFIC IDENTIFICATION";

                                        db.MstArticleInventories.InsertOnSubmit(newArticleInventory);
                                        db.SubmitChanges();

                                        // retrieve Artticle Inventory - Id
                                        var newArticleInventoryId = (from d in db.MstArticleInventories
                                                                     where d.BranchId == stockTransferHeader.ToBranchId
                                                                     && d.ArticleId == stockTransferItem.ItemId
                                                                     && d.InventoryCode == "ST-" + stockTransferHeader.ToBranchCode + "-" + stockTransferHeader.STNumber
                                                                     select d.Id).SingleOrDefault();

                                        // stock transfer - In
                                        Data.TrnInventory newInventoryForStockTransferStockIn = new Data.TrnInventory();

                                        newInventoryForStockTransferStockIn.BranchId = stockTransferHeader.ToBranchId;
                                        newInventoryForStockTransferStockIn.InventoryDate = Convert.ToDateTime(stockTransferHeader.STDate);
                                        newInventoryForStockTransferStockIn.ArticleId = stockTransferItem.ItemId;
                                        newInventoryForStockTransferStockIn.ArticleInventoryId = newArticleInventoryId;
                                        newInventoryForStockTransferStockIn.RRId = null;
                                        newInventoryForStockTransferStockIn.SIId = null;
                                        newInventoryForStockTransferStockIn.INId = null;
                                        newInventoryForStockTransferStockIn.OTId = null;
                                        newInventoryForStockTransferStockIn.STId = STId;
                                        newInventoryForStockTransferStockIn.QuantityIn = stockTransferItem.BaseQuantity;
                                        newInventoryForStockTransferStockIn.QuantityOut = 0;
                                        newInventoryForStockTransferStockIn.Quantity = stockTransferItem.BaseQuantity;
                                        newInventoryForStockTransferStockIn.Amount = stockTransferItem.Amount;
                                        newInventoryForStockTransferStockIn.Particulars = "Stock Transfer - In";

                                        db.TrnInventories.InsertOnSubmit(newInventoryForStockTransferStockIn);
                                        db.SubmitChanges();

                                        UpdateArticleInventory(articleInventoryId);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
            }
        }
Example #4
0
        // ==================
        // Stock in Inventory
        // ==================
        public void insertINInventory(Int32 INId, Boolean isProduce)
        {
            // Stock in header
            var stockInHeaders = from d in db.TrnStockIns
                                 where d.Id == INId
                                 select new Models.TrnStockIn
                                 {
                                     Id = d.Id,
                                     BranchId = d.BranchId,
                                     Branch = d.MstBranch.Branch,
                                     BranchCode = d.MstBranch.BranchCode,
                                     INNumber = d.INNumber,
                                     INDate = d.INDate.ToShortDateString(),
                                     AccountId = d.AccountId,
                                     Account = d.MstAccount.Account,
                                     ArticleId = d.ArticleId,
                                     Article = d.MstArticle.Article,
                                     Particulars = d.Particulars,
                                     ManualINNumber = d.ManualINNumber,
                                     IsProduced = d.IsProduced,
                                     PreparedById = d.PreparedById,
                                     PreparedBy = d.MstUser3.FullName,
                                     CheckedById = d.CheckedById,
                                     CheckedBy = d.MstUser1.FullName,
                                     ApprovedById = d.ApprovedById,
                                     ApprovedBy = d.MstUser.FullName,
                                     IsLocked = d.IsLocked,
                                     CreatedById = d.CreatedById,
                                     CreatedBy = d.MstUser2.FullName,
                                     CreatedDateTime = d.CreatedDateTime.ToShortDateString(),
                                     UpdatedById = d.UpdatedById,
                                     UpdatedBy = d.MstUser4.FullName,
                                     UpdatedDateTime = d.UpdatedDateTime.ToShortDateString()
                                 };

            // Stock in items
            var stockInItems = from d in db.TrnStockInItems
                               where d.INId == INId
                               select new Models.TrnStockInItem
                               {
                                   Id = d.Id,
                                   INId = d.INId,
                                   IN = d.TrnStockIn.INNumber,
                                   ItemId = d.ItemId,
                                   ItemCode = d.MstArticle.ManualArticleCode,
                                   Item = d.MstArticle.Article,
                                   Particulars = d.Particulars,
                                   UnitId = d.UnitId,
                                   Unit = d.MstUnit.Unit,
                                   Quantity = d.Quantity,
                                   Cost = d.Cost,
                                   Amount = d.Amount,
                                   BaseUnitId = d.BaseUnitId,
                                   BaseUnit = d.MstUnit1.Unit,
                                   BaseQuantity = d.BaseQuantity,
                                   BaseCost = d.BaseCost
                               };

            try
            {
                if (stockInHeaders.Any())
                {
                    foreach (var stockInHeader in stockInHeaders)
                    {
                        if (stockInItems.Any())
                        {
                            foreach (var stockInItem in stockInItems)
                            {
                                // retrieve Artticle Inventory
                                var articleInventories = from d in db.MstArticleInventories
                                                         where d.BranchId == stockInHeader.BranchId
                                                         && d.ArticleId == stockInItem.ItemId
                                                         && d.InventoryCode == "IN-" + stockInHeader.BranchCode + "-" + stockInHeader.INNumber
                                                         select new Models.MstArticleInventory
                                                         {
                                                             Id = d.Id,
                                                             BranchId = d.BranchId,
                                                             ArticleId = d.ArticleId,
                                                             InventoryCode = d.InventoryCode,
                                                             Quantity = d.Quantity,
                                                             Cost = d.Cost,
                                                             Amount = d.Amount,
                                                             Particulars = d.Particulars
                                                         };

                                Int32 articleInventoryId = 0;
                                foreach (var articleInventory in articleInventories)
                                {
                                    articleInventoryId = articleInventory.Id;
                                }

                                Data.TrnInventory newInventory = new Data.TrnInventory();

                                if (stockInItem.BaseQuantity >= 0)
                                {
                                    if (articleInventories.Any())
                                    {
                                        newInventory.BranchId = stockInHeader.BranchId;
                                        newInventory.InventoryDate = Convert.ToDateTime(stockInHeader.INDate);
                                        newInventory.ArticleId = stockInItem.ItemId;
                                        newInventory.ArticleInventoryId = articleInventoryId;
                                        newInventory.RRId = null;
                                        newInventory.SIId = null;
                                        newInventory.INId = INId;
                                        newInventory.OTId = null;
                                        newInventory.STId = null;
                                        newInventory.QuantityIn = stockInItem.BaseQuantity;
                                        newInventory.QuantityOut = 0;
                                        newInventory.Quantity = stockInItem.BaseQuantity;
                                        newInventory.Amount = stockInItem.Amount;
                                        newInventory.Particulars = "Stock In";

                                        db.TrnInventories.InsertOnSubmit(newInventory);
                                        db.SubmitChanges();

                                        var articleItem = from d in db.MstArticles where d.Id == stockInItem.ItemId select d;
                                        if (articleItem.FirstOrDefault().Kitting == 1)
                                        {
                                            var articleComponents = from d in db.MstArticleComponents
                                                                    where d.ArticleId == stockInItem.ItemId
                                                                    select new Models.MstArticleComponent
                                                                    {
                                                                        Id = d.Id,
                                                                        ArticleId = d.ArticleId,
                                                                        ComponentArticleId = d.ComponentArticleId,
                                                                        ComponentArticle = d.MstArticle1.Article,
                                                                        Quantity = d.Quantity,
                                                                        UnitId = d.MstArticle1.UnitId,
                                                                        Cost = Convert.ToDecimal(d.MstArticle1.Cost),
                                                                        Price = d.MstArticle1.Price,
                                                                        ComponentArticleInventoryId = (from i in db.MstArticleInventories where i.BranchId == stockInHeader.BranchId && i.ArticleId == d.ComponentArticleId select i.Id).FirstOrDefault(),
                                                                        Amount = d.Quantity * Convert.ToDecimal(d.MstArticle1.Cost),
                                                                        Particulars = d.Particulars
                                                                    };

                                            if (Convert.ToBoolean(isProduce) == true)
                                            {
                                                foreach (var articleComponent in articleComponents)
                                                {
                                                    // retrieve component Artticle Inventory
                                                    var componentArticleInventories = from d in db.MstArticleInventories
                                                                                      where d.BranchId == stockInHeader.BranchId
                                                                                      && d.ArticleId == articleComponent.ComponentArticleId
                                                                                      select d;

                                                    if (componentArticleInventories.Any())
                                                    {
                                                        Data.TrnInventory newComponentInventory = new Data.TrnInventory();
                                                        newComponentInventory.BranchId = stockInHeader.BranchId;
                                                        newComponentInventory.InventoryDate = Convert.ToDateTime(stockInHeader.INDate);
                                                        newComponentInventory.ArticleId = articleComponent.ComponentArticleId;
                                                        newComponentInventory.ArticleInventoryId = componentArticleInventories.FirstOrDefault().Id;
                                                        newComponentInventory.RRId = null;
                                                        newComponentInventory.SIId = null;
                                                        newComponentInventory.INId = INId;
                                                        newComponentInventory.OTId = null;
                                                        newComponentInventory.STId = null;
                                                        newComponentInventory.QuantityIn = (articleComponent.Quantity * stockInItem.Quantity) * -1;
                                                        newComponentInventory.QuantityOut = 0;
                                                        newComponentInventory.Quantity = (articleComponent.Quantity * stockInItem.Quantity) * -1;
                                                        newComponentInventory.Amount = ((articleComponent.Quantity * stockInItem.Quantity) * -1) * articleComponent.Cost;
                                                        newComponentInventory.Particulars = "Stock In";

                                                        db.TrnInventories.InsertOnSubmit(newComponentInventory);
                                                        db.SubmitChanges();
                                                    }
                                                }
                                            }
                                        }

                                        UpdateArticleInventory(articleInventoryId);
                                    }
                                    else
                                    {
                                        // InsertRRInventory article Inventory
                                        Data.MstArticleInventory newArticleInventory = new Data.MstArticleInventory();

                                        newArticleInventory.BranchId = stockInHeader.BranchId;
                                        newArticleInventory.ArticleId = stockInItem.ItemId;
                                        newArticleInventory.InventoryCode = "IN-" + stockInHeader.BranchCode + "-" + stockInHeader.INNumber;
                                        newArticleInventory.Quantity = stockInItem.Quantity;
                                        newArticleInventory.Cost = stockInItem.Amount / stockInItem.Quantity;
                                        newArticleInventory.Amount = stockInItem.Amount;
                                        newArticleInventory.Particulars = "SPECIFIC IDENTIFICATION";

                                        db.MstArticleInventories.InsertOnSubmit(newArticleInventory);
                                        db.SubmitChanges();

                                        // retrieve Artticle Inventory - Id
                                        var newArticleInventoryId = (from d in db.MstArticleInventories
                                                                     where d.BranchId == stockInHeader.BranchId
                                                                     && d.ArticleId == stockInItem.ItemId
                                                                     && d.InventoryCode == "IN-" + stockInHeader.BranchCode + "-" + stockInHeader.INNumber
                                                                     select d.Id).SingleOrDefault();

                                        newInventory.BranchId = stockInHeader.BranchId;
                                        newInventory.InventoryDate = Convert.ToDateTime(stockInHeader.INDate);
                                        newInventory.ArticleId = stockInItem.ItemId;
                                        newInventory.ArticleInventoryId = newArticleInventoryId;
                                        newInventory.RRId = null;
                                        newInventory.SIId = null;
                                        newInventory.INId = INId;
                                        newInventory.OTId = null;
                                        newInventory.STId = null;
                                        newInventory.QuantityIn = stockInItem.BaseQuantity;
                                        newInventory.QuantityOut = 0;
                                        newInventory.Quantity = stockInItem.BaseQuantity;
                                        newInventory.Amount = stockInItem.Amount;
                                        newInventory.Particulars = "Stock In";

                                        db.TrnInventories.InsertOnSubmit(newInventory);
                                        db.SubmitChanges();

                                        var articleItem = from d in db.MstArticles where d.Id == stockInItem.ItemId select d;
                                        if (articleItem.FirstOrDefault().Kitting == 1)
                                        {
                                            var articleComponents = from d in db.MstArticleComponents
                                                                    where d.ArticleId == stockInItem.ItemId
                                                                    select new Models.MstArticleComponent
                                                                    {
                                                                        Id = d.Id,
                                                                        ArticleId = d.ArticleId,
                                                                        ComponentArticleId = d.ComponentArticleId,
                                                                        ComponentArticle = d.MstArticle1.Article,
                                                                        Quantity = d.Quantity,
                                                                        UnitId = d.MstArticle1.UnitId,
                                                                        Cost = Convert.ToDecimal(d.MstArticle1.Cost),
                                                                        Price = d.MstArticle1.Price,
                                                                        ComponentArticleInventoryId = (from i in db.MstArticleInventories where i.BranchId == stockInHeader.BranchId && i.ArticleId == d.ComponentArticleId select i.Id).FirstOrDefault(),
                                                                        Amount = d.Quantity * Convert.ToDecimal(d.MstArticle1.Cost),
                                                                        Particulars = d.Particulars
                                                                    };

                                            if (Convert.ToBoolean(isProduce) == true)
                                            {
                                                foreach (var articleComponent in articleComponents)
                                                {
                                                    // retrieve component Artticle Inventory
                                                    var componentArticleInventories = from d in db.MstArticleInventories
                                                                                      where d.BranchId == stockInHeader.BranchId
                                                                                      && d.ArticleId == articleComponent.ComponentArticleId
                                                                                      select d;

                                                    if (componentArticleInventories.Any())
                                                    {
                                                        Data.TrnInventory newComponentInventory = new Data.TrnInventory();
                                                        newComponentInventory.BranchId = stockInHeader.BranchId;
                                                        newComponentInventory.InventoryDate = Convert.ToDateTime(stockInHeader.INDate);
                                                        newComponentInventory.ArticleId = articleComponent.ComponentArticleId;
                                                        newComponentInventory.ArticleInventoryId = componentArticleInventories.FirstOrDefault().Id;
                                                        newComponentInventory.RRId = null;
                                                        newComponentInventory.SIId = null;
                                                        newComponentInventory.INId = INId;
                                                        newComponentInventory.OTId = null;
                                                        newComponentInventory.STId = null;
                                                        newComponentInventory.QuantityIn = (articleComponent.Quantity * stockInItem.Quantity) * -1;
                                                        newComponentInventory.QuantityOut = 0;
                                                        newComponentInventory.Quantity = (articleComponent.Quantity * stockInItem.Quantity) * -1;
                                                        newComponentInventory.Amount = ((articleComponent.Quantity * stockInItem.Quantity) * -1) * articleComponent.Cost;
                                                        newComponentInventory.Particulars = "Stock In";

                                                        db.TrnInventories.InsertOnSubmit(newComponentInventory);
                                                        db.SubmitChanges();
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    Debug.WriteLine("Stock in header does not exist");
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
            }
        }
Example #5
0
        // =======================
        // Sales Invoice Inventory
        // =======================
        public void InsertSIInventory(Int32 SIId)
        {
            String InventoryDate = "";
            Int32 BranchId = 0;
            String BranchCode = "";

            var salesInvoiceHeader = from d in db.TrnSalesInvoices
                                     where d.Id == SIId
                                     select new Models.TrnSalesInvoice
                                     {
                                         Id = d.Id,
                                         BranchId = d.BranchId,
                                         Branch = d.MstBranch.Branch,
                                         BranchCode = d.MstBranch.BranchCode,
                                         SINumber = d.SINumber,
                                         SIDate = d.SIDate.ToShortDateString(),
                                     };

            // Sales invoice items
            var salesInvoiceItems = from d in db.TrnSalesInvoiceItems
                                    where d.SIId == SIId
                                    && d.MstArticle.IsInventory == true
                                    select new Models.TrnSalesInvoiceItem
                                    {
                                        Id = d.Id,
                                        SIId = d.SIId,
                                        SI = d.TrnSalesInvoice.SINumber,
                                        ItemId = d.ItemId,
                                        ItemCode = d.MstArticle.ManualArticleCode,
                                        Item = d.MstArticle.Article,
                                        ItemInventoryId = d.ItemInventoryId,
                                        ItemInventory = d.MstArticleInventory.InventoryCode,
                                        Particulars = d.Particulars,
                                        UnitId = d.UnitId,
                                        Unit = d.MstUnit.Unit,
                                        Quantity = d.Quantity,
                                        Price = d.Price,
                                        DiscountId = d.DiscountId,
                                        Discount = d.MstDiscount.Discount,
                                        DiscountRate = d.DiscountRate,
                                        DiscountAmount = d.DiscountAmount,
                                        NetPrice = d.NetPrice,
                                        Amount = d.Amount,
                                        VATId = d.VATId,
                                        VAT = d.MstTaxType.TaxType,
                                        VATPercentage = d.VATPercentage,
                                        VATAmount = d.VATAmount,
                                        BaseUnitId = d.BaseUnitId,
                                        BaseUnit = d.MstUnit1.Unit,
                                        BaseQuantity = d.BaseQuantity,
                                        BasePrice = d.BasePrice,
                                        Cost = d.MstArticleInventory.Cost
                                    };

            try
            {
                // header details in Sales
                foreach (var si in salesInvoiceHeader)
                {
                    InventoryDate = si.SIDate;
                    BranchId = si.BranchId;
                    BranchCode = si.BranchCode;
                }

                // Sale Item - (Line)
                if (salesInvoiceItems.Any())
                {
                    foreach (var SIItems in salesInvoiceItems)
                    {
                        if (SIItems.Quantity > 0)
                        {
                            Data.TrnInventory newInventory = new Data.TrnInventory();

                            newInventory.BranchId = BranchId;
                            newInventory.InventoryDate = Convert.ToDateTime(InventoryDate);
                            newInventory.ArticleId = SIItems.ItemId;
                            newInventory.ArticleInventoryId = Convert.ToInt32(SIItems.ItemInventoryId);
                            newInventory.RRId = null;
                            newInventory.SIId = SIId;
                            newInventory.INId = null;
                            newInventory.OTId = null;
                            newInventory.STId = null;
                            newInventory.QuantityIn = 0;
                            newInventory.QuantityOut = SIItems.BaseQuantity;
                            newInventory.Quantity = SIItems.BaseQuantity * -1;
                            newInventory.Amount = SIItems.Cost * SIItems.BaseQuantity * -1;
                            newInventory.Particulars = "Sold Items";

                            db.TrnInventories.InsertOnSubmit(newInventory);
                            db.SubmitChanges();

                            UpdateArticleInventory(Convert.ToInt32(SIItems.ItemInventoryId));
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
            }
        }