Salary Register (#13367)

- convert date range to from_date and to_date
This commit is contained in:
Faris Ansari 2018-03-22 15:26:45 +05:30 committed by GitHub
parent 6a2d073fe1
commit 35397a1033
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 13 deletions

View File

@ -4,10 +4,17 @@
frappe.query_reports["Salary Register"] = {
"filters": [
{
"fieldname":"date_range",
"label": __("Date Range"),
"fieldtype": "DateRange",
"default": [frappe.datetime.add_months(frappe.datetime.get_today(),-1), frappe.datetime.get_today()],
"fieldname":"from_date",
"label": __("From"),
"fieldtype": "Date",
"default": frappe.datetime.add_months(frappe.datetime.get_today(),-1),
"reqd": 1
},
{
"fieldname":"to_date",
"label": __("To"),
"fieldtype": "Date",
"default": frappe.datetime.get_today(),
"reqd": 1
},
{

View File

@ -9,6 +9,8 @@ from frappe import _
def execute(filters=None):
if not filters: filters = {}
salary_slips = get_salary_slips(filters)
if not salary_slips: return [], []
columns, earning_types, ded_types = get_columns(salary_slips)
ss_earning_map = get_ss_earning_map(salary_slips)
ss_ded_map = get_ss_ded_map(salary_slips)
@ -23,7 +25,7 @@ def execute(filters=None):
if not ss.department == None: columns[4] = columns[4].replace('-1','120')
if not ss.designation == None: columns[5] = columns[5].replace('-1','120')
if not ss.leave_withut_pay == None: columns[9] = columns[9].replace('-1','130')
for e in earning_types:
row.append(ss_earning_map.get(ss.name, {}).get(e))
@ -53,7 +55,7 @@ def get_columns(salary_slips):
_("Department") + ":Link/Department:-1", _("Designation") + ":Link/Designation:-1",
_("Company") + ":Link/Company:120", _("Start Date") + "::80", _("End Date") + "::80", _("Leave Without Pay") + ":Float:-1",
_("Payment Days") + ":Float:120"
]
]
salary_components = {_("Earning"): [], _("Deduction"): []}
@ -70,20 +72,17 @@ def get_columns(salary_slips):
return columns, salary_components[_("Earning")], salary_components[_("Deduction")]
def get_salary_slips(filters):
filters.update({"from_date": filters.get("date_range")[0], "to_date":filters.get("date_range")[1]})
filters.update({"from_date": filters.get("from_date"), "to_date":filters.get("to_date")})
conditions, filters = get_conditions(filters)
salary_slips = frappe.db.sql("""select * from `tabSalary Slip` where docstatus = 1 %s
order by employee""" % conditions, filters, as_dict=1)
if not salary_slips:
frappe.throw(_("No salary slip found between {0} and {1}").format(
filters.get("from_date"), filters.get("to_date")))
return salary_slips
return salary_slips or []
def get_conditions(filters):
conditions = ""
if filters.get("date_range"): conditions += " and start_date >= %(from_date)s"
if filters.get("date_range"): conditions += " and end_date <= %(to_date)s"
if filters.get("from_date"): conditions += " and start_date >= %(from_date)s"
if filters.get("to_date"): conditions += " and end_date <= %(to_date)s"
if filters.get("company"): conditions += " and company = %(company)s"
if filters.get("employee"): conditions += " and employee = %(employee)s"