public ActionResult GetApproverList([DataSourceRequest] DataSourceRequest request, FIN_ApproverECLAIMSearchModel model) { if (model != null) { model.ProfileID = Common.DotNetToOracle(model.ProfileID); } //#region lay ds approver hiển thị trên 1 dòng ứng với profile var actionService = new ActionService(UserLogin); ListQueryModel lstModel = new ListQueryModel { PageIndex = 1, PageSize = int.MaxValue - 1,//request.PageSize, Filters = ExtractFilterAttributes(request), Sorts = ExtractSortAttributes(request), AdvanceFilters = ExtractAdvanceFilterAttributes(model) }; var status = string.Empty; var listEntity = actionService.GetData<FIN_ApproverECLAIMEntity>(lstModel, ConstantSql.hrm_fin_sp_get_ApproverECLAIM, ref status).ToList(); if (model.OrderNo.HasValue) { listEntity = listEntity.Where(s => s.OrderNo != null && s.OrderNo.Value == model.OrderNo.Value).ToList(); } if (listEntity != null) { // request.Page = 1; //var listModel = listEntity.Translate<FIN_ApproverECLAIMModel>(); var listModel = listEntity; var profileIds = listModel.GroupBy(p => new { p.ProfileID, p.ApprovedType }).ToList(); var approverReturn = new List<FIN_ApproverECLAIMModel>(); var approverNames = string.Empty; foreach (var profileId in profileIds) { var approvers = listModel.Where(p => p.ProfileID == profileId.Key.ProfileID && p.ApprovedType == profileId.Key.ApprovedType).OrderBy(p => p.OrderNo).ToList(); var approver = approvers.FirstOrDefault(); approverNames = string.Empty; foreach (var finApproverModel in approvers) { approverNames += finApproverModel.OrderNo + " - " + finApproverModel.ApprovedName + " , "; } var fin = new FIN_ApproverECLAIMModel(); if (approver != null) { fin.ID = approver.ID; fin.ProfileName = approver.ProfileName; fin.ApprovedType = approver.ApprovedType; fin.ApprovedTypeView = approver.ApprovedTypeView; fin.ProfileID = profileId.Key.ProfileID; } fin.ApprovedName = approverNames.Substring(0, approverNames.Length - 2); approverReturn.Add(fin); } var dataSourceResult = approverReturn.ToDataSourceResult(request); dataSourceResult.Total = approverReturn.Count(); return Json(dataSourceResult, JsonRequestBehavior.AllowGet); } var listModelNull = new List<FIN_ApproverECLAIMModel>(); ModelState.AddModelError("Id", status); return Json(listModelNull.ToDataSourceResult(request, ModelState)); }
public ActionResult GetApproverOfProfileList([DataSourceRequest] DataSourceRequest request, FIN_ApproverECLAIMSearchModel model) { //chỉ load những dữ liệu theo profileId if (model != null) { model.ProfileID = Common.DotNetToOracle(model.ProfileID); } if (model != null && model.ProfileID == null) { model.ProfileID = Common.DotNetToOracle(Guid.Empty.ToString()); } return GetListDataAndReturn<FIN_ApproverECLAIMModel, FIN_ApproverECLAIMEntity, FIN_ApproverECLAIMSearchModel>(request, model, ConstantSql.hrm_fin_sp_get_ApproverECLAIM); }