コード例 #1
0
        //GET: Contractors
        public ActionResult Contragents()
        {
            var crmManager = new CRMManager();

            ViewBag.Clients = crmManager.GetClients();

            var hrManager = new HRManager();

            ViewBag.Humans = hrManager.GetHumans();

            return(View());
        }
コード例 #2
0
        // 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());
        }
コード例 #3
0
        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));
        }