public ActionResult _ResultsPost(PurchaseIndentCancelMasterDetailModel vm) { int Serial = _PurchaseIndentCancelLineService.GetMaxSr(vm.PurchaseIndentCancelViewModels.FirstOrDefault().PurchaseIndentCancelHeaderId); bool BeforeSave = true; try { BeforeSave = PurchaseIndentCancelDocEvents.beforeLineSaveBulkEvent(this, new PurchaseEventArgs(vm.PurchaseIndentCancelViewModels.FirstOrDefault().PurchaseIndentCancelHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } if (!BeforeSave) { ModelState.AddModelError("", "Validation failed before save"); } if (ModelState.IsValid && BeforeSave && !EventException) { foreach (var item in vm.PurchaseIndentCancelViewModels) { decimal balqty = (from p in db.ViewPurchaseIndentBalance where p.PurchaseIndentLineId == item.PurchaseIndentLineId select p.BalanceQty).FirstOrDefault(); if (balqty < item.Qty) { ModelState.AddModelError("", "Qty Exceeding Balance Qty"); return(PartialView("_Results", vm)); } if (item.Qty > 0) { PurchaseIndentCancelLine line = new PurchaseIndentCancelLine(); line.PurchaseIndentCancelHeaderId = item.PurchaseIndentCancelHeaderId; line.PurchaseIndentLineId = item.PurchaseIndentLineId; line.Qty = item.Qty; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = User.Identity.Name; line.ModifiedBy = User.Identity.Name; line.ObjectState = Model.ObjectState.Added; db.PurchaseIndentCancelLine.Add(line); //_PurchaseIndentCancelLineService.Create(line); } } PurchaseIndentCancelHeader Header = db.PurchaseIndentCancelHeader.Find(vm.PurchaseIndentCancelViewModels.FirstOrDefault().PurchaseIndentCancelHeaderId); if (Header.Status != (int)StatusConstants.Drafted && Header.Status != (int)StatusConstants.Import) { Header.Status = (int)StatusConstants.Modified; Header.ModifiedBy = User.Identity.Name; Header.ModifiedDate = DateTime.Now; Header.ObjectState = Model.ObjectState.Modified; db.PurchaseIndentCancelHeader.Add(Header); } try { PurchaseIndentCancelDocEvents.onLineSaveBulkEvent(this, new PurchaseEventArgs(vm.PurchaseIndentCancelViewModels.FirstOrDefault().PurchaseIndentCancelHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); //_unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; return(PartialView("_Results", vm)); } try { PurchaseIndentCancelDocEvents.afterLineSaveBulkEvent(this, new PurchaseEventArgs(vm.PurchaseIndentCancelViewModels.FirstOrDefault().PurchaseIndentCancelHeaderId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = Header.DocTypeId, DocId = Header.PurchaseIndentCancelHeaderId, ActivityType = (int)ActivityTypeContants.MultipleCreate, DocNo = Header.DocNo, DocDate = Header.DocDate, DocStatus = Header.Status, })); return(Json(new { success = true })); } return(PartialView("_Results", vm)); }
public ActionResult _CreatePost(PurchaseIndentCancelLineViewModel svm) { if (svm.PurchaseIndentCancelLineId <= 0) { ViewBag.LineMode = "Create"; } else { ViewBag.LineMode = "Edit"; } bool BeforeSave = true; try { if (svm.PurchaseIndentLineId <= 0) { BeforeSave = PurchaseIndentCancelDocEvents.beforeLineSaveEvent(this, new PurchaseEventArgs(svm.PurchaseIndentCancelHeaderId, EventModeConstants.Add), ref db); } else { BeforeSave = PurchaseIndentCancelDocEvents.beforeLineSaveEvent(this, new PurchaseEventArgs(svm.PurchaseIndentCancelHeaderId, EventModeConstants.Edit), ref db); } } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } if (!BeforeSave) { ModelState.AddModelError("", "Validation failed before save."); } if (svm.PurchaseIndentCancelLineId <= 0) { PurchaseIndentCancelLine s = new PurchaseIndentCancelLine(); decimal balqty = (from p in db.ViewPurchaseIndentBalance where p.PurchaseIndentLineId == svm.PurchaseIndentLineId select p.BalanceQty).FirstOrDefault(); if (balqty < svm.Qty) { ModelState.AddModelError("Qty", "Qty Exceeding Balance Qty"); } if (svm.Qty == 0) { ModelState.AddModelError("Qty", "Please Check Qty"); } if (svm.PurchaseIndentLineId <= 0) { ModelState.AddModelError("PurchaseIndentLineId", "The Purchase Indent field is required"); } if (ModelState.IsValid && BeforeSave && !EventException) { s.PurchaseIndentCancelHeaderId = svm.PurchaseIndentCancelHeaderId; s.PurchaseIndentLineId = svm.PurchaseIndentLineId; s.Qty = svm.Qty; s.CreatedDate = DateTime.Now; s.ModifiedDate = DateTime.Now; s.Sr = _PurchaseIndentCancelLineService.GetMaxSr(s.PurchaseIndentCancelHeaderId); s.CreatedBy = User.Identity.Name; s.ModifiedBy = User.Identity.Name; //_PurchaseIndentCancelLineService.Create(s); s.ObjectState = Model.ObjectState.Added; db.PurchaseIndentCancelLine.Add(s); PurchaseIndentCancelHeader temp2 = new PurchaseIndentCancelHeaderService(_unitOfWork).Find(s.PurchaseIndentCancelHeaderId); if (temp2.Status != (int)StatusConstants.Drafted && temp2.Status != (int)StatusConstants.Import) { temp2.Status = (int)StatusConstants.Modified; temp2.ModifiedBy = User.Identity.Name; temp2.ModifiedDate = DateTime.Now; temp2.ObjectState = Model.ObjectState.Modified; db.PurchaseIndentCancelHeader.Add(temp2); //new PurchaseIndentCancelHeaderService(_unitOfWork).Update(temp2); } try { PurchaseIndentCancelDocEvents.onLineSaveEvent(this, new PurchaseEventArgs(s.PurchaseIndentCancelHeaderId, s.PurchaseIndentCancelLineId, EventModeConstants.Add), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); //_unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; return(PartialView("_Create", svm)); } try { PurchaseIndentCancelDocEvents.afterLineSaveEvent(this, new PurchaseEventArgs(s.PurchaseIndentCancelHeaderId, s.PurchaseIndentCancelLineId, EventModeConstants.Add), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = temp2.DocTypeId, DocId = temp2.PurchaseIndentCancelHeaderId, DocLineId = s.PurchaseIndentCancelLineId, ActivityType = (int)ActivityTypeContants.Added, DocNo = temp2.DocNo, DocDate = temp2.DocDate, DocStatus = temp2.Status, })); return(RedirectToAction("_Create", new { id = s.PurchaseIndentCancelHeaderId })); } return(PartialView("_Create", svm)); } else { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); PurchaseIndentCancelHeader temp = new PurchaseIndentCancelHeaderService(_unitOfWork).Find(svm.PurchaseIndentCancelHeaderId); int status = temp.Status; StringBuilder logstring = new StringBuilder(); PurchaseIndentCancelLine s = _PurchaseIndentCancelLineService.Find(svm.PurchaseIndentCancelLineId); PurchaseIndentCancelLine ExRec = new PurchaseIndentCancelLine(); ExRec = Mapper.Map <PurchaseIndentCancelLine>(s); decimal balqty = (from p in db.ViewPurchaseIndentBalance where p.PurchaseIndentLineId == svm.PurchaseIndentLineId select p.BalanceQty).FirstOrDefault(); if (balqty + s.Qty < svm.Qty) { ModelState.AddModelError("Qty", "Qty Exceeding Balance Qty"); } if (ModelState.IsValid && BeforeSave && !EventException) { if (svm.Qty > 0) { s.Qty = svm.Qty; s.ModifiedBy = User.Identity.Name; s.ModifiedDate = DateTime.Now; } s.ObjectState = Model.ObjectState.Modified; db.PurchaseIndentCancelLine.Add(s); //_PurchaseIndentCancelLineService.Update(s); if (temp.Status != (int)StatusConstants.Drafted && temp.Status != (int)StatusConstants.Import) { temp.Status = (int)StatusConstants.Modified; //new PurchaseIndentCancelHeaderService(_unitOfWork).Update(temp); temp.ModifiedDate = DateTime.Now; temp.ModifiedBy = User.Identity.Name; temp.ObjectState = Model.ObjectState.Modified; db.PurchaseIndentCancelHeader.Add(temp); } LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = s, }); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { PurchaseIndentCancelDocEvents.onLineSaveEvent(this, new PurchaseEventArgs(s.PurchaseIndentCancelHeaderId, s.PurchaseIndentCancelLineId, EventModeConstants.Edit), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } try { if (EventException) { throw new Exception(); } db.SaveChanges(); //_unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; return(PartialView("_Create", svm)); } try { PurchaseIndentCancelDocEvents.afterLineSaveEvent(this, new PurchaseEventArgs(s.PurchaseIndentCancelHeaderId, s.PurchaseIndentCancelLineId, EventModeConstants.Edit), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } //SAving the Activity Log:: LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = temp.DocTypeId, DocId = s.PurchaseIndentCancelHeaderId, DocLineId = s.PurchaseIndentCancelLineId, ActivityType = (int)ActivityTypeContants.Modified, DocNo = temp.DocNo, xEModifications = Modifications, DocDate = temp.DocDate, DocStatus = temp.Status, })); return(Json(new { success = true })); } return(PartialView("_Create", svm)); } }
public ActionResult DeletePost(PurchaseIndentCancelLineViewModel vm) { bool BeforeSave = true; try { BeforeSave = PurchaseIndentCancelDocEvents.beforeLineDeleteEvent(this, new PurchaseEventArgs(vm.PurchaseIndentCancelHeaderId, vm.PurchaseIndentCancelLineId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; EventException = true; } if (!BeforeSave) { TempData["CSEXC"] += "Validation failed before delete."; } if (BeforeSave && !EventException) { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); PurchaseIndentCancelLine IndentCancelLine = db.PurchaseIndentCancelLine.Find(vm.PurchaseIndentCancelLineId); try { PurchaseIndentCancelDocEvents.onLineDeleteEvent(this, new PurchaseEventArgs(IndentCancelLine.PurchaseIndentCancelHeaderId, IndentCancelLine.PurchaseIndentCancelLineId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; EventException = true; } LogList.Add(new LogTypeViewModel { ExObj = Mapper.Map <PurchaseIndentCancelLine>(IndentCancelLine), }); IndentCancelLine.ObjectState = Model.ObjectState.Deleted; db.PurchaseIndentCancelLine.Remove(IndentCancelLine); //_PurchaseIndentCancelLineService.Delete(vm.PurchaseIndentCancelLineId); PurchaseIndentCancelHeader header = new PurchaseIndentCancelHeaderService(_unitOfWork).Find(IndentCancelLine.PurchaseIndentCancelHeaderId); if (header.Status != (int)StatusConstants.Drafted) { header.Status = (int)StatusConstants.Modified; //new PurchaseIndentCancelHeaderService(_unitOfWork).Update(header); header.ModifiedBy = User.Identity.Name; header.ModifiedDate = DateTime.Now; header.ObjectState = Model.ObjectState.Modified; db.PurchaseIndentCancelHeader.Add(header); } XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { if (EventException) { throw new Exception(); } db.SaveChanges(); //_unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXCL"] += message; return(PartialView("_Create", vm)); } try { PurchaseIndentCancelDocEvents.afterLineDeleteEvent(this, new PurchaseEventArgs(IndentCancelLine.PurchaseIndentCancelHeaderId, IndentCancelLine.PurchaseIndentCancelLineId), ref db); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = header.DocTypeId, DocId = IndentCancelLine.PurchaseIndentCancelHeaderId, DocLineId = IndentCancelLine.PurchaseIndentLineId, ActivityType = (int)ActivityTypeContants.Deleted, DocNo = header.DocNo, xEModifications = Modifications, DocDate = header.DocDate, DocStatus = header.Status, })); } return(Json(new { success = true })); }
public ActionResult Post(SaleDeliveryHeaderViewModel svm) { bool TimePlanValidation = true; string ExceptionMsg = ""; bool Continue = true; SaleDeliveryHeader s = Mapper.Map <SaleDeliveryHeaderViewModel, SaleDeliveryHeader>(svm); List <SaleDeliveryWizardViewModel> SaleInvoiceAndQtys = (List <SaleDeliveryWizardViewModel>)System.Web.HttpContext.Current.Session["PendingInvoiceForSaleDelivery"]; if (svm.SaleDeliverySettings != null) { //if (svm.SaleDeliverySettings.isMandatoryCostCenter == true && (string.IsNullOrEmpty(svm.CostCenterName))) //{ // ModelState.AddModelError("CostCenterName", "The CostCenter field is required"); //} } if (SaleInvoiceAndQtys.Count() <= 0) { ModelState.AddModelError("", "No Records Selected"); } int SaleToBuyerCnt = (from l in SaleInvoiceAndQtys group l by l.SaleToBuyerId into g select new { SaleToBuyerId = g.Key, }).Distinct().Count(); if (SaleToBuyerCnt > 1) { ModelState.AddModelError("", "Select any one Buyer Orders."); } List <SaleDeliveryLine> BarCodesToUpdate = new List <SaleDeliveryLine>(); bool CostCenterGenerated = false; #region DocTypeTimeLineValidation try { if (svm.SaleDeliveryHeaderId <= 0) { TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(svm), DocumentTimePlanTypeConstants.Create, User.Identity.Name, out ExceptionMsg, out Continue); } else { TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(svm), DocumentTimePlanTypeConstants.Modify, User.Identity.Name, out ExceptionMsg, out Continue); } } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; TimePlanValidation = false; } if (!TimePlanValidation) { TempData["CSEXC"] += ExceptionMsg; } #endregion if (ModelState.IsValid && (TimePlanValidation || Continue)) { if (svm.SaleDeliveryHeaderId <= 0) { if (SaleInvoiceAndQtys.Count() > 0) { s.CreatedDate = DateTime.Now; s.ModifiedDate = DateTime.Now; s.CreatedBy = User.Identity.Name; s.ModifiedBy = User.Identity.Name; s.Status = (int)StatusConstants.Drafted; _SaleDeliveryHeaderService.Create(s); int Cnt = 0; int Sr = 0; int pk = 0; SaleDeliverySetting Settings = new SaleDeliverySettingService(_unitOfWork).GetSaleDeliverySettingForDocument(s.DocTypeId, s.DivisionId, s.SiteId); var SaleInvoiceLineIds = SaleInvoiceAndQtys.Select(m => m.SaleInvoiceLineId).ToArray(); var BalQtyandUnits = (from p in db.ViewSaleInvoiceBalanceForDelivery join t in db.Product on p.ProductId equals t.ProductId where SaleInvoiceLineIds.Contains(p.SaleInvoiceLineId) select new { BalQty = p.BalanceQty, SaleInvoiceLineId = p.SaleInvoiceLineId, UnitId = t.UnitId, }).ToList(); if (ModelState.IsValid) { foreach (var SelectedSaleInvoice in SaleInvoiceAndQtys) { if (SelectedSaleInvoice.SaleInvoiceLineId > 0) { var SaleInvoiceLine = new SaleInvoiceLineService(_unitOfWork).Find((SelectedSaleInvoice.SaleInvoiceLineId)); var Product = new ProductService(_unitOfWork).Find(SaleInvoiceLine.ProductId); var bal = BalQtyandUnits.Where(m => m.SaleInvoiceLineId == SelectedSaleInvoice.SaleInvoiceLineId).FirstOrDefault(); if (SelectedSaleInvoice.Qty <= bal.BalQty) { SaleDeliveryLine line = new SaleDeliveryLine(); line.SaleDeliveryHeaderId = s.SaleDeliveryHeaderId; line.SaleInvoiceLineId = SaleInvoiceLine.SaleInvoiceLineId; line.Qty = SelectedSaleInvoice.Qty; line.UnitConversionMultiplier = SaleInvoiceLine.UnitConversionMultiplier ?? 1; line.DealQty = SelectedSaleInvoice.Qty * line.UnitConversionMultiplier; line.DealUnitId = SaleInvoiceLine.DealUnitId; line.Sr = Sr++; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = User.Identity.Name; line.ModifiedBy = User.Identity.Name; line.SaleDeliveryLineId = pk; line.ObjectState = Model.ObjectState.Added; new SaleDeliveryLineService(_unitOfWork).Create(line); pk++; Cnt = Cnt + 1; } } } } string Errormessage = ""; try { _unitOfWork.Save(); } catch (Exception ex) { Errormessage = _exception.HandleException(ex); ModelState.AddModelError("", Errormessage); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = s.DocTypeId, DocId = s.SaleDeliveryHeaderId, ActivityType = (int)ActivityTypeContants.WizardCreate, DocNo = s.DocNo, DocDate = s.DocDate, DocStatus = s.Status, })); System.Web.HttpContext.Current.Session.Remove("PendingInvoiceForSaleDelivery"); return(Redirect(System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/SaleDeliveryHeader/Submit/" + s.SaleDeliveryHeaderId)); } else { return(Redirect(System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/SaleDeliveryHeader/Index/" + s.DocTypeId)); } } else { } } PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); }