Merge pull request #25384 from deepeshgarg007/psoa_fixes
fix: Updated filters for process statement of accounts
diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html
index 94ae79a..b623898 100644
--- a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html
+++ b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html
@@ -19,7 +19,7 @@
</tr>
</thead>
<tbody>
- {% for row in data %}
+ {% for row in data %}
<tr>
{% if(row.posting_date) %}
<td>{{ frappe.format(row.posting_date, 'Date') }}</td>
@@ -78,10 +78,10 @@
</thead>
<tbody>
<tr>
- <td>{{ aging.range1 }}</td>
- <td>{{ aging.range2 }}</td>
- <td>{{ aging.range3 }}</td>
- <td>{{ aging.range4 }}</td>
+ <td>{{ frappe.utils.fmt_money(aging.range1, currency=filters.presentation_currency) }}</td>
+ <td>{{ frappe.utils.fmt_money(aging.range2, currency=filters.presentation_currency) }}</td>
+ <td>{{ frappe.utils.fmt_money(aging.range3, currency=filters.presentation_currency) }}</td>
+ <td>{{ frappe.utils.fmt_money(aging.range4, currency=filters.presentation_currency) }}</td>
</tr>
</tbody>
</table>
diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py
index 43fbb06..b6149e8 100644
--- a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py
+++ b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py
@@ -4,10 +4,12 @@
from __future__ import unicode_literals
import frappe
+from frappe import _
from frappe.model.document import Document
from erpnext.accounts.report.general_ledger.general_ledger import execute as get_soa
from erpnext.accounts.report.accounts_receivable_summary.accounts_receivable_summary import execute as get_ageing
-from frappe.core.doctype.communication.email import make
+from erpnext import get_company_currency
+from erpnext.accounts.party import get_party_account_currency
from frappe.utils.print_format import report_to_pdf
from frappe.utils.pdf import get_pdf
@@ -29,7 +31,7 @@
validate_template(self.body)
if not self.customers:
- frappe.throw(frappe._('Customers not selected.'))
+ frappe.throw(_('Customers not selected.'))
if self.enable_auto_email:
self.to_date = self.start_date
@@ -58,22 +60,24 @@
aging[0]['ageing_based_on'] = doc.ageing_based_on
tax_id = frappe.get_doc('Customer', entry.customer).tax_id
+ presentation_currency = get_party_account_currency('Customer', entry.customer, doc.company) \
+ or doc.currency or get_company_currency(doc.company)
filters= frappe._dict({
'from_date': doc.from_date,
'to_date': doc.to_date,
'company': doc.company,
'finance_book': doc.finance_book if doc.finance_book else None,
- "account": doc.account if doc.account else None,
+ 'account': doc.account if doc.account else None,
'party_type': 'Customer',
'party': [entry.customer],
+ 'presentation_currency': presentation_currency,
'group_by': doc.group_by,
'currency': doc.currency,
'cost_center': [cc.cost_center_name for cc in doc.cost_center],
'project': [p.project_name for p in doc.project],
'show_opening_entries': 0,
'include_default_book_entries': 0,
- 'show_cancelled_entries': 1,
'tax_id': tax_id if tax_id else None
})
col, res = get_soa(filters)
@@ -167,7 +171,7 @@
if customer_collection == 'Sales Person':
customers = get_customers_based_on_sales_person(collection_name)
if not bool(customers):
- frappe.throw('No Customers found with selected options.')
+ frappe.throw(_('No Customers found with selected options.'))
else:
if customer_collection == 'Sales Partner':
customers = frappe.get_list('Customer', fields=['name', 'email_id'], \
@@ -199,14 +203,14 @@
if len(billing_email) == 0 or (billing_email[0][0] is None):
if billing_and_primary:
- frappe.throw('No billing email found for customer: '+ customer_name)
+ frappe.throw(_("No billing email found for customer: {0}").format(customer_name))
else:
return ''
if billing_and_primary:
primary_email = frappe.get_value('Customer', customer_name, 'email_id')
if primary_email is None and int(primary_mandatory):
- frappe.throw('No primary email found for customer: '+ customer_name)
+ frappe.throw(_("No primary email found for customer: {0}").format(customer_name))
return [primary_email or '', billing_email[0][0]]
else:
return billing_email[0][0] or ''