public static Boolean StockBreakage(WARDStockModel stkBreakage, WardSupplyDbContext wardSupplyDbContext, RbacUser currentUser) { //Transaction begins using (var dbContextTransaction = wardSupplyDbContext.Database.BeginTransaction()) { try { List <Boolean> flag = new List <bool>(); var AvailableQuantity = (int)(Convert.ToDecimal(stkBreakage.AvailableQuantity)) - (int)(Convert.ToDecimal(stkBreakage.DispachedQuantity)); WARDStockModel stockDetail = (from stock in wardSupplyDbContext.WARDStockModel where stock.StockId == stkBreakage.StockId select stock).FirstOrDefault(); stockDetail.AvailableQuantity = AvailableQuantity; wardSupplyDbContext.Entry(stockDetail).Property(a => a.AvailableQuantity).IsModified = true; //add to transaction table var selectedstockTxnItm = new WARDTransactionModel(); selectedstockTxnItm.WardId = stkBreakage.WardId; selectedstockTxnItm.ItemId = stkBreakage.ItemId; selectedstockTxnItm.StockId = stkBreakage.StockId; selectedstockTxnItm.TransactionId = 0; selectedstockTxnItm.Quantity = (int)(Convert.ToDecimal(stkBreakage.DispachedQuantity)); selectedstockTxnItm.TransactionType = "BreakageItem"; selectedstockTxnItm.Remarks = stkBreakage.Remarks; selectedstockTxnItm.CreatedBy = currentUser.UserName; selectedstockTxnItm.CreatedOn = DateTime.Now; selectedstockTxnItm.IsWard = true; wardSupplyDbContext.TransactionModel.Add(selectedstockTxnItm); wardSupplyDbContext.SaveChanges(); dbContextTransaction.Commit();//Commit Transaction return(true); } catch (Exception ex) { dbContextTransaction.Rollback(); throw ex; } //return false; } }
public static Boolean StockTransfer(WARDStockModel stkTransferfromClient, WardSupplyDbContext wardSupplyDbContext, RbacUser currentUser) { //Transaction Begin using (var dbContextTransaction = wardSupplyDbContext.Database.BeginTransaction()) { try { List <Boolean> flag = new List <bool>(); //for checking all transaction status var AvailableQuantity = (int)(Convert.ToDecimal(stkTransferfromClient.AvailableQuantity)) - (int)(Convert.ToDecimal(stkTransferfromClient.DispachedQuantity)); WARDStockModel stockDetail = (from stock in wardSupplyDbContext.WARDStockModel where stock.StockId == stkTransferfromClient.StockId select stock ).FirstOrDefault(); stockDetail.AvailableQuantity = AvailableQuantity; wardSupplyDbContext.Entry(stockDetail).Property(a => a.AvailableQuantity).IsModified = true; //add to transaction table var selectedstockTxnItm = new WARDTransactionModel(); selectedstockTxnItm.WardId = stkTransferfromClient.WardId; selectedstockTxnItm.newWardId = stkTransferfromClient.newWardId; selectedstockTxnItm.ItemId = stkTransferfromClient.ItemId; selectedstockTxnItm.StockId = stkTransferfromClient.StockId; selectedstockTxnItm.TransactionId = 0; selectedstockTxnItm.Quantity = (int)(Convert.ToDecimal(stkTransferfromClient.DispachedQuantity)); selectedstockTxnItm.TransactionType = "WardtoWard"; selectedstockTxnItm.Remarks = stkTransferfromClient.Remarks; selectedstockTxnItm.CreatedBy = currentUser.UserName; selectedstockTxnItm.CreatedOn = DateTime.Now; selectedstockTxnItm.IsWard = true; wardSupplyDbContext.TransactionModel.Add(selectedstockTxnItm); wardSupplyDbContext.SaveChanges(); //add stock to new ward stkTransferfromClient.WardId = stkTransferfromClient.newWardId; stockDetail = (from stock in wardSupplyDbContext.WARDStockModel where stock.WardId == stkTransferfromClient.WardId && stock.ItemId == stkTransferfromClient.ItemId && stock.BatchNo == stkTransferfromClient.BatchNo select stock ).FirstOrDefault(); if (stockDetail != null) { stockDetail.AvailableQuantity = stockDetail.AvailableQuantity + (int)(Convert.ToDecimal(stkTransferfromClient.DispachedQuantity)); wardSupplyDbContext.Entry(stockDetail).Property(a => a.AvailableQuantity).IsModified = true; wardSupplyDbContext.SaveChanges(); } else { stkTransferfromClient.AvailableQuantity = (int)(Convert.ToDecimal(stkTransferfromClient.DispachedQuantity)); wardSupplyDbContext.WARDStockModel.Add(stkTransferfromClient); wardSupplyDbContext.SaveChanges(); } dbContextTransaction.Commit();//Commit Transaction return(true); } catch (Exception ex) { dbContextTransaction.Rollback(); throw ex; } //return false; } }
public static Boolean StockTransferToPharmacy(List <WARDStockModel> stkTransfer, WardSupplyDbContext wardSupplyDbContext, PharmacyDbContext pharmacyDbContext, RbacUser currentUser) { //Transaction Begins using (var dbContextTransaction = wardSupplyDbContext.Database.BeginTransaction()) { try { if (stkTransfer != null) { for (int i = 0; i < stkTransfer.Count; i++) { var stockId = stkTransfer[i].StockId; WARDStockModel updatedStock = (from stock in wardSupplyDbContext.WARDStockModel where stock.StockId == stockId select stock ).FirstOrDefault(); updatedStock.AvailableQuantity = (int)(Convert.ToDecimal(stkTransfer[i].AvailableQuantity)) - (int)(Convert.ToDecimal(stkTransfer[i].DispachedQuantity)); wardSupplyDbContext.Entry(updatedStock).Property(a => a.AvailableQuantity).IsModified = true; //transaction table var selectedstockTxnItm = new WARDTransactionModel(); selectedstockTxnItm.WardId = updatedStock.WardId; selectedstockTxnItm.ItemId = updatedStock.ItemId; selectedstockTxnItm.StockId = updatedStock.StockId; selectedstockTxnItm.TransactionId = 0; selectedstockTxnItm.Quantity = (int)(Convert.ToDecimal(stkTransfer[i].DispachedQuantity)); selectedstockTxnItm.TransactionType = "WardToPharmacy"; selectedstockTxnItm.Remarks = "Sent From Ward To Pharmacy"; selectedstockTxnItm.CreatedBy = currentUser.UserName; selectedstockTxnItm.CreatedOn = DateTime.Now; selectedstockTxnItm.IsWard = true; wardSupplyDbContext.TransactionModel.Add(selectedstockTxnItm); wardSupplyDbContext.SaveChanges(); //pharmacy stock changes var itemId = stkTransfer[i].ItemId; var batchNo = stkTransfer[i].BatchNo; PHRMStockModel updatedPharmacyStock = (from stock in pharmacyDbContext.PHRMStock where stock.ItemId == itemId && stock.BatchNo == batchNo select stock ).FirstOrDefault(); updatedPharmacyStock.AvailableQuantity = (int)(Convert.ToDecimal(updatedPharmacyStock.AvailableQuantity)) + (int)(Convert.ToDecimal(stkTransfer[i].DispachedQuantity)); pharmacyDbContext.Entry(updatedPharmacyStock).Property(a => a.AvailableQuantity).IsModified = true; //Pharmacy Transaction Table var phrmStockTxn = new PHRMStockTransactionItemsModel(); phrmStockTxn.ItemId = updatedPharmacyStock.ItemId; phrmStockTxn.BatchNo = updatedPharmacyStock.BatchNo; phrmStockTxn.ExpiryDate = stkTransfer[i].ExpiryDate; phrmStockTxn.Quantity = (int)(Convert.ToDecimal(stkTransfer[i].DispachedQuantity)); phrmStockTxn.FreeQuantity = 0; phrmStockTxn.Price = (int)(Convert.ToDecimal(stkTransfer[i].MRP)); phrmStockTxn.DiscountPercentage = 0; phrmStockTxn.VATPercentage = 0; phrmStockTxn.SubTotal = (int)(Convert.ToDecimal(phrmStockTxn.Quantity)) * (int)(Convert.ToDecimal(phrmStockTxn.Price)); phrmStockTxn.TotalAmount = phrmStockTxn.SubTotal; phrmStockTxn.InOut = "in"; phrmStockTxn.CreatedBy = currentUser.UserId; phrmStockTxn.CreatedOn = DateTime.Now; phrmStockTxn.MRP = phrmStockTxn.Price; phrmStockTxn.TransactionType = "WardToPharmacy"; pharmacyDbContext.PHRMStockTransactionModel.Add(phrmStockTxn); pharmacyDbContext.SaveChanges(); } } dbContextTransaction.Commit(); return(true); } catch (Exception ex) { dbContextTransaction.Rollback(); throw ex; } } }
public static Boolean BackToInventoryTransfer(WARDStockModel stkTransferfromClient, WardSupplyDbContext wardSupplyDbContext, RbacUser currentUser) { //Transaction Begin using (var dbContextTransaction = wardSupplyDbContext.Database.BeginTransaction()) { try { List <Boolean> flag = new List <bool>(); //for checking all transaction status var AvailableQuantity = (int)(Convert.ToDecimal(stkTransferfromClient.AvailableQuantity)) - (int)(Convert.ToDecimal(stkTransferfromClient.DispachedQuantity)); WARDStockModel stockDetail = (from stock in wardSupplyDbContext.WARDStockModel where stock.StockId == stkTransferfromClient.StockId && stock.ItemId == stkTransferfromClient.ItemId && stock.DepartmentId == stkTransferfromClient.DepartmentId && stock.StockType == "inventory" select stock ).FirstOrDefault(); stockDetail.AvailableQuantity = AvailableQuantity; wardSupplyDbContext.Entry(stockDetail).Property(a => a.AvailableQuantity).IsModified = true; //add to transaction table var selectedstockTxnItm = new WARDTransactionModel(); selectedstockTxnItm.WardId = stkTransferfromClient.DepartmentId; selectedstockTxnItm.newWardId = stkTransferfromClient.newWardId; selectedstockTxnItm.ItemId = stkTransferfromClient.ItemId; selectedstockTxnItm.StockId = stkTransferfromClient.StockId; selectedstockTxnItm.TransactionId = 0; selectedstockTxnItm.Quantity = (int)(Convert.ToDecimal(stkTransferfromClient.DispachedQuantity)); selectedstockTxnItm.TransactionType = "BackToInventory"; selectedstockTxnItm.Remarks = stkTransferfromClient.Remarks; selectedstockTxnItm.CreatedBy = currentUser.UserName; selectedstockTxnItm.CreatedOn = DateTime.Now; selectedstockTxnItm.IsWard = false; wardSupplyDbContext.TransactionModel.Add(selectedstockTxnItm); wardSupplyDbContext.SaveChanges(); //add stock to inventory var inventoryStock = new StockModel(); inventoryStock = (from stock in wardSupplyDbContext.INVStockMaster where stock.ItemId == stkTransferfromClient.ItemId && stock.BatchNO == stkTransferfromClient.BatchNo select stock).FirstOrDefault(); if (inventoryStock != null) { inventoryStock.AvailableQuantity = inventoryStock.AvailableQuantity + (int)(Convert.ToDecimal(stkTransferfromClient.DispachedQuantity)); wardSupplyDbContext.Entry(inventoryStock).Property(a => a.AvailableQuantity).IsModified = true; wardSupplyDbContext.SaveChanges(); var stockTransaction = new StockTransactionModel(); stockTransaction.StockId = inventoryStock.StockId; stockTransaction.Quantity = (int)(Convert.ToDecimal(stkTransferfromClient.DispachedQuantity)); stockTransaction.InOut = "in"; stockTransaction.ReferenceNo = inventoryStock.GoodsReceiptItemId; stockTransaction.CreatedBy = currentUser.EmployeeId; stockTransaction.CreatedOn = DateTime.Now; stockTransaction.TransactionType = "Sent From WardSupply"; wardSupplyDbContext.INVStockTransaction.Add(stockTransaction); wardSupplyDbContext.SaveChanges(); } //add to stock transaction in inventory dbContextTransaction.Commit();//Commit Transaction return(true); } catch (Exception ex) { dbContextTransaction.Rollback(); throw ex; } //return false; } }