Skip to content

Commit 0563d48

Browse files
author
Alexey Chernykh
committed
add task 13, 14 company
1 parent 2c3c060 commit 0563d48

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

company_add_tasks.py

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
"""
2+
В этот раз у нас есть компания, в ней отделы, в отделах люди. У людей есть имя, должность и зарплата.
3+
Ваши задачи такие:
4+
5+
Третий уровень:
6+
Теперь вам пригодится ещё список taxes, в котором хранится информация о налогах на сотрудников из разных департаметов.
7+
Если department None, значит, этот налог применяется ко всем сотрудникам компании.
8+
Иначе он применяется только к сотрудникам департмента, название которого совпадает с тем, что записано по ключу department.
9+
К одному сотруднику может применяться несколько налогов.
10+
11+
13. Вывести список отделов с суммарным налогом на сотрудников этого отдела.
12+
14. Вывести список всех сотредников с указанием зарплаты "на руки" и зарплаты с учётом налогов.
13+
15. Вывести список отделов с указанием месячной налоговой нагрузки – количеством денег, которые в месяц этот отдел платит налогами.
14+
16. Вывести список отделов, отсортированный по месячной налоговой нагрузке.
15+
17. Вывести всех сотрудников, за которых компания платит больше 100к налогов в год.
16+
18. Вывести имя и фамилию сотрудника, за которого компания платит меньше всего налогов.
17+
"""
18+
19+
departments = [
20+
{
21+
"title": "HR department",
22+
"employers": [
23+
{"first_name": "Daniel", "last_name": "Berger", "position": "Junior HR", "salary_rub": 50000},
24+
{"first_name": "Michelle", "last_name": "Frey", "position": "Middle HR", "salary_rub": 75000},
25+
{"first_name": "Kevin", "last_name": "Jimenez", "position": "Middle HR", "salary_rub": 70000},
26+
{"first_name": "Nicole", "last_name": "Riley", "position": "HRD", "salary_rub": 120000},
27+
]
28+
},
29+
{
30+
"title": "IT department",
31+
"employers": [
32+
{"first_name": "Christina", "last_name": "Walker", "position": "Python dev", "salary_rub": 80000},
33+
{"first_name": "Michelle", "last_name": "Gilbert", "position": "JS dev", "salary_rub": 85000},
34+
{"first_name": "Caitlin", "last_name": "Bradley", "position": "Teamlead", "salary_rub": 950000},
35+
{"first_name": "Brian", "last_name": "Hartman", "position": "CTO", "salary_rub": 130000},
36+
]
37+
},
38+
]
39+
40+
taxes = [
41+
{"department": None, "name": "vat", "value_percents": 13},
42+
{"department": "IT department", "name": "hiring", "value_percents": 6},
43+
{"department": "BizDev Department", "name": "sales", "value_percents": 20},
44+
]
45+
46+
# task 13. Вывести список отделов с суммарным налогом на сотрудников этого отдела.
47+
48+
tax_departments = {}
49+
for department in departments:
50+
department_salary = []
51+
for employer in department['employers']:
52+
department_salary.append(employer['salary_rub'])
53+
if department["title"] == 'IT department':
54+
tax_sum = sum(department_salary) * (taxes[0]["value_percents"] + taxes[1]["value_percents"]) / 100
55+
tax_departments["department"] = department["title"]
56+
tax_departments["tax"] = tax_sum
57+
else:
58+
tax_sum = sum(department_salary) * (taxes[0]["value_percents"] / 100)
59+
tax_departments["department"] = department["title"]
60+
tax_departments["tax"] = tax_sum
61+
print(f'По {tax_departments["department"]} суммарный налог на сотрудников равен {tax_departments["tax"]}')
62+
63+
# task 14. Вывести список всех сотрудников с указанием зарплаты "на руки" и зарплаты с учётом налогов.
64+
65+
tax_departments = {}
66+
for department in departments:
67+
for employer in department['employers']:
68+
if department["title"] == 'IT department':
69+
employer_tax = employer['salary_rub'] * (taxes[0]["value_percents"] + taxes[1]["value_percents"]) / 100
70+
salary_after_tax = employer['salary_rub'] - employer_tax
71+
print(f'{employer["first_name"]} {employer["last_name"]}: зарплата после вычета налогов'
72+
f' {int(salary_after_tax)}')
73+
print(f'{employer["first_name"]} {employer["last_name"]}: зарплата до вычета налогов'
74+
f' {employer["salary_rub"]}')
75+
else:
76+
employer_tax = employer['salary_rub'] * taxes[0]["value_percents"] / 100
77+
salary_after_tax = employer['salary_rub'] - employer_tax
78+
print(f'{employer["first_name"]} {employer["last_name"]}: зарплата после вычета налогов'
79+
f' {int(salary_after_tax)}')
80+
print(f'{employer["first_name"]} {employer["last_name"]}: зарплата до вычета налогов'
81+
f' {employer["salary_rub"]}')
82+
83+
# task 16. Вывести список отделов, отсортированный по месячной налоговой нагрузке.
84+
85+
# task 17. Вывести всех сотрудников, за которых компания платит больше 100к налогов в год.
86+
87+
# task 18. Вывести имя и фамилию сотрудника, за которого компания платит меньше всего налогов.

0 commit comments

Comments
 (0)