public ActionResult Delete(ReasonViewModel vm) { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); if (ModelState.IsValid) { //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 ProductUidHeader = _ProductUidHeaderService.GetProductUidHeaderIndexViewModel(vm.id); LogList.Add(new LogTypeViewModel { ExObj = ProductUidHeader, }); //Then find all the Purchase Order Header Line associated with the above ProductType. var ProductUid = new ProductUidService(_unitOfWork).GetProductUidList(vm.id); //Mark ObjectState.Delete to all the Purchase Order Lines. foreach (var item in ProductUid) { LogList.Add(new LogTypeViewModel { ExObj = item, }); new ProductUidService(_unitOfWork).Delete(item.ProductUIDId); } // Now delete the Purhcase Order Header new ProductUidHeaderService(_unitOfWork).Delete(vm.id); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); //Commit the DB try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); return(PartialView("_Reason", vm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = new DocumentTypeService(_unitOfWork).FindByName(MasterDocTypeConstants.ProductUid).DocumentTypeId, DocId = vm.id, ActivityType = (int)ActivityTypeContants.Deleted, UserRemark = vm.Reason, xEModifications = Modifications, })); return(Json(new { success = true })); } return(PartialView("_Reason", vm)); }
public JsonResult GetProductUIDDetailJson(string ProductUIDNo) { ProductUidDetail productuiddetail = new ProductUidService(_unitOfWork).FGetProductUidDetail(ProductUIDNo); List <ProductUidDetail> ProductUidDetailJson = new List <ProductUidDetail>(); if (productuiddetail != null) { ProductUidDetailJson.Add(new ProductUidDetail() { ProductId = productuiddetail.ProductId, ProductName = productuiddetail.ProductName, ProductUidId = productuiddetail.ProductUidId, }); } return(Json(ProductUidDetailJson)); }
public ActionResult Post(ProductUid vm) { if (ModelState.IsValid) { if (vm.ProductUIDId != 0) { ProductUid P = new ProductUidService(_unitOfWork).Find(vm.ProductUIDId); P.Dimension1Id = vm.Dimension1Id; P.Dimension2Id = vm.Dimension2Id; P.Dimension3Id = vm.Dimension3Id; P.Dimension4Id = vm.Dimension4Id; P.ProductUidSpecification = vm.ProductUidSpecification; P.ProductUidSpecification1 = vm.ProductUidSpecification1; P.ModifiedDate = DateTime.Now; P.ModifiedBy = User.Identity.Name; P.ObjectState = Model.ObjectState.Modified; db.ProductUid.Add(P); try { db.SaveChanges(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); return(View("Create", vm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = new DocumentTypeService(_unitOfWork).FindByName(MasterDocTypeConstants.ProductUid).DocumentTypeId, DocId = vm.ProductUIDId, ActivityType = (int)ActivityTypeContants.Added, })); return(RedirectToAction("Create").Success("Data saved successfully")); } } return(View("Create", vm)); }
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 PostSummary(JobInvoiceSummaryDetailViewModel vm) { //TempData["CSEXC"] = "Customize Test Exception"; String ErrorMsg = ""; foreach (var item in vm.JobInvoiceSummaryViewModel) { if (item.AdvanceAdjusted > item.InvoiceAmount + item.TanaAmount) { string ProductUidName = ""; if (item.ProductUidId != null) { ProductUidName = new ProductUidService(_unitOfWork).Find((int)item.ProductUidId).ProductUidName; } ErrorMsg = "Total adjusted advance for barcode " + ProductUidName + " is exceeding invoice amount."; } } var AdvanceData = (from H in vm.JobInvoiceSummaryViewModel group new { H } by new { H.CostCenterId } into Result select new { CostCenterId = Result.Key.CostCenterId, TotalAdvanceAmount = Result.Max(m => m.H.AdvanceAmount), TotalAdvanceAdjusted = Result.Sum(m => m.H.AdvanceAdjusted) }).ToList(); foreach (var item in AdvanceData) { if (item.TotalAdvanceAdjusted > item.TotalAdvanceAmount) { string CostCenterName = new CostCenterService(_unitOfWork).Find(item.CostCenterId).CostCenterName; ErrorMsg = "Total adjusted advance for purja " + CostCenterName + " is exceeding total advance amount."; } } var TdsData = (from H in vm.JobInvoiceSummaryViewModel group new { H } by new { H.PersonId } into Result select new { PersonId = Result.Key.PersonId, TotalTdsAmount = Result.Max(m => m.H.TdsAmount), TotalTdsAdjusted = Result.Sum(m => m.H.TdsAdjusted) }).ToList(); foreach (var item in TdsData) { if (item.TotalTdsAdjusted > item.TotalTdsAmount) { string PersonName = new PersonService(_unitOfWork).Find(item.PersonId).Name; ErrorMsg = "Total adjusted tds for person " + PersonName + " is exceeding total tds amount."; } } if (ErrorMsg != "") { TempData["CSEXC"] = ErrorMsg; return(View("Summary", vm)); } List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); bool Modified = false; int Id = vm.JobInvoiceHeaderId; var Header = _JobInvoiceHeaderService.Find(Id); int LedgerHeaderId = 0; int LedgerLineId = 0; int LedgerId = 0; int LedgerAdjId = 0; int TanaPaymentDueCnt = 0; int TdsCollectionCnt = 0; int SavedTanaLedgerHeaderId = 0; int SavedTdsCollectionLedgerHeaderId = 0; int TanaPaymentDueAcId = new LedgerAccountService(_unitOfWork).Find(TanaPaymentDueAccount).LedgerAccountId; DeleteLedgerTransaction(Header.JobInvoiceHeaderId); DataTable AdvanceAdjustedDataTable = new DataTable(); AdvanceAdjustedDataTable.Columns.Add("Id"); AdvanceAdjustedDataTable.Columns.Add("Qty"); foreach (var item in vm.JobInvoiceSummaryViewModel) { if (item.TanaAmount > 0) { #region "Tana Payment Due" if (TanaPaymentDueCnt == 0) { LedgerHeader TanaLedgerHeader = new LedgerHeader(); TanaLedgerHeader.LedgerHeaderId = LedgerHeaderId; TanaLedgerHeader.DocTypeId = new DocumentTypeService(_unitOfWork).Find(TanaPaymentDueDocType).DocumentTypeId; TanaLedgerHeader.DocDate = DateTime.Now.Date; TanaLedgerHeader.DivisionId = Header.DivisionId; TanaLedgerHeader.SiteId = Header.SiteId; TanaLedgerHeader.DocNo = new DocumentTypeService(_unitOfWork).FGetNewDocNo("DocNo", ConfigurationManager.AppSettings["DataBaseSchema"] + ".LedgerHeaders", TanaLedgerHeader.DocTypeId, TanaLedgerHeader.DocDate, TanaLedgerHeader.DivisionId, TanaLedgerHeader.SiteId); TanaLedgerHeader.LedgerAccountId = TanaPaymentDueAcId; TanaLedgerHeader.Narration = "Tana Payment Due"; TanaLedgerHeader.Status = (int)StatusConstants.Submitted; TanaLedgerHeader.ProcessId = new ProcessService(_unitOfWork).Find(ProcessConstants.Weaving).ProcessId; TanaLedgerHeader.CostCenterId = null; TanaLedgerHeader.AdjustmentType = "Due"; TanaLedgerHeader.PaymentFor = DateTime.Now.Date; TanaLedgerHeader.ReferenceDocId = Header.JobInvoiceHeaderId; TanaLedgerHeader.ReferenceDocTypeId = Header.DocTypeId; TanaLedgerHeader.CreatedDate = DateTime.Now; TanaLedgerHeader.ModifiedDate = DateTime.Now; TanaLedgerHeader.CreatedBy = User.Identity.Name; TanaLedgerHeader.ModifiedBy = User.Identity.Name; TanaLedgerHeader.ObjectState = Model.ObjectState.Added; new LedgerHeaderService(_unitOfWork).Create(TanaLedgerHeader); LedgerHeaderId = LedgerHeaderId - 1; TanaPaymentDueCnt = TanaPaymentDueCnt + 1; SavedTanaLedgerHeaderId = TanaLedgerHeader.LedgerHeaderId; } LedgerLine TanaLedgerLine = new LedgerLine(); TanaLedgerLine.LedgerLineId = LedgerLineId; TanaLedgerLine.LedgerHeaderId = SavedTanaLedgerHeaderId; TanaLedgerLine.LedgerAccountId = new LedgerAccountService(_unitOfWork).GetLedgerAccountByPersondId(item.PersonId).LedgerAccountId; TanaLedgerLine.CostCenterId = item.CostCenterId; TanaLedgerLine.ProductUidId = item.ProductUidId; TanaLedgerLine.Amount = item.TanaAmount; TanaLedgerLine.ReferenceDocLineId = item.JobInvoiceLineId; TanaLedgerLine.ReferenceDocTypeId = Header.DocTypeId; TanaLedgerLine.CreatedDate = DateTime.Now; TanaLedgerLine.ModifiedDate = DateTime.Now; TanaLedgerLine.CreatedBy = User.Identity.Name; TanaLedgerLine.ModifiedBy = User.Identity.Name; TanaLedgerLine.ObjectState = Model.ObjectState.Added; new LedgerLineService(_unitOfWork).Create(TanaLedgerLine); LedgerLineId = LedgerLineId - 1; Ledger TanaLedgerDr = new Ledger(); TanaLedgerDr.LedgerId = LedgerId; TanaLedgerDr.LedgerHeaderId = SavedTanaLedgerHeaderId; TanaLedgerDr.LedgerAccountId = TanaPaymentDueAcId; TanaLedgerDr.ContraLedgerAccountId = TanaLedgerLine.LedgerAccountId; TanaLedgerDr.CostCenterId = null; TanaLedgerDr.ProductUidId = item.ProductUidId; TanaLedgerDr.AmtDr = TanaLedgerLine.Amount; TanaLedgerDr.AmtCr = 0; TanaLedgerDr.Narration = "Tana Payment Due"; TanaLedgerDr.LedgerLineId = TanaLedgerLine.LedgerLineId; TanaLedgerDr.ObjectState = Model.ObjectState.Added; new LedgerService(_unitOfWork).Create(TanaLedgerDr); LedgerId = LedgerId - 1; Ledger TanaLedgerCr = new Ledger(); TanaLedgerDr.LedgerId = LedgerId; TanaLedgerCr.LedgerHeaderId = SavedTanaLedgerHeaderId; TanaLedgerCr.LedgerAccountId = TanaLedgerLine.LedgerAccountId; TanaLedgerCr.ContraLedgerAccountId = TanaPaymentDueAcId; TanaLedgerCr.CostCenterId = item.CostCenterId; TanaLedgerDr.ProductUidId = item.ProductUidId; TanaLedgerCr.AmtDr = 0; TanaLedgerCr.AmtCr = TanaLedgerLine.Amount; TanaLedgerCr.Narration = null; TanaLedgerCr.LedgerLineId = TanaLedgerLine.LedgerLineId; TanaLedgerCr.ObjectState = Model.ObjectState.Added; new LedgerService(_unitOfWork).Create(TanaLedgerCr); LedgerId = LedgerId - 1; #endregion } if (item.TdsAdjusted > 0) { #region "Tds Collection" var TdsRate = (from H in db.BusinessEntity join Tr in db.TdsRate on new { X1 = H.TdsCategoryId ?? 0, X2 = H.TdsGroupId ?? 0 } equals new { X1 = Tr.TdsCategoryId, X2 = Tr.TdsGroupId } into TdsRateTable from TdsRateTab in TdsRateTable.DefaultIfEmpty() where H.PersonID == item.PersonId select TdsRateTab).FirstOrDefault(); if (TdsCollectionCnt == 0) { LedgerHeader TdsLedgerHeader = new LedgerHeader(); TdsLedgerHeader.LedgerHeaderId = LedgerHeaderId; TdsLedgerHeader.DocTypeId = new DocumentTypeService(_unitOfWork).Find(TdsCollectionDocType).DocumentTypeId; TdsLedgerHeader.DocDate = DateTime.Now.Date; TdsLedgerHeader.DivisionId = Header.DivisionId; TdsLedgerHeader.SiteId = Header.SiteId; TdsLedgerHeader.DocNo = new DocumentTypeService(_unitOfWork).FGetNewDocNo("DocNo", ConfigurationManager.AppSettings["DataBaseSchema"] + ".LedgerHeaders", TdsLedgerHeader.DocTypeId, TdsLedgerHeader.DocDate, TdsLedgerHeader.DivisionId, TdsLedgerHeader.SiteId); TdsLedgerHeader.LedgerAccountId = TdsRate.LedgerAccountId; TdsLedgerHeader.Narration = "Tds Adjustment"; TdsLedgerHeader.Status = (int)StatusConstants.Submitted; TdsLedgerHeader.ProcessId = new ProcessService(_unitOfWork).Find(ProcessConstants.Weaving).ProcessId; TdsLedgerHeader.CostCenterId = null; TdsLedgerHeader.AdjustmentType = "Due"; TdsLedgerHeader.PaymentFor = DateTime.Now.Date; TdsLedgerHeader.ReferenceDocId = Header.JobInvoiceHeaderId; TdsLedgerHeader.ReferenceDocTypeId = Header.DocTypeId; TdsLedgerHeader.CreatedDate = DateTime.Now; TdsLedgerHeader.ModifiedDate = DateTime.Now; TdsLedgerHeader.CreatedBy = User.Identity.Name; TdsLedgerHeader.ModifiedBy = User.Identity.Name; TdsLedgerHeader.ObjectState = Model.ObjectState.Added; new LedgerHeaderService(_unitOfWork).Create(TdsLedgerHeader); LedgerHeaderId = LedgerHeaderId - 1; TdsCollectionCnt = TdsCollectionCnt + 1; SavedTdsCollectionLedgerHeaderId = TdsLedgerHeader.LedgerHeaderId; } LedgerLine TdsLedgerLine = new LedgerLine(); TdsLedgerLine.LedgerLineId = LedgerLineId; TdsLedgerLine.LedgerHeaderId = SavedTdsCollectionLedgerHeaderId; TdsLedgerLine.LedgerAccountId = new LedgerAccountService(_unitOfWork).GetLedgerAccountByPersondId(item.PersonId).LedgerAccountId; if (item.CostCenterId != 0) { TdsLedgerLine.CostCenterId = item.CostCenterId; } TdsLedgerLine.ProductUidId = item.ProductUidId; TdsLedgerLine.BaseValue = item.TdsAdjusted * 100 / TdsRate.Percentage; TdsLedgerLine.Amount = item.TdsAdjusted; TdsLedgerLine.CreatedDate = DateTime.Now; TdsLedgerLine.ModifiedDate = DateTime.Now; TdsLedgerLine.CreatedBy = User.Identity.Name; TdsLedgerLine.ModifiedBy = User.Identity.Name; TdsLedgerLine.ObjectState = Model.ObjectState.Added; new LedgerLineService(_unitOfWork).Create(TdsLedgerLine); LedgerLineId = LedgerLineId - 1; Ledger TdsLedgerDr = new Ledger(); TdsLedgerDr.LedgerId = LedgerId; TdsLedgerDr.LedgerHeaderId = SavedTdsCollectionLedgerHeaderId; TdsLedgerDr.LedgerAccountId = TdsLedgerLine.LedgerAccountId; TdsLedgerDr.ContraLedgerAccountId = TdsRate.LedgerAccountId; if (item.CostCenterId != 0) { TdsLedgerDr.CostCenterId = item.CostCenterId; } TdsLedgerDr.ProductUidId = item.ProductUidId; TdsLedgerDr.AmtDr = TdsLedgerLine.Amount; TdsLedgerDr.AmtCr = 0; TdsLedgerDr.Narration = "Tds Adjusted."; TdsLedgerDr.LedgerLineId = TdsLedgerLine.LedgerLineId; TdsLedgerDr.ObjectState = Model.ObjectState.Added; new LedgerService(_unitOfWork).Create(TdsLedgerDr); LedgerId = LedgerId - 1; Ledger TdsLedgerCr = new Ledger(); TdsLedgerCr.LedgerId = LedgerId; TdsLedgerCr.LedgerHeaderId = SavedTdsCollectionLedgerHeaderId; TdsLedgerCr.LedgerAccountId = (int)TdsRate.LedgerAccountId; TdsLedgerCr.ContraLedgerAccountId = TdsLedgerLine.LedgerAccountId; TdsLedgerCr.CostCenterId = null; TdsLedgerCr.ProductUidId = item.ProductUidId; TdsLedgerCr.AmtDr = 0; TdsLedgerCr.AmtCr = TdsLedgerLine.Amount; TdsLedgerCr.Narration = null; TdsLedgerCr.LedgerLineId = TdsLedgerLine.LedgerLineId; TdsLedgerCr.ObjectState = Model.ObjectState.Added; new LedgerService(_unitOfWork).Create(TdsLedgerCr); LedgerId = LedgerId - 1; var TempLedger = (from L in db.Ledger where L.ReferenceDocLineId == item.JobInvoiceLineId && L.ReferenceDocTypeId == Header.DocTypeId select new { LedgerCrId = L.LedgerId }).FirstOrDefault(); LedgerAdj LedgerAdj = new LedgerAdj(); LedgerAdj.LedgerAdjId = LedgerAdjId; LedgerAdj.DrLedgerId = TdsLedgerDr.LedgerId; LedgerAdj.CrLedgerId = TempLedger == null ? 0 : TempLedger.LedgerCrId; LedgerAdj.SiteId = Header.SiteId; LedgerAdj.Adj_Type = "Tds Adjustment"; LedgerAdj.Amount = TdsLedgerDr.AmtDr; LedgerAdj.CreatedBy = Header.CreatedBy; LedgerAdj.CreatedDate = DateTime.Now; LedgerAdj.ModifiedBy = Header.ModifiedBy; LedgerAdj.ModifiedDate = DateTime.Now; LedgerAdj.ObjectState = Model.ObjectState.Added; new LedgerAdjService(_unitOfWork).Create(LedgerAdj); LedgerAdjId = LedgerAdjId - 1; #endregion } if (item.AdvanceAdjusted > 0) { var AdvanceAdjustedDataRow = AdvanceAdjustedDataTable.NewRow(); AdvanceAdjustedDataRow["Id"] = item.JobInvoiceLineId; AdvanceAdjustedDataRow["Qty"] = item.AdvanceAdjusted; AdvanceAdjustedDataTable.Rows.Add(AdvanceAdjustedDataRow); } } if (AdvanceAdjustedDataTable.Rows.Count > 0) { 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"] + ".spGetLedgerAdj")) { cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = sqlConnection; cmd.Parameters.AddWithValue("@T", AdvanceAdjustedDataTable); cmd.CommandTimeout = 1000; using (SqlDataAdapter adp = new SqlDataAdapter(cmd)) { adp.Fill(ds); } } } for (int j = 0; j <= ds.Tables[0].Rows.Count - 1; j++) { LedgerAdj LedgerAdj = new LedgerAdj(); LedgerAdj.LedgerAdjId = LedgerAdjId; LedgerAdj.DrLedgerId = (int)ds.Tables[0].Rows[j]["LedgerDrId"]; LedgerAdj.CrLedgerId = (int)ds.Tables[0].Rows[j]["LedgerCrId"]; LedgerAdj.SiteId = Header.SiteId; LedgerAdj.Adj_Type = "Advance Adjustment"; LedgerAdj.Amount = (decimal)ds.Tables[0].Rows[j]["BalanceDr"]; LedgerAdj.CreatedBy = Header.CreatedBy; LedgerAdj.CreatedDate = DateTime.Now; LedgerAdj.ModifiedBy = Header.ModifiedBy; LedgerAdj.ModifiedDate = DateTime.Now; LedgerAdj.ObjectState = Model.ObjectState.Added; new LedgerAdjService(_unitOfWork).Create(LedgerAdj); LedgerAdjId = LedgerAdjId - 1; } } try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); PrepareViewBag(vm.JobInvoiceHeaderId); return(Json(new { Success = false })); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = Header.DocTypeId, DocId = Header.JobInvoiceHeaderId, ActivityType = (int)ActivityTypeContants.Modified, DocNo = Header.DocNo, //xEModifications = Modifications, DocDate = Header.DocDate, DocStatus = Header.Status, })); string RetUrl = ""; if (Header.Status == (int)StatusConstants.Drafted || Header.Status == (int)StatusConstants.Import) { RetUrl = System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobInvoiceHeader/Modify/" + Header.JobInvoiceHeaderId; } else if (Header.Status == (int)StatusConstants.Submitted || Header.Status == (int)StatusConstants.ModificationSubmitted || Header.Status == (int)StatusConstants.Modified) { RetUrl = System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobInvoiceHeader/ModifyAfter_Submit/" + Header.JobInvoiceHeaderId; } else if (Header.Status == (int)StatusConstants.Approved || Header.Status == (int)StatusConstants.Closed) { RetUrl = System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobInvoiceHeader/ModifyAfter_Approve/" + Header.JobInvoiceHeaderId; } else { RetUrl = System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobInvoiceHeader/Index/" + Header.DocTypeId; } return(Json(new { Success = true, Url = RetUrl })); }
public ActionResult Post(JobReceiveHeaderViewModel svm) { bool TimePlanValidation = true; string ExceptionMsg = ""; bool Continue = true; JobReceiveHeader s = Mapper.Map <JobReceiveHeaderViewModel, JobReceiveHeader>(svm); List <WeavingReceiveWizardViewModel> JobOrdersAndQtys = (List <WeavingReceiveWizardViewModel>)System.Web.HttpContext.Current.Session["BarCodesWeavingWizardJobOrder"]; if (JobOrdersAndQtys.Count() <= 0) { ModelState.AddModelError("", "No Records Selected"); } int JobWorkerCnt = (from l in JobOrdersAndQtys group l by l.JobWorkerId into g select new { JobWorkerId = g.Key, }).Distinct().Count(); if (JobWorkerCnt > 1) { ModelState.AddModelError("", "Select any one Job Worker Orders."); } s.JobWorkerId = JobOrdersAndQtys.FirstOrDefault().JobWorkerId; svm.JobWorkerId = JobOrdersAndQtys.FirstOrDefault().JobWorkerId; #region DocTypeTimeLineValidation try { if (svm.JobReceiveHeaderId <= 0) { TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(svm), DocumentTimePlanTypeConstants.Create, User.Identity.Name, out ExceptionMsg, out Continue); } else { TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(svm), DocumentTimePlanTypeConstants.Modify, User.Identity.Name, out ExceptionMsg, out Continue); } } catch (Exception ex) { string message = _exception.HandleException(ex); TempData["CSEXC"] += message; TimePlanValidation = false; } if (!TimePlanValidation) { TempData["CSEXC"] += ExceptionMsg; } #endregion if (ModelState.IsValid && (TimePlanValidation || Continue)) { if (svm.JobReceiveHeaderId <= 0) { if (JobOrdersAndQtys.Count() > 0) { s.CreatedDate = DateTime.Now; s.ModifiedDate = DateTime.Now; s.CreatedBy = User.Identity.Name; s.ModifiedBy = User.Identity.Name; s.Status = (int)StatusConstants.Drafted; _JobReceiveHeaderService.Create(s); int Cnt = 0; int Sr = 0; JobReceiveSettings Settings = new JobReceiveSettingsService(_unitOfWork).GetJobReceiveSettingsForDocument(s.DocTypeId, s.DivisionId, s.SiteId); int ProductUidCountForJobOrderLine = 0; int pk = 0; var JobOrderLineIds = JobOrdersAndQtys.Select(m => m.JobOrderLineId).ToArray(); var BalQtyandUnits = (from p in db.ViewJobOrderBalance join t in db.Product on p.ProductId equals t.ProductId where JobOrderLineIds.Contains(p.JobOrderLineId) select new { BalQty = p.BalanceQty, JobOrderLineId = p.JobOrderLineId, UnitId = t.UnitId, }).ToList(); if (ModelState.IsValid) { foreach (var SelectedJobOrderLine in JobOrdersAndQtys) { if (SelectedJobOrderLine.JobOrderLineId > 0) { if (SelectedJobOrderLine.ToProductUidName != "" && SelectedJobOrderLine.ToProductUidName != null && SelectedJobOrderLine.FromProductUidName != "" && SelectedJobOrderLine.FromProductUidName != null) { if (SelectedJobOrderLine.Qty != (Convert.ToInt32(SelectedJobOrderLine.ToProductUidName) - Convert.ToInt32(SelectedJobOrderLine.FromProductUidName) + 1)) { string Msg = ""; Msg = "Qty and Barcode series does not match."; ModelState.AddModelError("", Msg); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } } ProductUidCountForJobOrderLine = 0; var JobOrderLine = new JobOrderLineService(_unitOfWork).Find((SelectedJobOrderLine.JobOrderLineId)); var Product = new ProductService(_unitOfWork).Find(JobOrderLine.ProductId); var bal = BalQtyandUnits.Where(m => m.JobOrderLineId == SelectedJobOrderLine.JobOrderLineId).FirstOrDefault(); if (SelectedJobOrderLine.Qty <= bal.BalQty) { for (int i = 0; i <= SelectedJobOrderLine.Qty - 1; i++) { int?ProductUidHeaderId = null; int?ProductUidId = null; var SisterSite = (from S in db.Site where S.PersonId == s.JobWorkerId select S).FirstOrDefault(); //if (!string.IsNullOrEmpty(Settings.SqlProcGenProductUID)) if (SisterSite == null) { ProductUidHeader ProdUidHeader = new ProductUidHeader(); ProdUidHeader.ProductUidHeaderId = Cnt; ProdUidHeader.ProductId = JobOrderLine.ProductId; ProdUidHeader.Dimension1Id = JobOrderLine.Dimension1Id; ProdUidHeader.Dimension2Id = JobOrderLine.Dimension2Id; ProdUidHeader.GenDocId = s.JobReceiveHeaderId; ProdUidHeader.GenDocNo = s.DocNo; ProdUidHeader.GenDocTypeId = s.DocTypeId; ProdUidHeader.GenDocDate = s.DocDate; ProdUidHeader.GenPersonId = s.JobWorkerId; ProdUidHeader.CreatedBy = User.Identity.Name; ProdUidHeader.CreatedDate = DateTime.Now; ProdUidHeader.ModifiedBy = User.Identity.Name; ProdUidHeader.ModifiedDate = DateTime.Now; ProdUidHeader.ObjectState = Model.ObjectState.Added; new ProductUidHeaderService(_unitOfWork).Create(ProdUidHeader); ProductUidHeaderId = ProdUidHeader.ProductUidHeaderId; string ProductUidName = (Convert.ToInt32(SelectedJobOrderLine.FromProductUidName) + ProductUidCountForJobOrderLine).ToString(); ProductUid ProdUid = new ProductUid(); ProdUid.ProductUidHeaderId = ProdUidHeader.ProductUidHeaderId; ProdUid.ProductUidName = ProductUidName; ProdUid.ProductId = JobOrderLine.ProductId; ProdUid.IsActive = true; ProdUid.CreatedBy = User.Identity.Name; ProdUid.CreatedDate = DateTime.Now; ProdUid.ModifiedBy = User.Identity.Name; ProdUid.ModifiedDate = DateTime.Now; ProdUid.GenLineId = null; ProdUid.GenDocId = s.JobReceiveHeaderId; ProdUid.GenDocNo = s.DocNo; ProdUid.GenDocTypeId = s.DocTypeId; ProdUid.GenDocDate = s.DocDate; ProdUid.GenPersonId = s.JobWorkerId; ProdUid.Dimension1Id = JobOrderLine.Dimension1Id; ProdUid.Dimension2Id = JobOrderLine.Dimension2Id; ProdUid.CurrenctProcessId = s.ProcessId; ProdUid.CurrenctGodownId = s.GodownId; ProdUid.Status = "Receive"; ProdUid.LastTransactionDocId = s.JobReceiveHeaderId; ProdUid.LastTransactionDocNo = s.DocNo; ProdUid.LastTransactionDocTypeId = s.DocTypeId; ProdUid.LastTransactionDocDate = s.DocDate; ProdUid.LastTransactionPersonId = s.JobWorkerId; ProdUid.LastTransactionLineId = null; ProdUid.ProductUIDId = pk; new ProductUidService(_unitOfWork).Create(ProdUid); ProductUidId = ProdUid.ProductUIDId; } if (ProductUidId == null) { string ProductUidName = (Convert.ToInt32(SelectedJobOrderLine.FromProductUidName) + ProductUidCountForJobOrderLine).ToString(); var temp = new ProductUidService(_unitOfWork).Find(ProductUidName); if (temp != null) { ProductUidId = temp.ProductUIDId; } else { string Msg = ProductUidName + " is not a valid barcode."; ModelState.AddModelError("", Msg); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } if (temp.CurrenctGodownId != null) { string Msg = ProductUidName + " is already in Stock at Godown " + new GodownService(_unitOfWork).Find(temp.CurrenctGodownId ?? 0).GodownName; ModelState.AddModelError("", Msg); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } if (temp.LastTransactionPersonId != s.JobWorkerId) { string Msg = ProductUidName + ProductUidName + " does not belong to this Job Worker"; ModelState.AddModelError("", Msg); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } } StockViewModel StockViewModel = new StockViewModel(); if (Cnt == 0) { StockViewModel.StockHeaderId = s.StockHeaderId ?? 0; } else { if (s.StockHeaderId != null && s.StockHeaderId != 0) { StockViewModel.StockHeaderId = (int)s.StockHeaderId; } else { StockViewModel.StockHeaderId = -1; } } StockViewModel.StockId = -Cnt; StockViewModel.DocHeaderId = s.JobReceiveHeaderId; StockViewModel.DocLineId = null; StockViewModel.DocTypeId = s.DocTypeId; StockViewModel.StockHeaderDocDate = s.DocDate; StockViewModel.StockDocDate = s.DocDate; StockViewModel.DocNo = s.DocNo; StockViewModel.DivisionId = s.DivisionId; StockViewModel.SiteId = s.SiteId; StockViewModel.CurrencyId = null; StockViewModel.PersonId = s.JobWorkerId; StockViewModel.ProductId = JobOrderLine.ProductId; //StockViewModel.ProductUidId = ProdUid.ProductUIDId; StockViewModel.ProductUidId = ProductUidId; StockViewModel.HeaderFromGodownId = null; StockViewModel.HeaderGodownId = s.GodownId; StockViewModel.HeaderProcessId = s.ProcessId; StockViewModel.GodownId = (int)s.GodownId; StockViewModel.Remark = s.Remark; StockViewModel.Status = s.Status; StockViewModel.ProcessId = s.ProcessId; StockViewModel.LotNo = null; StockViewModel.CostCenterId = SelectedJobOrderLine.CostCenterId; StockViewModel.Qty_Iss = 0; StockViewModel.Qty_Rec = 1; StockViewModel.Rate = SelectedJobOrderLine.Rate; StockViewModel.ExpiryDate = null; StockViewModel.Specification = JobOrderLine.Specification; StockViewModel.Dimension1Id = JobOrderLine.Dimension1Id; StockViewModel.Dimension2Id = JobOrderLine.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(View("Create", svm)); } if (Cnt == 0) { s.StockHeaderId = StockViewModel.StockHeaderId; } JobReceiveLine line = new JobReceiveLine(); line.StockId = StockViewModel.StockId; //line.ProductUidHeaderId = ProdUidHeader.ProductUidHeaderId; line.ProductUidHeaderId = ProductUidHeaderId; //line.ProductUidId = ProdUid.ProductUIDId; line.ProductUidId = ProductUidId; line.JobReceiveHeaderId = s.JobReceiveHeaderId; line.JobOrderLineId = JobOrderLine.JobOrderLineId; line.Qty = 1; line.PassQty = 1; line.LossQty = 0; line.UnitConversionMultiplier = JobOrderLine.UnitConversionMultiplier; line.DealQty = 1 * JobOrderLine.UnitConversionMultiplier; line.DealUnitId = JobOrderLine.DealUnitId; line.Sr = Sr++; line.CreatedDate = DateTime.Now; line.ModifiedDate = DateTime.Now; line.CreatedBy = User.Identity.Name; line.ModifiedBy = User.Identity.Name; line.JobReceiveLineId = pk; line.ObjectState = Model.ObjectState.Added; new JobReceiveLineService(_unitOfWork).Create(line); new JobReceiveLineStatusService(_unitOfWork).CreateLineStatus(line.JobReceiveLineId, ref db, false); pk++; Cnt = Cnt + 1; ProductUidCountForJobOrderLine++; } } } } } string Errormessage = ""; try { _unitOfWork.Save(); } catch (Exception ex) { Errormessage = _exception.HandleException(ex); ModelState.AddModelError("", Errormessage); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } IEnumerable <JobReceiveLine> JobReceiveLineList = new JobReceiveLineService(_unitOfWork).GetJobReceiveLineList(s.JobReceiveHeaderId); foreach (JobReceiveLine Line in JobReceiveLineList) { if (Line.ProductUidId != null) { ProductUid ProductUid = new ProductUidService(_unitOfWork).Find((int)Line.ProductUidId); ProductUid.GenDocId = Line.JobReceiveHeaderId; ProductUid.LastTransactionDocId = Line.JobReceiveHeaderId; ProductUid.GenLineId = Line.JobReceiveLineId; ProductUid.LastTransactionLineId = Line.JobReceiveLineId; new ProductUidService(_unitOfWork).Update(ProductUid); } } try { _unitOfWork.Save(); } catch (Exception ex) { Errormessage = _exception.HandleException(ex); ModelState.AddModelError("", Errormessage); PrepareViewBag(); ViewBag.Mode = "Add"; return(View("Create", svm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = s.DocTypeId, DocId = s.JobReceiveHeaderId, ActivityType = (int)ActivityTypeContants.WizardCreate, DocNo = s.DocNo, DocDate = s.DocDate, DocStatus = s.Status, })); System.Web.HttpContext.Current.Session.Remove("BarCodesWeavingWizardJobOrder"); return(Redirect(System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Modify/" + s.JobReceiveHeaderId)); } else { return(Redirect(System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Index/" + s.DocTypeId)); } } else { } } PrepareViewBag(); ViewBag.Mode = "Add"; //return Redirect(System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Submit/"+s.JobReceiveHeaderId); return(View("Create", svm)); }