feat: expire current allocation
This commit is contained in:
parent
c5385e141b
commit
afa1dc4ffa
@ -21,6 +21,29 @@ frappe.ui.form.on("Leave Allocation", {
|
||||
})
|
||||
},
|
||||
|
||||
refresh: function(frm) {
|
||||
if(frm.doc.docstatus == 1){
|
||||
frm.add_custom_button('Expire Allocation', function() {
|
||||
frm.trigger("expire_allocation");
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
expire_allocation: function(frm) {
|
||||
frappe.call({
|
||||
method: 'erpnext.hr.doctype.leave_application.leave_application.expire_previous_allocation',
|
||||
args: {
|
||||
ref_doc: frm.doc
|
||||
},
|
||||
freeze: true,
|
||||
callback: function(r){
|
||||
if(!r.exc){
|
||||
frappe.msgprint(__("Allocation Expired!"));
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
employee: function(frm) {
|
||||
frm.trigger("calculate_total_leaves_allocated");
|
||||
},
|
||||
|
@ -565,6 +565,40 @@
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_in_quick_entry": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
"columns": 0,
|
||||
"fetch_from": "employee.leave_policy",
|
||||
"fieldname": "leave_policy",
|
||||
"fieldtype": "Link",
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 0,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Leave Policy",
|
||||
"length": 0,
|
||||
"no_copy": 0,
|
||||
"options": "Leave Policy",
|
||||
"permlevel": 0,
|
||||
"precision": "",
|
||||
"print_hide": 0,
|
||||
"print_hide_if_no_value": 0,
|
||||
"read_only": 1,
|
||||
"remember_last_selected_value": 0,
|
||||
"report_hide": 0,
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_in_quick_entry": 0,
|
||||
@ -677,7 +711,7 @@
|
||||
"issingle": 0,
|
||||
"istable": 0,
|
||||
"max_attachments": 0,
|
||||
"modified": "2019-05-22 11:28:09.360525",
|
||||
"modified": "2019-05-30 11:28:09.360525",
|
||||
"modified_by": "Administrator",
|
||||
"module": "HR",
|
||||
"name": "Leave Allocation",
|
||||
|
@ -131,7 +131,7 @@ class LeaveAllocation(Document):
|
||||
|
||||
def expire_previous_allocation(self):
|
||||
''' expire previous allocation leaves '''
|
||||
leaves = get_remaining_leaves(self.employee, self.leave_type, self.from_date)
|
||||
leaves = get_unused_leaves(self.employee, self.leave_type, self.from_date)
|
||||
|
||||
if flt(leaves) > 0:
|
||||
args = dict(
|
||||
@ -171,11 +171,26 @@ def get_carry_forwarded_leaves(employee, leave_type, date, carry_forward=None):
|
||||
carry_forwarded_leaves = 0
|
||||
if carry_forward:
|
||||
validate_carry_forward(leave_type)
|
||||
carry_forwarded_leaves = get_remaining_leaves(employee, leave_type, date)
|
||||
carry_forwarded_leaves = get_unused_leaves(employee, leave_type, date)
|
||||
|
||||
return carry_forwarded_leaves
|
||||
|
||||
def get_remaining_leaves(employee, leave_type, date):
|
||||
@frappe.whitelist()
|
||||
def expire_current_allocation(ref_doc):
|
||||
''' expire previous allocation leaves '''
|
||||
leaves = get_unused_leaves(ref_doc.employee, ref_doc.leave_type, ref_doc.to_date)
|
||||
|
||||
if flt(leaves) > 0:
|
||||
args = dict(
|
||||
leaves=leaves * -1,
|
||||
from_date=ref_doc.from_date,
|
||||
to_date=ref_doc.from_date,
|
||||
is_carry_forward=0,
|
||||
is_expired=1
|
||||
)
|
||||
create_leave_ledger_entry(ref_doc, args)
|
||||
|
||||
def get_unused_leaves(employee, leave_type, date):
|
||||
return frappe.db.get_value("Leave Ledger Entry", filters={
|
||||
"to_date": ("<=", date),
|
||||
"employee": employee,
|
||||
|
Loading…
Reference in New Issue
Block a user