Monday, February 29, 2016¶
This week I plan to continue more intensively with #143 and to finally work on the to-do list developed by talking with Wilfried in Eupen.
I understood that
lino_cosi.lib.declarations is definitively
deprecated. We rather need a database table of “accounting periods”
(Buchungsperioden) as we had in TIM. An accounting period usually
lasts one month. Except for some small companies which declare per
quarter. For each period it must be possible to specify the exact
dates during which it is allowed to register vouchers into this
period, and also its “state”: whether it is “closed” or not.
Thanks to stackoverflow.com,
which made me notice a bug in my way of getting the last day of the
month. I do this now in
When committing this change, I also included a not yet working change
inv cov which I had started after
a voice meeting with Sandeep last weekend. Because I didn’t want to
throw away that work.
lino_cosi.lib.auto from the documented API.
How to initialize a date to “today + N years”¶
Here is a snippet of code which breaks once every four years on February 29:
tod = datetime.date.today() self.ignore_dates_after = tod.replace(year=tod.year+5)
A quick fix is to say:
self.ignore_dates_after = tod.replace(year=tod.year+5, day=28)
A better solution is:
from dateutil.relativedelta import relativedelta self.ignore_dates_after = tod + relativedelta(years=5, day=tod.day)
Above bug in
lino_xl.lib.cal caused a downtime on two
production sites today.
Repair test suites and demo data¶
Before really starting I had to tidy up and finish last week’s work by
adapting the test suites. New fixture
lino_xl.lib.invoicing.fixtures.demo2. A little new feature
method. Usage example:
>>> from lino import startup >>> startup("lino_cosi.projects.apc.settings.demo") >>> from lino_xl.lib.ledger.roles import LedgerStaff >>> print(list(LedgerStaff.get_user_profiles())) [<users.UserTypes.admin:900>]
I also updated the Voga specs about Invoicing in Lino Voga (lino_voga.lib.invoicing).