public ActionResult Submitted(int Id, string IndexType, string UserRemark, string IsContinue) { PackingHeader pd = new PackingHeaderService(_unitOfWork).Find(Id); if (ModelState.IsValid) { if (User.Identity.Name == pd.ModifiedBy || UserRoles.Contains("Admin")) { #region Negatvie Sale Order Packing Validation Decimal PendingOrderQtyForPacking = 0; IEnumerable <PackingLineViewModel> PackingLine = new PackingLineService(_unitOfWork).GetPackingLineViewModelForHeaderId(Id); string ValidationMsg = ""; foreach (PackingLineViewModel Line in PackingLine) { PendingOrderQtyForPacking = new PackingLineService(_unitOfWork).FGetPendingOrderQtyForPacking((int)Line.SaleOrderLineId, 0); if (PendingOrderQtyForPacking < 0) { ValidationMsg = "Balance Qty For Product : " + Line.ProductName + " And Sale Order : " + Line.SaleOrderNo + " is going negative. Can't Submit Record."; return(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType }).Warning(ValidationMsg)); } if (new PackingLineService(_unitOfWork).FSaleOrderProductMatchWithPacking((int)Line.SaleOrderLineId, Line.ProductId) == false) { ValidationMsg = "Product : " + Line.ProductName + " does not exist in Sale Order : " + Line.SaleOrderNo + " . Can't Submit Record."; return(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType }).Warning(ValidationMsg)); } } #endregion pd.Status = (int)StatusConstants.Submitted; pd.ReviewBy = null; _PackingHeaderService.Update(pd); _unitOfWork.Save(); string ConnectionString = (string)System.Web.HttpContext.Current.Session["DefaultConnectionString"]; DataSet ds = new DataSet(); using (SqlConnection sqlConnection = new SqlConnection(ConnectionString)) { sqlConnection.Open(); using (SqlCommand cmd = new SqlCommand("" + ConfigurationManager.AppSettings["DataBaseSchema"] + ".sp_UpdatePackingArea")) { cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = sqlConnection; cmd.Parameters.AddWithValue("@PackingHeaderId", pd.PackingHeaderId); cmd.Parameters.AddWithValue("@DealUnitId", pd.DealUnitId); cmd.CommandTimeout = 1000; cmd.ExecuteNonQuery(); cmd.Connection.Close(); } } //SendEmail_PODrafted(Id); LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = pd.DocTypeId, DocId = pd.PackingHeaderId, ActivityType = (int)ActivityTypeContants.Submitted, UserRemark = UserRemark, DocNo = pd.DocNo, DocDate = pd.DocDate, DocStatus = pd.Status, })); return(RedirectToAction("Index", new { IndexType = IndexType }).Success("Record submitted successfully.")); } else { return(RedirectToAction("Index", new { id = pd.DocTypeId, IndexType = IndexType }).Warning("Record can be submitted by user " + pd.ModifiedBy + " only.")); } } return(View()); }
public ActionResult PackingSegmentation(PackingSegmentationViewModel p) { int frombaleno = 0; int tobaleno = 0; string ValidationMsg = ""; PackingHeader frompackingheader = new PackingHeaderService(_unitOfWork).Find(p.FromPackingHeaderId); PackingHeader topackingheader = new PackingHeaderService(_unitOfWork).Find(p.ToPackingHeaderId); if (frompackingheader.BuyerId != topackingheader.BuyerId) { ViewBag.PackingNoList = _PackingHeaderService.GetPackingHeaderList(User.Identity.Name); return(View(p).Danger("Buyer mismatch found in selected packing nos.")); } var packinglinelist = (from L in db.PackingLine where L.PackingHeaderId == p.ToPackingHeaderId select new { L }).ToList(); var BaleNoCntInEntry = (from L in packinglinelist where L.L.PackingHeaderId == p.ToPackingHeaderId && (int.TryParse(L.L.BaleNo, out frombaleno) ? frombaleno : 0) >= p.FromBaleNo && (int.TryParse(L.L.BaleNo, out tobaleno) ? tobaleno : 0) <= p.ToBaleNo group new { L } by new { L.L.BaleNo } into Result where Result.Count() > 1 select new { BaleNo = Result.Key, Cnt = Result.Count() }).ToList(); if (BaleNoCntInEntry != null) { foreach (var item in BaleNoCntInEntry) { ValidationMsg = ValidationMsg + "Bale No " + item.BaleNo + "already exists in " + p.ToPackingNo; } if (ValidationMsg != "") { ViewBag.PackingNoList = _PackingHeaderService.GetPackingHeaderList(User.Identity.Name); return(View(p).Danger(ValidationMsg)); } } List <PackingLine> packingline = new PackingLineService(_unitOfWork).GetPackingLineForHeaderId(p.FromPackingHeaderId).ToList().Where(i => (int.TryParse(i.BaleNo, out frombaleno) ? frombaleno : 0) >= p.FromBaleNo && (int.TryParse(i.BaleNo, out tobaleno) ? tobaleno : 0) <= p.ToBaleNo).ToList(); foreach (PackingLine item in packingline) { //new PackingLineService(_unitOfWork).Delete(item); //new StockService(_unitOfWork).DeleteForDocLineId(item.PackingLineId); //item.PackingHeaderId = topackingheader.PackingHeaderId; //new PackingLineService(_unitOfWork).Create(item); //StockPost(topackingheader, item); item.PackingHeaderId = p.ToPackingHeaderId; new PackingLineService(_unitOfWork).Update(item); } if (ModelState.IsValid) { _unitOfWork.Save(); } return(RedirectToAction("Detail", new { id = p.ToPackingHeaderId, transactionType = "submit" })); }
public ActionResult Delete(ReasonViewModel vm) { if (ModelState.IsValid) { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); int?StockHeaderId = 0; var PackingHeader = _PackingHeaderService.GetPackingHeader(vm.id); int status = PackingHeader.Status; LogList.Add(new LogTypeViewModel { ExObj = PackingHeader, }); StockHeaderId = PackingHeader.StockHeaderId; new StockUidService(_unitOfWork).DeleteStockUidForDocHeader(PackingHeader.PackingHeaderId, PackingHeader.DocTypeId, PackingHeader.SiteId, PackingHeader.DivisionId); List <int> StockIssueIdList = new List <int>(); List <int> StockReceiveIdList = new List <int>(); var PackingLine = new PackingLineService(_unitOfWork).GetPackingLineForHeaderId(vm.id).ToList(); foreach (var item in PackingLine) { LogList.Add(new LogTypeViewModel { ExObj = item, }); if (item.StockIssueId != null) { StockIssueIdList.Add((int)item.StockIssueId); } if (item.StockReceiveId != null) { StockReceiveIdList.Add((int)item.StockReceiveId); } if (item.ProductUidId != null && item.ProductUidId != 0) { ProductUidDetail ProductUidDetail = new ProductUidService(_unitOfWork).FGetProductUidLastValues((int)item.ProductUidId, "Packing-" + vm.id.ToString()); ProductUid ProductUid = new ProductUidService(_unitOfWork).Find((int)item.ProductUidId); ProductUid.LastTransactionDocDate = item.ProductUidLastTransactionDocDate; ProductUid.LastTransactionDocId = item.ProductUidLastTransactionDocId; ProductUid.LastTransactionDocNo = item.ProductUidLastTransactionDocNo; ProductUid.LastTransactionDocTypeId = item.ProductUidLastTransactionDocTypeId; ProductUid.LastTransactionPersonId = item.ProductUidLastTransactionPersonId; ProductUid.CurrenctGodownId = item.ProductUidCurrentGodownId; ProductUid.CurrenctProcessId = item.ProductUidCurrentProcessId; ProductUid.Status = item.ProductUidStatus; //ProductUid.LastTransactionDocDate = ProductUidDetail.LastTransactionDocDate; //ProductUid.LastTransactionDocId = ProductUidDetail.LastTransactionDocId; //ProductUid.LastTransactionDocNo = ProductUidDetail.LastTransactionDocNo; //ProductUid.LastTransactionDocTypeId = ProductUidDetail.LastTransactionDocTypeId; //ProductUid.LastTransactionPersonId = ProductUidDetail.LastTransactionPersonId; //ProductUid.CurrenctGodownId = ProductUidDetail.CurrenctGodownId; //ProductUid.CurrenctProcessId = ProductUidDetail.CurrenctProcessId; new ProductUidService(_unitOfWork).Update(ProductUid); } new PackingLineService(_unitOfWork).Delete(item.PackingLineId); } foreach (var item in StockIssueIdList) { new StockService(_unitOfWork).DeleteStock(item); } foreach (var item in StockReceiveIdList) { new StockService(_unitOfWork).DeleteStock(item); } new PackingHeaderService(_unitOfWork).Delete(vm.id); 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)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = PackingHeader.DocTypeId, DocId = PackingHeader.PackingHeaderId, ActivityType = (int)ActivityTypeContants.Deleted, UserRemark = vm.Reason, DocNo = PackingHeader.DocNo, xEModifications = Modifications, DocDate = PackingHeader.DocDate, DocStatus = PackingHeader.Status, })); return(Json(new { success = true })); } return(PartialView("_Reason", vm)); }
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)); }