[fix] show formatted currency value in advance paid validation
This commit is contained in:
parent
ee8f88d641
commit
7c0a58ac3f
@ -209,9 +209,7 @@ class JournalEntry(AccountsController):
|
|||||||
account = self.reference_accounts[reference_name]
|
account = self.reference_accounts[reference_name]
|
||||||
|
|
||||||
if reference_type in ("Sales Order", "Purchase Order"):
|
if reference_type in ("Sales Order", "Purchase Order"):
|
||||||
order = frappe.db.get_value(reference_type, reference_name,
|
order = frappe.get_doc(reference_type, reference_name)
|
||||||
["docstatus", "per_billed", "status", "advance_paid",
|
|
||||||
"base_grand_total", "grand_total", "currency"], as_dict=1)
|
|
||||||
|
|
||||||
if order.docstatus != 1:
|
if order.docstatus != 1:
|
||||||
frappe.throw(_("{0} {1} is not submitted").format(reference_type, reference_name))
|
frappe.throw(_("{0} {1} is not submitted").format(reference_type, reference_name))
|
||||||
@ -225,12 +223,16 @@ class JournalEntry(AccountsController):
|
|||||||
account_currency = get_account_currency(account)
|
account_currency = get_account_currency(account)
|
||||||
if account_currency == self.company_currency:
|
if account_currency == self.company_currency:
|
||||||
voucher_total = order.base_grand_total
|
voucher_total = order.base_grand_total
|
||||||
|
formatted_voucher_total = fmt_money(voucher_total, order.precision("base_grand_total"),
|
||||||
|
currency=account_currency)
|
||||||
else:
|
else:
|
||||||
voucher_total = order.grand_total
|
voucher_total = order.grand_total
|
||||||
|
formatted_voucher_total = fmt_money(voucher_total, order.precision("grand_total"),
|
||||||
|
currency=account_currency)
|
||||||
|
|
||||||
if flt(voucher_total) < (flt(order.advance_paid) + total):
|
if flt(voucher_total) < (flt(order.advance_paid) + total):
|
||||||
frappe.throw(_("Advance paid against {0} {1} cannot be greater \
|
frappe.throw(_("Advance paid against {0} {1} cannot be greater \
|
||||||
than Grand Total {2}").format(reference_type, reference_name, voucher_total))
|
than Grand Total {2}").format(reference_type, reference_name, formatted_voucher_total))
|
||||||
|
|
||||||
def validate_invoices(self):
|
def validate_invoices(self):
|
||||||
"""Validate totals and docstatus for invoices"""
|
"""Validate totals and docstatus for invoices"""
|
||||||
@ -797,7 +799,7 @@ def get_exchange_rate(account, account_currency=None, company=None,
|
|||||||
company_currency = get_company_currency(company)
|
company_currency = get_company_currency(company)
|
||||||
|
|
||||||
if account_currency != company_currency:
|
if account_currency != company_currency:
|
||||||
if reference_type in ("Sales Invoice", "Purchase Invoice") and reference_name:
|
if reference_type and reference_name and frappe.get_meta(reference_type).get_field("conversion_rate"):
|
||||||
exchange_rate = frappe.db.get_value(reference_type, reference_name, "conversion_rate")
|
exchange_rate = frappe.db.get_value(reference_type, reference_name, "conversion_rate")
|
||||||
|
|
||||||
elif account_details and account_details.account_type == "Bank" and \
|
elif account_details and account_details.account_type == "Bank" and \
|
||||||
|
|||||||
@ -1597,30 +1597,6 @@
|
|||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"fieldname": "advance_paid",
|
|
||||||
"fieldtype": "Currency",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"label": "Advance Paid",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 1,
|
|
||||||
"options": "party_account_currency",
|
|
||||||
"permlevel": 0,
|
|
||||||
"print_hide": 1,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 1,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_on_submit": 0,
|
"allow_on_submit": 0,
|
||||||
"bold": 0,
|
"bold": 0,
|
||||||
@ -1695,6 +1671,30 @@
|
|||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"fieldname": "advance_paid",
|
||||||
|
"fieldtype": "Currency",
|
||||||
|
"hidden": 0,
|
||||||
|
"ignore_user_permissions": 0,
|
||||||
|
"in_filter": 0,
|
||||||
|
"in_list_view": 0,
|
||||||
|
"label": "Advance Paid",
|
||||||
|
"length": 0,
|
||||||
|
"no_copy": 1,
|
||||||
|
"options": "party_account_currency",
|
||||||
|
"permlevel": 0,
|
||||||
|
"print_hide": 1,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
|
"read_only": 1,
|
||||||
|
"report_hide": 0,
|
||||||
|
"reqd": 0,
|
||||||
|
"search_index": 0,
|
||||||
|
"set_only_once": 0,
|
||||||
|
"unique": 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"allow_on_submit": 0,
|
"allow_on_submit": 0,
|
||||||
"bold": 0,
|
"bold": 0,
|
||||||
@ -2534,7 +2534,7 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2016-01-27 15:15:05.213016",
|
"modified": "2016-01-29 01:41:08.478575",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Buying",
|
"module": "Buying",
|
||||||
"name": "Purchase Order",
|
"name": "Purchase Order",
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _, throw
|
from frappe import _, throw
|
||||||
from frappe.utils import today, flt, cint
|
from frappe.utils import today, flt, cint, fmt_money
|
||||||
from erpnext.setup.utils import get_company_currency, get_exchange_rate
|
from erpnext.setup.utils import get_company_currency, get_exchange_rate
|
||||||
from erpnext.accounts.utils import get_fiscal_year, validate_fiscal_year, get_account_currency
|
from erpnext.accounts.utils import get_fiscal_year, validate_fiscal_year, get_account_currency
|
||||||
from erpnext.utilities.transaction_base import TransactionBase
|
from erpnext.utilities.transaction_base import TransactionBase
|
||||||
@ -402,21 +402,28 @@ class AccountsController(TransactionBase):
|
|||||||
""".format(dr_or_cr=dr_or_cr), (self.doctype, self.name, party), as_dict=1)
|
""".format(dr_or_cr=dr_or_cr), (self.doctype, self.name, party), as_dict=1)
|
||||||
|
|
||||||
if advance:
|
if advance:
|
||||||
advance_paid = flt(advance[0].amount, self.precision("advance_paid"))
|
advance = advance[0]
|
||||||
|
advance_paid = flt(advance.amount, self.precision("advance_paid"))
|
||||||
|
formatted_advance_paid = fmt_money(advance_paid, precision=self.precision("advance_paid"),
|
||||||
|
currency=advance.account_currency)
|
||||||
|
|
||||||
frappe.db.set_value(self.doctype, self.name, "party_account_currency",
|
frappe.db.set_value(self.doctype, self.name, "party_account_currency",
|
||||||
advance[0].account_currency)
|
advance.account_currency)
|
||||||
|
|
||||||
if advance[0].account_currency == self.currency:
|
if advance.account_currency == self.currency:
|
||||||
order_total = self.grand_total
|
order_total = self.grand_total
|
||||||
|
formatted_order_total = fmt_money(order_total, precision=self.precision("grand_total"),
|
||||||
|
currency=advance.account_currency)
|
||||||
else:
|
else:
|
||||||
order_total = self.base_grand_total
|
order_total = self.base_grand_total
|
||||||
|
formatted_order_total = fmt_money(order_total, precision=self.precision("base_grand_total"),
|
||||||
|
currency=advance.account_currency)
|
||||||
|
|
||||||
if order_total >= advance_paid:
|
if order_total >= advance_paid:
|
||||||
frappe.db.set_value(self.doctype, self.name, "advance_paid", advance_paid)
|
frappe.db.set_value(self.doctype, self.name, "advance_paid", advance_paid)
|
||||||
else:
|
else:
|
||||||
frappe.throw(_("Total advance ({0}) against Order {1} cannot be greater than the Grand Total ({2})")
|
frappe.throw(_("Total advance ({0}) against Order {1} cannot be greater than the Grand Total ({2})")
|
||||||
.format(advance_paid, self.name, order_total))
|
.format(formatted_advance_paid, self.name, formatted_order_total))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def company_abbr(self):
|
def company_abbr(self):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user