Welcome | Get started | Dive | Contribute | Topics | Reference | Changes | More

The lino_voga.lib.trading plugin

The lino_voga.lib.trading plugin extends lino_xl.lib.trading for usage in Lino Voga.

See also Invoicing in Lino Voga (lino_voga.lib.invoicing).

TODO: review after 20230710

Side note: Code snippets (lines starting with >>>) in this document get tested as part of our development workflow. The following initialization snippet tells you which demo project is being used in this document.

>>> from lino import startup
>>> startup('lino_book.projects.voga2.settings')
>>> from lino.api.doctest import *

Dependencies

>>> dd.plugins.trading
<lino_xl.lib.trading.Plugin lino_voga.lib.trading(needs ['lino.modlib.memo', 'lino_xl.lib.products', 'lino_xl.lib.vat'])>

Examples

Here are all our sales invoices:

>>> jnl = rt.models.accounting.Journal.get_by_ref('SLS')
>>> rt.show(trading.InvoicesByJournal, jnl)
... 
===================== ============ =================== ============ =================================== ============== =============== ================
 No.                   Entry date   Invoiceables from   until        Partner                             Subject line   Total to pay    Workflow
--------------------- ------------ ------------------- ------------ ----------------------------------- -------------- --------------- ----------------
 26/2015               01/03/2015   01/02/2015          28/02/2015   di Rupo Didier                                     48,00           **Registered**
 25/2015               01/03/2015   01/02/2015          28/02/2015   Radermacher Guido                                  100,00          **Registered**
 24/2015               01/03/2015   01/02/2015          28/02/2015   Emonts-Gast Erna                                   64,00           **Registered**
 23/2015               01/03/2015   01/02/2015          28/02/2015   Jacobs Jacqueline                                  48,00           **Registered**
 22/2015               01/03/2015   01/02/2015          28/02/2015   Evers Eberhart                                     48,00           **Registered**
 21/2015               01/02/2015   01/01/2015          31/01/2015   Dupont Jean                                        114,00          **Registered**
 20/2015               01/02/2015   01/01/2015          31/01/2015   Radermacher Jean                                   48,00           **Registered**
 19/2015               01/02/2015   01/01/2015          31/01/2015   Radermacher Hedi                                   48,00           **Registered**
 18/2015               01/02/2015   01/01/2015          31/01/2015   Emonts-Gast Erna                                   50,00           **Registered**
 17/2015               01/02/2015   01/01/2015          31/01/2015   Meier Marie-Louise                                 48,00           **Registered**
 16/2015               01/02/2015   01/01/2015          31/01/2015   Laschet Laura                                      48,00           **Registered**
 15/2015               01/02/2015   01/01/2015          31/01/2015   Kaivers Karl                                       50,00           **Registered**
 14/2015               01/02/2015   01/01/2015          31/01/2015   Engels Edgar                                       50,00           **Registered**
 13/2015               01/02/2015   01/01/2015          31/01/2015   Dobbelstein-Demeulenaere Dorothée                  96,00           **Registered**
 12/2015               01/02/2015   01/01/2015          31/01/2015   Charlier Ulrike                                    164,00          **Registered**
 11/2015               01/01/2015   01/12/2014          31/12/2014   Dupont Jean                                        98,00           **Registered**
 10/2015               01/01/2015   01/12/2014          31/12/2014   di Rupo Didier                                     48,00           **Registered**
 9/2015                01/01/2015   01/12/2014          31/12/2014   Radermacher Guido                                  164,00          **Registered**
 8/2015                01/01/2015   01/12/2014          31/12/2014   Emonts-Gast Erna                                   50,00           **Registered**
 7/2015                01/01/2015   01/12/2014          31/12/2014   Meier Marie-Louise                                 48,00           **Registered**
 6/2015                01/01/2015   01/12/2014          31/12/2014   Kaivers Karl                                       50,00           **Registered**
 5/2015                01/01/2015   01/12/2014          31/12/2014   Jonas Josef                                        64,00           **Registered**
 4/2015                01/01/2015   01/12/2014          31/12/2014   Jacobs Jacqueline                                  48,00           **Registered**
 3/2015                01/01/2015   01/12/2014          31/12/2014   Engels Edgar                                       48,00           **Registered**
 2/2015                01/01/2015   01/12/2014          31/12/2014   Evers Eberhart                                     48,00           **Registered**
 1/2015                01/01/2015   01/12/2014          31/12/2014   Charlier Ulrike                                    148,00          **Registered**
 71/2014               01/12/2014   01/11/2014          30/11/2014   Dupont Jean                                        98,00           **Registered**
 70/2014               01/12/2014   01/11/2014          30/11/2014   Radermacher Hedi                                   48,00           **Registered**
 69/2014               01/12/2014   01/11/2014          30/11/2014   Radermacher Guido                                  50,00           **Registered**
 68/2014               01/12/2014   01/11/2014          30/11/2014   Emonts-Gast Erna                                   114,00          **Registered**
 67/2014               01/12/2014   01/11/2014          30/11/2014   Laschet Laura                                      48,00           **Registered**
 66/2014               01/12/2014   01/11/2014          30/11/2014   Kaivers Karl                                       50,00           **Registered**
 65/2014               01/12/2014   01/11/2014          30/11/2014   Engels Edgar                                       50,00           **Registered**
 64/2014               01/12/2014   01/11/2014          30/11/2014   Dobbelstein-Demeulenaere Dorothée                  96,00           **Registered**
 63/2014               01/12/2014   01/11/2014          30/11/2014   Charlier Ulrike                                    100,00          **Registered**
 62/2014               01/11/2014   01/10/2014          31/10/2014   Dupont Jean                                        64,00           **Registered**
 61/2014               01/11/2014   01/10/2014          31/10/2014   Radermacher Jean                                   48,00           **Registered**
 60/2014               01/11/2014   01/10/2014          31/10/2014   Engels Edgar                                       50,00           **Registered**
 59/2014               01/11/2014   01/10/2014          31/10/2014   Charlier Ulrike                                    64,00           **Registered**
 58/2014               01/10/2014   01/09/2014          30/09/2014   Dupont Jean                                        50,00           **Registered**
 57/2014               01/10/2014   01/09/2014          30/09/2014   Radermacher Hedi                                   48,00           **Registered**
 56/2014               01/10/2014   01/09/2014          30/09/2014   Radermacher Guido                                  64,00           **Registered**
 55/2014               01/10/2014   01/09/2014          30/09/2014   Emonts-Gast Erna                                   50,00           **Registered**
 54/2014               01/10/2014   01/09/2014          30/09/2014   Laschet Laura                                      48,00           **Registered**
 53/2014               01/10/2014   01/09/2014          30/09/2014   Jonas Josef                                        64,00           **Registered**
 52/2014               01/10/2014   01/09/2014          30/09/2014   Engels Edgar                                       50,00           **Registered**
 51/2014               01/10/2014   01/09/2014          30/09/2014   Dobbelstein-Demeulenaere Dorothée                  96,00           **Registered**
 50/2014               01/09/2014   01/08/2014          31/08/2014   Dupont Jean                                        50,00           **Registered**
 49/2014               01/09/2014   01/08/2014          31/08/2014   Emonts-Gast Erna                                   50,00           **Registered**
 48/2014               01/08/2014   01/07/2014          31/07/2014   Dupont Jean                                        114,00          **Registered**
 47/2014               01/08/2014   01/07/2014          31/07/2014   Emonts-Gast Erna                                   114,00          **Registered**
 46/2014               01/08/2014   01/07/2014          31/07/2014   Engels Edgar                                       50,00           **Registered**
 45/2014               01/08/2014   01/07/2014          31/07/2014   Charlier Ulrike                                    64,00           **Registered**
 44/2014               01/07/2014   01/06/2014          30/06/2014   Radermacher Guido                                  64,00           **Registered**
 43/2014               01/07/2014   01/06/2014          30/06/2014   Jonas Josef                                        64,00           **Registered**
 42/2014               01/07/2014   01/06/2014          30/06/2014   Engels Edgar                                       50,00           **Registered**
 41/2014               01/06/2014   01/05/2014          31/05/2014   Dupont Jean                                        50,00           **Registered**
 40/2014               01/06/2014   01/05/2014          31/05/2014   Emonts-Gast Erna                                   50,00           **Registered**
 39/2014               01/06/2014   01/05/2014          31/05/2014   Engels Edgar                                       50,00           **Registered**
 38/2014               01/05/2014   01/04/2014          30/04/2014   Dupont Jean                                        50,00           **Registered**
 37/2014               01/05/2014   01/04/2014          30/04/2014   Emonts-Gast Erna                                   50,00           **Registered**
 36/2014               01/04/2014   01/03/2014          31/03/2014   Dupont Jean                                        64,00           **Registered**
 35/2014               01/04/2014   01/03/2014          31/03/2014   Emonts-Gast Erna                                   64,00           **Registered**
 34/2014               01/04/2014   01/03/2014          31/03/2014   Engels Edgar                                       50,00           **Registered**
 33/2014               01/03/2014   01/02/2014          28/02/2014   Dupont Jean                                        50,00           **Registered**
 32/2014               01/03/2014   01/02/2014          28/02/2014   Emonts-Gast Erna                                   50,00           **Registered**
 31/2014               01/02/2014   01/01/2014          31/01/2014   Dupont Jean                                        50,00           **Registered**
 30/2014               01/02/2014   01/01/2014          31/01/2014   Emonts-Gast Erna                                   50,00           **Registered**
 29/2014               01/02/2014   01/01/2014          31/01/2014   Engels Edgar                                       50,00           **Registered**
 28/2014               01/01/2014                       31/12/2013   Jeanémart Jérôme                                   20,00           **Registered**
 27/2014               01/01/2014                       31/12/2013   Brecht Bernd                                       295,00          **Registered**
 26/2014               01/01/2014                       31/12/2013   Lahm Lisa                                          240,00          **Registered**
 25/2014               01/01/2014                       31/12/2013   Dupont Jean                                        442,00          **Registered**
 24/2014               01/01/2014                       31/12/2013   Ärgerlich Erna                                     80,00           **Registered**
 23/2014               01/01/2014                       31/12/2013   di Rupo Didier                                     68,00           **Registered**
 22/2014               01/01/2014                       31/12/2013   Radermacher Jean                                   96,00           **Registered**
 21/2014               01/01/2014                       31/12/2013   Radermacher Hedi                                   248,00          **Registered**
 20/2014               01/01/2014                       31/12/2013   Radermacher Guido                                  214,00          **Registered**
 19/2014               01/01/2014                       31/12/2013   Radermacher Edgard                                 48,00           **Registered**
 18/2014               01/01/2014                       31/12/2013   Radermacher Christian                              395,00          **Registered**
 17/2014               01/01/2014                       31/12/2013   Emonts-Gast Erna                                   486,00          **Registered**
 16/2014               01/01/2014                       31/12/2013   Meier Marie-Louise                                 324,00          **Registered**
 15/2014               01/01/2014                       31/12/2013   Leffin Josefine                                    20,00           **Registered**
 14/2014               01/01/2014                       31/12/2013   Laschet Laura                                      296,00          **Registered**
 13/2014               01/01/2014                       31/12/2013   Kaivers Karl                                       180,00          **Registered**
 12/2014               01/01/2014                       31/12/2013   Jonas Josef                                        64,00           **Registered**
 11/2014               01/01/2014                       31/12/2013   Jacobs Jacqueline                                  678,00          **Registered**
 10/2014               01/01/2014                       31/12/2013   Hilgers Hildegard                                  80,00           **Registered**
 9/2014                01/01/2014                       31/12/2013   Engels Edgar                                       426,00          **Registered**
 8/2014                01/01/2014                       31/12/2013   Emonts Daniel                                      240,00          **Registered**
 7/2014                01/01/2014                       31/12/2013   Evers Eberhart                                     48,00           **Registered**
 6/2014                01/01/2014                       31/12/2013   Dobbelstein-Demeulenaere Dorothée                  116,00          **Registered**
 5/2014                01/01/2014                       31/12/2013   Demeulenaere Dorothée                              60,00           **Registered**
 4/2014                01/01/2014                       31/12/2013   Dericum Daniel                                     80,00           **Registered**
 3/2014                01/01/2014                       31/12/2013   Charlier Ulrike                                    356,00          **Registered**
 2/2014                01/01/2014                       31/12/2013   Bastiaensen Laurent                                20,00           **Registered**
 1/2014                01/01/2014                       31/12/2013   Altenberg Hans                                     295,00          **Registered**
 **Total (97 rows)**                                                                                                    **10 401,00**
