added the missing patch
This commit is contained in:
parent
702a8b1295
commit
13a0e4693e
@ -0,0 +1 @@
|
|||||||
|
from __future__ import unicode_literals
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
// ERPNext - web based ERP (http://erpnext.com)
|
||||||
|
// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
this.mytabs.items['Select Columns'].hide();
|
||||||
|
|
||||||
|
this.mytabs.tabs['More Filters'].hide();
|
||||||
|
|
||||||
|
report.customize_filters = function() {
|
||||||
|
this.add_filter({
|
||||||
|
fieldname:'fiscal_year',
|
||||||
|
label:'Fiscal Year',
|
||||||
|
fieldtype:'Link',
|
||||||
|
ignore : 1,
|
||||||
|
options: 'Fiscal Year',
|
||||||
|
parent:'Leave Allocation',
|
||||||
|
in_first_page:1
|
||||||
|
});
|
||||||
|
this.add_filter({
|
||||||
|
fieldname:'employee_name',
|
||||||
|
label:'Employee Name',
|
||||||
|
fieldtype:'Data',
|
||||||
|
ignore : 1,
|
||||||
|
options: '',
|
||||||
|
parent:'Leave Allocation',
|
||||||
|
in_first_page:1
|
||||||
|
});
|
||||||
|
}
|
||||||
@ -0,0 +1,72 @@
|
|||||||
|
# ERPNext - web based ERP (http://erpnext.com)
|
||||||
|
# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
leave_types = sql("""
|
||||||
|
SELECT name FROM `tabLeave Type`
|
||||||
|
WHERE
|
||||||
|
docstatus!=2 AND
|
||||||
|
name NOT IN ('Compensatory Off', 'Leave Without Pay')""")
|
||||||
|
col=[]
|
||||||
|
col.append(['Employee ID', 'Data', '150px', ''])
|
||||||
|
col.append(['Employee Name', 'Data', '150px', ''])
|
||||||
|
col.append(['Fiscal Year', 'Data', '150px', ''])
|
||||||
|
|
||||||
|
for e in leave_types:
|
||||||
|
l = (len(e[0])*9)
|
||||||
|
if l < 150 : col_width = '150px'
|
||||||
|
else: col_width = '%spx'%(l)
|
||||||
|
col.append([e[0],'Currency',col_width,''])
|
||||||
|
|
||||||
|
col.append(['Total Balance','Currency','150px',''])
|
||||||
|
|
||||||
|
for c in col:
|
||||||
|
colnames.append(c[0])
|
||||||
|
coltypes.append(c[1])
|
||||||
|
colwidths.append(c[2])
|
||||||
|
coloptions.append(c[3])
|
||||||
|
col_idx[c[0]] = len(colnames)
|
||||||
|
|
||||||
|
data = res
|
||||||
|
res = []
|
||||||
|
|
||||||
|
try:
|
||||||
|
for d in data:
|
||||||
|
exists = 0
|
||||||
|
ind = None
|
||||||
|
|
||||||
|
# Check if the employee record exists in list 'res'
|
||||||
|
for r in res:
|
||||||
|
if r[0] == d[0] and r[1] == d[1]:
|
||||||
|
exists = 1
|
||||||
|
ind = res.index(r)
|
||||||
|
break
|
||||||
|
if d[3] in colnames:
|
||||||
|
# If exists, then append the leave type data
|
||||||
|
if exists:
|
||||||
|
res[ind][colnames.index(d[3])] = d[4] - d[5]
|
||||||
|
res[ind][len(colnames)-1] = sum(res[ind][3:-1])
|
||||||
|
# Else create a new row in res
|
||||||
|
else:
|
||||||
|
new_row = [0.0 for c in colnames]
|
||||||
|
new_row[0] = d[0]
|
||||||
|
new_row[1] = d[1]
|
||||||
|
new_row[2] = d[2]
|
||||||
|
new_row[colnames.index(d[3])] = d[4] - d[5]
|
||||||
|
new_row[len(colnames)-1] = sum(new_row[3:-1])
|
||||||
|
res.append(new_row)
|
||||||
|
except Exception, e:
|
||||||
|
msgprint(e)
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
SELECT
|
||||||
|
leave_alloc.employee AS 'employee',
|
||||||
|
leave_alloc.employee_name AS 'employee_name',
|
||||||
|
leave_alloc.fiscal_year AS 'fiscal_year',
|
||||||
|
leave_alloc.leave_type AS 'leave_type',
|
||||||
|
leave_alloc.total_leaves_allocated AS 'total_leaves_allocated',
|
||||||
|
SUM(leave_app.total_leave_days) AS 'total_leaves_applied'
|
||||||
|
FROM
|
||||||
|
`tabLeave Allocation` AS leave_alloc,
|
||||||
|
`tabLeave Application` AS leave_app
|
||||||
|
WHERE
|
||||||
|
leave_alloc.employee=leave_app.employee AND
|
||||||
|
leave_alloc.leave_type=leave_app.leave_type AND
|
||||||
|
leave_alloc.fiscal_year=leave_app.fiscal_year AND
|
||||||
|
leave_alloc.docstatus=1 AND
|
||||||
|
leave_app.docstatus=1 AND
|
||||||
|
leave_alloc.fiscal_year LIKE '%(fiscal_year)s%%' AND
|
||||||
|
leave_alloc.employee_name LIKE '%(employee_name)s%%'
|
||||||
|
GROUP BY
|
||||||
|
employee,
|
||||||
|
fiscal_year,
|
||||||
|
leave_type
|
||||||
|
ORDER BY
|
||||||
|
employee,
|
||||||
|
fiscal_year,
|
||||||
|
leave_type
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
# Search Criteria, employeewise_balance_leave_report
|
||||||
|
[
|
||||||
|
|
||||||
|
# These values are common in all dictionaries
|
||||||
|
{
|
||||||
|
'creation': '2010-12-14 10:33:09',
|
||||||
|
'docstatus': 0,
|
||||||
|
'modified': '2011-10-31 15:42:36',
|
||||||
|
'modified_by': 'Administrator',
|
||||||
|
'owner': 'harshada@webnotestech.com'
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all Search Criteria
|
||||||
|
{
|
||||||
|
'columns': 'Employee\x01ID',
|
||||||
|
'criteria_name': 'Employee Leave Balance Report',
|
||||||
|
'description': 'Employeewise Balance Leave Report',
|
||||||
|
'doc_type': 'Employee',
|
||||||
|
'doctype': 'Search Criteria',
|
||||||
|
'filters': "{'Employee\x01Saved':1,'Employee\x01Submitted':1,'Employee\x01Gender':'','Employee\x01Month of Birth':'','Employee\x01Status':'Active'}",
|
||||||
|
'module': 'HR',
|
||||||
|
'name': '__common__',
|
||||||
|
'page_len': 100,
|
||||||
|
'sort_by': '`tabEmployee`.`name`',
|
||||||
|
'sort_order': 'ASC',
|
||||||
|
'standard': 'Yes'
|
||||||
|
},
|
||||||
|
|
||||||
|
# Search Criteria, employeewise_balance_leave_report
|
||||||
|
{
|
||||||
|
'doctype': 'Search Criteria',
|
||||||
|
'name': 'employeewise_balance_leave_report'
|
||||||
|
}
|
||||||
|
]
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
import webnotes
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
webnotes.conn.sql("""delete from `tabSearch Criteria`
|
||||||
|
where name ='employee_leave_balance_report1'""")
|
||||||
|
webnotes.conn.sql("""delete from `tabSearch Criteria`
|
||||||
|
where name ='employee_leave_balance_report2'""")
|
||||||
Loading…
x
Reference in New Issue
Block a user