Ejemplo n.º 1
0
        public static int GetSalary(Person person)
        {
            var month           = new TimeSpan(DateTime.Now.Day, 0, 0, 0);
            var monthAgo        = Convert.ToDateTime(DateTime.Now - month);
            var listHoursWorked = LoadFromJson <HoursWorked> .GetListJson(FilePath.LIST_EMPLOYEES_REPORT);

            int totalWorkHour = 0;

            foreach (HoursWorked item in listHoursWorked)
            {
                if (person.name == item.person.name && person.secondName == item.person.secondName && item.workDay > monthAgo)
                {
                    totalWorkHour += item.workHours;
                }
            }

            int totalSalary = totalWorkHour * (person.salary / 160);

            if (totalWorkHour > 160)
            {
                totalSalary += (totalWorkHour - 160) * (person.salary / 160);
            }

            return(totalSalary);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            ValidControl.CreatedFileEmployees();
            List <Person> listPerson = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES);

            var menu = new MenuInterface();

            menu.LoginMenu(listPerson);
        }
Ejemplo n.º 3
0
        public static Person GetPerson()
        {
            List <Person> listPerson = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES);

            Console.Write("Введите Имя: ");
            var loginName = Console.ReadLine();

            Console.Write("Введите Фамилию: ");
            var loginSecondName = Console.ReadLine();

            return(ValidControl.GetPerson(listPerson, loginName, loginSecondName));
        }
Ejemplo n.º 4
0
        private void WorkerMenu(Person person)
        {
            Console.Clear();
            HeadMenu(person);
            Console.WriteLine(
                "\tВыберите желаемое действие:\n" +
                "\t(1).Добавить отработаные часы\n" +
                "\t(2).Просмотреть отчет по отработаному времени и зарплате за месяц\n" +
                "\t(3).Сменить пользователя\n" +
                "\t(4).Выход из программы");
            Console.Write("Ввод: ");


            //TODO: Проверить ввод пользователя.

            var userChoise = Console.ReadLine();

            int.TryParse(userChoise, out int value);

            switch (value)
            {
            case 1:
                WorkerFunc.AddWorkTime(person);
                Done();
                TopMenu(person);
                break;

            case 2:
                if (ValidControl.IsFileCreate(FilePath.LIST_EMPLOYEES_REPORT))
                {
                    Console.WriteLine($"Количество отработанных часов за месяц: {WorkerFunc.GetWorkTime(person)}");
                    Console.WriteLine($"Заработная плата за месяц: {WorkerFunc.GetSalary(person)} \n");
                    Console.WriteLine("Для возврата нажмите любую клавишу...");
                    Done();
                }
                TopMenu(person);
                break;

            case 3:
                List <Person> listPerson = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES);

                LoginMenu(listPerson);
                break;

            case 4:
                Environment.Exit(0);
                break;

            default:
                break;
            }
        }
Ejemplo n.º 5
0
        public static void GetWorkInfo()
        {
            var listHoursWorked = LoadFromJson <HoursWorked> .GetListJson(FilePath.LIST_EMPLOYEES_REPORT);

            HoursWorked checkEmpety = default;

            foreach (var item in listHoursWorked)
            {
                Console.WriteLine(item);
            }
            if (checkEmpety == default)
            {
                Console.WriteLine("Нет данных");
                Console.WriteLine();
            }
        }
Ejemplo n.º 6
0
        public static void GetWorkInfo(DateTime EndDate)
        {
            var listHoursWorked = LoadFromJson <HoursWorked> .GetListJson(FilePath.LIST_EMPLOYEES_REPORT);

            HoursWorked checkEmpety = default;

            foreach (var item in listHoursWorked)
            {
                if (EndDate.CompareTo(item.workDay) == -1 || EndDate.CompareTo(item.workDay) == 0)
                {
                    Console.WriteLine(item);
                }
            }
            if (checkEmpety == default)
            {
                Console.WriteLine("Нет данных");
                Console.WriteLine();
            }
        }
