From c5588a9b930ff4ed2d4a5a0bc6d57044df9f1e71 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Sat, 7 Sep 2019 21:26:43 +0530 Subject: [PATCH] fix: Column value and data indentation --- .../employee_leave_balance_summary.py | 65 ++++++++++++++----- 1 file changed, 49 insertions(+), 16 deletions(-) diff --git a/erpnext/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py b/erpnext/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py index 5512f7aa25c..f52a34866a6 100644 --- a/erpnext/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py +++ b/erpnext/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py @@ -5,35 +5,59 @@ from __future__ import unicode_literals import frappe from frappe.utils import flt from frappe import _ -from erpnext.hr.doctype.leave_application.leave_application \ - import get_leave_balance_on, get_leaves_for_period +from erpnext.hr.doctype.leave_application.leave_application import get_leaves_for_period -from erpnext.hr.report.employee_leave_balance.employee_leave_balance \ - import get_total_allocated_leaves +from ..employee_leave_balance.employee_leave_balance import get_total_allocated_leaves def execute(filters=None): + if filters.to_date <= filters.from_date: + frappe.throw(_('From date can not be greater than than To date')) + columns = get_columns() data = get_data(filters) return columns, data def get_columns(): - columns = [] - columns.append(_('Leave Type') ) - columns.append(_('Employee')) - columns.append(_('Employee Name')) - columns.append(_('Opening Balance') + ':Float:160') - columns.append(_('Leaves Taken') + ':Float:160') - columns.append(_('Closing Balance') + ':Float:160') + columns = [{ + 'label': _('Leave Type'), + 'fieldtype': 'Link', + 'fieldname': 'leave_type', + 'width': 300, + 'options': 'Leave Type' + }, { + 'label': _('Employee'), + 'fieldtype': 'Link', + 'fieldname': 'employee', + 'width': 100, + 'options': 'Employee' + }, { + 'label': _('Employee Name'), + 'fieldtype': 'Data', + 'fieldname': 'employee_name', + 'width': 100, + }, { + 'label': _('Opening Balance'), + 'fieldtype': 'float', + 'fieldname': 'opening_balance', + 'width': 160, + }, { + 'label': _('Leaves Taken'), + 'fieldtype': 'float', + 'fieldname': 'leaves_taken', + 'width': 160, + }, { + 'label': _('Closing Balance'), + 'fieldtype': 'float', + 'fieldname': 'closing_balance', + 'width': 160, + }] return columns def get_data(filters): leave_types = frappe.db.sql_list("SELECT `name` FROM `tabLeave Type` ORDER BY `name` ASC") - if filters.to_date <= filters.from_date: - frappe.throw(_('From date can not be greater than than To date')) - conditions = { 'status': 'Active', } @@ -48,8 +72,14 @@ def get_data(filters): data = [] for leave_type in leave_types: + data.append({ + 'leave_type': leave_type + }) for employee in active_employees: - row = [leave_type, employee.name, employee.employee_name] + row = frappe._dict({ + 'employee': employee.name, + 'employee_name': employee.employee_name + }) leaves_taken = get_leaves_for_period(employee.name, leave_type, filters.from_date, filters.to_date) * -1 @@ -57,7 +87,10 @@ def get_data(filters): opening = get_total_allocated_leaves(employee.name, leave_type, filters.from_date, filters.to_date) closing = flt(opening) - flt(leaves_taken) - row += [opening, leaves_taken, closing] + row.opening_balance = opening + row.leaves_taken = leaves_taken + row.closing_balance = closing + row.indent = 1 data.append(row) return data