Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions erpnext/accounts/party.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def _get_party_details(party=None, account=None, party_type="Customer", company=
frappe.throw(_("Not permitted for {0}").format(party), frappe.PermissionError)

party = frappe.get_doc(party_type, party)
currency = party.default_currency if party.default_currency else get_company_currency(company)
currency = party.default_currency if party.get("default_currency") else get_company_currency(company)

party_address, shipping_address = set_address_details(out, party, party_type, doctype, company, party_address, shipping_address)
set_contact_details(out, party, party_type)
Expand Down Expand Up @@ -144,7 +144,7 @@ def set_other_values(out, party, party_type):

def get_default_price_list(party):
"""Return default price list for party (Document object)"""
if party.default_price_list:
if party.get("default_price_list"):
return party.default_price_list

if party.doctype == "Customer":
Expand Down Expand Up @@ -592,17 +592,17 @@ def get_party_shipping_address(doctype, name):
else:
return ''

def get_partywise_advanced_payment_amount(party_type, posting_date = None):
cond = "1=1"
if posting_date:
cond = "posting_date <= '{0}'".format(posting_date)
def get_partywise_advanced_payment_amount(party_type, posting_date=None):
dr_or_cr = "credit - debit" if party_type == "Customer" else "debit - credit"
advance_condition = "{0} > 0".format(dr_or_cr)
date_condition = "and posting_date <= %(posting_date)s" if posting_date else ""

data = frappe.db.sql(""" SELECT party, sum({0}) as amount
data = frappe.db.sql("""
SELECT party, sum({dr_or_cr}) as amount
FROM `tabGL Entry`
WHERE
party_type = %s and against_voucher is null
and {1} GROUP BY party"""
.format(("credit") if party_type == "Customer" else "debit", cond) , party_type)
WHERE party_type = %(party_type)s and ifnull(against_voucher, '') = '' and {advance_condition} {date_condition}
GROUP BY party
""".format(dr_or_cr=dr_or_cr, advance_condition=advance_condition, date_condition=date_condition), # nosec
{"party_type": party_type, "posting_date": posting_date})

if data:
return frappe._dict(data)
return frappe._dict(data or {})
29 changes: 28 additions & 1 deletion erpnext/accounts/report/accounts_payable/accounts_payable.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,32 @@ frappe.query_reports["Accounts Payable"] = {
"fieldtype": "Link",
"options": "Supplier Group"
},
{
"fieldname":"cost_center",
"label": __("Cost Center"),
"fieldtype": "Link",
"options": "Cost Center"
},
{
"fieldname":"group_by",
"label": __("Group By Level 1"),
"fieldtype": "Select",
"options": "Ungrouped\nGroup by Supplier\nGroup by Supplier Group\nGroup by Cost Center",
"default": "Ungrouped"
},
{
"fieldname":"group_by_2",
"label": __("Group By Level 2"),
"fieldtype": "Select",
"options": "Ungrouped\nGroup by Supplier\nGroup by Supplier Group\nGroup by Cost Center",
"default": "Ungrouped"
},
{
"fieldname":"mark_overdue_in_print",
"label": __("Mark Overdue in Print"),
"fieldtype": "Check",
on_change: function() { return false; }
},
{
"fieldname":"tax_id",
"label": __("Tax Id"),
Expand All @@ -98,5 +124,6 @@ frappe.query_reports["Accounts Payable"] = {
var filters = report.get_values();
frappe.set_route('query-report', 'Accounts Payable Summary', {company: filters.company});
});
}
},
initial_depth: 1
}
Loading