コード例 #1
0
        public ActionResult HumanSpec()
        {
            var mng = new HRManager();

            ViewBag.Spec = mng.GetSpecs();
            return(View());
        }
コード例 #2
0
        public void HRManagerGetDirectReportsNoDirectReports()
        {
            HRManager      hrManager     = new HRManager();
            IList <string> directReports = hrManager.GetDirectReports("newemployee");

            Assert.AreEqual(0, directReports.Count);
        }
コード例 #3
0
        public ActionResult Spec_remove(string id)
        {
            var parameters = AjaxModel.GetAjaxParameters(HttpContext);
            var mng        = new HRManager();

            try
            {
                if (mng.IsSpecInUse(int.Parse(id)))
                {
                    return(Json(new
                    {
                        result = false,
                        msg = "Специализация связана с сотрудниками, сначало требуется удалить данную специализацию у сотрудников"
                    }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    mng.DeleteSpec(int.Parse(id));
                    return(Json(new
                    {
                        result = true,
                        msg = "Операция успешна"
                    }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                RDL.Debug.LogError(ex);
                return(Json(new
                {
                    result = false,
                    msg = "Ошибка"
                }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #4
0
 public ActionResult HSpecInline(int pk, string value)
 {
     try
     {
         var mng     = new HRManager();
         var idSpec  = int.Parse(value.Split('=')[0]);
         var valSpec = bool.Parse(value.Split('=')[1]);
         if (valSpec)
         {
             mng.SaveHumanSpec(pk, idSpec);
         }
         else
         {
             mng.DeleteHumanSpec(pk, idSpec);
         }
         return(Json(new
         {
             result = true,
             msg = "Операция успешна"
         }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         RDL.Debug.LogError(ex);
         return(Json(new
         {
             result = false,
             msg = "Ошибка"
         }, JsonRequestBehavior.AllowGet));
     }
 }
コード例 #5
0
        public ActionResult Spec_save()
        {
            var parameters = AjaxModel.GetAjaxParameters(HttpContext);
            var mng        = new HRManager();

            try
            {
                var fields  = (parameters["fields"] as ArrayList).ToArray().ToList().Select(x => x as Dictionary <string, object>).ToList();
                var newSpec = new hr_specializations
                {
                    id   = (AjaxModel.GetValueFromSaveField("id", fields) == "") ? 0 : int.Parse(AjaxModel.GetValueFromSaveField("id", fields)),
                    name = AjaxModel.GetValueFromSaveField("name", fields),
                    code = AjaxModel.GetValueFromSaveField("code", fields)
                };
                mng.SaveSpec(newSpec);
                return(Json(new
                {
                    result = newSpec.id > 0,
                    id = newSpec.id,
                    msg = (newSpec.id > 0) ? "Операция успешна" : "Ошибка"
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                RDL.Debug.LogError(ex);
                return(Json(new
                {
                    result = false,
                    id = 0,
                    msg = "Ошибка"
                }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #6
0
        public ActionResult Statuses_remove(string id)
        {
            var parameters = AjaxModel.GetAjaxParameters(HttpContext);
            var mng        = new HRManager();

            try
            {
                if (mng.GetHumanStatus(int.Parse(id)).hr_humans.Count > 0)
                {
                    return(Json(new
                    {
                        result = false,
                        msg = "Статус связан с сотрудником, сначало требуется снять данный статус со всех сотрудников"
                    }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    mng.DeleteHumanStatus(int.Parse(id));
                    return(Json(new
                    {
                        result = true,
                        msg = "Операция успешна"
                    }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                RDL.Debug.LogError(ex);
                return(Json(new
                {
                    result = false,
                    msg = "Ошибка"
                }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #7
0
        public void HRManagerGetManagerTest()
        {
            HRManager hrManager = new HRManager();
            string    manager   = hrManager.GetManager("testuser");

            Assert.AreEqual(String.Format(@"{0}\{1}", Environment.MachineName, "spgmanager"), manager);
        }
コード例 #8
0
        public void HRManagerGetCostCenterTest()
        {
            HRManager hrManager  = new HRManager();
            string    costCenter = hrManager.GetCostCenter("testuser");

            Assert.AreEqual("DEP100", costCenter);
        }
コード例 #9
0
        public void HRManagerGetDirectReportsWithSystemAccount()
        {
            HRManager      hrManager     = new HRManager();
            IList <string> directReports = hrManager.GetDirectReports(@"SHAREPOINT\system");

            Assert.AreEqual(string.Format(@"{0}\{1}", Environment.MachineName, "spgemployee"), directReports[0]);
        }
コード例 #10
0
        public void HRManagerGetDirectReports()
        {
            HRManager      hrManager     = new HRManager();
            IList <string> directReports = hrManager.GetDirectReports(string.Format(@"{0}\{1}", Environment.MachineName, "spgmanager"));

            Assert.AreEqual(string.Format(@"{0}\{1}", Environment.MachineName, "spgemployee"), directReports[0]);
        }
コード例 #11
0
        // GET: HR
        public ActionResult Index()
        {
            var mng = new HRManager();

            ViewBag.statusName = mng.GetHumanStatuses();
            ViewBag.sourceName = mng.GetHumanSources();
            return(View());
        }
コード例 #12
0
        public ActionResult HumansInline(int pk, string value, string name)
        {
            var mng = new HRManager();

            mng.EditHumanField(pk, name, value);
            return(Json(new
            {
                result = true
            }));
        }
コード例 #13
0
        public void HRManagerGetCostCentersTest()
        {
            HRManager      hrManager   = new HRManager();
            IList <string> costCenters = hrManager.GetCostCenters();

            Assert.AreEqual(3, costCenters.Count);
            Assert.AreEqual("DEP100", costCenters[0]);
            Assert.AreEqual("DEP200", costCenters[1]);
            Assert.AreEqual("DEP300", costCenters[2]);
        }
コード例 #14
0
        //GET: Contractors
        public ActionResult Contragents()
        {
            var crmManager = new CRMManager();

            ViewBag.Clients = crmManager.GetClients();

            var hrManager = new HRManager();

            ViewBag.Humans = hrManager.GetHumans();

            return(View());
        }
コード例 #15
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());
        }
コード例 #16
0
        public ActionResult HSpec_getItems()
        {
            var parameters = AjaxModel.GetParameters(HttpContext);
            var mng        = new HRManager();
            var items      = mng.GetHumanSpecs();

            return(Json(new
            {
                items = items.Select(x => new
                {
                    x.id,
                    fio = x.fio,
                    specIds = "<div class='usHSpec'>" + String.Join(",", x.hr_humanSpecializations.Select(y => ((y.specializationID != null) ? y.specializationID.ToString() : "")).ToArray()) + "</div>"
                }),
                total = items.Count
            }, JsonRequestBehavior.AllowGet));
        }
コード例 #17
0
        public ActionResult Spec_getItems()
        {
            var parameters = AjaxModel.GetParameters(HttpContext);
            var mng        = new HRManager();
            var items      = mng.GetSpecs();

            return(Json(new
            {
                items = items.Select(x => new
                {
                    x.id,
                    name = x.name,
                    code = x.code
                }),
                total = items.Count
            }, JsonRequestBehavior.AllowGet));
        }
コード例 #18
0
        public ActionResult CreateHuman(string fio, string note, int sourceID, int statusID)
        {
            var mng = new HRManager();

            int?sourceID_ = null;

            if (sourceID != 0)
            {
                sourceID_ = sourceID;
            }

            int?statusID_ = null;

            if (statusID != 0)
            {
                statusID_ = statusID;
            }

            var item = new hr_humans
            {
                id         = 0,
                fio        = fio,
                city       = null,
                note       = note,
                sourceID   = sourceID_,
                statusID   = statusID_,
                addedBy    = null,
                created    = DateTime.Now,
                subchannel = null,
                username   = null,
                needActive = null,
                sourceGuid = null,
                pay        = null,
                hourRate   = null
            };

            mng.SaveHuman(item);

            return(Json(new
            {
                result = item.id > 0,
                id = item.id
            }));
        }
コード例 #19
0
        public ActionResult Humans_remove(int id)
        {
            var res  = false;
            var mng  = new HRManager();
            var item = mng.GetHuman(id);
            var msg  = "";

            if (item != null)
            {
                mng.DeleteHuman(id);
                msg = "HR удален!";
                res = true;
            }
            return(Json(new
            {
                result = res,
                msg = msg
            }));
        }
コード例 #20
0
        public static void HR_management()
        {
            //Создаем компании
            Company AudiCompany = new Company("Audi", 3);

            AudiCompany.ProfessionsList.Add("бухгалтер", false);
            AudiCompany.ProfessionsList.Add("водитель", false);
            AudiCompany.ProfessionsList.Add("слесарь", false);

            Company MersedesCompany = new Company("Mersedes", 1);

            MersedesCompany.ProfessionsList.Add("слесарь", false);

            Company VolksWagenCompany = new Company("VolksWagen", 2);

            VolksWagenCompany.ProfessionsList.Add("закупщик", false);
            VolksWagenCompany.ProfessionsList.Add("слесарь", false);

            Company GMCCompany = new Company("GMC", 2);

            GMCCompany.ProfessionsList.Add("продавец", false);
            GMCCompany.ProfessionsList.Add("слесарь", false);


            List <Company> companyList = new List <Company>();

            companyList.Add(AudiCompany);
            companyList.Add(MersedesCompany);
            companyList.Add(VolksWagenCompany);
            companyList.Add(GMCCompany);


            List <Person> workersList = new List <Person>();
            //создаем безработных
            Person per1 = new Person("Пяточкин В.", "бухгалтер");

            workersList.Add(per1);
            Person per2 = new Person("Ласточкин И.", "продавец");

            workersList.Add(per2);
            Person per3 = new Person("Пятеркин С.", "закупщик");

            workersList.Add(per3);
            Person per4 = new Person("Гаврилов А.", "слесарь");

            workersList.Add(per4);
            Person per5 = new Person("Иванов В.", "слесарь");

            workersList.Add(per5);
            Person per6 = new Person("Петров Е.", "слесарь");

            workersList.Add(per6);
            Person per7 = new Person("Сидоров Ю.", "слесарь");

            workersList.Add(per7);
            Person per8 = new Person("Цветаев В.", "слесарь");

            workersList.Add(per8);



            //создание HR менеджера
            HRManager HR_man = new HRManager("Иванова О.К.");

            //подобрать безработных в компании
            HR_man.ArrangePeronsByProfession(workersList, companyList);
        }
コード例 #21
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));
        }