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> | ||
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/wait_for_activities"> Wait for activities </span> | ||
<span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/login_as_functional_test_user">Login As Functional Test User</span> |
Now that we have learned how to generate invoices from Sales Packing Lists in the previous tutorial "How to Manage Packing Lists", we are going to explain now how to manage and how to print the invoices.
If you want to edit the sale invoice, you will have to locate it first . This is a two step procedure :
First, browse the existing Sale Packing Lists from the Modules menu, the same you would have done for persons or organisations. Please refer to the "How to create Persons" or "How to create Organisations" tutorials for more information.
openAndWait | ${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> | ||
click | //input[@name="editable"] | |
<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> |
Now you can reach the sale invoice directly from the related Sale Packing List.
First, make sure that the Packing List has been shipped or delivered . You can find that information on the View tab of the Sales Packing List “State”.
Now that you have checked the status, please click on the "Related Sale Invoice Transaction" on the sidebar. Then you will be directed to the related sales invoice.
Note that an error may return: "No Related Sale Invoice Transaction" . This means that either the Sale Packing List status is not appropriate, or you just changed the status, and you have to wait at least 30 seconds for the system to take the changes into account.
<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> |
Read the message that appears on the bottom right corner of the screen, you are now landed on the related sale invoice. The tabs of this invoice document incorporates lots of information, which comes directly from the initial Sale Order as well as from the Sale Packing List.
In theory, there should not be anything here to fill out. The first step before trying to start the accounting transaction, is to check that the information provided by the sale invoice is correct. As most fields have been updated from your information, there shouldn't be any changes to implement, but one can never know, so we recommend you to check the information in every tab in your invoice document.
When complete, click on the "Accounting View" tab on the sidebar, and jump to the next page to start the accounting transaction of the order .
In order to do an accounting transaction you have to initiate it .
An accounting transaction is a three step procedure :
First, you need to start the transaction, which means that the accounting lines will be created. In accounting terms, this is called Journalise Transaction . The second step is to validate the transaction, once you have checked the different accounting lines that have been generated automatically by ERP5. In accounting terms, this is called Post Transaction To General Ledger . Once those two steps are over, you can Definitively Close Accounting Transaction .
Be careful: once the transaction is closed, you will not be able to modify it. This is why some companies do not close their transactions until the end of their accounting period.
As you can see in the screenshot of the "Accounting View" tab of the invoice, the state is "Confirmed", and there is not any "Accounting Transaction Lines" yet. To start the transaction, click on the line "Journalise Transaction" on the sidebar, then you will see on the next page, this will create the first accounting lines .
waitForElementPresent | //a[contains(text(), "Journalise Transaction")] | |
<tal:block tal:define="click_configuration python: {'text': 'Journalise 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"] | Journalised |
Before trying to go further in the accounting process, we will analyse what changes occurred on the invoice document after we journalised transaction.
First, as you can see highlighted on the screenshot, the state has changed from "Confirmed" to "Journalised". This means that ERP5 has created some accounting lines for your transaction.
Note: It can take up to 5 minutes for the accounting lines to be created. You might have to refresh the page, if you don't see the accounting lines.
This is the second part of the analysis: as you can see in the screenshot, the first accounting transaction lines have been created. They are automatically created by ERP5, and, if you can read the accounting lines, they represent your transaction. In our example, the sell account should be credited with 100000€. If you did not yet subscribe to ERP5, you may not know that more than one accounting plan is available. On this screenshot, the French accounting plan is used, but many others are available. We already have accounting plans catered especially for Africa and Japan, and we are constantly working on developing more plans that will be available soon.
Note that a transaction can be modified as long as it is at "Journalised" state.
However, even though the accounting transaction lines have been created, but they have not been validated yet. To validate the transaction, you have to acting "Post to General Ledger". Please see next page.
Once you have checked all the accounting transaction lines, you can validate them.
To do so, please click on "Post Transaction to General Ledger" on the sidebar and jump to next page.
<tal:block tal:define="click_configuration python: {'text': 'Post Transaction to General Ledger'}"> <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"] | Posted to General Ledger |
After "Post to General Ledger", as shown in the screenshot, the invoice state changed from "Journalised" to "Posted to General Ledger" . In fact, this state is similar to "Journalised", unless it has to be seen as a transition state between “Journalise” and “ Definitely Closed” state to indicate that the transaction has been validated.
When validated by acting "Post Transaction to General Ledger", a transaction can still be modified. If you browse the sidebar, you will find a line that is called "Restart Transaction (journalise)" , which helps you invalidate the transaction and go back to the “Journalised” state, as showing on this screenshot:
Now let's go back to "Posted to General Ledger" state, the “Post Transaction to General Ledger” action ensures that the transaction has been accepted, and the management has been transferred from sales department to accounting department .
Once this is done, the next step will be to close the transaction, as shown on the next page.
The very last step of managing an invoice is to “Definitively Close ” the accounting transaction.
Once this is done, you will not be able to go back to another state , which means that you will not have the possibility to modify the transaction.
Close the transaction only when you are absolutely sure that the details, figures, etc. are correct . Some companies for instance, are accustomed to closing all the transactions at the end of the year.
To close a transaction , click on“ Definitively Close Transaction ”on the sidebar. Once this is done, the state of the transaction will be changed from "Posted to General Ledger" to Closed , and you will be able to create a payment for it, as we will see on the next tutorial “How to create a Payment”.
<tal:block tal:define="click_configuration python: {'text': 'Definitively Close 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"] | Closed |
1
2
ERP5 allows you to print the invoices you have created.
We will now explain how you can easily print an invoice you just created. You can print an invoice at any state, even if the transaction is not closed yet.
The first step to print an invoice, is to click on the Export button on top of the invoice sheet, as you can see on the screenshot.
Clicking this icon will open a new window in which you will be able to click on Print Invoice to go to print setting page .
The print setting page is now open, so you can browse the different menus to choose which kind of print you need.
Firstly, choose the language of your print, in our example, the language can be either set to French or English. Secondly, choose the format of your print.
When you are done, click the "Print Invoice" to create a physical copy of the document. You can either print directly with your printer , or save a copy of the invoice into PDF or other formats to keep it on your computer, so you can print it or send it by email later.
<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).