feat: delete cancelled allocation from ledger

This commit is contained in:
Mangesh-Khairnar 2019-05-12 21:02:05 +05:30
parent 01490f1560
commit 5448edff2c

View File

@ -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))))