Ejemplo n.º 7
0
        public static int GetTotalSalary()
        {
            var listHoursWorked = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES);

            var totalSalary = 0;

            foreach (var item in listHoursWorked)
            {
                if (item.position == Position.Manager)
                {
                    totalSalary += ManagerFunc.GetSalary(item);
                }
                else
                {
                    totalSalary += WorkerFunc.GetSalary(item);
                }
            }
            return(totalSalary);
        }
Ejemplo n.º 8
0
        public static void GetWorkInfo(DateTime StartDate, DateTime EndDate, Person person)
        {
            var listHoursWorked = LoadFromJson <HoursWorked> .GetListJson(FilePath.LIST_EMPLOYEES_REPORT);

            HoursWorked checkEmpety = default;

            foreach (var item in listHoursWorked)
            {
                if (StartDate <= item.workDay && EndDate >= item.workDay && person == item.person)
                {
                    Console.WriteLine(item);
                }
            }
            if (checkEmpety == default)
            {
                Console.WriteLine("Нет данных");
                Console.WriteLine();
            }
        }
Ejemplo n.º 9
0
        public static void AddPersonal()
        {
            var listPerson = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES);

            var regexName = new Regex(@"^[A-Z][a-z]*$");

            Console.WriteLine();
            Console.Write("Введите имя нового сотрудника: ");
            var name = Console.ReadLine();

            Console.Write("Введите фамилию нового сотрудника: ");
            var secondName = Console.ReadLine();

            if (regexName.IsMatch(name) && regexName.IsMatch(secondName) && !ValidControl.IsPerson(listPerson, name, secondName))
            {
                Console.Write("Введите должность нового сотрудника: \n" +
                              "\t\t 0 - Руководитель \n" +
                              "\t\t 1 - Штатный сотрудник  \n" +
                              "\t\t 2 - Фриланс \n");
                int.TryParse(Console.ReadLine(), out int value);
                if (value > 0 && value < 2)
                {
                    var person = new Person(name, secondName, (Position)value);
                    using (var file = new StreamWriter(FilePath.LIST_EMPLOYEES, true))
                    {
                        file.WriteLine(JsonSerializer.Serialize(person));
                    }
                }
                else
                {
                    Console.WriteLine("Должность сотрудника введена некорректно");
                }
            }
            else
            {
                Console.WriteLine("Сотрудник есть в базе или фамилия,имя введены не коректно");
            }
        }
Ejemplo n.º 10
0
        private void ManagerMenu(Person person)
        {
            HeadMenu(person);
            Console.WriteLine(
                "\tВыберите желаемое действие:\n" +
                "\t(1).Работа с собственным отчетом\n" +
                "\t(2).Добавить сотрудника\n" +
                "\t(3).Просмотреть отчет по всем сотрудникам за период\n" +
                "\t(4).Просмотреть отчет по конкретному сотруднику за период\n" +
                "\t(5).Получить итоговую сумму по зарплате всех сотрудников за месяц\n" +
                "\t(6).Сменить пользователя\n" +
                "\t(7).Выход из программы\n");
            Console.Write("Ввод: ");

            //TODO: Проверить ввод пользователя.

            var userChoise = Console.ReadLine();

            int.TryParse(userChoise, out int value);

            switch (value)
            {
            case 1:
                WorkerMenu(person);
                break;

            case 2:
                ManagerFunc.AddPersonal();
                Done();
                TopMenu(person);
                break;

            case 3:
                if (ValidControl.IsFileCreate(FilePath.LIST_EMPLOYEES_REPORT))
                {
                    MenuPeriodAllPerson(person);
                }
                TopMenu(person);
                break;

            case 4:
                if (ValidControl.IsFileCreate(FilePath.LIST_EMPLOYEES_REPORT))
                {
                    var userPerson = ValidControl.GetPerson();
                    if (userPerson != null)
                    {
                        MenuPeriod(person, userPerson);
                    }
                    TopMenu(person);
                }
                TopMenu(person);
                break;

            case 5:
                Console.WriteLine($"Итоговая сумма к выплатам: {ManagerFunc.GetTotalSalary()}р.");
                Done();
                TopMenu(person);
                break;

            case 6:
                List <Person> listPerson = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES);

                LoginMenu(listPerson);

                break;

            case 7:
                Environment.Exit(0);
                break;

            default:
                break;
            }
            ManagerMenu(person);
        }