public ActionResult CreateOrUpdateSalesApprovers(ApproverFormViewModel model) { string msg = ""; bool isNewApprovers = false; bool result = true; //only filter approver with model's sector var salesApproversForSector = model.SalesApprovers.Where(s => s.Sector == model.Sector).ToList(); //if (salesApproversForSector.Select(s => s.Id).Any(id => id == 0)) // isNewApprovers = true; var existedSalesCodes = eQuotationContext.Current.ACN_EQ_Sales.Where(s => s.SalesCode == model.SalesCode).ToList(); //if new create approver and sales code exist, return error message if (model.IsNew && existedSalesCodes != null && existedSalesCodes.Count > 0) { msg = "Sales Code is duplicated!"; result = false; } else { var acnSalesApprovers = salesApproversForSector.Select(item => new ACN_EQ_Sales() { Id = item.Id, SalesCode = model.SalesCode, SalesEmail = model.SalesEmail, IdSBU = model.IdSBU, Sector = model.Sector, ApproverEmail = item.ApproverEmail, Level = item.Level }).ToList(); result = eQuotationDAL.CreateOrUpdateACNSalesApprovers(acnSalesApprovers, ref msg); } if (result) { return(RedirectToAction("SalesApproverList")); } else { return(Json(new { succeed = result, err = msg })); } }
public ActionResult EditSalesApprovers(string id) { var model = new ApproverFormViewModel() { SectorList = new List <string>(), SalesApprovers = new List <ACN_EQ_Sales>(), IsNew = false }; var existedSalesApprover = eQuotationContext.Current.ACN_EQ_Sales.Where(s => s.SalesCode == id).OrderBy(a => a.Level).ToList(); model.SalesCode = existedSalesApprover.FirstOrDefault().SalesCode; model.SalesEmail = existedSalesApprover.FirstOrDefault().SalesEmail; model.Sector = existedSalesApprover.FirstOrDefault().Sector; model.IdSBU = existedSalesApprover.FirstOrDefault().IdSBU; model.SalesApprovers = existedSalesApprover; model.SectorList.Add(model.Sector); return(PartialView("SalesApproverForm", model)); }
public ActionResult NewSalesApprovers() { var executives = eQuotationContext.Current.ACN_Executive.ToList(); var sectorGroup = executives.GroupBy(e => e.Sector); var model = new ApproverFormViewModel() { SectorList = new List <string>(), SalesApprovers = new List <ACN_EQ_Sales>(), IsNew = true }; string sector = UserRoleBusinessLogic.getSectorBySalesEmail(AppContext.UserEmail); if (!string.IsNullOrEmpty(sector)) { model.SectorList.Add(sector); } else { model.SectorList.AddRange(sectorGroup.Select(g => g.Key)); } foreach (var group in sectorGroup) { if (model.SectorList.Contains(group.Key)) { for (var i = 1; i <= group.Max(g => g.Level); i++) { var executive = group.SingleOrDefault(g => g.Level == i); var salesApprover = new ACN_EQ_Sales() { Sector = group.Key, Level = i, ApproverEmail = executive != null? executive.Email:"" }; model.SalesApprovers.Add(salesApprover); } } } return(PartialView("SalesApproverForm", model)); }