8143edd7

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Declare whether the turnover figures include the VAT in them

The eCH-0217 declaration carries no tax on a turnover line, only the
turnover and the rate, plus a grossOrNet flag that decides whether the
ESTV computes the tax on that figure or out of it.  We hardcoded the
Brutto code in the element while ignoring the field that was meant to
carry it, so a ledger that books revenue net of VAT declared net figures
under a flag that said they were gross, and the ESTV carved 8.1% out of
an amount the tax was not in.

It used to agree.  Filing 2024-Q1, Ziffer 303 was 1'866.00 with 139.82 of
tax, which is the extraction, and that matched because the report summed
the revenue postings gross.  Summing moved to net while the declared
basis stayed Brutto, and the quarters since then had no domestic revenue
to disagree over.  2026-Q3 was the first one that did: 6496.49 of
turnover carrying 526.22 of collected tax was shown in the portal as
486.79, a shortfall of 39.43 that nothing in the packet contradicted.

Which one a figure is follows from the ledger rather than from a setting.
A VAT posting written with an inclusive ratio (~) names a part of the
revenue posting beside it, so that posting is gross; an exclusive one
(~e) is money on top of it, so that posting is net.  Read it off the
ratio and emit the matching code.

A quarter whose revenues disagree now fails instead of picking one,
because the declaration has a single flag for every turnover figure in
it.  A quarter with no domestic revenue says Netto, which is what the
ESTV recommends where there is a choice, and which is why the empty
scenario's golden changes.
coverage-reporte2e-testexample-switzerland-taxesexample-switzerland-vatpackagepre-commitshellvim-pluginvim-syntaxweeder-checkconfiguredevShelldefaultmutation-centjesmutation-centjes-diffx86_64-linux