Fix: if there is no component
This commit is contained in:
		
							parent
							
								
									d0d9b53361
								
							
						
					
					
						commit
						f9ca29cebd
					
				| @ -6,8 +6,8 @@ import frappe, erpnext | |||||||
| from frappe import _ | from frappe import _ | ||||||
| 
 | 
 | ||||||
| def execute(filters=None): | def execute(filters=None): | ||||||
| 	columns = get_columns(filters) |  | ||||||
| 	data = get_data(filters) | 	data = get_data(filters) | ||||||
|  | 	columns = get_columns(filters) if len(data) else [] | ||||||
| 
 | 
 | ||||||
| 	return columns, data | 	return columns, data | ||||||
| 
 | 
 | ||||||
| @ -78,8 +78,11 @@ def get_conditions(filters): | |||||||
| 	if filters.get("company"): | 	if filters.get("company"): | ||||||
| 		conditions.append("sal.company = '%s' " % (filters["company"]) ) | 		conditions.append("sal.company = '%s' " % (filters["company"]) ) | ||||||
| 
 | 
 | ||||||
| 	if filters.get("period"): | 	if filters.get("month"): | ||||||
| 		conditions.append("month(sal.start_date) = '%s' " % (filters["period"])) | 		conditions.append("month(sal.start_date) = '%s' " % (filters["month"])) | ||||||
|  | 
 | ||||||
|  | 	if filters.get("year"): | ||||||
|  | 		conditions.append("year(start_date) = '%s' " % (filters["year"])) | ||||||
| 
 | 
 | ||||||
| 	return " and ".join(conditions) | 	return " and ".join(conditions) | ||||||
| 
 | 
 | ||||||
| @ -96,6 +99,9 @@ def get_data(filters): | |||||||
| 
 | 
 | ||||||
| 	component_types = [comp_type[0] for comp_type in component_types] | 	component_types = [comp_type[0] for comp_type in component_types] | ||||||
| 
 | 
 | ||||||
|  | 	if not len(component_types): | ||||||
|  | 		return [] | ||||||
|  | 
 | ||||||
| 	conditions = get_conditions(filters) | 	conditions = get_conditions(filters) | ||||||
| 
 | 
 | ||||||
