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) {
|
employee: function(frm) {
|
||||||
frm.trigger("calculate_total_leaves_allocated");
|
frm.trigger("calculate_total_leaves_allocated");
|
||||||
},
|
},
|
||||||
|
@ -565,6 +565,40 @@
|
|||||||
"translatable": 0,
|
"translatable": 0,
|
||||||
"unique": 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_bulk_edit": 0,
|
||||||
"allow_in_quick_entry": 0,
|
"allow_in_quick_entry": 0,
|
||||||
@ -677,7 +711,7 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2019-05-22 11:28:09.360525",
|
"modified": "2019-05-30 11:28:09.360525",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "HR",
|
"module": "HR",
|
||||||
"name": "Leave Allocation",
|
"name": "Leave Allocation",
|
||||||
|
@ -131,7 +131,7 @@ class LeaveAllocation(Document):
|
|||||||
|
|
||||||
def expire_previous_allocation(self):
|
def expire_previous_allocation(self):
|
||||||
''' expire previous allocation leaves '''
|
''' 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:
|
if flt(leaves) > 0:
|
||||||
args = dict(
|
args = dict(
|
||||||
@ -171,11 +171,26 @@ def get_carry_forwarded_leaves(employee, leave_type, date, carry_forward=None):
|
|||||||
carry_forwarded_leaves = 0
|
carry_forwarded_leaves = 0
|
||||||
if carry_forward:
|
if carry_forward:
|
||||||
validate_carry_forward(leave_type)
|
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
|
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={
|
return frappe.db.get_value("Leave Ledger Entry", filters={
|
||||||
"to_date": ("<=", date),
|
"to_date": ("<=", date),
|
||||||
"employee": employee,
|
"employee": employee,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user