Welcome | Get started | Dive into Lino | Contribute | Topics | Reference | More
subscriptions
: Subscriptions¶
The lino_xl.lib.subscriptions
plugin adds functionality for managing
invoice-generating subscriptions.
For an end-user introduction read subscriptions : Subscriptions and similar agreements.
Table of contents:
This page is a tested document and the following instructions are used for initialization:
>>> from lino import startup
>>> startup('lino_book.projects.noi1r.settings')
>>> from lino.api.doctest import *
Dependencies¶
>>> dd.plugins.subscriptions
lino_noi.lib.subscriptions (needs_plugins=['lino_xl.lib.invoicing'])
>>> dd.plugins.invoicing
lino_xl.lib.invoicing (needed_by=lino_noi.lib.subscriptions, needs_plugins=['lino_xl.lib.trading'])
Examples¶
>>> rt.show(subscriptions.AllSubscriptions)
==== ================================ ======== ============ =====================
ID Journal No. Entry date Partner
---- -------------------------------- -------- ------------ ---------------------
1 Service Level Agreements (SLA) 1 07/01/2014 Rumma & Ko OÜ
2 Service Level Agreements (SLA) 2 27/01/2014 Bäckerei Ausdemwald
3 Service Level Agreements (SLA) 3 16/02/2014 Bäckerei Mießen
4 Service Level Agreements (SLA) 4 08/03/2014 Bäckerei Schmitz
5 Service Level Agreements (SLA) 5 28/03/2014 Garage Mergelsberg
**15**
==== ================================ ======== ============ =====================
>>> obj = subscriptions.Subscription.objects.get(pk=2)
>>> rt.show(subscriptions.ItemsBySubscription, obj)
=========================== ========== ============== ========== ========
Product Discount Unit price Quantity Remark
--------------------------- ---------- -------------- ---------- --------
Hosting (per active user) 10
Maintenance 800,00 1
Support availability 700,00 1
**Total (3 rows)** **1 500,00** **12**
=========================== ========== ============== ========== ========
The following snippet was added to reproduce #5402 (Replacement index 1 out of range for positional args tuple):
>>> from lino.core.constants import DISPLAY_MODE_LIST
>>> rt.show(subscriptions.ItemsBySubscription, obj, display_mode=DISPLAY_MODE_LIST)
- (**1**) **Hosting (per active user)** 10 Pieces
- (**2**) **Maintenance** 1 Pieces à 800.00 €
- (**3**) **Support availability** 1 Pieces à 700.00 €
>>> rt.show(subscriptions.PeriodsBySubscription, obj)
============ ============ ============== ================ ====
Start date End date Must invoice Invoicing info ID
------------ ------------ -------------- ---------------- ----
27/01/2014 26/01/2015 Yes *SUB 2/2014* 3
27/01/2015 26/01/2016 Yes *SUB 2/2015* 4
============ ============ ============== ================ ====
>>> show_choices('robin', '/choices/tickets/Ticket/order')
...
SLA 1/2014 (welket)
SLA 2/2014 (welsch)
SLA 3/2014 (aab)
SLA 4/2014 (bcc)
SLA 5/2014 (dde)