Add Customer Credit Balance Report, minor changes
This commit is contained in:
		
							parent
							
								
									852e3600cd
								
							
						
					
					
						commit
						fe7a6b502a
					
				| @ -0,0 +1,21 @@ | ||||
| // Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and contributors
 | ||||
| // For license information, please see license.txt
 | ||||
| 
 | ||||
| frappe.query_reports["Customer Credit Balance"] = { | ||||
| 	"filters": [ | ||||
| 		{ | ||||
| 			"fieldname":"company", | ||||
| 			"label": __("Company"), | ||||
| 			"fieldtype": "Link", | ||||
| 			"options": "Company", | ||||
| 			"reqd": 1, | ||||
| 			"default": frappe.defaults.get_user_default("company") | ||||
| 		}, | ||||
| 		{ | ||||
| 			"fieldname":"customer", | ||||
| 			"label": __("Customer"), | ||||
| 			"fieldtype": "Link", | ||||
| 			"options": "Customer" | ||||
| 		} | ||||
| 	] | ||||
| } | ||||
| @ -0,0 +1,17 @@ | ||||
| { | ||||
|  "add_total_row": 0,  | ||||
|  "apply_user_permissions": 1,  | ||||
|  "creation": "2014-10-06 15:19:31.578162",  | ||||
|  "disabled": 0,  | ||||
|  "docstatus": 0,  | ||||
|  "doctype": "Report",  | ||||
|  "is_standard": "Yes",  | ||||
|  "modified": "2014-10-06 15:19:37.578616",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Selling",  | ||||
|  "name": "Customer Credit Balance",  | ||||
|  "owner": "Administrator",  | ||||
|  "ref_doctype": "Customer",  | ||||
|  "report_name": "Customer Credit Balance",  | ||||
|  "report_type": "Script Report" | ||||
| } | ||||
| @ -0,0 +1,54 @@ | ||||
| # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and contributors | ||||
| # For license information, please see license.txt | ||||
| 
 | ||||
| from __future__ import unicode_literals | ||||
| import frappe | ||||
| from frappe import _ | ||||
| from frappe.utils import flt | ||||
| from erpnext.selling.doctype.customer.customer import get_customer_outstanding, get_credit_limit | ||||
| 
 | ||||
| def execute(filters=None): | ||||
| 	if not filters: filters = {} | ||||
| 	#Check if customer id is according to naming series or customer name | ||||
| 	customer_naming_type = frappe.db.get_value("Selling Settings", None, "cust_master_name") | ||||
| 	columns = get_columns(customer_naming_type) | ||||
| 
 | ||||
| 	data = [] | ||||
| 
 | ||||
| 	customer_list = get_details(filters) | ||||
| 
 | ||||
| 	for d in customer_list: | ||||
| 		row = [] | ||||
| 		outstanding_amt = get_customer_outstanding(d.name, filters.get("company")) | ||||
| 		credit_limit = get_credit_limit(d.name, filters.get("company")) | ||||
| 		bal = flt(credit_limit) - flt(outstanding_amt) | ||||
| 
 | ||||
| 		if customer_naming_type == "Naming Series": | ||||
| 			row = [d.name, d.customer_name, credit_limit, outstanding_amt, bal] | ||||
| 		else: | ||||
| 			row = [d.name, credit_limit, outstanding_amt, bal] | ||||
| 
 | ||||
| 		if credit_limit: | ||||
| 			data.append(row) | ||||
| 
 | ||||
| 	return columns, data | ||||
| 
 | ||||
| def get_columns(customer_naming_type): | ||||
| 	columns = [ | ||||
| 		_("Customer") + ":Link/Customer:120", _("Credit Limit") + ":Currency:120", | ||||
| 		_("Outstanding Amt") + ":Currency:100", _("Credit Balance") + ":Currency:120" | ||||
| 	] | ||||
| 
 | ||||
| 	if customer_naming_type == "Naming Series": | ||||
| 		columns.insert(1, _("Customer Name") + ":Data:120") | ||||
| 
 | ||||
| 	return columns | ||||
| 
 | ||||
| def get_details(filters): | ||||
| 	conditions = "" | ||||
| 
 | ||||
| 	if filters.get("customer"): | ||||
| 		conditions += " where name = %(customer)s" | ||||
| 
 | ||||
| 	return frappe.db.sql("""select name, customer_name from `tabCustomer` %s"""  | ||||
| 		% conditions, filters, as_dict=1) | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user