From 78a4b3015cba75af4228b5e8c954cf38af3c62e4 Mon Sep 17 00:00:00 2001 From: tong-odoo Date: Fri, 15 Sep 2023 17:35:58 +0800 Subject: [PATCH] [IMP] accounting: update thailand localisations for PromptPay Impacted Version: - 17.0 and above This commit improve below features: - PromptPay QR code documentation task-3506522 closes odoo/documentation#5862 Signed-off-by: Jonathan Castillo (jcs) --- .../finance/fiscal_localizations/thailand.rst | 66 ++++++++++++++++-- .../{thailand-contact.png => contact.png} | Bin .../{thailand-modules.png => modules.png} | Bin ...thailand-pnd-report.png => pnd-report.png} | Bin ...thailand-pnd3-pnd53.png => pnd3-pnd53.png} | Bin .../thailand/qr-bank-journal.png | Bin 0 -> 3513 bytes .../thailand/qr-code-invoice-emv.png | Bin 0 -> 3078 bytes .../thailand/qr-promptpay-bank.png | Bin 0 -> 4674 bytes ...ailand-tax-invoice.png => tax-invoice.png} | Bin ...thailand-tax-report.png => tax-report.png} | Bin 10 files changed, 60 insertions(+), 6 deletions(-) rename content/applications/finance/fiscal_localizations/thailand/{thailand-contact.png => contact.png} (100%) rename content/applications/finance/fiscal_localizations/thailand/{thailand-modules.png => modules.png} (100%) rename content/applications/finance/fiscal_localizations/thailand/{thailand-pnd-report.png => pnd-report.png} (100%) rename content/applications/finance/fiscal_localizations/thailand/{thailand-pnd3-pnd53.png => pnd3-pnd53.png} (100%) create mode 100644 content/applications/finance/fiscal_localizations/thailand/qr-bank-journal.png create mode 100644 content/applications/finance/fiscal_localizations/thailand/qr-code-invoice-emv.png create mode 100644 content/applications/finance/fiscal_localizations/thailand/qr-promptpay-bank.png rename content/applications/finance/fiscal_localizations/thailand/{thailand-tax-invoice.png => tax-invoice.png} (100%) rename content/applications/finance/fiscal_localizations/thailand/{thailand-tax-report.png => tax-report.png} (100%) diff --git a/content/applications/finance/fiscal_localizations/thailand.rst b/content/applications/finance/fiscal_localizations/thailand.rst index d691b442b..78d37681b 100644 --- a/content/applications/finance/fiscal_localizations/thailand.rst +++ b/content/applications/finance/fiscal_localizations/thailand.rst @@ -21,7 +21,7 @@ features of the Thai localization: - `l10n_th_reports` - Country-specific accounting reports -.. image:: thailand/thailand-modules.png +.. image:: thailand/modules.png :alt: Thailand localization modules Chart of accounts and taxes @@ -47,7 +47,7 @@ To generate a sales and purchase tax report, go to :menuselection:`Accounting -- Report`. Select a specific time or time range on the tax report, and click :guilabel:`VAT-202-01 (xlsx)` for purchase tax and :guilabel:`VAT-202-02 (xlsx)` for sales tax. -.. image:: thailand/thailand-tax-report.png +.. image:: thailand/tax-report.png :alt: Thai purchase and sales taxes reports Withholding PND tax report @@ -57,7 +57,7 @@ PND report data displays the summarized amounts of the applicable **withholding tax returns (domestic)** from vendor bills under the :guilabel:`PND53 (TH)` and :guilabel:`PND3 (TH)` tax reports. It is installed by default with the Thai localization. -.. image:: thailand/thailand-pnd-report.png +.. image:: thailand/pnd-report.png :alt: PND tax reports .. note:: @@ -74,7 +74,7 @@ specific time or time range on the tax report, and click :guilabel:`PND3` or :gu This generates the :file:`Tax Report PND3.csv` and :file:`Tax Report PND53.csv` files that lists all the vendor bill lines with the applicable withholding tax. -.. image:: thailand/thailand-pnd3-pnd53.png +.. image:: thailand/pnd3-pnd53.png :alt: PND3 and PND53 CSV files .. warning:: @@ -91,7 +91,7 @@ have the option to print PDF reports for normal invoices and tax invoices. To p printed as **commercial invoices** by clicking on :menuselection:`Cog button (⚙️) --> Print --> Commercial Invoice`. -.. image:: thailand/thailand-tax-invoice.png +.. image:: thailand/tax-invoice.png :alt: Commercial invoice printing Headquarter/Branch number settings @@ -104,8 +104,62 @@ in the app, open the **contact form** of the company and under the :guilabel:`Sa :guilabel:`Company ID` field. - If the contact is a **Headquarters**, leave the :guilabel:`Company ID` field **blank**. -.. image:: thailand/thailand-contact.png +.. image:: thailand/contact.png :alt: Company Headquarter/Branch number .. tip:: This information is used in the **tax invoice** PDF report and PND **tax report** export. + +PromptPay QR code on invoices +============================= + +The **PromptPay QR code** is a QR code that can be added to invoices to allow customers to pay their +bills using the PromptPay-supported bank mobile application. The QR code is generated based on the +**invoice amount** and one of the following **merchant information**: + +- Ewallet ID +- Merchant Tax ID +- Mobile Number + +Activate QR codes +----------------- + +Go to :menuselection:`Accounting --> Configuration --> Settings`. Under the :guilabel:`Customer +Payments` section, activate the :guilabel:`QR Codes` feature. + +PromptPay QR bank account configuration +--------------------------------------- + +Go to :menuselection:`Contacts --> Configuration --> Bank Accounts` and select the bank account for +which you want to activate PromptPay QR. Set the :guilabel:`Proxy Type` and fill in the +:guilabel:`Proxy Value` field depending on the chosen type. + +.. important:: + - The :guilabel:`Include Reference` checkbox doesn't work for PromptPay QR codes. + +.. image:: thailand/qr-promptpay-bank.png + :alt: PromptPay bank account configuration + +.. seealso:: + :doc:`../accounting/bank` + +Bank journal configuration +-------------------------- + +Go to :menuselection:`Accounting --> Configuration --> Journals`, open the bank journal, then fill +in the :guilabel:`Account Number` and :guilabel:`Bank` under the :guilabel:`Journal Entries` tab. + +.. image:: thailand/qr-bank-journal.png + :alt: Bank Account's journal configuration + +Issue invoices with PromptPay QR code +------------------------------------- + +When creating a new invoice, open the :guilabel:`Other Info` tab and set the :guilabel:`Payment +QR-code` option to :guilabel:`EMV Merchant-Presented QR-code`. + +.. image:: thailand/qr-code-invoice-emv.png + :alt: Select EMV Merchant-Presented QR-code option + +Ensure that the :guilabel:`Recipient Bank` is the one you configured, as Odoo uses this field to +generate the PromptPay QR code. diff --git a/content/applications/finance/fiscal_localizations/thailand/thailand-contact.png b/content/applications/finance/fiscal_localizations/thailand/contact.png similarity index 100% rename from content/applications/finance/fiscal_localizations/thailand/thailand-contact.png rename to content/applications/finance/fiscal_localizations/thailand/contact.png diff --git a/content/applications/finance/fiscal_localizations/thailand/thailand-modules.png b/content/applications/finance/fiscal_localizations/thailand/modules.png similarity index 100% rename from content/applications/finance/fiscal_localizations/thailand/thailand-modules.png rename to content/applications/finance/fiscal_localizations/thailand/modules.png diff --git a/content/applications/finance/fiscal_localizations/thailand/thailand-pnd-report.png b/content/applications/finance/fiscal_localizations/thailand/pnd-report.png similarity index 100% rename from content/applications/finance/fiscal_localizations/thailand/thailand-pnd-report.png rename to content/applications/finance/fiscal_localizations/thailand/pnd-report.png diff --git a/content/applications/finance/fiscal_localizations/thailand/thailand-pnd3-pnd53.png b/content/applications/finance/fiscal_localizations/thailand/pnd3-pnd53.png similarity index 100% rename from content/applications/finance/fiscal_localizations/thailand/thailand-pnd3-pnd53.png rename to content/applications/finance/fiscal_localizations/thailand/pnd3-pnd53.png diff --git a/content/applications/finance/fiscal_localizations/thailand/qr-bank-journal.png b/content/applications/finance/fiscal_localizations/thailand/qr-bank-journal.png new file mode 100644 index 0000000000000000000000000000000000000000..9c380b6d2892eaf4ca10a825fd568bee69485788 GIT binary patch literal 3513 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 literal 0 HcmV?d00001 diff --git a/content/applications/finance/fiscal_localizations/thailand/qr-code-invoice-emv.png b/content/applications/finance/fiscal_localizations/thailand/qr-code-invoice-emv.png new file mode 100644 index 0000000000000000000000000000000000000000..ef895786cedfd6c8b73a531f86c70ca9dcfdeba2 GIT binary patch literal 3078 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 U6U|2@0ssI207*qoM6N<$f;oxn#{d8T literal 0 HcmV?d00001 diff --git a/content/applications/finance/fiscal_localizations/thailand/qr-promptpay-bank.png b/content/applications/finance/fiscal_localizations/thailand/qr-promptpay-bank.png new file mode 100644 index 0000000000000000000000000000000000000000..e9c3bf765340b1bcb14d5902f7a07dd9e3fdc2a7 GIT binary patch literal 4674 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 cnp}|t=7YjppgtV`o