| 	entry = frappe.db.sql(""" select sal.employee, sal.employee_name, sal.posting_date, ded.salary_component, ded.amount,sal.gross_pay | 	entry = frappe.db.sql(""" select sal.employee, sal.employee_name, sal.posting_date, ded.salary_component, ded.amount,sal.gross_pay | ||||||
|  | |||||||
| @ -84,9 +84,11 @@ def get_conditions(filters): | |||||||
| 	if filters.get("company"): | 	if filters.get("company"): | ||||||
| 		conditions.append("company = '%s' " % (filters["company"]) ) | 		conditions.append("company = '%s' " % (filters["company"]) ) | ||||||
| 
 | 
 | ||||||
| 	if filters.get("period"): | 	if filters.get("month"): | ||||||
| 		conditions.append("month(start_date) = '%s' " % (filters["period"])) | 		conditions.append("month(start_date) = '%s' " % (filters["month"])) | ||||||
| 		conditions.append("year(start_date) = '%s' " % (frappe.utils.getdate().year)) | 
 | ||||||
|  | 	if filters.get("year"): | ||||||
|  | 		conditions.append("year(start_date) = '%s' " % (filters["year"])) | ||||||
| 
 | 
 | ||||||
| 	return " and ".join(conditions) | 	return " and ".join(conditions) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -7,8 +7,8 @@ from frappe import _ | |||||||
| from erpnext.regional.report.provident_fund_deductions.provident_fund_deductions import get_conditions | from erpnext.regional.report.provident_fund_deductions.provident_fund_deductions import get_conditions | ||||||
| 
 | 
 | ||||||
| def execute(filters=None): | def execute(filters=None): | ||||||
| 	columns = get_columns(filters) |  | ||||||
| 	data = get_data(filters) | 	data = get_data(filters) | ||||||
|  | 	columns = get_columns(filters) if len(data) else [] | ||||||
| 
 | 
 | ||||||
| 	return columns, data | 	return columns, data | ||||||
| 
 | 
 | ||||||
| @ -45,6 +45,9 @@ def get_data(filters): | |||||||
| 	component_type_dict = frappe._dict(frappe.db.sql(""" select name, component_type from `tabSalary Component` | 	component_type_dict = frappe._dict(frappe.db.sql(""" select name, component_type from `tabSalary Component` | ||||||
| 		where component_type = 'Professional Tax' """)) | 		where component_type = 'Professional Tax' """)) | ||||||
| 
 | 
 | ||||||
|  | 	if not len(component_type_dict): | ||||||
|  | 		return [] | ||||||
|  | 
 | ||||||
| 	conditions = get_conditions(filters) | 	conditions = get_conditions(filters) | ||||||
| 
 | 
 | ||||||
| 	entry = frappe.db.sql(""" select sal.employee, sal.employee_name, ded.salary_component, ded.amount | 	entry = frappe.db.sql(""" select sal.employee, sal.employee_name, ded.salary_component, ded.amount | ||||||
|  | |||||||
| @ -6,8 +6,8 @@ import frappe | |||||||
| from frappe import _ | from frappe import _ | ||||||
| 
 | 
 | ||||||
| def execute(filters=None): | def execute(filters=None): | ||||||
| 	columns = get_columns(filters) |  | ||||||
| 	data = get_data(filters) | 	data = get_data(filters) | ||||||
|  | 	columns = get_columns(filters) if len(data) else [] | ||||||
| 
 | 
 | ||||||
| 	return columns, data | 	return columns, data | ||||||
| 
 | 
 | ||||||
| @ -71,10 +71,13 @@ def get_conditions(filters): | |||||||
| 		conditions.append("sal.branch = '%s' " % (filters["branch"]) ) | 		conditions.append("sal.branch = '%s' " % (filters["branch"]) ) | ||||||
| 
 | 
 | ||||||
| 	if filters.get("company"): | 	if filters.get("company"): | ||||||
| 		conditions.append("sal.company = '%s' " % (filters["company"]) ) | 		conditions.append("sal.company = '%s' " % (filters["company"])) | ||||||
| 
 | 
 | ||||||
| 	if filters.get("period"): | 	if filters.get("month"): | ||||||
| 		conditions.append("month(sal.start_date) = '%s' " % (filters["period"])) | 		conditions.append("month(sal.start_date) = '%s' " % (filters["month"])) | ||||||
|  | 
 | ||||||
|  | 	if filters.get("year"): | ||||||
|  | 		conditions.append("year(start_date) = '%s' " % (filters["year"])) | ||||||
| 
 | 
 | ||||||
| 	if filters.get("mode_of_payment"): | 	if filters.get("mode_of_payment"): | ||||||
| 		conditions.append("sal.mode_of_payment = '%s' " % (filters["mode_of_payment"])) | 		conditions.append("sal.mode_of_payment = '%s' " % (filters["mode_of_payment"])) | ||||||
| @ -114,6 +117,9 @@ def get_data(filters): | |||||||
| 	component_type_dict = frappe._dict(frappe.db.sql(""" select name, component_type from `tabSalary Component` | 	component_type_dict = frappe._dict(frappe.db.sql(""" select name, component_type from `tabSalary Component` | ||||||
| 		where component_type in ('Provident Fund', 'Additional Provident Fund', 'Provident Fund Loan')""")) | 		where component_type in ('Provident Fund', 'Additional Provident Fund', 'Provident Fund Loan')""")) | ||||||
| 
 | 
 | ||||||
|  | 	if not len(component_type_dict): | ||||||
|  | 		return [] | ||||||
|  | 
 | ||||||
| 	entry = frappe.db.sql(""" select sal.name, sal.employee, sal.employee_name, ded.salary_component, ded.amount | 	entry = frappe.db.sql(""" select sal.name, sal.employee, sal.employee_name, ded.salary_component, ded.amount | ||||||
| 		from `tabSalary Slip` sal, `tabSalary Detail` ded | 		from `tabSalary Slip` sal, `tabSalary Detail` ded | ||||||
| 		where sal.name = ded.parent | 		where sal.name = ded.parent | ||||||
| @ -151,3 +157,11 @@ def get_data(filters): | |||||||
| 			data.append(employee) | 			data.append(employee) | ||||||
| 
 | 
 | ||||||
| 	return data | 	return data | ||||||
|  | 
 | ||||||
|  | @frappe.whitelist() | ||||||
|  | def get_years(): | ||||||
|  | 	year_list = frappe.db.sql_list("""select distinct YEAR(end_date) from `tabSalary Slip` ORDER BY YEAR(end_date) DESC""") | ||||||
|  | 	if not year_list: | ||||||
|  | 		year_list = [getdate().year] | ||||||
|  | 
 | ||||||
|  | 	return "\n".join(str(year) for year in year_list) | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user