//[ValidateAntiForgeryToken] public ActionResult DeletePost(SaleInvoiceReturnLineViewModel vm) { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); int?StockId = 0; SaleInvoiceReturnLine SaleInvoiceReturnLine = _SaleInvoiceReturnLineService.Find(vm.SaleInvoiceReturnLineId); LogList.Add(new LogTypeViewModel { ExObj = SaleInvoiceReturnLine, }); int?SaleDispatchReturnLineId = SaleInvoiceReturnLine.SaleDispatchReturnLineId; var chargeslist = new SaleInvoiceReturnLineChargeService(_unitOfWork).GetCalculationProductList(vm.SaleInvoiceReturnLineId); if (chargeslist != null) { foreach (var item in chargeslist) { new SaleInvoiceReturnLineChargeService(_unitOfWork).Delete(item.Id); } } if (vm.footercharges != null) { foreach (var item in vm.footercharges) { var footer = new SaleInvoiceReturnHeaderChargeService(_unitOfWork).Find(item.Id); footer.Rate = item.Rate; footer.Amount = item.Amount; new SaleInvoiceReturnHeaderChargeService(_unitOfWork).Update(footer); } } _SaleInvoiceReturnLineService.Delete(SaleInvoiceReturnLine.SaleInvoiceReturnLineId); SaleInvoiceReturnHeader header = new SaleInvoiceReturnHeaderService(_unitOfWork).Find(SaleInvoiceReturnLine.SaleInvoiceReturnHeaderId); int status = header.Status; if (header.Status != (int)StatusConstants.Drafted) { header.Status = (int)StatusConstants.Modified; new SaleInvoiceReturnHeaderService(_unitOfWork).Update(header); if (header.SaleDispatchReturnHeaderId.HasValue) { SaleDispatchReturnHeader DispatchHeader = new SaleDispatchReturnHeaderService(_unitOfWork).Find(header.SaleDispatchReturnHeaderId.Value); DispatchHeader.Status = header.Status; new SaleDispatchReturnHeaderService(_unitOfWork).Update(DispatchHeader); } } if (SaleDispatchReturnLineId != null) { SaleDispatchReturnLine Gline = new SaleDispatchReturnLineService(_unitOfWork).Find((int)SaleDispatchReturnLineId); if (Gline != null) { LogList.Add(new LogTypeViewModel { ExObj = Gline, }); StockId = Gline.StockId; new SaleDispatchReturnLineService(_unitOfWork).Delete(Gline); if (StockId != null) { new StockService(_unitOfWork).DeleteStock((int)StockId); } } } XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); return(PartialView("_Create", vm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = header.DocTypeId, DocId = header.SaleInvoiceReturnHeaderId, DocLineId = SaleInvoiceReturnLine.SaleInvoiceReturnLineId, ActivityType = (int)ActivityTypeContants.Deleted, DocNo = header.DocNo, xEModifications = Modifications, DocDate = header.DocDate, DocStatus = header.Status, })); return(Json(new { success = true })); }
//[ValidateAntiForgeryToken] public ActionResult _CreatePost(SaleInvoiceReturnLineViewModel svm) { SaleInvoiceReturnHeader temp = new SaleInvoiceReturnHeaderService(_unitOfWork).Find(svm.SaleInvoiceReturnHeaderId); var settings = new SaleInvoiceSettingService(_unitOfWork).GetSaleInvoiceSettingForDocument(temp.DocTypeId, temp.DivisionId, temp.SiteId); if (svm.SaleInvoiceReturnLineId <= 0) { ViewBag.LineMode = "Create"; } else { ViewBag.LineMode = "Edit"; } if (svm.SaleInvoiceReturnLineId <= 0) { decimal balqty = (from p in db.SaleInvoiceLine where p.SaleInvoiceLineId == svm.SaleInvoiceLineId select p.DealQty).FirstOrDefault(); if (balqty < svm.Qty) { ModelState.AddModelError("Qty", "Qty Exceeding Invoice Qty"); } if (svm.Qty == 0) { ModelState.AddModelError("Qty", "Please Check Qty"); } if (svm.SaleInvoiceLineId <= 0) { ModelState.AddModelError("SaleInvoiceLineId", "Sale Invoice field is required"); } if (ModelState.IsValid) { SaleInvoiceReturnLine s = Mapper.Map <SaleInvoiceReturnLineViewModel, SaleInvoiceReturnLine>(svm); s.Sr = _SaleInvoiceReturnLineService.GetMaxSr(s.SaleInvoiceReturnHeaderId); s.DiscountPer = svm.DiscountPer; s.CreatedDate = DateTime.Now; s.ModifiedDate = DateTime.Now; s.CreatedBy = User.Identity.Name; s.ModifiedBy = User.Identity.Name; if (temp.SaleDispatchReturnHeaderId.HasValue) { SaleDispatchReturnHeader SaleDispatchReturnHeader = new SaleDispatchReturnHeaderService(_unitOfWork).Find((int)temp.SaleDispatchReturnHeaderId); SaleDispatchReturnLine Gline = Mapper.Map <SaleInvoiceReturnLine, SaleDispatchReturnLine>(s); Gline.SaleDispatchLineId = new SaleInvoiceLineService(_unitOfWork).Find(s.SaleInvoiceLineId).SaleDispatchLineId; Gline.SaleDispatchReturnHeaderId = temp.SaleDispatchReturnHeaderId ?? 0; Gline.Qty = svm.Qty; Gline.Weight = svm.Weight; StockViewModel StockViewModel = new StockViewModel(); StockViewModel.StockHeaderId = SaleDispatchReturnHeader.StockHeaderId ?? 0; StockViewModel.DocHeaderId = SaleDispatchReturnHeader.SaleDispatchReturnHeaderId; StockViewModel.DocLineId = Gline.SaleDispatchReturnLineId; StockViewModel.DocTypeId = SaleDispatchReturnHeader.DocTypeId; StockViewModel.StockHeaderDocDate = SaleDispatchReturnHeader.DocDate; StockViewModel.StockDocDate = SaleDispatchReturnHeader.DocDate; StockViewModel.DocNo = SaleDispatchReturnHeader.DocNo; StockViewModel.DivisionId = SaleDispatchReturnHeader.DivisionId; StockViewModel.SiteId = SaleDispatchReturnHeader.SiteId; StockViewModel.CurrencyId = null; StockViewModel.HeaderProcessId = settings.ProcessId; StockViewModel.PersonId = SaleDispatchReturnHeader.BuyerId; StockViewModel.ProductId = svm.ProductId; StockViewModel.ProductUidId = svm.ProductUidId; StockViewModel.HeaderFromGodownId = null; StockViewModel.HeaderGodownId = SaleDispatchReturnHeader.GodownId; StockViewModel.GodownId = SaleDispatchReturnHeader.GodownId; StockViewModel.ProcessId = null; StockViewModel.LotNo = null; StockViewModel.CostCenterId = null; StockViewModel.Qty_Iss = 0; StockViewModel.Qty_Rec = Gline.Qty; StockViewModel.Weight_Iss = Gline.Weight; StockViewModel.Weight_Rec = 0; StockViewModel.Rate = null; StockViewModel.ExpiryDate = null; StockViewModel.Specification = svm.Specification; StockViewModel.Dimension1Id = svm.Dimension1Id; StockViewModel.Dimension2Id = svm.Dimension2Id; StockViewModel.Remark = svm.Remark; StockViewModel.Status = SaleDispatchReturnHeader.Status; StockViewModel.CreatedBy = SaleDispatchReturnHeader.CreatedBy; StockViewModel.CreatedDate = DateTime.Now; StockViewModel.ModifiedBy = SaleDispatchReturnHeader.ModifiedBy; StockViewModel.ModifiedDate = DateTime.Now; string StockPostingError = ""; StockPostingError = new StockService(_unitOfWork).StockPost(ref StockViewModel); if (StockPostingError != "") { ModelState.AddModelError("", StockPostingError); return(PartialView("_Create", svm)); } Gline.StockId = StockViewModel.StockId; Gline.ObjectState = Model.ObjectState.Added; new SaleDispatchReturnLineService(_unitOfWork).Create(Gline); s.SaleDispatchReturnLineId = Gline.SaleDispatchReturnLineId; if (StockViewModel != null) { if (SaleDispatchReturnHeader.StockHeaderId == null) { SaleDispatchReturnHeader.StockHeaderId = StockViewModel.StockHeaderId; } } if (SaleDispatchReturnHeader.Status != (int)StatusConstants.Drafted) { SaleDispatchReturnHeader.Status = (int)StatusConstants.Modified; } new SaleDispatchReturnHeaderService(_unitOfWork).Update(SaleDispatchReturnHeader); } s.ObjectState = Model.ObjectState.Added; _SaleInvoiceReturnLineService.Create(s); if (svm.linecharges != null) { foreach (var item in svm.linecharges) { item.LineTableId = s.SaleInvoiceReturnLineId; item.PersonID = temp.BuyerId; item.HeaderTableId = s.SaleInvoiceReturnHeaderId; item.ObjectState = Model.ObjectState.Added; new SaleInvoiceReturnLineChargeService(_unitOfWork).Create(item); } } if (svm.footercharges != null) { foreach (var item in svm.footercharges) { if (item.Id > 0) { var footercharge = new SaleInvoiceReturnHeaderChargeService(_unitOfWork).Find(item.Id); footercharge.Rate = item.Rate; footercharge.Amount = item.Amount; new SaleInvoiceReturnHeaderChargeService(_unitOfWork).Update(footercharge); } else { item.HeaderTableId = s.SaleInvoiceReturnHeaderId; item.PersonID = temp.BuyerId; item.ObjectState = Model.ObjectState.Added; new SaleInvoiceReturnHeaderChargeService(_unitOfWork).Create(item); } } } SaleInvoiceReturnHeader temp2 = new SaleInvoiceReturnHeaderService(_unitOfWork).Find(s.SaleInvoiceReturnHeaderId); if (temp2.Status != (int)StatusConstants.Drafted) { temp2.Status = (int)StatusConstants.Modified; } new SaleInvoiceReturnHeaderService(_unitOfWork).Update(temp2); try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); return(PartialView("_Create", svm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = temp.DocTypeId, DocId = temp.SaleInvoiceReturnHeaderId, DocLineId = s.SaleInvoiceReturnLineId, ActivityType = (int)ActivityTypeContants.Added, DocNo = temp.DocNo, DocDate = temp.DocDate, DocStatus = temp.Status, })); return(RedirectToAction("_Create", new { id = s.SaleInvoiceReturnHeaderId, sid = svm.BuyerId })); } return(PartialView("_Create", svm)); } else { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); int status = temp.Status; StringBuilder logstring = new StringBuilder(); SaleInvoiceReturnLine line = _SaleInvoiceReturnLineService.Find(svm.SaleInvoiceReturnLineId); SaleInvoiceReturnLine ExRec = new SaleInvoiceReturnLine(); ExRec = Mapper.Map <SaleInvoiceReturnLine>(line); decimal balqty = (from p in db.SaleInvoiceLine where p.SaleInvoiceLineId == svm.SaleInvoiceLineId select p.DealQty).FirstOrDefault(); if (balqty + line.Qty < svm.Qty) { ModelState.AddModelError("Qty", "Qty Exceeding Invoice Qty"); } if (ModelState.IsValid) { if (svm.Qty > 0) { line.DiscountPer = svm.DiscountPer; line.Remark = svm.Remark; line.Qty = svm.Qty; line.Weight = svm.Weight; line.DealQty = svm.DealQty; line.Amount = svm.Amount; line.ModifiedBy = User.Identity.Name; line.ModifiedDate = DateTime.Now; } _SaleInvoiceReturnLineService.Update(line); LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = line, }); if (temp.SaleDispatchReturnHeaderId.HasValue) { SaleDispatchReturnHeader SaleDispatchReturnHeader = new SaleDispatchReturnHeaderService(_unitOfWork).Find((int)temp.SaleDispatchReturnHeaderId); SaleDispatchReturnLine GLine = new SaleDispatchReturnLineService(_unitOfWork).Find(line.SaleDispatchReturnLineId ?? 0); SaleDispatchReturnLine ExRecR = new SaleDispatchReturnLine(); ExRecR = Mapper.Map <SaleDispatchReturnLine>(GLine); GLine.Remark = line.Remark; GLine.Qty = line.Qty; GLine.DealQty = line.DealQty; GLine.Weight = line.Weight; GLine.ObjectState = Model.ObjectState.Modified; new SaleDispatchReturnLineService(_unitOfWork).Update(GLine); LogList.Add(new LogTypeViewModel { ExObj = ExRecR, Obj = GLine, }); StockViewModel StockViewModel = new StockViewModel(); StockViewModel.StockHeaderId = SaleDispatchReturnHeader.StockHeaderId ?? 0; StockViewModel.StockId = GLine.StockId ?? 0; StockViewModel.DocHeaderId = SaleDispatchReturnHeader.SaleDispatchReturnHeaderId; StockViewModel.DocLineId = GLine.SaleDispatchLineId; StockViewModel.DocTypeId = SaleDispatchReturnHeader.DocTypeId; StockViewModel.StockHeaderDocDate = SaleDispatchReturnHeader.DocDate; StockViewModel.StockDocDate = SaleDispatchReturnHeader.DocDate; StockViewModel.DocNo = SaleDispatchReturnHeader.DocNo; StockViewModel.DivisionId = SaleDispatchReturnHeader.DivisionId; StockViewModel.SiteId = SaleDispatchReturnHeader.SiteId; StockViewModel.CurrencyId = null; StockViewModel.HeaderProcessId = settings.ProcessId; StockViewModel.PersonId = SaleDispatchReturnHeader.BuyerId; StockViewModel.ProductId = svm.ProductId; StockViewModel.ProductUidId = svm.ProductUidId; StockViewModel.HeaderFromGodownId = null; StockViewModel.HeaderGodownId = SaleDispatchReturnHeader.GodownId; StockViewModel.GodownId = SaleDispatchReturnHeader.GodownId; StockViewModel.ProcessId = null; StockViewModel.LotNo = null; StockViewModel.CostCenterId = null; StockViewModel.Qty_Iss = 0; StockViewModel.Qty_Rec = svm.Qty; StockViewModel.Weight_Iss = svm.Weight; StockViewModel.Weight_Rec = 0; StockViewModel.Rate = null; StockViewModel.ExpiryDate = null; StockViewModel.Specification = svm.Specification; StockViewModel.Dimension1Id = svm.Dimension1Id; StockViewModel.Dimension2Id = svm.Dimension2Id; StockViewModel.Remark = svm.Remark; StockViewModel.Status = SaleDispatchReturnHeader.Status; StockViewModel.CreatedBy = SaleDispatchReturnHeader.CreatedBy; StockViewModel.CreatedDate = SaleDispatchReturnHeader.CreatedDate; StockViewModel.ModifiedBy = User.Identity.Name; StockViewModel.ModifiedDate = DateTime.Now; string StockPostingError = ""; StockPostingError = new StockService(_unitOfWork).StockPost(ref StockViewModel); if (StockPostingError != "") { ModelState.AddModelError("", StockPostingError); return(PartialView("_Create", svm)); } if (SaleDispatchReturnHeader.Status != (int)StatusConstants.Drafted) { SaleDispatchReturnHeader.Status = (int)StatusConstants.Modified; new SaleDispatchReturnHeaderService(_unitOfWork).Update(SaleDispatchReturnHeader); } } if (temp.Status != (int)StatusConstants.Drafted) { temp.Status = (int)StatusConstants.Modified; new SaleInvoiceReturnHeaderService(_unitOfWork).Update(temp); } if (svm.linecharges != null) { foreach (var item in svm.linecharges) { var productcharge = new SaleInvoiceReturnLineChargeService(_unitOfWork).Find(item.Id); SaleInvoiceReturnLineCharge ExRecLine = new SaleInvoiceReturnLineCharge(); ExRecLine = Mapper.Map <SaleInvoiceReturnLineCharge>(productcharge); productcharge.Rate = item.Rate; productcharge.Amount = item.Amount; productcharge.DealQty = item.DealQty; new SaleInvoiceReturnLineChargeService(_unitOfWork).Update(productcharge); LogList.Add(new LogTypeViewModel { ExObj = ExRecLine, Obj = productcharge, }); } } if (svm.footercharges != null) { foreach (var item in svm.footercharges) { var footercharge = new SaleInvoiceReturnHeaderChargeService(_unitOfWork).Find(item.Id); SaleInvoiceReturnHeaderCharge ExRecLine = new SaleInvoiceReturnHeaderCharge(); ExRecLine = Mapper.Map <SaleInvoiceReturnHeaderCharge>(footercharge); footercharge.Rate = item.Rate; footercharge.Amount = item.Amount; new SaleInvoiceReturnHeaderChargeService(_unitOfWork).Update(footercharge); LogList.Add(new LogTypeViewModel { ExObj = ExRecLine, Obj = footercharge, }); } } XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); return(PartialView("_Create", svm)); } //Saving the Activity Log LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = temp.DocTypeId, DocId = line.SaleInvoiceReturnHeaderId, DocLineId = line.SaleInvoiceReturnLineId, ActivityType = (int)ActivityTypeContants.Modified, DocNo = temp.DocNo, xEModifications = Modifications, DocDate = temp.DocDate, DocStatus = temp.Status, })); //End of Saving the Activity Log return(Json(new { success = true })); } return(PartialView("_Create", svm)); } }