fix: delete entry on cancellation of transaction
This commit is contained in:
parent
f8f02c508d
commit
afb0c4aa43
@ -20,34 +20,36 @@ def create_leave_ledger_entry(ref_doc, args, submit=True):
|
|||||||
employee=ref_doc.employee,
|
employee=ref_doc.employee,
|
||||||
employee_name=ref_doc.employee_name,
|
employee_name=ref_doc.employee_name,
|
||||||
leave_type=ref_doc.leave_type,
|
leave_type=ref_doc.leave_type,
|
||||||
from_date=ref_doc.from_date,
|
|
||||||
transaction_type=ref_doc.doctype,
|
transaction_type=ref_doc.doctype,
|
||||||
transaction_name=ref_doc.name,
|
transaction_name=ref_doc.name,
|
||||||
)
|
)
|
||||||
ledger.update(args)
|
ledger.update(args)
|
||||||
|
|
||||||
if submit:
|
if submit:
|
||||||
frappe.get_doc(ledger).insert(ignore_permissions=True)
|
frappe.get_doc(ledger).submit()
|
||||||
else:
|
else:
|
||||||
delete_ledger_entry(ledger)
|
delete_ledger_entry(ledger)
|
||||||
|
|
||||||
def delete_ledger_entry(ledger):
|
def delete_ledger_entry(ledger):
|
||||||
''' Delete ledger entry on cancel of leave application/allocation '''
|
''' Delete ledger entry on cancel of leave application/allocation/encashment '''
|
||||||
ledger_entry, creation_date = frappe.db.get_value("Leave Ledger Entry",
|
|
||||||
{'transaction_name': ledger.transaction_name},
|
|
||||||
['name', 'creation']
|
|
||||||
)
|
|
||||||
|
|
||||||
leave_application_records = []
|
leave_application_records = []
|
||||||
|
# prevent deletion when leave application has been created after allocation
|
||||||
if ledger.transaction_type == "Leave Allocation":
|
if ledger.transaction_type == "Leave Allocation":
|
||||||
leave_application_records = frappe.get_all("Leave Ledger Entry",
|
leave_application_records = frappe.get_all("Leave Ledger Entry",
|
||||||
filters={
|
filters={
|
||||||
|
'employee': ledger.employee,
|
||||||
|
'leave_type': ledger.leave_type,
|
||||||
'transaction_type': 'Leave Application',
|
'transaction_type': 'Leave Application',
|
||||||
'creation_date': (">", creation_date)
|
'from_date': (">=", ledger.from_date),
|
||||||
|
'to_date': ('<=', ledger.to_date)
|
||||||
},
|
},
|
||||||
fields=['transaction_type'])
|
fields=['transaction_name'])
|
||||||
|
|
||||||
if not leave_application_records:
|
if not leave_application_records:
|
||||||
frappe.delete_doc("Leave Ledger Entry", ledger_entry)
|
frappe.db.sql("""DELETE
|
||||||
|
FROM `tabLeave Ledger Entry`
|
||||||
|
WHERE
|
||||||
|
`transaction_name`=%s""", (ledger.transaction_name))
|
||||||
else:
|
else:
|
||||||
frappe.throw(_("Leave allocation %s is linked with leave application %s"
|
frappe.throw(_("Leave allocation %s is linked with leave application %s"
|
||||||
% (ledger_entry, ', '.join(leave_application_records))))
|
% (ledger_entry, ', '.join(leave_application_records))))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user