Skip to content

Commit

Permalink
feat: pull withheld salary slips in FnF
Browse files Browse the repository at this point in the history
(cherry picked from commit 77954db)
  • Loading branch information
ruchamahabal authored and mergify[bot] committed Jul 23, 2024
1 parent 8bbe23a commit 6b40f56
Showing 1 changed file with 38 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,19 +61,20 @@ def validate_assets(self):

@frappe.whitelist()
def get_outstanding_statements(self):
if self.relieving_date:
if not len(self.get("payables", [])):
components = self.get_payable_component()
self.create_component_row(components, "payables")
if not len(self.get("receivables", [])):
components = self.get_receivable_component()
self.create_component_row(components, "receivables")
self.get_assets_statements()
else:
if not self.relieving_date:
frappe.throw(
_("Set Relieving Date for Employee: {0}").format(get_link_to_form("Employee", self.employee))
)

if not self.payables:
self.add_withheld_salary_slips()
components = self.get_payable_component()
self.create_component_row(components, "payables")
if not self.receivables:
components = self.get_receivable_component()
self.create_component_row(components, "receivables")
self.get_assets_statements()

def get_assets_statements(self):
if not len(self.get("assets_allocated", [])):
for data in self.get_assets_movement():
Expand Down Expand Up @@ -101,6 +102,30 @@ def set_totals(self):
self.precision("total_receivable_amount"),
)

def add_withheld_salary_slips(self):
salary_slips = frappe.get_all(
"Salary Slip",
filters={
"employee": self.employee,
"status": "Withheld",
"docstatus": ("!=", 2),
},
fields=["name", "net_pay"],
)

for slip in salary_slips:
self.append(
"payables",
{
"status": "Unsettled",
"component": "Salary Slip",
"reference_document_type": "Salary Slip",
"reference_document": slip.name,
"amount": slip.net_pay,
"paid_via_salary_slip": 1,
},
)

def create_component_row(self, components, component_type):
for component in components:
self.append(
Expand All @@ -114,18 +139,17 @@ def create_component_row(self, components, component_type):

def get_payable_component(self):
return [
"Salary Slip",
"Gratuity",
"Expense Claim",
"Bonus",
"Leave Encashment",
]

def get_receivable_component(self):
return [
"Loan",
"Employee Advance",
]
receivables = ["Employee Advance"]
if "lending" in frappe.get_installed_apps():
receivables.append("Loan")
return receivables

def get_assets_movement(self):
asset_movements = frappe.get_all(
Expand Down

0 comments on commit 6b40f56

Please sign in to comment.