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); }
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")); }
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); }