public ActionResult GetSaleOrderForProduct(string searchTerm, int pageSize, int pageNum, int PersonId)//DocTypeId { var Query = new SaleDispatchLineService(_unitOfWork).GetSaleOrderHelpListForProduct(PersonId, searchTerm); var temp = Query.Skip(pageSize * (pageNum - 1)) .Take(pageSize) .ToList(); var count = Query.Count(); ComboBoxPagedResult Data = new ComboBoxPagedResult(); Data.Results = temp; Data.Total = count; return(new JsonpResult { Data = Data, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }
public ActionResult _CreatePost(SaleDispatchReturnLineViewModel svm) { if (svm.SaleDispatchReturnLineId <= 0) { ViewBag.LineMode = "Create"; } else { ViewBag.LineMode = "Edit"; } bool BeforeSave = true; //try //{ // if (svm.SaleDispatchReturnLineId <= 0) // BeforeSave = SaleDispatchReturnDocEvents.beforeLineSaveEvent(this, new SaleEventArgs(svm.SaleDispatchReturnHeaderId, EventModeConstants.Add), ref db); // else // BeforeSave = SaleDispatchReturnDocEvents.beforeLineSaveEvent(this, new SaleEventArgs(svm.SaleDispatchReturnHeaderId, 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.SaleDispatchReturnLineId <= 0) { SaleDispatchReturnHeader Header = new SaleDispatchReturnHeaderService(_unitOfWork).Find(svm.SaleDispatchReturnHeaderId); decimal balqty = (from p in db.SaleDispatchLine join t in db.PackingLine on p.PackingLineId equals t.PackingLineId where p.SaleDispatchLineId == svm.SaleDispatchLineId select t.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.SaleDispatchLineId <= 0) { ModelState.AddModelError("SaleDispatchLineId", "Sale Invoice field is required"); } if (svm.DealQty <= 0) { ModelState.AddModelError("DealQty", "DealQty field is required"); } if (ModelState.IsValid && BeforeSave && !EventException) { int ProcessId = new ProcessService(_unitOfWork).Find(ProcessConstants.FullFinishing).ProcessId; SaleDispatchReturnLine Line = Mapper.Map <SaleDispatchReturnLineViewModel, SaleDispatchReturnLine>(svm); StockViewModel StockViewModel = new StockViewModel(); StockViewModel.StockHeaderId = Header.StockHeaderId ?? 0; StockViewModel.DocHeaderId = Header.SaleDispatchReturnHeaderId; StockViewModel.DocLineId = Line.SaleDispatchReturnLineId; StockViewModel.DocTypeId = Header.DocTypeId; StockViewModel.StockHeaderDocDate = Header.DocDate; StockViewModel.StockDocDate = Header.DocDate; StockViewModel.DocNo = Header.DocNo; StockViewModel.DivisionId = Header.DivisionId; StockViewModel.SiteId = Header.SiteId; StockViewModel.CurrencyId = null; StockViewModel.HeaderProcessId = ProcessId; StockViewModel.PersonId = Header.BuyerId; StockViewModel.ProductId = svm.ProductId; StockViewModel.HeaderFromGodownId = null; StockViewModel.HeaderGodownId = Header.GodownId; StockViewModel.GodownId = Header.GodownId; StockViewModel.ProcessId = ProcessId; StockViewModel.LotNo = null; StockViewModel.CostCenterId = null; StockViewModel.Qty_Iss = Line.Qty; StockViewModel.Qty_Rec = 0; StockViewModel.Rate = null; StockViewModel.ExpiryDate = null; StockViewModel.Specification = svm.Specification; StockViewModel.Dimension1Id = svm.Dimension1Id; StockViewModel.Dimension2Id = svm.Dimension2Id; StockViewModel.ProductUidId = svm.ProductUidId; StockViewModel.Remark = Line.Remark; StockViewModel.Status = Header.Status; StockViewModel.CreatedBy = Header.CreatedBy; StockViewModel.CreatedDate = DateTime.Now; StockViewModel.ModifiedBy = Header.ModifiedBy; StockViewModel.ModifiedDate = DateTime.Now; string StockPostingError = ""; StockPostingError = new StockService(_unitOfWork).StockPostDB(ref StockViewModel, ref db); if (StockPostingError != "") { ModelState.AddModelError("", StockPostingError); return(PartialView("_Create", svm)); } Line.StockId = StockViewModel.StockId; Line.Sr = _SaleDispatchReturnLineService.GetMaxSr(svm.SaleDispatchReturnHeaderId); Line.CreatedDate = DateTime.Now; Line.ModifiedDate = DateTime.Now; Line.CreatedBy = User.Identity.Name; Line.ModifiedBy = User.Identity.Name; Line.ObjectState = Model.ObjectState.Added; var SaleDispatchLine = new SaleDispatchLineService(_unitOfWork).Find(Line.SaleDispatchLineId); Line.ObjectState = Model.ObjectState.Added; db.SaleDispatchReturnLine.Add(Line); //_SaleDispatchReturnLineService.Create(Line); //new SaleOrderLineStatusService(_unitOfWork).UpdateSaleQtyOnReturn(Line.SaleDispatchLineId, Line.SaleDispatchReturnLineId, Header.DocDate, Line.Qty, ref db, true); 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; } if (StockViewModel != null) { if (Header.StockHeaderId == null) { Header.StockHeaderId = StockViewModel.StockHeaderId; } } Header.ObjectState = Model.ObjectState.Modified; db.SaleDispatchReturnHeader.Add(Header); //new SaleDispatchReturnHeaderService(_unitOfWork).Update(Header); //try //{ // SaleDispatchReturnDocEvents.onLineSaveEvent(this, new SaleEventArgs(Line.SaleDispatchReturnHeaderId, Line.SaleDispatchReturnLineId, 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 //{ // SaleDispatchReturnDocEvents.afterLineSaveEvent(this, new SaleEventArgs(Line.SaleDispatchReturnHeaderId, Line.SaleDispatchReturnLineId, EventModeConstants.Add), ref db); //} //catch (Exception ex) //{ // string message = _exception.HandleException(ex); // TempData["CSEXCL"] += message; //} LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = Header.DocTypeId, DocId = Header.SaleDispatchReturnHeaderId, DocLineId = Line.SaleDispatchReturnLineId, ActivityType = (int)ActivityTypeContants.Added, DocNo = Header.DocNo, DocDate = Header.DocDate, DocStatus = Header.Status, })); return(RedirectToAction("_Create", new { id = Line.SaleDispatchReturnHeaderId, sid = svm.BuyerId })); } return(PartialView("_Create", svm)); } else { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); SaleDispatchReturnHeader Header = new SaleDispatchReturnHeaderService(_unitOfWork).Find(svm.SaleDispatchReturnHeaderId); int status = Header.Status; StringBuilder logstring = new StringBuilder(); SaleDispatchReturnLine Line = _SaleDispatchReturnLineService.Find(svm.SaleDispatchReturnLineId); SaleDispatchReturnLine ExRec = new SaleDispatchReturnLine(); ExRec = Mapper.Map <SaleDispatchReturnLine>(Line); decimal balqty = (from p in db.SaleDispatchLine join t in db.PackingLine on p.PackingLineId equals t.PackingLineId where p.SaleDispatchLineId == svm.SaleDispatchLineId select t.DealQty).FirstOrDefault(); if (balqty + Line.Qty < svm.Qty) { ModelState.AddModelError("Qty", "Qty Exceeding Invoice Qty"); } if (svm.DealQty <= 0) { ModelState.AddModelError("DealQty", "DealQty field is required"); } if (ModelState.IsValid) { int ProcessId = new ProcessService(_unitOfWork).Find(ProcessConstants.FullFinishing).ProcessId; Line.Remark = svm.Remark; Line.Qty = svm.Qty; Line.DealQty = svm.DealQty; Line.ModifiedBy = User.Identity.Name; Line.ModifiedDate = DateTime.Now; Line.ObjectState = Model.ObjectState.Modified; db.SaleDispatchReturnLine.Add(Line); //_SaleDispatchReturnLineService.Update(Line); LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = Line, }); //new SaleOrderLineStatusService(_unitOfWork).UpdateSaleQtyOnReturn(Line.SaleDispatchLineId, Line.SaleDispatchReturnLineId, Header.DocDate, Line.Qty, ref db, true); StockViewModel StockViewModel = new StockViewModel(); StockViewModel.StockHeaderId = Header.StockHeaderId ?? 0; StockViewModel.StockId = Line.StockId ?? 0; StockViewModel.DocHeaderId = Header.SaleDispatchReturnHeaderId; StockViewModel.DocLineId = Line.SaleDispatchLineId; StockViewModel.DocTypeId = Header.DocTypeId; StockViewModel.StockHeaderDocDate = Header.DocDate; StockViewModel.StockDocDate = Header.DocDate; StockViewModel.DocNo = Header.DocNo; StockViewModel.DivisionId = Header.DivisionId; StockViewModel.SiteId = Header.SiteId; StockViewModel.CurrencyId = null; StockViewModel.HeaderProcessId = ProcessId; StockViewModel.PersonId = Header.BuyerId; StockViewModel.ProductId = svm.ProductId; StockViewModel.HeaderFromGodownId = null; StockViewModel.HeaderGodownId = Header.GodownId; StockViewModel.GodownId = Header.GodownId; StockViewModel.ProcessId = ProcessId; StockViewModel.LotNo = null; StockViewModel.CostCenterId = null; StockViewModel.Qty_Iss = svm.Qty; StockViewModel.Qty_Rec = 0; StockViewModel.Rate = null; StockViewModel.ExpiryDate = null; StockViewModel.Specification = svm.Specification; StockViewModel.Dimension1Id = svm.Dimension1Id; StockViewModel.Dimension2Id = svm.Dimension2Id; StockViewModel.ProductUidId = svm.ProductUidId; StockViewModel.Remark = Line.Remark; StockViewModel.Status = Header.Status; StockViewModel.CreatedBy = Header.CreatedBy; StockViewModel.CreatedDate = Header.CreatedDate; StockViewModel.ModifiedBy = User.Identity.Name; StockViewModel.ModifiedDate = DateTime.Now; string StockPostingError = ""; StockPostingError = new StockService(_unitOfWork).StockPostDB(ref StockViewModel, ref db); if (StockPostingError != "") { ModelState.AddModelError("", StockPostingError); return(PartialView("_Create", svm)); } if (Header.Status != (int)StatusConstants.Drafted && Header.Status != (int)StatusConstants.Import) { Header.Status = (int)StatusConstants.Modified; Header.ModifiedDate = DateTime.Now; Header.ModifiedBy = User.Identity.Name; //new SaleDispatchReturnHeaderService(_unitOfWork).Update(Header); } Header.ObjectState = Model.ObjectState.Modified; db.SaleDispatchReturnHeader.Add(Header); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); //try //{ // SaleDispatchReturnDocEvents.onLineSaveEvent(this, new SaleEventArgs(Line.SaleDispatchReturnHeaderId, Line.SaleDispatchReturnLineId, 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 //{ // SaleDispatchReturnDocEvents.afterLineSaveEvent(this, new SaleEventArgs(Line.SaleDispatchReturnHeaderId, Line.SaleDispatchReturnLineId, 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 = Header.DocTypeId, DocId = Header.SaleDispatchReturnHeaderId, DocLineId = Line.SaleDispatchReturnLineId, ActivityType = (int)ActivityTypeContants.Modified, DocNo = Header.DocNo, xEModifications = Modifications, DocDate = Header.DocDate, DocStatus = Header.Status, })); //End of Saving the Activity Log return(Json(new { success = true })); } return(PartialView("_Create", svm)); } }
public ActionResult _ResultsPost(SaleInvoiceReturnMasterDetailModel vm) { int Cnt = 0; List <HeaderChargeViewModel> HeaderCharges = new List <HeaderChargeViewModel>(); List <LineChargeViewModel> LineCharges = new List <LineChargeViewModel>(); int pk = 0; int Gpk = 0; int Serial = _SaleInvoiceReturnLineService.GetMaxSr(vm.SaleInvoiceReturnLineViewModel.FirstOrDefault().SaleInvoiceReturnHeaderId); bool HeaderChargeEdit = false; SaleInvoiceReturnHeader Header = new SaleInvoiceReturnHeaderService(_unitOfWork).Find(vm.SaleInvoiceReturnLineViewModel.FirstOrDefault().SaleInvoiceReturnHeaderId); SaleInvoiceSetting Settings = new SaleInvoiceSettingService(_unitOfWork).GetSaleInvoiceSettingForDocument(Header.DocTypeId, Header.DivisionId, Header.SiteId); int?MaxLineId = new SaleInvoiceReturnLineChargeService(_unitOfWork).GetMaxProductCharge(Header.SaleInvoiceReturnHeaderId, "Web.SaleInvoiceReturnLines", "SaleInvoiceReturnHeaderId", "SaleInvoiceReturnLineId"); int PersonCount = 0; int CalculationId = Settings.CalculationId; List <LineDetailListViewModel> LineList = new List <LineDetailListViewModel>(); SaleDispatchReturnHeader GoodsRetHeader = new SaleDispatchReturnHeaderService(_unitOfWork).Find(Header.SaleDispatchReturnHeaderId ?? 0); if (ModelState.IsValid) { foreach (var item in vm.SaleInvoiceReturnLineViewModel) { decimal balqty = (from p in db.ViewSaleInvoiceBalance where p.SaleInvoiceLineId == item.SaleInvoiceLineId select p.BalanceQty).FirstOrDefault(); if (item.Qty > 0 && item.Qty <= balqty) { SaleInvoiceReturnLine line = new SaleInvoiceReturnLine(); //var receipt = new SaleDispatchLineService(_unitOfWork).Find(item.SaleDispatchLineId ); line.SaleInvoiceReturnHeaderId = item.SaleInvoiceReturnHeaderId; line.SaleInvoiceLineId = item.SaleInvoiceLineId; line.Qty = item.Qty; line.Sr = Serial++; line.DiscountPer = item.DiscountPer; line.DiscountAmount = item.DiscountAmount; line.Rate = item.Rate; line.DealQty = item.UnitConversionMultiplier * item.Qty; line.DealUnitId = item.DealUnitId; line.UnitConversionMultiplier = item.UnitConversionMultiplier; line.Amount = item.RateAfterDiscount * line.DealQty; line.Remark = item.Remark; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = User.Identity.Name; line.ModifiedBy = User.Identity.Name; line.SaleInvoiceReturnLineId = pk; SaleDispatchReturnLine GLine = Mapper.Map <SaleInvoiceReturnLine, SaleDispatchReturnLine>(line); GLine.SaleDispatchLineId = new SaleInvoiceLineService(_unitOfWork).Find(line.SaleInvoiceLineId).SaleDispatchLineId; GLine.SaleDispatchReturnHeaderId = GoodsRetHeader.SaleDispatchReturnHeaderId; GLine.SaleDispatchReturnLineId = Gpk; GLine.Qty = line.Qty; GLine.ObjectState = Model.ObjectState.Added; SaleDispatchLine SaleDispatchLine = new SaleDispatchLineService(_unitOfWork).Find(GLine.SaleDispatchLineId); PackingLine PackingLin = new PackingLineService(_unitOfWork).Find(SaleDispatchLine.PackingLineId); StockViewModel StockViewModel = new StockViewModel(); if (Cnt == 0) { StockViewModel.StockHeaderId = GoodsRetHeader.StockHeaderId ?? 0; } else { if (GoodsRetHeader.StockHeaderId != null && GoodsRetHeader.StockHeaderId != 0) { StockViewModel.StockHeaderId = (int)GoodsRetHeader.StockHeaderId; } else { StockViewModel.StockHeaderId = -1; } } StockViewModel.StockId = -Cnt; StockViewModel.DocHeaderId = GoodsRetHeader.SaleDispatchReturnHeaderId; StockViewModel.DocLineId = SaleDispatchLine.SaleDispatchLineId; StockViewModel.DocTypeId = GoodsRetHeader.DocTypeId; StockViewModel.StockHeaderDocDate = GoodsRetHeader.DocDate; StockViewModel.StockDocDate = GoodsRetHeader.DocDate; StockViewModel.DocNo = GoodsRetHeader.DocNo; StockViewModel.DivisionId = GoodsRetHeader.DivisionId; StockViewModel.SiteId = GoodsRetHeader.SiteId; StockViewModel.CurrencyId = null; StockViewModel.PersonId = GoodsRetHeader.BuyerId; StockViewModel.ProductId = PackingLin.ProductId; StockViewModel.ProductUidId = PackingLin.ProductUidId; StockViewModel.HeaderFromGodownId = null; StockViewModel.HeaderGodownId = GoodsRetHeader.GodownId; StockViewModel.HeaderProcessId = Settings.ProcessId; StockViewModel.GodownId = GoodsRetHeader.GodownId; StockViewModel.Remark = Header.Remark; StockViewModel.Status = Header.Status; StockViewModel.ProcessId = null; StockViewModel.LotNo = null; StockViewModel.CostCenterId = null; StockViewModel.Qty_Iss = 0; StockViewModel.Qty_Rec = GLine.Qty; StockViewModel.Rate = null; StockViewModel.ExpiryDate = null; StockViewModel.Specification = PackingLin.Specification; StockViewModel.Dimension1Id = PackingLin.Dimension1Id; StockViewModel.Dimension2Id = PackingLin.Dimension2Id; StockViewModel.CreatedBy = User.Identity.Name; StockViewModel.CreatedDate = DateTime.Now; StockViewModel.ModifiedBy = User.Identity.Name; StockViewModel.ModifiedDate = DateTime.Now; string StockPostingError = ""; StockPostingError = new StockService(_unitOfWork).StockPost(ref StockViewModel); if (StockPostingError != "") { string message = StockPostingError; ModelState.AddModelError("", message); return(PartialView("_Results", vm)); } if (Cnt == 0) { GoodsRetHeader.StockHeaderId = StockViewModel.StockHeaderId; } GLine.StockId = StockViewModel.StockId; new SaleDispatchReturnLineService(_unitOfWork).Create(GLine); line.SaleDispatchReturnLineId = GLine.SaleDispatchReturnLineId; line.ObjectState = Model.ObjectState.Added; _SaleInvoiceReturnLineService.Create(line); LineList.Add(new LineDetailListViewModel { Amount = line.Amount, Rate = line.Rate, LineTableId = line.SaleInvoiceReturnLineId, HeaderTableId = item.SaleInvoiceReturnHeaderId, PersonID = Header.BuyerId, DealQty = line.DealQty }); Gpk++; pk++; Cnt = Cnt + 1; } } new SaleDispatchReturnHeaderService(_unitOfWork).Update(GoodsRetHeader); new ChargesCalculationService(_unitOfWork).CalculateCharges(LineList, vm.SaleInvoiceReturnLineViewModel.FirstOrDefault().SaleInvoiceReturnHeaderId, CalculationId, MaxLineId, out LineCharges, out HeaderChargeEdit, out HeaderCharges, "Web.SaleInvoiceReturnHeaderCharges", "Web.SaleInvoiceReturnLineCharges", out PersonCount, Header.DocTypeId, Header.SiteId, Header.DivisionId); // Saving Charges foreach (var item in LineCharges) { SaleInvoiceReturnLineCharge PoLineCharge = Mapper.Map <LineChargeViewModel, SaleInvoiceReturnLineCharge>(item); PoLineCharge.ObjectState = Model.ObjectState.Added; new SaleInvoiceReturnLineChargeService(_unitOfWork).Create(PoLineCharge); } //Saving Header charges for (int i = 0; i < HeaderCharges.Count(); i++) { if (!HeaderChargeEdit) { SaleInvoiceReturnHeaderCharge POHeaderCharge = Mapper.Map <HeaderChargeViewModel, SaleInvoiceReturnHeaderCharge>(HeaderCharges[i]); POHeaderCharge.HeaderTableId = vm.SaleInvoiceReturnLineViewModel.FirstOrDefault().SaleInvoiceReturnHeaderId; POHeaderCharge.PersonID = Header.BuyerId; POHeaderCharge.ObjectState = Model.ObjectState.Added; new SaleInvoiceReturnHeaderChargeService(_unitOfWork).Create(POHeaderCharge); } else { var footercharge = new SaleInvoiceReturnHeaderChargeService(_unitOfWork).Find(HeaderCharges[i].Id); footercharge.Rate = HeaderCharges[i].Rate; footercharge.Amount = HeaderCharges[i].Amount; new SaleInvoiceReturnHeaderChargeService(_unitOfWork).Update(footercharge); } } try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); return(PartialView("_Results", vm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = Header.DocTypeId, DocId = Header.SaleInvoiceReturnHeaderId, ActivityType = (int)ActivityTypeContants.MultipleCreate, DocNo = Header.DocNo, DocDate = Header.DocDate, DocStatus = Header.Status, })); return(Json(new { success = true })); } return(PartialView("_Results", vm)); }
public ActionResult _ResultsPost(SaleDispatchReturnMasterDetailModel vm) { int Cnt = 0; int Serial = _SaleDispatchReturnLineService.GetMaxSr(vm.SaleDispatchReturnLineViewModel.FirstOrDefault().SaleDispatchReturnHeaderId); Dictionary <int, decimal> LineStatus = new Dictionary <int, decimal>(); bool BeforeSave = true; //try //{ // BeforeSave = SaleDispatchReturnDocEvents.beforeLineSaveBulkEvent(this, new SaleEventArgs(vm.SaleDispatchReturnLineViewModel.FirstOrDefault().SaleDispatchReturnHeaderId), 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) { int ProcessId = new ProcessService(_unitOfWork).Find(ProcessConstants.FullFinishing).ProcessId; SaleDispatchReturnHeader Header = new SaleDispatchReturnHeaderService(_unitOfWork).Find(vm.SaleDispatchReturnLineViewModel.FirstOrDefault().SaleDispatchReturnHeaderId); foreach (var item in vm.SaleDispatchReturnLineViewModel) { decimal balqty = (from p in db.ViewSaleDispatchBalance where p.SaleDispatchLineId == item.SaleDispatchLineId select p.BalanceQty).FirstOrDefault(); if (item.Qty > 0 && item.Qty <= balqty) { SaleDispatchReturnLine Line = new SaleDispatchReturnLine(); Line.SaleDispatchReturnHeaderId = item.SaleDispatchReturnHeaderId; Line.SaleDispatchLineId = item.SaleDispatchLineId; Line.Qty = item.Qty; Line.Sr = Serial++; Line.DealQty = item.UnitConversionMultiplier * item.Qty; Line.DealUnitId = item.DealUnitId; Line.UnitConversionMultiplier = item.UnitConversionMultiplier; Line.Remark = item.Remark; Line.CreatedDate = DateTime.Now; Line.ModifiedDate = DateTime.Now; Line.CreatedBy = User.Identity.Name; Line.ModifiedBy = User.Identity.Name; LineStatus.Add(Line.SaleDispatchLineId, Line.Qty); SaleDispatchLine SaleDispatchLine = new SaleDispatchLineService(_unitOfWork).Find(Line.SaleDispatchLineId); //var receipt = new SaleDispatchLineService(_unitOfWork).Find(item.SaleDispatchLineId ); StockViewModel StockViewModel = new StockViewModel(); if (Cnt == 0) { StockViewModel.StockHeaderId = Header.StockHeaderId ?? 0; } else { if (Header.StockHeaderId != null && Header.StockHeaderId != 0) { StockViewModel.StockHeaderId = (int)Header.StockHeaderId; } else { StockViewModel.StockHeaderId = -1; } } StockViewModel.StockId = -Cnt; StockViewModel.DocHeaderId = Header.SaleDispatchReturnHeaderId; StockViewModel.DocLineId = Line.SaleDispatchLineId; StockViewModel.DocTypeId = Header.DocTypeId; StockViewModel.StockHeaderDocDate = Header.DocDate; StockViewModel.StockDocDate = Header.DocDate; StockViewModel.DocNo = Header.DocNo; StockViewModel.DivisionId = Header.DivisionId; StockViewModel.SiteId = Header.SiteId; StockViewModel.CurrencyId = null; StockViewModel.PersonId = Header.BuyerId; StockViewModel.ProductId = item.ProductId; StockViewModel.HeaderFromGodownId = null; StockViewModel.HeaderGodownId = Header.GodownId; StockViewModel.HeaderProcessId = ProcessId; StockViewModel.GodownId = Header.GodownId; StockViewModel.Remark = Header.Remark; StockViewModel.Status = Header.Status; StockViewModel.ProcessId = ProcessId; StockViewModel.LotNo = null; StockViewModel.CostCenterId = null; StockViewModel.Qty_Iss = Line.Qty; StockViewModel.Qty_Rec = 0; StockViewModel.Rate = null; StockViewModel.ExpiryDate = null; StockViewModel.Specification = item.Specification; StockViewModel.Dimension1Id = item.Dimension1Id; StockViewModel.Dimension2Id = item.Dimension2Id; //StockViewModel.ProductUidId = SaleDispatchLine.ProductUidId; StockViewModel.CreatedBy = User.Identity.Name; StockViewModel.CreatedDate = DateTime.Now; StockViewModel.ModifiedBy = User.Identity.Name; StockViewModel.ModifiedDate = DateTime.Now; string StockPostingError = ""; StockPostingError = new StockService(_unitOfWork).StockPostDB(ref StockViewModel, ref db); if (StockPostingError != "") { string message = StockPostingError; ModelState.AddModelError("", message); return(PartialView("_Results", vm)); } if (Cnt == 0) { Header.StockHeaderId = StockViewModel.StockHeaderId; } Line.StockId = StockViewModel.StockId; Line.ObjectState = Model.ObjectState.Added; db.SaleDispatchReturnLine.Add(Line); //_SaleDispatchReturnLineService.Create(Line); Cnt = Cnt + 1; } } 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.SaleDispatchReturnHeader.Add(Header); //new SaleDispatchReturnHeaderService(_unitOfWork).Update(Header); //new SaleOrderLineStatusService(_unitOfWork).UpdateSaleQtyReturnMultiple(LineStatus, Header.DocDate, ref db); //try //{ // SaleDispatchReturnDocEvents.onLineSaveBulkEvent(this, new SaleEventArgs(vm.SaleDispatchReturnLineViewModel.FirstOrDefault().SaleDispatchReturnHeaderId), 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 //{ // SaleDispatchReturnDocEvents.afterLineSaveBulkEvent(this, new SaleEventArgs(vm.SaleDispatchReturnLineViewModel.FirstOrDefault().SaleDispatchReturnHeaderId), ref db); //} //catch (Exception ex) //{ // string message = _exception.HandleException(ex); // TempData["CSEXC"] += message; //} LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = Header.DocTypeId, DocId = Header.SaleDispatchReturnHeaderId, ActivityType = (int)ActivityTypeContants.MultipleCreate, DocNo = Header.DocNo, DocDate = Header.DocDate, DocStatus = Header.Status, })); return(Json(new { success = true })); } return(PartialView("_Results", vm)); }