|
45 | 45 |
|
46 | 46 | # task 13. Вывести список отделов с суммарным налогом на сотрудников этого отдела. |
47 | 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"]}') |
| 48 | +def departments_salary(departments): |
| 49 | + departments_salary = {} |
| 50 | + for department in departments: |
| 51 | + salary_lst = [] |
| 52 | + for employer in department["employers"]: |
| 53 | + salary_lst.append(employer["salary_rub"]) |
| 54 | + departments_salary[department["title"]] = sum(salary_lst) |
| 55 | + return departments_salary |
| 56 | + |
| 57 | + |
| 58 | +def departments_tax_rate(taxes, departments): |
| 59 | + taxes_for_department = {} |
| 60 | + |
| 61 | + for tax in taxes: |
| 62 | + taxes_for_department[tax["department"]] = tax["value_percents"] / 100 |
| 63 | + |
| 64 | + taxes_for_department["All"] = taxes_for_department.pop(None) |
| 65 | + |
| 66 | + department_taxes = {} |
| 67 | + departments_lst = [department["title"] for department in departments] |
| 68 | + |
| 69 | + for department in departments_lst: |
| 70 | + dep_tax = [] |
| 71 | + if True: |
| 72 | + dep_tax.append(taxes_for_department.get(department)) |
| 73 | + dep_tax.append(taxes_for_department.get("All")) |
| 74 | + if None in dep_tax: |
| 75 | + dep_tax.remove(None) |
| 76 | + department_taxes[department] = sum(dep_tax) |
| 77 | + else: |
| 78 | + dep_tax.append(tax_dict.get("All")) |
| 79 | + department_taxes[department] = sum(dep_tax) |
| 80 | + return department_taxes |
| 81 | + |
| 82 | + |
| 83 | +def department_tax_burden(departments_salary, department_taxes): |
| 84 | + for department in departments_salary: |
| 85 | + tax_burden = departments_salary.get(department) * department_taxes.get(department) |
| 86 | + print(f'По {department} суммарный налог на сотрудников равен {tax_burden}') |
| 87 | + |
| 88 | + |
| 89 | +if __name__ == "__main__": |
| 90 | + dep_sal = departments_salary(departments) |
| 91 | + dep_tax = departments_tax_rate(taxes, departments) |
| 92 | + print(department_tax_burden(dep_sal, dep_tax)) |
62 | 93 |
|
63 | 94 | # task 14. Вывести список всех сотрудников с указанием зарплаты "на руки" и зарплаты с учётом налогов. |
64 | 95 |
|
|
0 commit comments