public ActionResult _FilterPostReceipts(SaleInvoiceReturnLineFilterViewModel vm) { List <SaleInvoiceReturnLineViewModel> temp = _SaleInvoiceReturnLineService.GetSaleReceiptForFilters(vm).ToList(); SaleInvoiceReturnMasterDetailModel svm = new SaleInvoiceReturnMasterDetailModel(); svm.SaleInvoiceReturnLineViewModel = temp; return(PartialView("_Results", 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)); }