//GET: Contractors public ActionResult Contragents() { var crmManager = new CRMManager(); ViewBag.Clients = crmManager.GetClients(); var hrManager = new HRManager(); ViewBag.Humans = hrManager.GetHumans(); return(View()); }
// GET: Finances public ActionResult Index() { var mng = new FinanceManager(); var mng_hr = new HRManager(); var mng_crm = new CRMManager(); ViewBag.contragentName = mng.GetFinContragents(); ViewBag.typeName = mng.GetFinTypes(); ViewBag.projectName = mng.GetProjects(); ViewBag.statusName = mng.GetFinStatuses(); ViewBag.hrName = mng_hr.GetHumans(); ViewBag.crmName = mng_crm.GetClients(); return(View()); }
public ActionResult Humans_getItems() { var parameters = AjaxModel.GetParameters(HttpContext); var mng = new HRManager(); var items = mng.GetHumans().AsQueryable(); if (parameters.filter != null && parameters.filter.Count > 0) { var text = parameters.filter.ContainsKey("text") ? parameters.filter["text"].ToString() : ""; var sourceID = parameters.filter.ContainsKey("sourceName") ? RDL.Convert.StrToInt(parameters.filter["sourceName"].ToString(), 0) : 0; items = items.Where(x => (sourceID == 0 || x.sourceID == sourceID) ); List <int?> statusIDs = new List <int?>(); if (parameters.filter.ContainsKey("statusName")) { statusIDs = (parameters.filter["statusName"] as ArrayList).ToArray().Select(x => (int?)RDL.Convert.StrToInt(x.ToString(), 0)).ToList(); } items = items.Where(x => (statusIDs.Count == 0 || statusIDs.Contains(x.statusID)) ); var needActive = parameters.filter.ContainsKey("needActive") ? RDL.Convert.StrToInt(parameters.filter["needActive"].ToString(), -1) : -1; items = items.Where(x => //фильтр в этом месте не срабатывает для needActive=NULL (needActive == -1 || x.needActive == (needActive == 1 ? true : false)) ); if (text != "") { items = items.ToList().Where(x => x.fio != null && x.fio.IndexOf(text, StringComparison.CurrentCultureIgnoreCase) >= 0 || x.city != null && x.city.IndexOf(text, StringComparison.CurrentCultureIgnoreCase) >= 0 || x.note != null && x.note.IndexOf(text, StringComparison.CurrentCultureIgnoreCase) >= 0 || x.username != null && x.username.IndexOf(text, StringComparison.CurrentCultureIgnoreCase) >= 0 || x.addedBy != null && x.addedBy.IndexOf(text, StringComparison.CurrentCultureIgnoreCase) >= 0 || x.pay != null && x.pay.IndexOf(text, StringComparison.CurrentCultureIgnoreCase) >= 0 ).AsQueryable(); } } var sorts = parameters.sort.Split(",".ToArray(), StringSplitOptions.RemoveEmptyEntries); var directions = parameters.direction.Split(",".ToArray(), StringSplitOptions.RemoveEmptyEntries); var sort1 = sorts.Length > 0 ? sorts[0] : ""; var direction1 = directions.Length > 0 ? directions[0] : ""; var sort2 = sorts.Length > 1 ? sorts[1] : ""; var direction2 = directions.Length > 1 ? directions[1] : ""; IOrderedQueryable <hr_humans> orderedItems = items.OrderByDescending(p => p.created); switch (sort1) { case "fio": if (direction1 == "up") { orderedItems = items.OrderBy(x => x.fio); } else { orderedItems = items.OrderByDescending(x => x.fio); } break; case "city": if (direction1 == "up") { orderedItems = items.OrderBy(x => x.city); } else { orderedItems = items.OrderByDescending(x => x.city); } break; case "note": if (direction1 == "up") { orderedItems = items.OrderBy(x => x.note); } else { orderedItems = items.OrderByDescending(x => x.note); } break; case "addedBy": if (direction1 == "up") { orderedItems = items.OrderBy(x => x.addedBy); } else { orderedItems = items.OrderByDescending(x => x.addedBy); } break; case "statusName": if (direction1 == "up") { orderedItems = items.OrderBy(x => x.hr_statuses.name); } else { orderedItems = items.OrderByDescending(x => x.hr_statuses.name); } break; case "sourceName": if (direction1 == "up") { orderedItems = items.OrderBy(x => x.hr_sources.name); } else { orderedItems = items.OrderByDescending(x => x.hr_sources.name); } break; case "subchannel": if (direction1 == "up") { orderedItems = items.OrderBy(x => x.subchannel); } else { orderedItems = items.OrderByDescending(x => x.subchannel); } break; case "username": if (direction1 == "up") { orderedItems = items.OrderBy(x => x.username); } else { orderedItems = items.OrderByDescending(x => x.username); } break; case "needActive": if (direction1 == "up") { orderedItems = items.OrderBy(x => x.needActive); } else { orderedItems = items.OrderByDescending(x => x.needActive); } break; case "pay": if (direction1 == "up") { orderedItems = items.OrderBy(x => x.pay); } else { orderedItems = items.OrderByDescending(x => x.pay); } break; case "hourRate": if (direction1 == "up") { orderedItems = items.OrderBy(x => x.hourRate); } else { orderedItems = items.OrderByDescending(x => x.hourRate); } break; default: if (direction1 == "up") { orderedItems = items.OrderBy(x => x.created); } else { orderedItems = items.OrderByDescending(x => x.created); } break; } if (sort2 != "") { switch (sort2) { case "fio": if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.fio); } else { orderedItems = orderedItems.ThenByDescending(x => x.fio); } break; case "city": if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.city); } else { orderedItems = orderedItems.ThenByDescending(x => x.city); } break; case "note": if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.note); } else { orderedItems = orderedItems.ThenByDescending(x => x.note); } break; case "addedBy": if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.addedBy); } else { orderedItems = orderedItems.ThenByDescending(x => x.addedBy); } break; case "statusName": if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.hr_statuses.name); } else { orderedItems = orderedItems.ThenByDescending(x => x.hr_statuses.name); } break; case "sourceName": if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.hr_sources.name); } else { orderedItems = orderedItems.ThenByDescending(x => x.hr_sources.name); } break; case "subchannel": if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.subchannel); } else { orderedItems = orderedItems.ThenByDescending(x => x.subchannel); } break; case "username": if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.username); } else { orderedItems = orderedItems.ThenByDescending(x => x.username); } break; case "needActive": if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.needActive); } else { orderedItems = orderedItems.ThenByDescending(x => x.needActive); } break; case "pay": if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.pay); } else { orderedItems = orderedItems.ThenByDescending(x => x.pay); } break; case "hourRate": if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.hourRate); } else { orderedItems = orderedItems.ThenByDescending(x => x.hourRate); } break; default: if (direction2 == "up") { orderedItems = orderedItems.ThenBy(x => x.created); } else { orderedItems = orderedItems.ThenByDescending(x => x.created); } break; } } var total = orderedItems.Count(); var res2 = orderedItems.Skip(parameters.pageSize * (parameters.page - 1)).Take(parameters.pageSize).ToList(); return(Json(new { items = res2.Select(x => new { x.id, fio = x.fio ?? "", city = x.city ?? "", note = x.note ?? "", x.sourceID, sourceName = x.hr_sources != null ? x.hr_sources.name : "", x.statusID, statusName = x.hr_statuses != null ? x.hr_statuses.name : "", addedBy = x.addedBy ?? "", created = x.created.GetValueOrDefault().ToString("dd.MM.yyyy"), subchannel = x.subchannel ?? "", username = x.username ?? "", needActive = x.needActive.HasValue && x.needActive == true ? "Да" : "Нет", pay = x.pay ?? "", hourRate = x.hourRate ?? 0 }), total = total }, JsonRequestBehavior.AllowGet)); }