diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.json b/erpnext/accounts/doctype/payment_entry/payment_entry.json index aa181564b06..7c2e14ea751 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.json +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.json @@ -87,12 +87,14 @@ "status", "custom_remarks", "remarks", + "base_in_words", "column_break_16", "letter_head", "print_heading", "bank", "bank_account_no", "payment_order", + "in_words", "subscription_section", "auto_repeat", "amended_from", @@ -746,6 +748,20 @@ "hidden": 1, "label": "Book Advance Payments in Separate Party Account", "read_only": 1 + }, + { + "fieldname": "base_in_words", + "fieldtype": "Small Text", + "label": "In Words (Company Currency)", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "in_words", + "fieldtype": "Small Text", + "label": "In Words", + "print_hide": 1, + "read_only": 1 } ], "index_web_pages_for_search": 1, @@ -759,7 +775,7 @@ "table_fieldname": "payment_entries" } ], - "modified": "2023-11-23 12:07:20.887885", + "modified": "2024-01-03 12:46:41.759121", "modified_by": "Administrator", "module": "Accounts", "name": "Payment Entry", diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index 11c7c179b67..a840972b50b 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -95,6 +95,7 @@ class PaymentEntry(AccountsController): self.validate_paid_invoices() self.ensure_supplier_is_not_blocked() self.set_status() + self.set_total_in_words() def on_submit(self): if self.difference_amount: @@ -702,6 +703,21 @@ class PaymentEntry(AccountsController): self.db_set("status", self.status, update_modified=True) + def set_total_in_words(self): + from frappe.utils import money_in_words + + if self.payment_type in ("Pay", "Internal Transfer"): + base_amount = abs(self.base_paid_amount) + amount = abs(self.paid_amount) + currency = self.paid_from_account_currency + elif self.payment_type == "Receive": + base_amount = abs(self.base_received_amount) + amount = abs(self.received_amount) + currency = self.paid_to_account_currency + + self.base_in_words = money_in_words(base_amount, self.company_currency) + self.in_words = money_in_words(amount, currency) + def set_tax_withholding(self): if self.party_type != "Supplier": return