:date: 2019-12-27

=========================
Friday, December 27, 2019
=========================

I fixed yet another side effect caused by :ticket:`3430`. Not only VAT
declarations but also payment orders and bank statements were affected by the
problem that :meth:`lino_xl.lib.accounting.Voucher.register_voucher` is now called
after having saved the voucher. To fix these problems,
:meth:`get_wanted_movements` and :meth:`get_payable_sums_dict` now will save the
voucher again. This is a side effect, i.e. not very nice style. But it works,
and I don't currently see a better implementation.

I did some code cleanup : removed the ``DECLARED_IN`` constant because I no
longer believe that we will ever want it back.

The button_text for the ToggleState action was "Õ" (rather accidentally). Now it
is "⏼" (23FC "Toggle power").

The field :attr:`lino_xl.lib.accounting.Account.vat_column` is now declared in
:mod:`lino_xl.lib.accounting` instead of being injected by :mod:`lino_xl.lib.vat`.
The difference is rather philosophic: I think it's more natural to say that
ledger be aware of vat, i.e. it defines those fields, knowing that they become
dummy fields if vat isn't installed.  The inject approach is more accurate when
you have some rather extravagant plugin that is not used often.

I discovered and fixed another bug in the Estonian VAT declaration: a sales
intracom invoice must not generate a debit and credit with a VAT amount.