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); }
static void Main(string[] args) { ValidControl.CreatedFileEmployees(); List <Person> listPerson = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES); var menu = new MenuInterface(); menu.LoginMenu(listPerson); }
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)); }
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; } }
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(); } }
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(); } }
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); }
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(); } }
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("Сотрудник есть в базе или фамилия,имя введены не коректно"); } }
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); }