public ActionResult _ForIndent(int id, int sid) { PurchaseQuotationLineFilterViewModel vm = new PurchaseQuotationLineFilterViewModel(); PurchaseQuotationHeader Header = _PurchaseQuotationHeaderService.Find(id); PurchaseQuotationSetting Settings = new PurchaseQuotationSettingService(_unitOfWork).GetPurchaseQuotationSettingForDocument(Header.DocTypeId, Header.DivisionId, Header.SiteId); vm.PurchaseQuotationSettings = Mapper.Map <PurchaseQuotationSetting, PurchaseQuotationSettingsViewModel>(Settings); vm.PurchaseQuotationHeaderId = id; vm.SupplierId = sid; PrepareViewBag(null); return(PartialView("_IndentFilters", vm)); }
public ActionResult Post(PurchaseQuotationHeaderViewModel vm) { PurchaseQuotationHeader pt = AutoMapper.Mapper.Map <PurchaseQuotationHeaderViewModel, PurchaseQuotationHeader>(vm); //Getting Settings var settings = new PurchaseQuotationSettingService(_unitOfWork).GetPurchaseQuotationSettingForDocument(vm.DocTypeId, vm.DivisionId, vm.SiteId); if (vm.BillingAccountId <= 0) { ModelState.AddModelError("BillingAccountId", "The Billing Account field is required"); } #region BeforeSave bool BeforeSave = true; //try //{ // if (vm.PurchaseQuotationHeaderId <= 0) // BeforeSave = PurchaseQuotationReceiveDocEvents.beforeHeaderSaveEvent(this, new PurchaseEventArgs(vm.PurchaseQuotationHeaderId, EventModeConstants.Add), ref db); // else // BeforeSave = PurchaseQuotationReceiveDocEvents.beforeHeaderSaveEvent(this, new PurchaseEventArgs(vm.PurchaseQuotationHeaderId, EventModeConstants.Edit), ref db); //} //catch (Exception ex) //{ // string message = _exception.HandleException(ex); // TempData["CSEXC"] += message; // EventException = true; //} //if (!BeforeSave) // TempData["CSEXC"] += "Failed validation before save"; #endregion #region DocTypeTimeLineValidation try { if (vm.PurchaseQuotationHeaderId <= 0) { TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(vm), DocumentTimePlanTypeConstants.Create, User.Identity.Name, out ExceptionMsg, out Continue); } else { TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(vm), 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 && BeforeSave && !EventException && (TimePlanValidation || Continue)) { #region CreateRecord if (vm.PurchaseQuotationHeaderId <= 0) { pt.CalculateDiscountOnRate = vm.CalculateDiscountOnRate; pt.DivisionId = vm.DivisionId; pt.SiteId = vm.SiteId; pt.CreatedDate = DateTime.Now; pt.ModifiedDate = DateTime.Now; pt.CreatedBy = User.Identity.Name; pt.ModifiedBy = User.Identity.Name; pt.ObjectState = Model.ObjectState.Added; db.PurchaseQuotationHeader.Add(pt); //_PurchaseQuotationHeaderService.Create(pt); //try //{ // PurchaseQuotationReceiveDocEvents.onHeaderSaveEvent(this, new PurchaseEventArgs(pt.PurchaseQuotationHeaderId, EventModeConstants.Add), ref db); //} //catch (Exception ex) //{ // string message = _exception.HandleException(ex); // TempData["CSEXC"] += message; // EventException = true; //} try { if (EventException) { throw new Exception(); } db.SaveChanges(); //_unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; PrepareViewBag(vm.DocTypeId); ViewBag.Mode = "Add"; return(View("Create", vm)); } //try //{ // PurchaseQuotationReceiveDocEvents.afterHeaderSaveEvent(this, new PurchaseEventArgs(pt.PurchaseQuotationHeaderId, EventModeConstants.Add), ref db); //} //catch (Exception ex) //{ // string message = _exception.HandleException(ex); // TempData["CSEXC"] += message; //} LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = pt.DocTypeId, DocId = pt.PurchaseQuotationHeaderId, ActivityType = (int)ActivityTypeContants.Added, DocNo = pt.DocNo, DocDate = pt.DocDate, DocStatus = pt.Status, })); //return Edit(pt.PurchaseQuotationHeaderId).Success("Data saved successfully"); return(RedirectToAction("Modify", new { id = pt.PurchaseQuotationHeaderId }).Success("Data saved Successfully")); } #endregion #region EditRecord else { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); PurchaseQuotationHeader temp = _PurchaseQuotationHeaderService.Find(pt.PurchaseQuotationHeaderId); PurchaseQuotationHeader ExRec = new PurchaseQuotationHeader(); ExRec = Mapper.Map <PurchaseQuotationHeader>(temp); int status = temp.Status; if (temp.Status != (int)StatusConstants.Drafted) { temp.Status = (int)StatusConstants.Modified; } temp.DocTypeId = pt.DocTypeId; temp.CurrencyId = pt.CurrencyId; temp.VendorQuotationNo = pt.VendorQuotationNo; temp.VendorQuotationDate = pt.VendorQuotationDate; temp.TermsAndConditions = pt.TermsAndConditions; temp.SalesTaxGroupId = pt.SalesTaxGroupId; temp.UnitConversionForId = pt.UnitConversionForId; temp.CreditDays = pt.CreditDays; temp.Remark = pt.Remark; temp.SupplierId = pt.SupplierId; temp.BillingAccountId = pt.BillingAccountId; temp.DocDate = pt.DocDate; temp.DocNo = pt.DocNo; temp.ModifiedDate = DateTime.Now; temp.ModifiedBy = User.Identity.Name; temp.ObjectState = Model.ObjectState.Modified; db.PurchaseQuotationHeader.Add(temp); //_PurchaseQuotationHeaderService.Update(temp); LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = temp, }); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); //try //{ // PurchaseQuotationReceiveDocEvents.onHeaderSaveEvent(this, new PurchaseEventArgs(temp.PurchaseQuotationHeaderId, EventModeConstants.Edit), ref db); //} //catch (Exception ex) //{ // string message = _exception.HandleException(ex); // TempData["CSEXC"] += message; // EventException = true; //} try { if (EventException) { throw new Exception(); } db.SaveChanges(); //_unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; PrepareViewBag(vm.DocTypeId); ViewBag.Mode = "Edit"; return(View("Create", pt)); } //try //{ // PurchaseQuotationReceiveDocEvents.afterHeaderSaveEvent(this, new PurchaseEventArgs(temp.PurchaseQuotationHeaderId, EventModeConstants.Edit), ref db); //} //catch (Exception ex) //{ // string message = _exception.HandleException(ex); // TempData["CSEXC"] += message; //} LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = temp.DocTypeId, DocId = temp.PurchaseQuotationHeaderId, ActivityType = (int)ActivityTypeContants.Modified, DocNo = temp.DocNo, xEModifications = Modifications, DocDate = temp.DocDate, DocStatus = temp.Status, })); return(RedirectToAction("Index", new { id = vm.DocTypeId }).Success("Data saved successfully")); } #endregion } PrepareViewBag(vm.DocTypeId); ViewBag.Mode = "Add"; return(View("Create", vm)); }