added ctc fetch to bulk salary assignment
This commit is contained in:
parent
e02cc9ba06
commit
aaf08e8dc8
|
|
@ -0,0 +1,54 @@
|
|||
import frappe
|
||||
from frappe.query_builder.custom import ConstantColumn
|
||||
from frappe.query_builder.functions import Coalesce
|
||||
from frappe.query_builder.terms import SubQuery
|
||||
|
||||
from hrms.payroll.doctype.bulk_salary_structure_assignment.bulk_salary_structure_assignment import (
|
||||
BulkSalaryStructureAssignment,
|
||||
)
|
||||
|
||||
|
||||
class CustomBulkSalaryStructureAssignment(BulkSalaryStructureAssignment):
|
||||
@frappe.whitelist()
|
||||
def get_employees(self, advanced_filters: list) -> list:
|
||||
quick_filter_fields = [
|
||||
"company",
|
||||
"employment_type",
|
||||
"branch",
|
||||
"department",
|
||||
"designation",
|
||||
"grade",
|
||||
]
|
||||
filters = [[d, "=", self.get(d)] for d in quick_filter_fields if self.get(d)]
|
||||
filters += advanced_filters
|
||||
|
||||
Assignment = frappe.qb.DocType("Salary Structure Assignment")
|
||||
employees_with_assignments = SubQuery(
|
||||
frappe.qb.from_(Assignment)
|
||||
.select(Assignment.employee)
|
||||
.distinct()
|
||||
.where((Assignment.from_date == self.from_date) & (Assignment.docstatus == 1))
|
||||
)
|
||||
|
||||
Employee = frappe.qb.DocType("Employee")
|
||||
Grade = frappe.qb.DocType("Employee Grade")
|
||||
query = (
|
||||
frappe.qb.get_query(
|
||||
Employee,
|
||||
fields=[Employee.employee, Employee.employee_name, Employee.grade],
|
||||
filters=filters,
|
||||
)
|
||||
.where(
|
||||
(Employee.status == "Active")
|
||||
& (Employee.date_of_joining <= self.from_date)
|
||||
& ((Employee.relieving_date > self.from_date) | (Employee.relieving_date.isnull()))
|
||||
& (Employee.employee.notin(employees_with_assignments))
|
||||
)
|
||||
.left_join(Grade)
|
||||
.on(Employee.grade == Grade.name)
|
||||
.select(
|
||||
Coalesce(Employee.ctc, Grade.default_base_pay, 0).as_("base"),
|
||||
ConstantColumn(0).as_("variable"),
|
||||
)
|
||||
)
|
||||
return query.run(as_dict=True)
|
||||
|
|
@ -24,9 +24,9 @@ doctype_js = {
|
|||
"Employee": "public/js/employee.js"
|
||||
}
|
||||
|
||||
# override_doctype_class = {
|
||||
# "Report": "jey_erp.custom_report.CustomReport"
|
||||
# }
|
||||
override_doctype_class = {
|
||||
"Bulk Salary Structure Assignment": "jey_erp.custom.bulk_salary_structure_assignment.CustomBulkSalaryStructureAssignment"
|
||||
}
|
||||
|
||||
doc_events = {
|
||||
"Employee Onboarding": {
|
||||
|
|
|
|||
Loading…
Reference in New Issue