Ejemplo n.º 1
0
        public static ItemBatch CreateItemBatch(string dataAreaId,
                                                string itemNumber,
                                                string batchNumber,
                                                global::System.DateTimeOffset vendorBatchDate,
                                                global::System.DateTimeOffset batchExpirationDate,
                                                global::System.DateTimeOffset bestBeforeDate,
                                                global::System.DateTimeOffset mostRecentTestDate,
                                                global::System.DateTimeOffset shelfLifeAdviceDate,
                                                global::System.DateTimeOffset manufacturingDate,
                                                global::System.DateTimeOffset vendorExpirationDate,
                                                global::Microsoft.Dynamics.DataEntities.ReleasedProductV2 releasedProductV2)
        {
            ItemBatch itemBatch = new ItemBatch();

            itemBatch.dataAreaId           = dataAreaId;
            itemBatch.ItemNumber           = itemNumber;
            itemBatch.BatchNumber          = batchNumber;
            itemBatch.VendorBatchDate      = vendorBatchDate;
            itemBatch.BatchExpirationDate  = batchExpirationDate;
            itemBatch.BestBeforeDate       = bestBeforeDate;
            itemBatch.MostRecentTestDate   = mostRecentTestDate;
            itemBatch.ShelfLifeAdviceDate  = shelfLifeAdviceDate;
            itemBatch.ManufacturingDate    = manufacturingDate;
            itemBatch.VendorExpirationDate = vendorExpirationDate;
            if ((releasedProductV2 == null))
            {
                throw new global::System.ArgumentNullException("releasedProductV2");
            }
            itemBatch.ReleasedProductV2 = releasedProductV2;
            return(itemBatch);
        }
Ejemplo n.º 2
0
 public ActionResult Create(int id = 0, int type = 0)
 {
     try
     {
         if (id != 0)
         {
             ItemBatch model = new ItemBatch();
             if (type == 0)
             {
                 model = new ItemBatchRepository().GetGRNItem(grnItemId: id);
             }
             else if (type == 1)
             {
                 model = new ItemBatchRepository().GetOpeningStockItem(OpeningStockItemId: id);
             }
             model.isOpeningStock = type;
             List <ItemBatch> list = new List <ItemBatch>();
             for (int i = 0; i < model.Quantity; i++)
             {
                 list.Add(model);
             }
             return(View(list));
         }
         throw new NullReferenceException();
     }
     catch (NullReferenceException)
     {
         TempData["success"] = "";
         TempData["error"]   = "Some required data was missing. Please try again";
     }
     catch (SqlException sx)
     {
         TempData["success"] = "";
         TempData["error"]   = "Some error occured while connecting to database. Check your network connection and try again|" + sx.Message;
     }
     catch (Exception)
     {
         TempData["success"] = "";
         TempData["error"]   = "Some error occured. Please try again";
     }
     return(RedirectToAction("Pending"));
 }
