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…
Reference in New Issue
Block a user