//public ActionResult _Create(int Id) //Id ==>Design Content Header Id //{ // DesignConsumptionLineViewModel s = new DesignConsumptionLineViewModel(); // s.BaseProductId = Id; // s.ContentType = "Contents"; // DesignConsumptionLineViewModel temp = _BomDetailService.GetBaseProductDetail(Id); // s.DesignName = temp.DesignName; // s.QualityName = temp.QualityName; // s.Weight = temp.Weight; // PrepareViewBag(s); // return PartialView("_Create", s); //} public ActionResult _CreateMainContentForBaseProduct(int Id) //Id ==>Design Content Header Id { DesignConsumptionLineViewModel s = new DesignConsumptionLineViewModel(); s.BaseProductId = Id; s.ContentType = "Main Contents"; DesignConsumptionLineViewModel temp = _BomDetailService.GetBaseProductDetail(Id); var MainContens = _BomDetailService.GetDesignConsumptionFaceContentForIndex(Id); var LastMainContentLine = (from L in MainContens orderby L.BomDetailId descending select new { BomDetailId = L.BomDetailId, ProductId = L.ProductId }).FirstOrDefault(); if (LastMainContentLine != null) { s.ProductId = LastMainContentLine.ProductId; s.ConsumptionPer = 100 - MainContens.Sum(m => m.ConsumptionPer); } s.DesignName = temp.DesignName; s.DesignId = temp.DesignId; s.QualityName = temp.QualityName; s.Weight = temp.Weight; s.BaseProcessId = new ProcessService(_unitOfWork).Find(ProcessConstants.Weaving).ProcessId; PrepareViewBag(s); return(PartialView("_Create", s)); }
private void PrepareViewBag(DesignConsumptionLineViewModel svm) { var ProductFaceContentGroups = from p in db.Product join pg in db.ProductGroups on p.ReferenceDocId equals pg.ProductGroupId into ProductGroupTable from ProductGroupTab in ProductGroupTable.DefaultIfEmpty() join fp in db.FinishedProduct on ProductGroupTab.ProductGroupId equals fp.ProductGroupId into FinishedProductTable from FinishedProductTab in FinishedProductTable.DefaultIfEmpty() join pcl in db.ProductContentLine on FinishedProductTab.FaceContentId equals pcl.ProductContentHeaderId into ProductContentLineTable from ProductContentLineTab in ProductContentLineTable.DefaultIfEmpty() where p.ProductId == svm.BaseProductId && ((int?)ProductContentLineTab.ProductGroupId ?? 0) != 0 group new { ProductContentLineTab } by new { ProductContentLineTab.ProductGroupId } into Result select new { ProductGroupId = Result.Key.ProductGroupId }; var TotalMainContents = (from L in db.BomDetail join P in db.Product on L.ProductId equals P.ProductId into ProductTable from ProductTab in ProductTable.DefaultIfEmpty() join pcon in ProductFaceContentGroups on ProductTab.ProductGroupId equals pcon.ProductGroupId into ProductFaceContentTable from ProductFaceContentTab in ProductFaceContentTable.DefaultIfEmpty() where L.BaseProductId == svm.BaseProductId && ((int?)ProductFaceContentTab.ProductGroupId ?? 0) != 0 group new { L } by new { L.BaseProductId } into Result select new { TotalQty = Result.Sum(i => i.L.Qty) }).FirstOrDefault(); var TotalOtherContents = (from L in db.BomDetail join P in db.Product on L.ProductId equals P.ProductId into ProductTable from ProductTab in ProductTable.DefaultIfEmpty() join pcon in ProductFaceContentGroups on ProductTab.ProductGroupId equals pcon.ProductGroupId into ProductFaceContentTable from ProductFaceContentTab in ProductFaceContentTable.DefaultIfEmpty() where L.BaseProductId == svm.BaseProductId && ((int?)ProductFaceContentTab.ProductGroupId ?? 0) == 0 group new { L } by new { L.BaseProductId } into Result select new { TotalQty = Result.Sum(i => i.L.Qty) }).FirstOrDefault(); if (TotalMainContents != null && svm.Weight != 0) { Decimal TotalMainContentPercentage = Math.Round(TotalMainContents.TotalQty * 100 / svm.Weight, 2); ViewBag.LastTransaction = TotalMainContentPercentage + "% Main Contents filled, " + (100 - TotalMainContentPercentage) + " remaining."; } if (TotalOtherContents != null && svm.Weight != 0) { Decimal TotalOtherContentPercentage = Math.Round(TotalOtherContents.TotalQty * 100 / svm.Weight, 2); ViewBag.LastTransaction = ViewBag.LastTransaction + (TotalOtherContentPercentage + "% Other Contents filled.").ToString(); } }
public ActionResult _CreateOverTuftContent(int ProductGroupId, string QualityName, int ColourId, Decimal?Weight) //Id ==>Design Content Header Id { DesignConsumptionLineViewModel s = new DesignConsumptionLineViewModel(); s.ContentType = "OverTuft Contents"; s.DesignName = new ProductGroupService(_unitOfWork).Find(ProductGroupId).ProductGroupName; s.DesignId = ProductGroupId; s.QualityName = QualityName; s.ColourName = new ColourService(_unitOfWork).Find(ColourId).ColourName; s.Weight = Weight ?? 0; s.BaseProcessId = new ProcessService(_unitOfWork).Find(ProcessConstants.OverTuft).ProcessId; PrepareViewBag(s); return(PartialView("_Create", s)); }
public ActionResult _CreateOverTuftContentForBaseProduct(int Id) //Id ==>Design Content Header Id { DesignConsumptionLineViewModel s = new DesignConsumptionLineViewModel(); s.BaseProductId = Id; s.ContentType = "OverTuft Contents"; DesignConsumptionLineViewModel temp = _BomDetailService.GetBaseProductDetail(Id); s.DesignName = temp.DesignName; s.DesignId = temp.DesignId; s.QualityName = temp.QualityName; s.Weight = temp.Weight; s.BaseProcessId = new ProcessService(_unitOfWork).Find(ProcessConstants.OverTuft).ProcessId; PrepareViewBag(s); return(PartialView("_Create", s)); }
public ActionResult _Edit(int id) { DesignConsumptionLineViewModel s = _BomDetailService.GetDesignConsumptionLineForEdit(id); DesignConsumptionLineViewModel temp = _BomDetailService.GetBaseProductDetail(s.BaseProductId); s.DesignName = temp.DesignName; s.DesignId = temp.DesignId; s.QualityName = temp.QualityName; s.Weight = temp.Weight; PrepareViewBag(s); if (s == null) { return(HttpNotFound()); } return(PartialView("_Create", s)); }
public ActionResult _EditWithSKU(int id) { DesignConsumptionLineViewModel s = _BomDetailService.GetDesignConsumptionLineForEdit(id); DesignConsumptionLineViewModel temp = _BomDetailService.GetBaseProductDetail(s.BaseProductId); var product = db.Product.Find(s.BaseProductId); var pendingSKUConsumptionToUpdate = (from p in db.Product join pg in db.ProductGroups on p.ProductGroupId equals pg.ProductGroupId join pt in db.ProductTypes on pg.ProductTypeId equals pt.ProductTypeId join bd1 in db.BomDetail on p.ProductId equals bd1.BaseProductId join bd2 in db.BomDetail on bd1.ProductId equals bd2.BaseProductId join prod in db.Product on bd2.ProductId equals prod.ProductId join d1 in db.Dimension1 on bd2.Dimension1Id equals d1.Dimension1Id into table from dtab in table.DefaultIfEmpty() where pg.ProductGroupName == product.ProductName && bd2.Dimension1Id == s.Dimension1Id && bd2.ProductId == s.ProductId && bd2.BomDetailId != s.BomDetailId group new { p, bd2, dtab, prod } by bd2.BomDetailId into g orderby g.Max(m => m.p.ProductName) select g.Select(m => new SKUBomViewModel { BaseProductName = m.p.ProductName, Shade = m.dtab.Dimension1Name, Qty = m.bd2.Qty, ProductName = m.prod.ProductName }).FirstOrDefault()).ToList(); s.DesignName = temp.DesignName; s.QualityName = temp.QualityName; s.Weight = temp.Weight; s.SKUs = pendingSKUConsumptionToUpdate; PrepareViewBag(s); if (s == null) { return(HttpNotFound()); } return(PartialView("_EditWithSKU", s)); }
public ActionResult DeletePost(DesignConsumptionLineViewModel vm) { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); BomDetail BomDetail = _BomDetailService.Find(vm.BomDetailId); LogList.Add(new LogTypeViewModel { ExObj = BomDetail, }); _BomDetailService.Delete(vm.BomDetailId); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); return(PartialView("EditSize", vm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = new DocumentTypeService(_unitOfWork).FindByName(MasterDocTypeConstants.DesignConsumption).DocumentTypeId, DocId = BomDetail.BomDetailId, ActivityType = (int)ActivityTypeContants.Deleted, xEModifications = Modifications, })); return(Json(new { success = true })); }
public ActionResult _EditWithSKU(DesignConsumptionLineViewModel svm) { if (ModelState.IsValid) { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); BomDetail bomdetail = _BomDetailService.Find(svm.BomDetailId); int?ExistingDim1Id = bomdetail.Dimension1Id; int ExistingProductId = bomdetail.ProductId; BomDetail ExRec = Mapper.Map <BomDetail>(bomdetail); bomdetail.BaseProductId = svm.BaseProductId; bomdetail.Dimension1Id = svm.Dimension1Id; bomdetail.ProductId = svm.ProductId; bomdetail.ModifiedDate = DateTime.Now; bomdetail.ModifiedBy = User.Identity.Name; bomdetail.ObjectState = Model.ObjectState.Modified; _BomDetailService.Update(bomdetail); var product = db.Product.Find(bomdetail.BaseProductId); var pendingSKUConsumptionToUpdate = (from p in db.Product join pg in db.ProductGroups on p.ProductGroupId equals pg.ProductGroupId join pt in db.ProductTypes on pg.ProductTypeId equals pt.ProductTypeId join bd1 in db.BomDetail on p.ProductId equals bd1.BaseProductId join bd2 in db.BomDetail on bd1.ProductId equals bd2.BaseProductId where pg.ProductGroupName == product.ProductName && bd2.Dimension1Id == ExistingDim1Id && bd2.ProductId == ExistingProductId && bd2.BomDetailId != bomdetail.BomDetailId group bd2 by bd2.BomDetailId into g orderby g.Key select g.FirstOrDefault()).ToList(); foreach (var item in pendingSKUConsumptionToUpdate) { item.ProductId = bomdetail.ProductId; item.Dimension1Id = bomdetail.Dimension1Id; item.ObjectState = Model.ObjectState.Modified; _BomDetailService.Update(item); } LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = bomdetail, }); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); Modifications.Add("Updated in All SKU and Shades."); try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); return(PartialView("_EditWithSKU", svm)); } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = new DocumentTypeService(_unitOfWork).FindByName(MasterDocTypeConstants.DesignConsumption).DocumentTypeId, DocId = bomdetail.BomDetailId, ActivityType = (int)ActivityTypeContants.Modified, xEModifications = Modifications, })); return(Json(new { success = true })); } PrepareViewBag(svm); return(PartialView("_EditWithSKU", svm)); }
public ActionResult _CreatePost(DesignConsumptionLineViewModel svm) { if (ModelState.IsValid) { FinishedProduct product = new FinishedProduct(); if (svm.BaseProductId == 0) { ProductQuality Quality = new ProductQualityService(_unitOfWork).Find(svm.QualityName); string ConsumptionProductName = ""; if (svm.ColourName != "" && svm.ColourName != null) { ConsumptionProductName = svm.DesignName.ToString().Trim() + "-" + svm.ColourName.ToString().Trim() + "-Bom"; } else { ConsumptionProductName = svm.DesignName.ToString().Trim() + "-Bom"; } int ProductGroupId = new ProductGroupService(_unitOfWork).Find(svm.DesignName).ProductGroupId; product.ProductCode = ConsumptionProductName; product.ProductName = ConsumptionProductName; product.ProductGroupId = new ProductGroupService(_unitOfWork).Find(ProductGroupConstants.Bom).ProductGroupId; product.DivisionId = (int)System.Web.HttpContext.Current.Session["DivisionId"]; product.IsActive = true; product.ReferenceDocTypeId = new DocumentTypeService(_unitOfWork).FindByName(MasterDocTypeConstants.ProductGroup).DocumentTypeId; product.ReferenceDocId = ProductGroupId; product.StandardWeight = svm.Weight; product.CreatedDate = DateTime.Now; product.ModifiedDate = DateTime.Now; product.CreatedBy = User.Identity.Name; product.ModifiedBy = User.Identity.Name; product.ObjectState = Model.ObjectState.Added; product.IsSample = false; product.ProductQualityId = Quality.ProductQualityId; new ProductService(_unitOfWork).Create(product); ProductGroup ProductGroup = new ProductGroupService(_unitOfWork).Find(svm.DesignName); Colour Colour = new ColourService(_unitOfWork).Find(svm.ColourName); if (ProductGroup != null && Colour != null) { var ProductList = (from p in db.FinishedProduct where p.ProductGroupId == ProductGroup.ProductGroupId && p.ColourId == Colour.ColourId select new { ProductId = p.ProductId }).ToList(); foreach (var item in ProductList) { BomDetail bomdetail = new BomDetail(); bomdetail.BaseProductId = item.ProductId; bomdetail.BatchQty = 1; bomdetail.ConsumptionPer = 100; bomdetail.ProcessId = new ProcessService(_unitOfWork).Find(ProcessConstants.Weaving).ProcessId; bomdetail.BaseProcessId = svm.BaseProcessId; bomdetail.ProductId = product.ProductId; bomdetail.Qty = 1; bomdetail.CreatedDate = DateTime.Now; bomdetail.ModifiedDate = DateTime.Now; bomdetail.CreatedBy = User.Identity.Name; bomdetail.ModifiedBy = User.Identity.Name; bomdetail.ObjectState = Model.ObjectState.Added; _BomDetailService.Create(bomdetail); } } LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = new DocumentTypeService(_unitOfWork).Find(MasterDocTypeConstants.DesignColourConsumption).DocumentTypeId, DocId = product.ProductId, ActivityType = (int)ActivityTypeContants.Added, })); } else { //product = new FinishedProductService(_unitOfWork).Find(svm.BaseProductId); product.ProductId = svm.BaseProductId; } if (svm.BomDetailId == 0) { BomDetail bomdetail = new BomDetail(); bomdetail.BaseProductId = svm.BaseProductId; bomdetail.BatchQty = 1; bomdetail.ConsumptionPer = svm.ConsumptionPer; bomdetail.Dimension1Id = svm.Dimension1Id; bomdetail.ProcessId = new ProcessService(_unitOfWork).Find(ProcessConstants.Weaving).ProcessId; bomdetail.BaseProcessId = svm.BaseProcessId; bomdetail.ProductId = svm.ProductId; bomdetail.Qty = svm.Qty; bomdetail.CreatedDate = DateTime.Now; bomdetail.ModifiedDate = DateTime.Now; bomdetail.CreatedBy = User.Identity.Name; bomdetail.ModifiedBy = User.Identity.Name; bomdetail.ObjectState = Model.ObjectState.Added; _BomDetailService.Create(bomdetail); if (bomdetail.BaseProductId == bomdetail.ProductId) { PrepareViewBag(svm); //return View(svm).Danger(DataValidationMsg); ModelState.AddModelError("", "Invalid Product is Selected!"); return(PartialView("_Create", svm)); } 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 = new DocumentTypeService(_unitOfWork).FindByName(MasterDocTypeConstants.DesignConsumption).DocumentTypeId, DocId = bomdetail.BomDetailId, ActivityType = (int)ActivityTypeContants.Added, })); if (svm.ContentType == "Main Contents") { return(RedirectToAction("_CreateMainContentForBaseProduct", new { id = product.ProductId })); } else if (svm.ContentType == "OverTuft Contents") { return(RedirectToAction("_CreateOverTuftContentForBaseProduct", new { id = product.ProductId })); } else { return(RedirectToAction("_CreateOtherContentForBaseProduct", new { id = product.ProductId })); } } else { List <LogTypeViewModel> LogList = new List <LogTypeViewModel>(); BomDetail bomdetail = _BomDetailService.Find(svm.BomDetailId); BomDetail ExRec = Mapper.Map <BomDetail>(bomdetail); bomdetail.BaseProductId = svm.BaseProductId; bomdetail.BatchQty = 1; bomdetail.ConsumptionPer = svm.ConsumptionPer; bomdetail.Dimension1Id = svm.Dimension1Id; bomdetail.ProductId = svm.ProductId; bomdetail.Qty = svm.Qty; bomdetail.ModifiedDate = DateTime.Now; bomdetail.ModifiedBy = User.Identity.Name; bomdetail.ObjectState = Model.ObjectState.Modified; _BomDetailService.Update(bomdetail); LogList.Add(new LogTypeViewModel { ExObj = ExRec, Obj = bomdetail, }); XElement Modifications = new ModificationsCheckService().CheckChanges(LogList); 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 = new DocumentTypeService(_unitOfWork).FindByName(MasterDocTypeConstants.DesignConsumption).DocumentTypeId, DocId = bomdetail.BomDetailId, ActivityType = (int)ActivityTypeContants.Modified, xEModifications = Modifications, })); return(Json(new { success = true })); } } PrepareViewBag(svm); return(PartialView("_Create", svm)); }