Ejemplo n.º 3
0
        public Item GetItemStockDetailByItem(Item item)
        {
            //Item item = new Item();
            //item = Database.Items.Where(i => i.IID == itemID).FirstOrDefault();
            List <StockDetail> stockDetailList = new List <StockDetail>();



            stockDetailList = Database.StockDetails.Where(sd => sd.ItemID == item.IID && sd.IsRemoved == 0).ToList();


            List <string> batchList = stockDetailList.Select(sd => sd.BatchNo).Distinct().ToList();


            foreach (StockDetail stockDetail in stockDetailList)
            {
                stockDetail.StockMaster = stockDetail.StockMaster;
            }
            List <StockDetail> stockDetailListForPurchase       = new List <StockDetail>();
            List <StockDetail> stockDetailListForPurchaseReturn = new List <StockDetail>();
            List <StockDetail> stockDetailListForSale           = new List <StockDetail>();
            List <StockDetail> stockDetailListForSaleReturn     = new List <StockDetail>();
            List <ItemBatch>   itemBatchList = new List <ItemBatch>();
            decimal            itemQty       = 0;
            decimal            purTQty       = 0;
            decimal            purRtnTQty    = 0;
            decimal            saleTQty      = 0;
            decimal            saleRtnTQty   = 0;
            long ItemBatchID = 1;

            decimal totalStockCostPrice      = 0;
            decimal totalStockSalePrice      = 0;
            decimal totalPurchasePrice       = 0;
            decimal totalSalePrice           = 0;
            decimal totalPurchaseReturnPrice = 0;
            decimal totalSaleReturnPrice     = 0;

            foreach (String st in batchList)
            {
                decimal purchaseQty       = 0;
                decimal purchaseReturnQty = 0;
                decimal saleQty           = 0;
                decimal saleReturnQty     = 0;

                decimal purchasePrice       = 0;
                decimal purchaseReturnPrice = 0;
                decimal salePrice           = 0;
                decimal saleReturnPrice     = 0;

                ItemBatch   itemBatch   = new ItemBatch();
                StockDetail stockDetail = new StockDetail();
                //Purchase
                stockDetail   = stockDetailList.Where(sd => sd.BatchNo == st && sd.StockMaster.StockTransactionTypeID == Convert.ToInt32(EnumCollection.StockTransactionType.Purchase)).FirstOrDefault();
                purchaseQty   = stockDetail.Quantity;
                purchasePrice = stockDetail.Quantity * stockDetail.CostPrice;
                //stockDetailListForPurchase.Add(stockDetail);
                //PurchaseReturn
                stockDetailListForPurchaseReturn = stockDetailList.Where(sd => sd.BatchNo == st && sd.StockMaster.StockTransactionTypeID == Convert.ToInt32(EnumCollection.StockTransactionType.PurchaseReturn)).ToList();
                if (stockDetailListForPurchaseReturn.Count > 0)
                {
                    foreach (StockDetail stockDetailPurchaseReturn in stockDetailListForPurchaseReturn)
                    {
                        purchaseReturnQty   += stockDetailPurchaseReturn.Quantity;
                        purchaseReturnPrice += stockDetailPurchaseReturn.Quantity * stockDetailPurchaseReturn.CostPrice;
                    }
                }
                //Sale
                stockDetailListForSale = stockDetailList.Where(sd => sd.BatchNo == st && sd.StockMaster.StockTransactionTypeID == Convert.ToInt32(EnumCollection.StockTransactionType.Sale)).ToList();
                if (stockDetailListForSale.Count > 0)
                {
                    foreach (StockDetail stockDetailSale in stockDetailListForSale)
                    {
                        saleQty   += stockDetailSale.Quantity;
                        salePrice += stockDetailSale.Quantity * stockDetailSale.SellPrice;
                    }
                }
                //SaleReturn
                stockDetailListForSaleReturn = stockDetailList.Where(sd => sd.BatchNo == st && sd.StockMaster.StockTransactionTypeID == Convert.ToInt32(EnumCollection.StockTransactionType.SaleReturn)).ToList();
                if (stockDetailListForSaleReturn.Count > 0)
                {
                    foreach (StockDetail stockDetailSaleReturn in stockDetailListForSaleReturn)
                    {
                        saleReturnQty   += stockDetailSaleReturn.Quantity;
                        saleReturnPrice += stockDetailSaleReturn.Quantity * stockDetailSaleReturn.SellPrice;
                    }
                }

                itemBatch.IID       = ItemBatchID;
                itemBatch.BatchNo   = st;
                itemBatch.CostPrice = stockDetail.CostPrice;
                itemBatch.SellPrice = stockDetail.SellPrice;
                itemBatch.Quantity  = purchaseQty - purchaseReturnQty - saleQty + saleReturnQty;

                itemQty     += itemBatch.Quantity;
                purTQty     += purchaseQty;
                purRtnTQty  += purchaseReturnQty;
                saleTQty    += saleQty;
                saleRtnTQty += saleReturnQty;

                totalStockCostPrice      += purchasePrice - purchaseReturnPrice - salePrice + saleReturnPrice;
                totalPurchasePrice       += purchasePrice;
                totalSalePrice           += salePrice;
                totalPurchaseReturnPrice += purchaseReturnPrice;
                totalSaleReturnPrice     += saleReturnPrice;
                //if (itemQty > 0)
                //    itemBatchList.Add(itemBatch);
            }
            item.PurchaseQuantity       = purTQty;
            item.PurchaseReturnQuantity = purRtnTQty;
            item.SaleQuantity           = saleTQty;
            item.SaleReturnQuantity     = saleRtnTQty;
            item.ItemQuantity           = itemQty;
            item.ItemBatchList          = itemBatchList;
            ItemBatchID += 1;
            return(item);
        }