mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-13 02:01:21 +00:00
feat: delete cancelled allocation from ledger
This commit is contained in:
@@ -5,13 +5,14 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
from frappe import _
|
||||||
from frappe.utils import add_days
|
from frappe.utils import add_days
|
||||||
|
|
||||||
class LeaveLedgerEntry(Document):
|
class LeaveLedgerEntry(Document):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def create_leave_ledger_entry(ref_doc, args):
|
def create_leave_ledger_entry(ref_doc, args, submit):
|
||||||
ledger = dict(
|
ledger = frappe._dict(
|
||||||
doctype='Leave Ledger Entry',
|
doctype='Leave Ledger Entry',
|
||||||
employee=ref_doc.employee,
|
employee=ref_doc.employee,
|
||||||
employee_name=ref_doc.employee_name,
|
employee_name=ref_doc.employee_name,
|
||||||
@@ -20,6 +21,27 @@ def create_leave_ledger_entry(ref_doc, args):
|
|||||||
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)
|
||||||
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))))
|
||||||
Reference in New Issue
Block a user