This visual guide is part of a collection of documents created by the One Student One ERP (OSOE) project in collaboration with Institut Mines Telecom, Telecom Bretagne, Dresden University of Technology and the South Westfalia University of Applied Sciences. It can be used to teach modern ERP theory and practice to undergraduate students or professionals.
Copyright: You are free to copy, distribute, display, and perform the work under the following conditions: you must attribute the work in the manner specified by the author or licensor; you may not use this work for any commercial purposes including training, consulting, advertising, self-advertising, publishing, etc.; you may not alter, transform, or build upon this work. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder through a commercial license or an educational license. For more information, contact info@nexedi.com
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/init_test_environment">init</span> | ||
openAndWait | ${base_url}/Zuite_createFunctionalTestUser | |
verifyTextPresent | Done. | |
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"> Wait for activities </span> | ||
openAndWait | ${base_url}/Zuite_setUpSaleOrderTest | |
verifyTextPresent | Init Ok | |
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"> Wait for activities </span> |
In this tutorial, you will learn how to create a payment using ERP5.
The appropriate way to create a payment is to first locate in the invoice which you want to create the payment transaction from, and then create the related payment directly from the invoice sheet.
The payment action works the same way as invoices:
First you have to create one and edit the details.
Once this is done properly, you will have to start the accounting process for it.
If you have some accounting experience, you know that accounting of invoices and of payments have different meanings.
Both of them are mandatory, but the accounting done for invoices is related to your merchandise and client accounts , payment accounting relates to the notion of treasury, and to your bank account .
You should understand that ERP5 will not let you create a payment if it is not related to a bank account , which means that the first step of this tutorial will be to learn how to create a bank account for your company in order to be able to create treasury transactions such as payment, which are directly linked to your bank account.
openAndWait | ${base_url}/Zuite_setUpSalePackingListTest | |
verifyTextPresent | Init Ok | |
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/invoke_simulation_alarms"> Invoke simulation alarms </span> | ||
openAndWait | ${base_url}/Zuite_setUpSaleInvoiceTest | |
verifyTextPresent | Init Ok | |
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/invoke_simulation_alarms"> Invoke simulation alarms </span> | ||
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/login_as_functional_test_user">Login As Functional Test User</span> | ||
openAndWait | ${base_url}/Zuite_setUpPaymentTest?start_only=True | |
verifyTextPresent | Init Ok | |
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"> Wait for activities </span> | ||
openAndWait | ${base_url}/Zuite_setUpPaymentTest | |
verifyTextPresent | Init Ok | |
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/invoke_simulation_alarms"> Invoke simulation alarms </span> |
From the previous tutorial "How to create Bank Accounts" and the example "Invoice Sender and Payee-Bank Account" in the tutorial "How to create Trade Conditions", you have learned how to create a bank account for your company.
In our example, please follow these tutorials and create a bank account "LCL Paris sud" for your company Hongzhao . Then please click on the Financial Information tab of the organisation document . This tab provides you with financial information about your company, such as Bank Accounts, Accounting Periods, etc. As you can see on the screenshot, the bank account you created appears in this tab, which means that the creation and validation were successful. If you want to see the details of this account, simply click on the line. This will lead you to the detail sheet of the bank account.
Now we can create transactions linked to this bank account.
open | ${base_url} | |
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded"> </tal:block> | ||
<tal:block tal:define="click_configuration python: {'text': 'Modules'}"> <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_panel_link" /> </tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"> </tal:block> | ||
<tal:block tal:define="click_configuration python: {'text': 'Organisations'}"> <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link"> </tal:block> </tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"></tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_listbox_loaded" /> | ||
waitForElementPresent | //a[contains(text(), "ZUITE-TEST-SALEORDER-ORGANISATION-001")] | |
click | //a[contains(text(), "ZUITE-TEST-SALEORDER-ORGANISATION-001")] | |
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"> </tal:block> | ||
<tal:block tal:define="click_configuration python: {'text': 'Financial Information'}"> <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_panel_link"> </tal:block> </tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"> </tal:block> | ||
waitForElementPresent | //a[contains(text(), "Main account")] |
Now we have to create the Payment from the Sale Invoice.
To reach the invoice we need, as you have learned in "How to manage Invoices", after you are located in the Sale Packing List "Red LED", click on "Related Sale Invoice Transaction" on the sidebar. This will lead you to the related invoice, from which you will be able to create the related payment.
<tal:block tal:define="click_configuration python: {'text': 'Modules'}"> <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_panel_link" /> </tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"> </tal:block> | ||
<tal:block tal:define="click_configuration python: {'text': 'Sale Packing Lists'}"> <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link"> </tal:block> </tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"></tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_listbox_loaded" /> | ||
waitForElementPresent | //a[contains(text(), "ZUITE-TEST-SALEORDER-PRODUCT-001")] | |
click | //a[contains(text(), "ZUITE-TEST-SALEORDER-PRODUCT-001")] | |
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"> </tal:block> | ||
<tal:block tal:define="click_configuration python: {'text': 'Related Sale Invoice Transaction'}"> <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_panel_link"> </tal:block> </tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"></tal:block> | ||
click | //input[@name="editable"] | |
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"> </tal:block> | ||
waitForElementPresent | //select[@name="field_my_source_section"] |
Now it is time to create the related payment . To do so, click on Create Related Payment on the sidebar.
This will create the payment and open its related sheet.
Note: you can create the related payment from an invoice once it is "Journalised" , you don't have to wait until "Definitively Close Transaction" and the invoice is "Closed" state.
<tal:block tal:define="click_configuration python: {'text': 'Create Related Payment'}"> <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_panel_link"> </tal:block> </tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"> </tal:block> | ||
waitForElementPresent | //select[@name="field_your_payment_mode"] | |
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/select_cash_account">Select Cash Account</span> | ||
select | //select[@name="field_your_payment_mode"] | Credit Card |
select | //select[@name="field_your_payment"] | 0123456789 0123456789 - Main account |
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog"> </tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"> </tal:block> | ||
waitForElementPresent | //input[@name="field_my_title"] | |
type | //input[@name="field_my_title"] | ZUITE-TEST-SALEORDER-PAYMENT-TRANSACTION-001 |
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/save"> <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"> </tal:block> </tal:block> |
Before creating the payment, ERP5 will ask you to fill up some basic payment information which are indispensable for the payment creation . As shown in the screenshot, choose the Account for Bank Line, Payment Mode, Bank Account to which you want the payment to be related (in our case, the bank account of our company Hongzhao), and also the Accounting Operation Date.
After you finished, click on "Create Related Payment".
Now the new payment is created and you are led to its related document, and it is time to edit it.
As you can see in the screenshot, there is not much information missing. The main information needed (circled in black ) have been updated automatically according to the related invoice where the payment is created from, and the basic payment information you filled up in the previous step. The only thing you need to edit is the Title. But you can still modify the details if you need.
Fill in the missing details, and when you are done, save your data by clicking on the save button, and jump to next page.
You are now used to workflows, so you should know that the workflows are available for each object without exceptions and can be found in the sidebar list.
After the creation, the next step will be to confirm the payment, if you want it to be taken into account, or if you want to be able to create the related accounting operation .
Please click on Confirm Transaction on the sidebar.
This action means that you have received the payment, for example, a payment related to an invoice you had sent to a customer some weeks ago. You know this because you can check the operations on your bank account on the internet, for example.
But confirming the payment doesn't make automatically the related accounting transaction operation . As you have learned from the previous tutorial "How to manage Invoices", the accounting transaction operation includes "Journalise Transaction", "Post Transaction To General Ledger" and "Definitively Close Accounting Transaction". For more information, please see next page.
<tal:block tal:define="click_configuration python: {'text': 'Confirm Transaction'}"> <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_panel_link"> </tal:block> </tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"> </tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog"> </tal:block> | ||
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"> </tal:block> | ||
waitForElementPresent | //p[@id="field_my_translated_simulation_state_title"] | |
verifyText | //p[@id="field_my_translated_simulation_state_title"] | Confirmed |
You might want to journalise this payment, because it is mandatory in most countries. This is an operation involving treasury, during which your bank account will be credited.
To learn more about Accounting , we would recommend you to read the dedicated tutorial, that you can find in the knowledge base of ERP5 ( "La Comptabilité sous ERP5").
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"> Wait for activities </span> | ||
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/login_as_manager">Login As Manager</span> | ||
open | ${base_url}/Zuite_tearDownSaleOrderTest | |
verifyTextPresent | Clean Ok | |
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"> Wait for activities </span> |
For more information, please contact Jean-Paul, CEO of Nexedi (+33 629 02 44 25).