feat: delete cancelled allocation from ledger
This commit is contained in:
parent
01490f1560
commit
5448edff2c
@ -5,13 +5,14 @@
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe.model.document import Document
|
||||
from frappe import _
|
||||
from frappe.utils import add_days
|
||||
|
||||
class LeaveLedgerEntry(Document):
|
||||
pass
|
||||
|
||||
def create_leave_ledger_entry(ref_doc, args):
|
||||
ledger = dict(
|
||||
def create_leave_ledger_entry(ref_doc, args, submit):
|
||||
ledger = frappe._dict(
|
||||
doctype='Leave Ledger Entry',
|
||||
employee=ref_doc.employee,
|
||||
employee_name=ref_doc.employee_name,
|
||||
@ -20,6 +21,27 @@ def create_leave_ledger_entry(ref_doc, args):
|
||||
transaction_type=ref_doc.doctype,
|
||||
transaction_name=ref_doc.name
|
||||
)
|
||||
|
||||
ledger.update(args)
|
||||
frappe.get_doc(ledger).insert(ignore_permissions=True)
|
||||
|
||||
if submit:
|
||||
frappe.get_doc(ledger).insert(ignore_permissions=True)
|
||||
else:
|
||||
delete_ledger_entry(ledger)
|
||||
|
||||
def delete_ledger_entry(ledger):
|
||||
''' Delete ledger entry on cancel of leave application/allocation '''
|
||||
ledger_entry, creation_date = frappe.db.get_value("Leave Ledger Entry",
|
||||
{'transaction_name': ledger.transaction_name},
|
||||
['name', 'creation']
|
||||
)
|
||||
leave_application_records = frappe.get_all("Leave Ledger Entry",
|
||||
filters={
|
||||
'transaction_type': 'Leave Application',
|
||||
'creation_date': (">", creation_date)
|
||||
},
|
||||
fields=['transaction_type'])
|
||||
if not leave_application_records:
|
||||
frappe.delete_doc("Leave Ledger Entry", ledger_entry)
|
||||
else:
|
||||
frappe.throw(_("Leave allocation %s is linked with leave application %s"
|
||||
% (ledger_entry, ', '.join(leave_application_records))))
|
Loading…
x
Reference in New Issue
Block a user