public ActionResult DeleteConfirmed(int id) { INV_StockHistory iNV_StockHistory = db.INV_StockHistory.Find(id); db.INV_StockHistory.Remove(iNV_StockHistory); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "StockHistoryID,ItemID,OperationTypeID,ReferenceID,Quantity,UserID,Created,Modified,Remarks,FinYearID")] INV_StockHistory iNV_StockHistory) { if (ModelState.IsValid) { db.Entry(iNV_StockHistory).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.ItemID = new SelectList(db.INV_Item, "ItemID", "ItemName", iNV_StockHistory.ItemID); ViewBag.FinYearID = new SelectList(db.SYS_FinYear, "FinYearID", "FinYear", iNV_StockHistory.FinYearID); ViewBag.OperationTypeID = new SelectList(db.SYS_OperationType, "OperationTypeID", "OperationType", iNV_StockHistory.OperationTypeID); ViewBag.UserID = new SelectList(db.SEC_User, "UserID", "UserName", iNV_StockHistory.UserID); return(View(iNV_StockHistory)); }
// GET: INV_StockHistory/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } INV_StockHistory iNV_StockHistory = db.INV_StockHistory.Find(id); if (iNV_StockHistory == null) { return(HttpNotFound()); } return(View(iNV_StockHistory)); }
// GET: INV_StockHistory/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } INV_StockHistory iNV_StockHistory = db.INV_StockHistory.Find(id); if (iNV_StockHistory == null) { return(HttpNotFound()); } ViewBag.ItemID = new SelectList(db.INV_Item, "ItemID", "ItemName", iNV_StockHistory.ItemID); ViewBag.FinYearID = new SelectList(db.SYS_FinYear, "FinYearID", "FinYear", iNV_StockHistory.FinYearID); ViewBag.OperationTypeID = new SelectList(db.SYS_OperationType, "OperationTypeID", "OperationType", iNV_StockHistory.OperationTypeID); ViewBag.UserID = new SelectList(db.SEC_User, "UserID", "UserName", iNV_StockHistory.UserID); return(View(iNV_StockHistory)); }
public ActionResult Create([Bind(Include = "ItemID,CompanyID,ItemName,UnitID,UserID,IsConfigurable,IsLock,Quantity,MinStockLimit,Created,Modified,Remarks,RejectedQuantity,CategoryID,ItemCode")] INV_Item iNV_Item) { #region Validation if (string.IsNullOrEmpty(iNV_Item.ItemName)) { ModelState.AddModelError("ItemName", "Item is required"); } if (!string.IsNullOrEmpty(iNV_Item.ItemName)) { if (db.INV_Item.Where(I => I.ItemName == iNV_Item.ItemName && I.CategoryID == iNV_Item.CategoryID).Count() > 0) { ModelState.AddModelError("ItemNameDuplicate", iNV_Item.ItemName + " Already added."); } } #endregion Validation if (ModelState.IsValid) { iNV_Item.Created = DateTime.Now; iNV_Item.Modified = DateTime.Now; iNV_Item.CompanyID = 4; #region Generate Item Code if (iNV_Item.CategoryID != null && iNV_Item.CategoryID > 0) { Int32 NextNumber = db.INV_Item.Where(i => i.CategoryID == iNV_Item.CategoryID).Count() + 1; String PrefixForCode = db.INV_Category.Where(i => i.CategoryID == iNV_Item.CategoryID).FirstOrDefault().CategoryShortName; iNV_Item.ItemCode = PrefixForCode + "-" + NextNumber; } else { Int32 NextNumber = db.INV_Item.Count() + 1; String PrefixForCode = "ITM"; iNV_Item.ItemCode = PrefixForCode + "-" + NextNumber; } #endregion Generate Item Code if (Session["UserID"] != null) { iNV_Item.UserID = Convert.ToInt16(Session["UserID"].ToString()); } db.INV_Item.Add(iNV_Item); db.SaveChanges(); #region Update INV_StockHistory int newPK = iNV_Item.ItemID; INV_StockHistory _iNV_StockHistory = new INV_StockHistory(); _iNV_StockHistory.ItemID = iNV_Item.ItemID; _iNV_StockHistory.OperationTypeID = 6; _iNV_StockHistory.Quantity = iNV_Item.Quantity; _iNV_StockHistory.UserID = iNV_Item.UserID; _iNV_StockHistory.FinYearID = CommonConfig.GetFinYearID(); _iNV_StockHistory.Created = DateTime.Now; _iNV_StockHistory.Modified = DateTime.Now; db.INV_StockHistory.Add(_iNV_StockHistory); db.SaveChanges(); #endregion Update INV_StockHistory return(RedirectToAction("Index")); } ViewBag.CompanyID = new SelectList(db.SYS_Company, "CompanyID", "CompanyName", iNV_Item.CompanyID); ViewBag.UnitID = new SelectList(db.INV_Unit, "UnitID", "Unit", iNV_Item.UnitID); ViewBag.UserID = new SelectList(db.SEC_User, "UserID", "UserName", iNV_Item.UserID); ViewBag.CategoryID = new SelectList(db.INV_Category, "CategoryID", "CategoryName", iNV_Item.CategoryID); return(View("Edit", iNV_Item)); }
public ActionResult Edit([Bind(Include = "ItemID,CompanyID,ItemName,UnitID,UserID,IsConfigurable,IsLock,Quantity,MinStockLimit,Created,Modified,Remarks,RejectedQuantity,CategoryID,ItemCode")] INV_Item iNV_Item) { if (iNV_Item.ItemID > 0) { if (iNV_Item.Remarks == null || iNV_Item.Remarks == "") { ViewBag.CompanyID = new SelectList(db.SYS_Company, "CompanyID", "CompanyName", iNV_Item.CompanyID); ViewBag.UnitID = new SelectList(db.INV_Unit, "UnitID", "Unit", iNV_Item.UnitID); ViewBag.UserID = new SelectList(db.SEC_User, "UserID", "UserName", iNV_Item.UserID); ViewBag.CategoryID = new SelectList(db.INV_Category, "CategoryID", "CategoryName", iNV_Item.CategoryID); ModelState.AddModelError("", "Enter Remarks"); return(View(iNV_Item)); } } if (ModelState.IsValid) { db.Entry(iNV_Item).State = EntityState.Modified; iNV_Item.Modified = DateTime.Now; iNV_Item.CompanyID = 4; if (Session["UserID"] != null) { iNV_Item.UserID = Convert.ToInt16(Session["UserID"].ToString()); } #region Generate Item Code if (iNV_Item.ItemID <= 0) { if (iNV_Item.CategoryID != null && iNV_Item.CategoryID > 0) { Int32 NextNumber = db.INV_Item.Where(i => i.CategoryID == iNV_Item.CategoryID).Count() + 1; String PrefixForCode = db.INV_Category.Where(i => i.CategoryID == iNV_Item.CategoryID).FirstOrDefault().CategoryShortName; iNV_Item.ItemCode = PrefixForCode + "-" + NextNumber; } else { Int32 NextNumber = db.INV_Item.Count() + 1; String PrefixForCode = "ITM"; iNV_Item.ItemCode = PrefixForCode + "-" + NextNumber; } } #endregion Generate Item Code db.SaveChanges(); #region Update INV_StockHistory INV_StockHistory _iNV_StockHistoryOld = db.INV_StockHistory.Where(IS => IS.ItemID == iNV_Item.ItemID).FirstOrDefault(); if (_iNV_StockHistoryOld != null) { _iNV_StockHistoryOld.ItemID = iNV_Item.ItemID; _iNV_StockHistoryOld.OperationTypeID = 6; _iNV_StockHistoryOld.Quantity = iNV_Item.Quantity; _iNV_StockHistoryOld.UserID = iNV_Item.UserID; _iNV_StockHistoryOld.FinYearID = CommonConfig.GetFinYearID(); _iNV_StockHistoryOld.Modified = DateTime.Now; db.Entry(_iNV_StockHistoryOld).State = EntityState.Modified; db.SaveChanges(); } #endregion Update INV_StockHistory return(RedirectToAction("Index")); } ViewBag.CompanyID = new SelectList(db.SYS_Company, "CompanyID", "CompanyName", iNV_Item.CompanyID); ViewBag.UnitID = new SelectList(db.INV_Unit, "UnitID", "Unit", iNV_Item.UnitID); ViewBag.UserID = new SelectList(db.SEC_User, "UserID", "UserName", iNV_Item.UserID); ViewBag.CategoryID = new SelectList(db.INV_Category, "CategoryID", "CategoryName", iNV_Item.CategoryID); return(View(iNV_Item)); }
public ActionResult RertunNewItem(INV_IssueReturnViewModal iNV_IssueReturnViewModal) { try { if (iNV_IssueReturnViewModal.IssueReturnItems.Count <= 0) { TempData["errorReturn"] = "Select Item."; return(View(iNV_IssueReturnViewModal)); } #region Generate IssueReturnNo String _NewIssueReturnNo = CommonConfig.GetNextNumber("Return"); #endregion Generate IssueReturnNo INV_IssueReturn iNV_IssueReturn = new INV_IssueReturn(); iNV_IssueReturn.CompanyID = CommonConfig.GetCompanyID(); if (Session["UserID"] != null) { iNV_IssueReturn.IssueReturnByUserID = Convert.ToInt16(Session["UserID"].ToString()); } iNV_IssueReturn.IssueReturnToUserID = iNV_IssueReturnViewModal.IssueReturnToUserID; iNV_IssueReturn.Created = DateTime.Now; iNV_IssueReturn.Modified = DateTime.Now; iNV_IssueReturn.Remarks = "Return"; iNV_IssueReturn.IssueReturnDate = DateTime.Now; iNV_IssueReturn.IssueReturnNo = _NewIssueReturnNo; iNV_IssueReturn.FinYearID = CommonConfig.GetFinYearID(); iNV_IssueReturn.ReturnIssueNo = iNV_IssueReturnViewModal.IssueReturnNo; db.INV_IssueReturn.Add(iNV_IssueReturn); //db.SaveChanges(); string Err = ""; TempData["errorReturn"] = ""; if (iNV_IssueReturnViewModal.IssueReturnItems != null) { foreach (var item in iNV_IssueReturnViewModal.IssueReturnItems) { INV_Item inv_Item = new INV_Item(); inv_Item = db.INV_Item.Where(i => i.ItemID == item.ItemID).FirstOrDefault(); INV_StockHistory _StockHistoryNew = new INV_StockHistory(); _StockHistoryNew = db.INV_StockHistory.Where(w => w.IssueNumber == iNV_IssueReturnViewModal.IssueReturnNo && w.ItemID == item.ItemID).FirstOrDefault(); List <INV_StockHistory> _receivedStockHistory = new List <INV_StockHistory>(); _receivedStockHistory = db.INV_StockHistory.Where(w => w.IssueNumber == iNV_IssueReturnViewModal.IssueReturnNo && w.ItemID == item.ItemID && w.Remarks == "Return" && w.OperationTypeID == 9).ToList(); if (_StockHistoryNew != null) { if (_StockHistoryNew.Quantity < (item.Quantity + _receivedStockHistory.Sum(i => i.Quantity))) { if (Err == "") { Err = Err + "You can not return more than issue. " + inv_Item.ItemName; } else { Err = Err + ", You can not return more than issue. " + inv_Item.ItemName; } } } if (Session["UserID"] != null) { item.UserID = Convert.ToInt16(Session["UserID"].ToString()); } INV_StockHistory new_INV_StockHistory = new INV_StockHistory(); new_INV_StockHistory.ItemID = item.ItemID; new_INV_StockHistory.OperationTypeID = 9; new_INV_StockHistory.ReferenceID = _NewIssueReturnNo; new_INV_StockHistory.Quantity = item.Quantity; new_INV_StockHistory.UserID = item.UserID; new_INV_StockHistory.Created = DateTime.Now; new_INV_StockHistory.Modified = DateTime.Now; new_INV_StockHistory.Remarks = "Return"; new_INV_StockHistory.FinYearID = CommonConfig.GetFinYearID(); new_INV_StockHistory.IssueNumber = iNV_IssueReturnViewModal.IssueReturnNo; new_INV_StockHistory.ReturnNumber = _NewIssueReturnNo; db.INV_StockHistory.Add(new_INV_StockHistory); if (iNV_IssueReturnViewModal.IsRejected) { //inv_Item.Quantity = Convert.ToInt32(inv_Item.RejectedQuantity) + item.Quantity; if (inv_Item.RejectedQuantity == null) { inv_Item.RejectedQuantity = item.Quantity; } else { inv_Item.RejectedQuantity = inv_Item.RejectedQuantity + item.Quantity; } } else { inv_Item.Quantity = inv_Item.Quantity + item.Quantity; } } if (Err != "") { TempData["errorReturn"] = Err; ViewData["errorReturn"] = TempData["errorReturn"]; return(View(iNV_IssueReturnViewModal)); } db.SaveChanges(); } } catch (Exception exception) { //exception handiling } return(Json("failure", JsonRequestBehavior.AllowGet)); }
public JsonResult SaveSubItem(List <INV_ItemConfiguration> iNV_ItemConfiguration_List) { try { if (iNV_ItemConfiguration_List != null) { //erroor handle } if (iNV_ItemConfiguration_List != null) { foreach (var item in iNV_ItemConfiguration_List) { if (Session["UserID"] != null) { item.UserID = Convert.ToInt16(Session["UserID"].ToString()); } var inv_Item = db.INV_Item.Where(e => e.ItemID == item.SubItemID).FirstOrDefault(); string getIssueLastNumber; if (inv_Item != null) { var getIssueLast = db.INV_StockHistory.Where(e => e.Remarks == "Return").OrderByDescending(e => e.StockHistoryID).FirstOrDefault(); if (getIssueLast == null) { getIssueLastNumber = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "01"; #region Check No INV_StockHistory _INV_StockHistoryNo = db.INV_StockHistory.Where(w => w.IssueNumber == getIssueLastNumber).FirstOrDefault(); if (_INV_StockHistoryNo != null) { getIssueLastNumber = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "02"; } #endregion Check No } else { var a = getIssueLast.IssueNumber; if (a == null) { getIssueLastNumber = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "01"; #region Check No INV_StockHistory _INV_StockHistoryNo = db.INV_StockHistory.Where(w => w.IssueNumber == getIssueLastNumber).FirstOrDefault(); if (_INV_StockHistoryNo != null) { getIssueLastNumber = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "02"; } #endregion Check No } else { //a = "278201801"; a = a.ToString(); string delimiters = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString(); //bool aaa = a.Contains(delimiters); string[] newstring = a.Split(new[] { delimiters }, StringSplitOptions.None); getIssueLastNumber = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + (Convert.ToInt32(newstring[1]) + 1); #region Check No INV_StockHistory _INV_StockHistoryNo = db.INV_StockHistory.Where(w => w.IssueNumber == getIssueLastNumber).FirstOrDefault(); if (_INV_StockHistoryNo != null) { getIssueLastNumber = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + (Convert.ToInt32(newstring[1]) + 2); } #endregion Check No } } INV_StockHistory new_INV_StockHistory = new INV_StockHistory(); new_INV_StockHistory.ItemID = inv_Item.ItemID; new_INV_StockHistory.OperationTypeID = 7; new_INV_StockHistory.ReferenceID = getIssueLastNumber; new_INV_StockHistory.Quantity = inv_Item.Quantity; new_INV_StockHistory.UserID = item.UserID; new_INV_StockHistory.Created = DateTime.Now; new_INV_StockHistory.Modified = DateTime.Now; new_INV_StockHistory.Remarks = "Return"; new_INV_StockHistory.FinYearID = CommonConfig.GetFinYearID(); new_INV_StockHistory.ReturnNumber = getIssueLastNumber; db.INV_StockHistory.Add(new_INV_StockHistory); db.SaveChanges(); inv_Item.Quantity = inv_Item.Quantity + item.Qunatity; db.SaveChanges(); } } } } catch (Exception exception) { //exception handiling } return(Json("failure", JsonRequestBehavior.AllowGet)); }
public ActionResult SaveForAssmeble(INV_IssueReturnViewModal iNV_IssueReturnViewModal) { try { if (iNV_IssueReturnViewModal.IssueReturnItems.Count <= 0) { TempData["errorIssue"] = "Select Item."; return(View(iNV_IssueReturnViewModal)); } #region Generate IssueReturnNo String _NewIssueReturnNo = CommonConfig.GetNextNumber("Issue"); #endregion Generate IssueReturnNo INV_IssueReturn iNV_IssueReturn = new INV_IssueReturn(); if (Session["UserID"] != null) { iNV_IssueReturn.IssueReturnByUserID = Convert.ToInt16(Session["UserID"].ToString()); } iNV_IssueReturn.CompanyID = CommonConfig.GetCompanyID(); iNV_IssueReturn.IssueReturnToUserID = iNV_IssueReturnViewModal.IssueReturnToUserID; iNV_IssueReturn.Created = DateTime.Now; iNV_IssueReturn.Modified = DateTime.Now; iNV_IssueReturn.Remarks = "Issue for Assemble"; iNV_IssueReturn.IssueReturnDate = DateTime.Now; iNV_IssueReturn.IssueReturnNo = _NewIssueReturnNo; iNV_IssueReturn.FinYearID = CommonConfig.GetFinYearID(); db.INV_IssueReturn.Add(iNV_IssueReturn); db.SaveChanges(); string Err = ""; TempData["errorIssue"] = ""; if (iNV_IssueReturnViewModal.IssueReturnItems != null) { foreach (var item in iNV_IssueReturnViewModal.IssueReturnItems) { INV_Item inv_Item = new INV_Item(); inv_Item = db.INV_Item.Where(i => i.ItemID == item.ItemID).FirstOrDefault(); if (inv_Item.Quantity - item.Quantity < 0) { if (Err == "") { Err = Err + "Check Stock for " + inv_Item.ItemName; } else { Err = Err + ", Check Stock for " + inv_Item.ItemName; } } if (Session["UserID"] != null) { item.UserID = Convert.ToInt16(Session["UserID"].ToString()); } INV_StockHistory new_INV_StockHistory = new INV_StockHistory(); new_INV_StockHistory.ItemID = item.ItemID; new_INV_StockHistory.OperationTypeID = 8; new_INV_StockHistory.ReferenceID = _NewIssueReturnNo; new_INV_StockHistory.Quantity = item.Quantity; new_INV_StockHistory.UserID = item.UserID; new_INV_StockHistory.Created = DateTime.Now; new_INV_StockHistory.Modified = DateTime.Now; new_INV_StockHistory.Remarks = "Issue"; new_INV_StockHistory.FinYearID = CommonConfig.GetFinYearID(); new_INV_StockHistory.IssueNumber = _NewIssueReturnNo; db.INV_StockHistory.Add(new_INV_StockHistory); inv_Item.Quantity = inv_Item.Quantity - item.Quantity; } if (Err != "") { TempData["errorIssue"] = Err; return(View(iNV_IssueReturnViewModal)); } db.SaveChanges(); } } catch (Exception exception) { //exception handiling } return(Json("failure", JsonRequestBehavior.AllowGet)); }
public JsonResult AddInvoice(INV_InvoiceViewModal inv_InvoiceViewModal) { string validMsg = ""; try { if (inv_InvoiceViewModal == null) { //error meesage or expception handle } else if (inv_InvoiceViewModal.INV_InvoiceItems == null) { //error meesage or expception handle } else { if (inv_InvoiceViewModal.InvoiceID > 0) { int invoiceId = inv_InvoiceViewModal.InvoiceID; foreach (var item in inv_InvoiceViewModal.INV_InvoiceItems) { var checkExist = db.INV_InvoiceItem.Any(e => e.InvoiceID == invoiceId && e.ItemID == item.ItemID && e.Quantity == item.Quantity); if (checkExist == false) { var newINV_InvoiceItemAdd = new INV_InvoiceItem() { InvoiceID = invoiceId, ItemID = item.ItemID, Quantity = item.Quantity, Created = DateTime.Now, Modified = DateTime.Now, Remarks = item.Remarks, PricePerUnit = item.PricePerUnit }; db.INV_InvoiceItem.Add(newINV_InvoiceItemAdd); } } inv_InvoiceViewModal.INV_InvoiceItems.ForEach(e => { e.InvoiceID = invoiceId; e.InvoiceItemID = db.INV_InvoiceItem.Where(t => t.InvoiceID == invoiceId && t.ItemID == e.ItemID && t.Quantity == e.Quantity).FirstOrDefault().InvoiceItemID; }); List <int> getAllList = inv_InvoiceViewModal.INV_InvoiceItems.Select(e => e.InvoiceItemID).ToList(); List <INV_InvoiceItem> removeRange = db.INV_InvoiceItem.Where(t => t.InvoiceID == invoiceId && !getAllList.Contains(t.InvoiceItemID)).Select(t => t).ToList(); db.INV_InvoiceItem.RemoveRange(removeRange); INV_Invoice get_invoice = db.INV_Invoice.Where(e => e.InvoiceID == invoiceId).FirstOrDefault(); INV_InvoiceHistory Add_INV_InvoiceHistory = new INV_InvoiceHistory() { CompanyID = get_invoice.CompanyID, PartyID = get_invoice.PartyID, UserID = get_invoice.UserID, Amount = get_invoice.Amount, AmountReceived = get_invoice.AmountReceived, StatusID = get_invoice.StatusID, Created = get_invoice.Created, Remarks = get_invoice.Remarks, InvoiceDate = get_invoice.InvoiceDate, InvoiceNo = get_invoice.InvoiceNo, PONo = get_invoice.PONo, AmountPending = get_invoice.AmountPending, FinYearID = get_invoice.FinYearID, CGST = get_invoice.CGST, CGSTAmount = get_invoice.CGSTAmount, SGST = get_invoice.SGST, SGSTAmount = get_invoice.SGSTAmount, IGST = get_invoice.IGST, IGSTAmount = get_invoice.IGSTAmount, IsLocal = get_invoice.IsLocal, //IsActive = get_invoice.IsActive==null? true : get_invoice.IsActive,//ask to kamal Casar = get_invoice.Casar, TotalAmount = get_invoice.TotalAmount, Operation = "Invoice", InvoiceID = invoiceId }; db.INV_InvoiceHistory.Add(Add_INV_InvoiceHistory); if (Session["UserID"] != null) { get_invoice.UserID = Convert.ToInt16(Session["UserID"].ToString()); } get_invoice.Amount = inv_InvoiceViewModal.Amount; get_invoice.AmountReceived = inv_InvoiceViewModal.AmountReceived; get_invoice.StatusID = 1; get_invoice.Modified = DateTime.Now; get_invoice.Remarks = inv_InvoiceViewModal.Remarks; get_invoice.InvoiceDate = inv_InvoiceViewModal.InvoiceDate;//ask to kamal get_invoice.InvoiceNo = get_invoice.InvoiceNo; get_invoice.PONo = inv_InvoiceViewModal.PONo; get_invoice.AmountPending = inv_InvoiceViewModal.AmountPending; get_invoice.CGST = inv_InvoiceViewModal.CGST; get_invoice.CGSTAmount = inv_InvoiceViewModal.CGSTAmount; get_invoice.SGST = inv_InvoiceViewModal.SGST; get_invoice.SGSTAmount = inv_InvoiceViewModal.SGSTAmount; get_invoice.IGST = inv_InvoiceViewModal.IGST; get_invoice.IGSTAmount = inv_InvoiceViewModal.IGSTAmount; get_invoice.IsLocal = inv_InvoiceViewModal.IsLocal; get_invoice.Casar = inv_InvoiceViewModal.Casar; get_invoice.TotalAmount = inv_InvoiceViewModal.TotalAmount; } else { INV_Invoice new_INV_Invoice = new INV_Invoice(); new_INV_Invoice.CompanyID = CommonConfig.GetCompanyID(); new_INV_Invoice.StatusID = CommonConfig.GetStatusPending(); new_INV_Invoice.PartyID = inv_InvoiceViewModal.PartyID; if (Session["UserID"] != null) { new_INV_Invoice.UserID = Convert.ToInt16(Session["UserID"].ToString()); } new_INV_Invoice.Amount = inv_InvoiceViewModal.Amount; new_INV_Invoice.AmountReceived = inv_InvoiceViewModal.AmountReceived; new_INV_Invoice.StatusID = CommonConfig.GetStatusPending(); new_INV_Invoice.Created = DateTime.Now; new_INV_Invoice.Modified = DateTime.Now; new_INV_Invoice.Remarks = inv_InvoiceViewModal.Remarks; new_INV_Invoice.InvoiceDate = DateTime.Now; #region Generate InvoiceNo String _NewInvoiceNo = CommonConfig.GetNextNumber("Invoice"); #endregion Generate InvoiceNo new_INV_Invoice.InvoiceNo = _NewInvoiceNo.ToString(); new_INV_Invoice.PONo = inv_InvoiceViewModal.PONo; new_INV_Invoice.AmountPending = 0; new_INV_Invoice.FinYearID = CommonConfig.GetFinYearID(); new_INV_Invoice.CGST = inv_InvoiceViewModal.CGST == 0 ? null : inv_InvoiceViewModal.CGST; new_INV_Invoice.CGSTAmount = inv_InvoiceViewModal.CGST == 0 ? null : inv_InvoiceViewModal.CGSTAmount; new_INV_Invoice.SGST = inv_InvoiceViewModal.SGST == 0 ? null : inv_InvoiceViewModal.SGST; new_INV_Invoice.SGSTAmount = inv_InvoiceViewModal.SGST == 0 ? null : inv_InvoiceViewModal.SGSTAmount; new_INV_Invoice.IGST = inv_InvoiceViewModal.IGST == 0 ? null : inv_InvoiceViewModal.IGST; new_INV_Invoice.IGSTAmount = inv_InvoiceViewModal.IGST == 0 ? null : inv_InvoiceViewModal.IGSTAmount; new_INV_Invoice.IsLocal = inv_InvoiceViewModal.IsLocal; new_INV_Invoice.IsActive = true; new_INV_Invoice.Casar = inv_InvoiceViewModal.Casar; new_INV_Invoice.TotalAmount = inv_InvoiceViewModal.TotalAmount; db.INV_Invoice.Add(new_INV_Invoice); int newInvoiceId = new_INV_Invoice.InvoiceID; List <INV_InvoiceItem> newList_INV_InvoiceItem = new List <INV_InvoiceItem>(); foreach (var item in inv_InvoiceViewModal.INV_InvoiceItems) { INV_InvoiceItem new_INV_InvoiceItem = new INV_InvoiceItem(); new_INV_InvoiceItem.InvoiceItemID = item.InvoiceItemID; new_INV_InvoiceItem.InvoiceID = newInvoiceId; new_INV_InvoiceItem.ItemID = item.ItemID; new_INV_InvoiceItem.Quantity = item.Quantity; new_INV_InvoiceItem.Created = DateTime.Now; new_INV_InvoiceItem.Modified = DateTime.Now; new_INV_InvoiceItem.Remarks = item.Remarks; new_INV_InvoiceItem.PricePerUnit = item.PricePerUnit; #region INV_ItemPrice INV_ItemPrice _iNV_ItemPrice = new INV_ItemPrice(); _iNV_ItemPrice = db.INV_ItemPrice.Where(M => M.ItemID == item.ItemID && M.PurchasePrice == item.PricePerUnit).OrderByDescending(o => o.Created).FirstOrDefault(); if (_iNV_ItemPrice == null) { _iNV_ItemPrice = new INV_ItemPrice(); _iNV_ItemPrice.ItemID = item.ItemID; _iNV_ItemPrice.PurchasePrice = item.PricePerUnit; _iNV_ItemPrice.Created = DateTime.Now; _iNV_ItemPrice.Modified = DateTime.Now; _iNV_ItemPrice.FinYearID = CommonConfig.GetFinYearID(); if (Session["UserID"] != null) { _iNV_ItemPrice.UserID = Convert.ToInt16(Session["UserID"].ToString()); } db.INV_ItemPrice.Add(_iNV_ItemPrice); } #endregion INV_ItemPrice INV_Item _INV_Item = new INV_Item(); _INV_Item = db.INV_Item.Where(i => i.ItemID == item.ItemID).FirstOrDefault(); if (_INV_Item != null) { if (_INV_Item.Quantity - item.Quantity < 0) { validMsg += "<br>Insufficient Stock for " + _INV_Item.ItemName; ModelState.AddModelError("Insufficient Stock", "Insufficient Stock for " + _INV_Item.ItemName); //return Json("failure", JsonRequestBehavior.AllowGet); } _INV_Item.Quantity = _INV_Item.Quantity - item.Quantity; INV_StockHistory new_INV_StockHistory = new INV_StockHistory(); new_INV_StockHistory.ItemID = item.ItemID; new_INV_StockHistory.OperationTypeID = 8; new_INV_StockHistory.ReferenceID = _NewInvoiceNo.ToString(); new_INV_StockHistory.Quantity = item.Quantity; if (Session["UserID"] != null) { new_INV_StockHistory.UserID = Convert.ToInt16(Session["UserID"].ToString()); } new_INV_StockHistory.Created = DateTime.Now; new_INV_StockHistory.Modified = DateTime.Now; new_INV_StockHistory.Remarks = "Issue"; new_INV_StockHistory.FinYearID = CommonConfig.GetFinYearID(); new_INV_StockHistory.IssueNumber = _NewInvoiceNo; db.INV_StockHistory.Add(new_INV_StockHistory); } newList_INV_InvoiceItem.Add(new_INV_InvoiceItem); } db.INV_InvoiceItem.AddRange(newList_INV_InvoiceItem); } } if (ModelState.IsValid) { db.SaveChanges(); return(Json("Sucess", JsonRequestBehavior.AllowGet)); } else { return(Json(validMsg, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { return(Json("failure", JsonRequestBehavior.AllowGet)); } }