From 8226ea65c81b432dcd71e9eaa872e15c7c729cde Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Tue, 28 Dec 2021 08:54:05 +0530 Subject: [PATCH] fix: linter issues --- .../patches/v14_0/set_payroll_cost_centers.py | 49 ++++++++++--------- .../employee_cost_center.py | 1 + .../doctype/payroll_entry/payroll_entry.py | 4 +- .../payroll_entry/test_payroll_entry.py | 4 +- .../salary_structure_assignment.py | 10 ++-- 5 files changed, 35 insertions(+), 33 deletions(-) diff --git a/erpnext/patches/v14_0/set_payroll_cost_centers.py b/erpnext/patches/v14_0/set_payroll_cost_centers.py index db5baa5d20..89b305bb6f 100644 --- a/erpnext/patches/v14_0/set_payroll_cost_centers.py +++ b/erpnext/patches/v14_0/set_payroll_cost_centers.py @@ -1,31 +1,32 @@ import frappe + def execute(): - frappe.reload_doc('payroll', 'doctype', 'employee_cost_center') - frappe.reload_doc('payroll', 'doctype', 'salary_structure_assignment') + frappe.reload_doc('payroll', 'doctype', 'employee_cost_center') + frappe.reload_doc('payroll', 'doctype', 'salary_structure_assignment') - employees = frappe.get_all("Employee", fields=["department", "payroll_cost_center", "name"]) + employees = frappe.get_all("Employee", fields=["department", "payroll_cost_center", "name"]) - employee_cost_center = {} - for d in employees: - cost_center = d.payroll_cost_center - if not cost_center and d.department: - cost_center = frappe.get_cached_value("Department", d.department, "payroll_cost_center") + employee_cost_center = {} + for d in employees: + cost_center = d.payroll_cost_center + if not cost_center and d.department: + cost_center = frappe.get_cached_value("Department", d.department, "payroll_cost_center") - if cost_center: - employee_cost_center.setdefault(d.name, cost_center) - - salary_structure_assignments = frappe.get_all("Salary Structure Assignment", - filters = {"docstatus": ["!=", 2]}, - fields=["name", "employee"]) + if cost_center: + employee_cost_center.setdefault(d.name, cost_center) - for d in salary_structure_assignments: - cost_center = employee_cost_center.get(d.employee) - if cost_center: - assignment = frappe.get_doc("Salary Structure Assignment", d.name) - if not assignment.get("payroll_cost_centers"): - assignment.append("payroll_cost_centers", { - "cost_center": cost_center, - "percentage": 100 - }) - assignment.save() \ No newline at end of file + salary_structure_assignments = frappe.get_all("Salary Structure Assignment", + filters = {"docstatus": ["!=", 2]}, + fields=["name", "employee"]) + + for d in salary_structure_assignments: + cost_center = employee_cost_center.get(d.employee) + if cost_center: + assignment = frappe.get_doc("Salary Structure Assignment", d.name) + if not assignment.get("payroll_cost_centers"): + assignment.append("payroll_cost_centers", { + "cost_center": cost_center, + "percentage": 100 + }) + assignment.save() \ No newline at end of file diff --git a/erpnext/payroll/doctype/employee_cost_center/employee_cost_center.py b/erpnext/payroll/doctype/employee_cost_center/employee_cost_center.py index 91bcc21d18..6c5be9744b 100644 --- a/erpnext/payroll/doctype/employee_cost_center/employee_cost_center.py +++ b/erpnext/payroll/doctype/employee_cost_center/employee_cost_center.py @@ -4,5 +4,6 @@ # import frappe from frappe.model.document import Document + class EmployeeCostCenter(Document): pass diff --git a/erpnext/payroll/doctype/payroll_entry/payroll_entry.py b/erpnext/payroll/doctype/payroll_entry/payroll_entry.py index f61e68896b..a9a95546fa 100644 --- a/erpnext/payroll/doctype/payroll_entry/payroll_entry.py +++ b/erpnext/payroll/doctype/payroll_entry/payroll_entry.py @@ -234,7 +234,7 @@ class PayrollEntry(Document): if not self.employee_cost_centers.get(employee): ss_assignment_name = frappe.db.get_value("Salary Structure Assignment", {"employee": employee, "salary_structure": salary_structure, "docstatus": 1}, 'name') - + if ss_assignment_name: cost_centers = dict(frappe.get_all("Employee Cost Center", {"parent": ss_assignment_name}, ["cost_center", "percentage"], as_list=1)) @@ -244,7 +244,7 @@ class PayrollEntry(Document): default_cost_center = frappe.get_cached_value("Department", department, "payroll_cost_center") if not default_cost_center: default_cost_center = self.cost_center - + cost_centers = { default_cost_center: 100 } diff --git a/erpnext/payroll/doctype/payroll_entry/test_payroll_entry.py b/erpnext/payroll/doctype/payroll_entry/test_payroll_entry.py index e88a2ca9ed..4f097fa2c3 100644 --- a/erpnext/payroll/doctype/payroll_entry/test_payroll_entry.py +++ b/erpnext/payroll/doctype/payroll_entry/test_payroll_entry.py @@ -131,14 +131,14 @@ class TestPayrollEntry(unittest.TestCase): frappe.db.set_value("Company", "_Test Company", "default_payroll_payable_account", "_Test Payroll Payable - _TC") currency=frappe.db.get_value("Company", "_Test Company", "default_currency") - + make_salary_structure("_Test Salary Structure 1", "Monthly", employee1, company="_Test Company", currency=currency, test_tax=False) ss = make_salary_structure("_Test Salary Structure 2", "Monthly", employee2, company="_Test Company", currency=currency, test_tax=False) # update cost centers in salary structure assignment for employee2 ssa = frappe.db.get_value("Salary Structure Assignment", {"employee": employee2, "salary_structure": ss.name, "docstatus": 1}, 'name') - + ssa_doc = frappe.get_doc("Salary Structure Assignment", ssa) ssa_doc.payroll_cost_centers = [] ssa_doc.append("payroll_cost_centers", { diff --git a/erpnext/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py b/erpnext/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py index a7cee453ac..8359478d0b 100644 --- a/erpnext/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py +++ b/erpnext/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py @@ -5,7 +5,7 @@ import frappe from frappe import _ from frappe.model.document import Document -from frappe.utils import getdate, flt +from frappe.utils import flt, getdate class DuplicateAssignment(frappe.ValidationError): pass @@ -54,7 +54,7 @@ class SalaryStructureAssignment(Document): "account_name": _("Payroll Payable"), "company": self.company, "account_currency": frappe.db.get_value( "Company", self.company, "default_currency"), "is_group": 0}) self.payroll_payable_account = payroll_payable_account - + @frappe.whitelist() def set_payroll_cost_centers(self): self.payroll_cost_centers = [] @@ -69,7 +69,7 @@ class SalaryStructureAssignment(Document): payroll_cost_center = frappe.db.get_value("Employee", self.employee, "payroll_cost_center") if not payroll_cost_center and self.department: payroll_cost_center = frappe.db.get_value("Department", self.department, "payroll_cost_center") - + return payroll_cost_center def validate_cost_center_distribution(self): @@ -77,8 +77,7 @@ class SalaryStructureAssignment(Document): total_percentage = sum([flt(d.percentage) for d in self.get("payroll_cost_centers", [])]) if total_percentage != 100: frappe.throw(_("Total percentage against cost centers should be 100")) - - + def get_assigned_salary_structure(employee, on_date): if not employee or not on_date: @@ -93,6 +92,7 @@ def get_assigned_salary_structure(employee, on_date): }) return salary_structure[0][0] if salary_structure else None + @frappe.whitelist() def get_employee_currency(employee): employee_currency = frappe.db.get_value('Salary Structure Assignment', {'employee': employee}, 'currency')