Browse Source

fix: linter issues

develop
Rucha Mahabal 3 years ago
parent
commit
8226ea65c8
  1. 49
      erpnext/patches/v14_0/set_payroll_cost_centers.py
  2. 1
      erpnext/payroll/doctype/employee_cost_center/employee_cost_center.py
  3. 4
      erpnext/payroll/doctype/payroll_entry/payroll_entry.py
  4. 4
      erpnext/payroll/doctype/payroll_entry/test_payroll_entry.py
  5. 10
      erpnext/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py

49
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)
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"])
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()
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()

1
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

4
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
}

4
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", {

10
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')

Loading…
Cancel
Save