public ActionResult Delete(ReasonViewModel vm) { if (ModelState.IsValid) { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); //string temp = (Request["Redirect"].ToString()); //first find the Purchase Order Object based on the ID. (sience this object need to marked to be deleted IE. ObjectState.Deleted) var SaleOrderHeader = _SaleOrderHeaderService.GetSaleOrderHeader(vm.id); //For Updating Enquiry Header and Lines so that it can be edited and deleted as needed. if (SaleOrderHeader.ReferenceDocId != null && SaleOrderHeader.ReferenceDocId != 0) { var SaleEnquiryHeader = (from H in context.SaleEnquiryHeader where H.SaleEnquiryHeaderId == SaleOrderHeader.ReferenceDocId && H.DocTypeId == SaleOrderHeader.ReferenceDocTypeId select H).FirstOrDefault(); if (SaleEnquiryHeader != null) { SaleEnquiryHeader Header = new SaleEnquiryHeaderService(_unitOfWork).Find(SaleEnquiryHeader.SaleEnquiryHeaderId); Header.LockReason = null; new SaleEnquiryHeaderService(_unitOfWork).Update(Header); IEnumerable <SaleEnquiryLine> LineList = new SaleEnquiryLineService(_unitOfWork).GetSaleEnquiryLineListForHeader(SaleEnquiryHeader.SaleEnquiryHeaderId); foreach (SaleEnquiryLine Line in LineList) { Line.LockReason = null; new SaleEnquiryLineService(_unitOfWork).Update(Line); } } } LogList.Add(new LogTypeViewModel { ExObj = SaleOrderHeader, }); //Then find all the Purchase Order Header Line associated with the above ProductType. var SaleOrderLine = new SaleOrderLineService(_unitOfWork).GetSaleOrderLineList(vm.id); List <int> StockIdList = new List <int>(); //Mark ObjectState.Delete to all the Purchase Order Lines. foreach (var item in SaleOrderLine) { if (item.StockId != null) { StockIdList.Add((int)item.StockId); } LogList.Add(new LogTypeViewModel { ExObj = item, }); new SaleOrderLineStatusService(_unitOfWork).Delete(item.SaleOrderLineId); new SaleOrderLineService(_unitOfWork).Delete(item.SaleOrderLineId); } foreach (var item in StockIdList) { if (item != null) { new StockService(_unitOfWork).DeleteStock((int)item); } } int?StockHeaderId = null; StockHeaderId = SaleOrderHeader.StockHeaderId; int LedgerHeaderId = SaleOrderHeader.LedgerHeaderId ?? 0; // Now delete the Sale Order Header new SaleOrderHeaderService(_unitOfWork).Delete(vm.id); // Now delete the Ledger & Ledger Header if (LedgerHeaderId != 0) { var LedgerList = new LedgerService(_unitOfWork).FindForLedgerHeader(LedgerHeaderId).ToList(); foreach (var item in LedgerList) { new LedgerService(_unitOfWork).Delete(item.LedgerId); } new LedgerHeaderService(_unitOfWork).Delete(LedgerHeaderId); } if (StockHeaderId != null) { new StockHeaderService(_unitOfWork).Delete((int)StockHeaderId); } XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); //Commit the DB try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; return(PartialView("_Reason", vm)); } //Logging Activity LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = SaleOrderHeader.DocTypeId, DocId = SaleOrderHeader.SaleOrderHeaderId, ActivityType = (int)ActivityTypeContants.Deleted, UserRemark = vm.Reason, DocNo = SaleOrderHeader.DocNo, xEModifications = Modifications, DocDate = SaleOrderHeader.DocDate, DocStatus = SaleOrderHeader.Status, })); return(Json(new { success = true })); } return(PartialView("_Reason", vm)); }
public JsonResult GetSaleOrderDocNoOnLoad(int SaleOrderLineId) { var temp = new SaleOrderLineService(_unitOfWork).GetSaleOrderLineVM(SaleOrderLineId); return(Json(temp)); }