From 113081d2502d1c39714bbe4f1063dddb0aa4dfda Mon Sep 17 00:00:00 2001 From: root Date: Fri, 10 May 2024 11:40:24 +0000 Subject: [PATCH 1/5] feat: amount_check_run set as per exchange rate --- check_run/public/js/check_run/check_run.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/check_run/public/js/check_run/check_run.js b/check_run/public/js/check_run/check_run.js index 00f7c3c9..3d1818b0 100644 --- a/check_run/public/js/check_run/check_run.js +++ b/check_run/public/js/check_run/check_run.js @@ -55,6 +55,16 @@ check_run.total = frm => { let r = Object.values(check_run.transactions).reduce((partialSum, t) => { return t.pay ? partialSum + t.amount : partialSum }, 0) + var company_currency = frappe.get_doc(':Company', _frm.doc.company).default_currency + frappe.call({ + method: 'erpnext.setup.utils.get_exchange_rate', + args: { + from_currency: _frm.pay_to_account_currency, + to_currency: company_currency, + }, + callback: frm => {}, + }) + console.log(amount_check_run) _frm.set_value('amount_check_run', r) return r } From 8f10ec718f56c1eb16460dfb1a34bd9aae97e87d Mon Sep 17 00:00:00 2001 From: root Date: Fri, 10 May 2024 11:41:59 +0000 Subject: [PATCH 2/5] feat: amount_check_run set as per exchange rate --- check_run/public/js/check_run/check_run.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/check_run/public/js/check_run/check_run.js b/check_run/public/js/check_run/check_run.js index 3d1818b0..6e5e1935 100644 --- a/check_run/public/js/check_run/check_run.js +++ b/check_run/public/js/check_run/check_run.js @@ -50,21 +50,23 @@ check_run.mount = frm => { frm.$check_run.provide('$check_run', check_run) } -check_run.total = frm => { +check_run.total = async frm => { let _frm = unref(frm) + console.log(_frm) let r = Object.values(check_run.transactions).reduce((partialSum, t) => { return t.pay ? partialSum + t.amount : partialSum }, 0) + var company_currency = frappe.get_doc(':Company', _frm.doc.company).default_currency - frappe.call({ - method: 'erpnext.setup.utils.get_exchange_rate', - args: { - from_currency: _frm.pay_to_account_currency, - to_currency: company_currency, - }, - callback: frm => {}, + + var amount_check_run = await frappe.xcall('erpnext.setup.utils.get_exchange_rate', { + from_currency: _frm.pay_to_account_currency, + to_currency: company_currency, }) - console.log(amount_check_run) - _frm.set_value('amount_check_run', r) + if (r > 0) { + _frm.set_value('amount_check_run', r * amount_check_run) + } else { + _frm.set_value('amount_check_run', r) + } return r } From fe44fd5aa5b2bd1a78e17c7674842dc14b96f910 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 10 May 2024 11:50:39 +0000 Subject: [PATCH 3/5] fix: removed console.llog --- check_run/public/js/check_run/check_run.js | 1 - 1 file changed, 1 deletion(-) diff --git a/check_run/public/js/check_run/check_run.js b/check_run/public/js/check_run/check_run.js index 6e5e1935..9793c801 100644 --- a/check_run/public/js/check_run/check_run.js +++ b/check_run/public/js/check_run/check_run.js @@ -52,7 +52,6 @@ check_run.mount = frm => { check_run.total = async frm => { let _frm = unref(frm) - console.log(_frm) let r = Object.values(check_run.transactions).reduce((partialSum, t) => { return t.pay ? partialSum + t.amount : partialSum }, 0) From bcc790cd2be37a97c6af6d8d52a0d0a5e533c122 Mon Sep 17 00:00:00 2001 From: viral Date: Mon, 20 May 2024 09:16:24 +0000 Subject: [PATCH 4/5] if document currecy not match with pay_to_account currecy then change the label --- check_run/check_run/doctype/check_run/check_run.js | 11 +++++++++++ check_run/check_run/doctype/check_run/check_run.py | 12 ++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/check_run/check_run/doctype/check_run/check_run.js b/check_run/check_run/doctype/check_run/check_run.js index 1a950f2b..6077334b 100644 --- a/check_run/check_run/doctype/check_run/check_run.js +++ b/check_run/check_run/doctype/check_run/check_run.js @@ -45,6 +45,7 @@ frappe.ui.form.on('Check Run', { e.stopPropagation() }) } + change_amount_label(frm) settings_button(frm) permit_first_user(frm) get_defaults(frm) @@ -445,3 +446,13 @@ function check_settings(frm) { }) } } + +function change_amount_label(frm){ + frappe.xcall("check_run.check_run.doctype.check_run.check_run.get_default_currency", { company: frm.doc.company }).then(r=>{ + if(r){ + if(r != frm.pay_to_account_currency){ + cur_frm.fields_dict.amount_check_run.set_label("Estimated Amount in Check Run"); + } + } + }) +} \ No newline at end of file diff --git a/check_run/check_run/doctype/check_run/check_run.py b/check_run/check_run/doctype/check_run/check_run.py index 009f3d9d..c4647d1c 100644 --- a/check_run/check_run/doctype/check_run/check_run.py +++ b/check_run/check_run/doctype/check_run/check_run.py @@ -21,8 +21,8 @@ from frappe.utils.password import get_decrypted_password from frappe.utils.print_format import read_multi_pdf -# from PyPDF2 import PdfFileWriter -from pypdf import PdfWriter +from PyPDF2 import PdfFileWriter +# from pypdf import PdfWriter from typing_extensions import Self from check_run.check_run.doctype.check_run_settings.check_run_settings import ( @@ -433,8 +433,8 @@ def render_check_pdf(self: Self, reprint_check_number: int | None = None) -> Non initial_check_number = int(self.initial_check_number) if reprint_check_number and reprint_check_number != "undefined": self.initial_check_number = int(reprint_check_number) - # output = PdfFileWriter() - output = PdfWriter() + output = PdfFileWriter() + # output = PdfWriter() transactions = json.loads(self.transactions) check_increment = 0 _transactions = [] @@ -921,3 +921,7 @@ def get_authorized_role_for_ach(doc): "role_allowed_to_download_ach_file_multiple_times", ) return role + +@frappe.whitelist() +def get_default_currency(company): + return frappe.db.get_value("Company", company, 'default_currency') \ No newline at end of file From 4e1d8a6411e37327199658eb422645453fe8b743 Mon Sep 17 00:00:00 2001 From: viral Date: Mon, 20 May 2024 09:27:42 +0000 Subject: [PATCH 5/5] update v15 impoer pdf writwr --- check_run/check_run/__init__.py | 3 +-- .../check_run/doctype/check_run/check_run.js | 18 ++++++++++-------- .../check_run/doctype/check_run/check_run.py | 11 ++++++----- .../doctype/check_run/test_check_run.py | 3 ++- check_run/overrides/payment_entry.py | 11 ++++++----- check_run/tests/setup.py | 7 +++---- 6 files changed, 28 insertions(+), 25 deletions(-) diff --git a/check_run/check_run/__init__.py b/check_run/check_run/__init__.py index c10c1ca3..6b52509a 100644 --- a/check_run/check_run/__init__.py +++ b/check_run/check_run/__init__.py @@ -4,9 +4,8 @@ import json import frappe - -from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import PurchaseInvoice from erpnext.accounts.doctype.journal_entry.journal_entry import JournalEntry +from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import PurchaseInvoice from hrms.hr.doctype.expense_claim.expense_claim import ExpenseClaim diff --git a/check_run/check_run/doctype/check_run/check_run.js b/check_run/check_run/doctype/check_run/check_run.js index 6077334b..c9c58a47 100644 --- a/check_run/check_run/doctype/check_run/check_run.js +++ b/check_run/check_run/doctype/check_run/check_run.js @@ -447,12 +447,14 @@ function check_settings(frm) { } } -function change_amount_label(frm){ - frappe.xcall("check_run.check_run.doctype.check_run.check_run.get_default_currency", { company: frm.doc.company }).then(r=>{ - if(r){ - if(r != frm.pay_to_account_currency){ - cur_frm.fields_dict.amount_check_run.set_label("Estimated Amount in Check Run"); +function change_amount_label(frm) { + frappe + .xcall('check_run.check_run.doctype.check_run.check_run.get_default_currency', { company: frm.doc.company }) + .then(r => { + if (r) { + if (r != frm.pay_to_account_currency) { + cur_frm.fields_dict.amount_check_run.set_label('Estimated Amount in Check Run') + } } - } - }) -} \ No newline at end of file + }) +} diff --git a/check_run/check_run/doctype/check_run/check_run.py b/check_run/check_run/doctype/check_run/check_run.py index c4647d1c..9813798a 100644 --- a/check_run/check_run/doctype/check_run/check_run.py +++ b/check_run/check_run/doctype/check_run/check_run.py @@ -21,8 +21,8 @@ from frappe.utils.password import get_decrypted_password from frappe.utils.print_format import read_multi_pdf -from PyPDF2 import PdfFileWriter -# from pypdf import PdfWriter +# from PyPDF2 import PdfFileWriter +from pypdf import PdfWriter from typing_extensions import Self from check_run.check_run.doctype.check_run_settings.check_run_settings import ( @@ -433,8 +433,8 @@ def render_check_pdf(self: Self, reprint_check_number: int | None = None) -> Non initial_check_number = int(self.initial_check_number) if reprint_check_number and reprint_check_number != "undefined": self.initial_check_number = int(reprint_check_number) - output = PdfFileWriter() - # output = PdfWriter() + # output = PdfFileWriter() + output = PdfWriter() transactions = json.loads(self.transactions) check_increment = 0 _transactions = [] @@ -922,6 +922,7 @@ def get_authorized_role_for_ach(doc): ) return role + @frappe.whitelist() def get_default_currency(company): - return frappe.db.get_value("Company", company, 'default_currency') \ No newline at end of file + return frappe.db.get_value("Company", company, "default_currency") diff --git a/check_run/check_run/doctype/check_run/test_check_run.py b/check_run/check_run/doctype/check_run/test_check_run.py index 3f829765..ef82f53f 100644 --- a/check_run/check_run/doctype/check_run/test_check_run.py +++ b/check_run/check_run/doctype/check_run/test_check_run.py @@ -1,9 +1,10 @@ # Copyright (c) 2022, AgriTheory and Contributors # See license.txt -import frappe import unittest +import frappe + class TestCheckRun(unittest.TestCase): pass diff --git a/check_run/overrides/payment_entry.py b/check_run/overrides/payment_entry.py index 8656185e..396630eb 100644 --- a/check_run/overrides/payment_entry.py +++ b/check_run/overrides/payment_entry.py @@ -1,16 +1,17 @@ # Copyright (c) 2023, AgriTheory and contributors # For license information, please see license.txt +import json + import frappe -from frappe.utils import get_link_to_form, comma_and, flt -from erpnext.accounts.general_ledger import make_gl_entries, process_gl_map -from frappe.utils.data import getdate from erpnext.accounts.doctype.payment_entry.payment_entry import ( PaymentEntry, get_outstanding_reference_documents, ) +from erpnext.accounts.general_ledger import make_gl_entries, process_gl_map from frappe import _ -import json +from frappe.utils import comma_and, flt, get_link_to_form +from frappe.utils.data import getdate class CheckRunPaymentEntry(PaymentEntry): @@ -60,7 +61,7 @@ def get_valid_reference_doctypes(self): """ Because Check Run processes multiple payment entries in a background queue, errors generally do not include enough data to identify the problem since there were written and remain appropriate for the context of an individual - Payment Entry. This code is copied from: + Payment Entry. This code is copied from: https://github.com/frappe/erpnext/blob/version-14/erpnext/accounts/doctype/payment_entry/payment_entry.py#L164 diff --git a/check_run/tests/setup.py b/check_run/tests/setup.py index 5b4afc7c..012a21b1 100644 --- a/check_run/tests/setup.py +++ b/check_run/tests/setup.py @@ -2,12 +2,11 @@ import types import frappe -from frappe.utils.data import add_days, flt -from frappe.desk.page.setup_wizard.setup_wizard import setup_complete -from erpnext.setup.utils import enable_all_roles_and_domains, set_defaults_for_tests from erpnext.accounts.doctype.account.account import update_account_number from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import make_debit_note - +from erpnext.setup.utils import enable_all_roles_and_domains, set_defaults_for_tests +from frappe.desk.page.setup_wizard.setup_wizard import setup_complete +from frappe.utils.data import add_days, flt from check_run.tests.fixtures import employees, suppliers, tax_authority