Merge branch 'develop' into stock-ledger-link
This commit is contained in:
commit
7f3ebb1d06
@ -400,19 +400,6 @@ def get_leave_balance_on(employee, leave_type, date, allocation_records=None, do
|
|||||||
|
|
||||||
return flt(allocation.total_leaves_allocated) - (flt(leaves_taken) + flt(leaves_encashed))
|
return flt(allocation.total_leaves_allocated) - (flt(leaves_taken) + flt(leaves_encashed))
|
||||||
|
|
||||||
def get_total_allocated_leaves(employee, leave_type, date):
|
|
||||||
filters= {
|
|
||||||
'from_date': ['<=', date],
|
|
||||||
'to_date': ['>=', date],
|
|
||||||
'docstatus': 1,
|
|
||||||
'leave_type': leave_type,
|
|
||||||
'employee': employee
|
|
||||||
}
|
|
||||||
|
|
||||||
leave_allocation_records = frappe.db.get_all('Leave Allocation', filters=filters, fields=['total_leaves_allocated'])
|
|
||||||
|
|
||||||
return flt(leave_allocation_records[0]['total_leaves_allocated']) if leave_allocation_records else flt(0)
|
|
||||||
|
|
||||||
def get_leaves_for_period(employee, leave_type, from_date, to_date, status, docname=None):
|
def get_leaves_for_period(employee, leave_type, from_date, to_date, status, docname=None):
|
||||||
leave_applications = frappe.db.sql("""
|
leave_applications = frappe.db.sql("""
|
||||||
select name, employee, leave_type, from_date, to_date, total_leave_days
|
select name, employee, leave_type, from_date, to_date, total_leave_days
|
||||||
|
|||||||
@ -5,7 +5,7 @@ from __future__ import unicode_literals
|
|||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from erpnext.hr.doctype.leave_application.leave_application \
|
from erpnext.hr.doctype.leave_application.leave_application \
|
||||||
import get_leave_allocation_records, get_leave_balance_on, get_approved_leaves_for_period, get_total_allocated_leaves
|
import get_leave_allocation_records, get_leave_balance_on, get_approved_leaves_for_period
|
||||||
|
|
||||||
|
|
||||||
def execute(filters=None):
|
def execute(filters=None):
|
||||||
@ -35,6 +35,9 @@ def get_data(filters, leave_types):
|
|||||||
allocation_records_based_on_to_date = get_leave_allocation_records(filters.to_date)
|
allocation_records_based_on_to_date = get_leave_allocation_records(filters.to_date)
|
||||||
allocation_records_based_on_from_date = get_leave_allocation_records(filters.from_date)
|
allocation_records_based_on_from_date = get_leave_allocation_records(filters.from_date)
|
||||||
|
|
||||||
|
if filters.to_date <= filters.from_date:
|
||||||
|
frappe.throw(_("From date can not be greater than than To date"))
|
||||||
|
|
||||||
active_employees = frappe.get_all("Employee",
|
active_employees = frappe.get_all("Employee",
|
||||||
filters = { "status": "Active", "company": filters.company},
|
filters = { "status": "Active", "company": filters.company},
|
||||||
fields = ["name", "employee_name", "department", "user_id"])
|
fields = ["name", "employee_name", "department", "user_id"])
|
||||||
@ -51,7 +54,8 @@ def get_data(filters, leave_types):
|
|||||||
filters.from_date, filters.to_date)
|
filters.from_date, filters.to_date)
|
||||||
|
|
||||||
# opening balance
|
# opening balance
|
||||||
opening = get_total_allocated_leaves(employee.name, leave_type, filters.to_date)
|
opening = get_leave_balance_on(employee.name, leave_type, filters.from_date,
|
||||||
|
allocation_records_based_on_to_date.get(employee.name, frappe._dict()))
|
||||||
|
|
||||||
# closing balance
|
# closing balance
|
||||||
closing = get_leave_balance_on(employee.name, leave_type, filters.to_date,
|
closing = get_leave_balance_on(employee.name, leave_type, filters.to_date,
|
||||||
|
|||||||
@ -376,10 +376,10 @@ class StockEntry(StockController):
|
|||||||
|
|
||||||
# validate qty during submit
|
# validate qty during submit
|
||||||
if d.docstatus==1 and d.s_warehouse and not allow_negative_stock and flt(d.actual_qty, d.precision("actual_qty")) < flt(d.transfer_qty, d.precision("actual_qty")):
|
if d.docstatus==1 and d.s_warehouse and not allow_negative_stock and flt(d.actual_qty, d.precision("actual_qty")) < flt(d.transfer_qty, d.precision("actual_qty")):
|
||||||
frappe.throw(_("Row {0}: Qty not available for {4} in warehouse {1} at posting time of the entry ({2} {3})").format(d.idx,
|
frappe.throw(_("Row {0}: Quantity not available for {4} in warehouse {1} at posting time of the entry ({2} {3})").format(d.idx,
|
||||||
frappe.bold(d.s_warehouse), formatdate(self.posting_date),
|
frappe.bold(d.s_warehouse), formatdate(self.posting_date),
|
||||||
format_time(self.posting_time), frappe.bold(d.item_code))
|
format_time(self.posting_time), frappe.bold(d.item_code))
|
||||||
+ '<br><br>' + _("Available qty is {0}, you need {1}").format(frappe.bold(d.actual_qty),
|
+ '<br><br>' + _("Available quantity is {0}, you need {1}").format(frappe.bold(d.actual_qty),
|
||||||
frappe.bold(d.transfer_qty)),
|
frappe.bold(d.transfer_qty)),
|
||||||
NegativeStockError, title=_('Insufficient Stock'))
|
NegativeStockError, title=_('Insufficient Stock'))
|
||||||
|
|
||||||
|
|||||||
@ -60,7 +60,7 @@ frappe.pages['stock-balance'].on_page_load = function(wrapper) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
page.sort_selector.wrapper.css({'margin-right': '15px', 'margin-top': '4px'});
|
// page.sort_selector.wrapper.css({'margin-right': '15px', 'margin-top': '4px'});
|
||||||
|
|
||||||
frappe.require('assets/js/item-dashboard.min.js', function() {
|
frappe.require('assets/js/item-dashboard.min.js', function() {
|
||||||
page.item_dashboard = new erpnext.stock.ItemDashboard({
|
page.item_dashboard = new erpnext.stock.ItemDashboard({
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user