Welcome | Get started | Dive | Contribute | Topics | Reference | Changes | More
subscriptions
: Subscriptions¶
The lino_xl.lib.subscriptions
plugin adds functionality for managing
invoice-generating subscriptions.
For an end-user introduction read The subscriptions plugin.
Table of contents:
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.noi1r.settings')
>>> from lino.api.doctest import *
Dependencies¶
>>> dd.plugins.subscriptions
<lino_xl.lib.subscriptions.Plugin lino_noi.lib.subscriptions(needs ['lino_xl.lib.invoicing'])>
>>> dd.plugins.invoicing
<lino_xl.lib.invoicing.Plugin lino_xl.lib.invoicing(needed by lino_noi.lib.subscriptions, needs ['lino_xl.lib.trading'])>
Examples¶
>>> rt.show(subscriptions.Periodicities)
======= ====== ================ ================
value name Renewal Renewal before
------- ------ ---------------- ----------------
w w Every 1 weeks 1
m m Every 1 months 7
q q Every 3 months 14
y y Every 1 years 28
======= ====== ================ ================
>>> 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)