===================== ============ =================== ============ =================================== ============== =============== ================

The lino_xl.lib.trading.DueInvoices table shows a list of invoices that aren’t (completeley) paid. Example see cosi1 : A Lino Così for Belgium (DE).

Printing invoices

We take a sales invoice, clear the cache, ask Lino to print it and check whether we get the expected response.

>>> ses = rt.login("robin")
>>> dd.translation.activate('en')
>>> obj = trading.VatProductInvoice.objects.all()[0]
>>> obj.clear_cache()
>>> d = ses.run(obj.do_print)
... 
appy.pod render .../trading/config/trading/VatProductInvoice/Default.odt -> .../media/cache/appypdf/trading.VatProductInvoice-125.pdf
>>> d['success']
True
>>> print(d['message'])
Your printable document (<a href="/media/cache/appypdf/trading.VatProductInvoice-125.pdf">trading.VatProductInvoice-125.pdf</a>) should now open in a new browser window. If it doesn't, please ask your system administrator.

Your printable document (filename trading.VatProductInvoice-125.pdf) should now open in a new browser window. If it doesn’t, please consult <a href=”http://www.lino-framework.org/help/print.html” target=”_blank”>the documentation</a> or ask your system administrator.

Note that this test should fail if you run the test suite without a LibreOffice server running.

>>> rt.show(invoicing.SalesRules)
==================== =================== ============
 Partner              Invoicing address   Paper type
-------------------- ------------------- ------------
 Arens Annette
 Faymonville Luc      Engels Edgar
 Radermacher Alfons   Emonts-Gast Erna
 Martelaer Mark       Dupont Jean
==================== =================== ============