mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-04 05:58:27 +00:00
Merge pull request #35803 from frappe/mergify/bp/version-14-hotfix/pr-35794
fix: Exchange Rate Revaluation should only post on the currency that has balance in a 'zero' balance account (backport #35794)
This commit is contained in:
@@ -36,8 +36,8 @@ frappe.ui.form.on('Exchange Rate Revaluation', {
|
|||||||
},
|
},
|
||||||
|
|
||||||
validate_rounding_loss: function(frm) {
|
validate_rounding_loss: function(frm) {
|
||||||
allowance = frm.doc.rounding_loss_allowance;
|
let allowance = frm.doc.rounding_loss_allowance;
|
||||||
if (!(allowance > 0 && allowance < 1)) {
|
if (!(allowance >= 0 && allowance < 1)) {
|
||||||
frappe.throw(__("Rounding Loss Allowance should be between 0 and 1"));
|
frappe.throw(__("Rounding Loss Allowance should be between 0 and 1"));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -100,15 +100,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"default": "0.05",
|
"default": "0.05",
|
||||||
"description": "Only values between 0 and 1 are allowed. \nEx: If allowance is set at 0.07, accounts that have balance of 0.07 in either of the currencies will be considered as zero balance account",
|
"description": "Only values between [0,1) are allowed. Like {0.00, 0.04, 0.09, ...}\nEx: If allowance is set at 0.07, accounts that have balance of 0.07 in either of the currencies will be considered as zero balance account",
|
||||||
"fieldname": "rounding_loss_allowance",
|
"fieldname": "rounding_loss_allowance",
|
||||||
"fieldtype": "Float",
|
"fieldtype": "Float",
|
||||||
"label": "Rounding Loss Allowance"
|
"label": "Rounding Loss Allowance",
|
||||||
|
"precision": "9"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2023-06-12 21:02:09.818208",
|
"modified": "2023-06-20 07:29:06.972434",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "Exchange Rate Revaluation",
|
"name": "Exchange Rate Revaluation",
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class ExchangeRateRevaluation(Document):
|
|||||||
self.set_total_gain_loss()
|
self.set_total_gain_loss()
|
||||||
|
|
||||||
def validate_rounding_loss_allowance(self):
|
def validate_rounding_loss_allowance(self):
|
||||||
if not (self.rounding_loss_allowance > 0 and self.rounding_loss_allowance < 1):
|
if not (self.rounding_loss_allowance >= 0 and self.rounding_loss_allowance < 1):
|
||||||
frappe.throw(_("Rounding Loss Allowance should be between 0 and 1"))
|
frappe.throw(_("Rounding Loss Allowance should be between 0 and 1"))
|
||||||
|
|
||||||
def set_total_gain_loss(self):
|
def set_total_gain_loss(self):
|
||||||
@@ -373,6 +373,24 @@ class ExchangeRateRevaluation(Document):
|
|||||||
"credit": 0,
|
"credit": 0,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
journal_entry_accounts.append(journal_account)
|
||||||
|
|
||||||
|
journal_entry_accounts.append(
|
||||||
|
{
|
||||||
|
"account": unrealized_exchange_gain_loss_account,
|
||||||
|
"balance": get_balance_on(unrealized_exchange_gain_loss_account),
|
||||||
|
"debit": 0,
|
||||||
|
"credit": 0,
|
||||||
|
"debit_in_account_currency": abs(d.gain_loss) if d.gain_loss < 0 else 0,
|
||||||
|
"credit_in_account_currency": abs(d.gain_loss) if d.gain_loss > 0 else 0,
|
||||||
|
"cost_center": erpnext.get_default_cost_center(self.company),
|
||||||
|
"exchange_rate": 1,
|
||||||
|
"reference_type": "Exchange Rate Revaluation",
|
||||||
|
"reference_name": self.name,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
elif d.get("balance_in_base_currency") and not d.get("new_balance_in_base_currency"):
|
elif d.get("balance_in_base_currency") and not d.get("new_balance_in_base_currency"):
|
||||||
# Base currency has balance
|
# Base currency has balance
|
||||||
dr_or_cr = "credit" if d.get("balance_in_base_currency") > 0 else "debit"
|
dr_or_cr = "credit" if d.get("balance_in_base_currency") > 0 else "debit"
|
||||||
@@ -388,22 +406,22 @@ class ExchangeRateRevaluation(Document):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
journal_entry_accounts.append(journal_account)
|
journal_entry_accounts.append(journal_account)
|
||||||
|
|
||||||
journal_entry_accounts.append(
|
journal_entry_accounts.append(
|
||||||
{
|
{
|
||||||
"account": unrealized_exchange_gain_loss_account,
|
"account": unrealized_exchange_gain_loss_account,
|
||||||
"balance": get_balance_on(unrealized_exchange_gain_loss_account),
|
"balance": get_balance_on(unrealized_exchange_gain_loss_account),
|
||||||
"debit": abs(self.gain_loss_booked) if self.gain_loss_booked < 0 else 0,
|
"debit": abs(d.gain_loss) if d.gain_loss < 0 else 0,
|
||||||
"credit": abs(self.gain_loss_booked) if self.gain_loss_booked > 0 else 0,
|
"credit": abs(d.gain_loss) if d.gain_loss > 0 else 0,
|
||||||
"debit_in_account_currency": abs(self.gain_loss_booked) if self.gain_loss_booked < 0 else 0,
|
"debit_in_account_currency": 0,
|
||||||
"credit_in_account_currency": self.gain_loss_booked if self.gain_loss_booked > 0 else 0,
|
"credit_in_account_currency": 0,
|
||||||
"cost_center": erpnext.get_default_cost_center(self.company),
|
"cost_center": erpnext.get_default_cost_center(self.company),
|
||||||
"exchange_rate": 1,
|
"exchange_rate": 1,
|
||||||
"reference_type": "Exchange Rate Revaluation",
|
"reference_type": "Exchange Rate Revaluation",
|
||||||
"reference_name": self.name,
|
"reference_name": self.name,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
journal_entry.set("accounts", journal_entry_accounts)
|
journal_entry.set("accounts", journal_entry_accounts)
|
||||||
journal_entry.set_total_debit_credit()
|
journal_entry.set_total_debit_credit()
|
||||||
|
|||||||
@@ -92,6 +92,7 @@
|
|||||||
"fieldtype": "Float",
|
"fieldtype": "Float",
|
||||||
"in_list_view": 1,
|
"in_list_view": 1,
|
||||||
"label": "New Exchange Rate",
|
"label": "New Exchange Rate",
|
||||||
|
"precision": "9",
|
||||||
"reqd": 1
|
"reqd": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -147,7 +148,7 @@
|
|||||||
],
|
],
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2022-12-29 19:38:52.915295",
|
"modified": "2023-06-20 07:21:40.743460",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "Exchange Rate Revaluation Account",
|
"name": "Exchange Rate Revaluation Account",
|
||||||
|
|||||||
Reference in New Issue
Block a user