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.

Total

2h24m37s

Created Started Finished

Time to Start Worker time Duration Time to finish Idle
Config 29h57m39s 1s 1s 29h57m40s 29h57m39s
Eval 30h01m45s 54s 54s 30h02m39s 4m04s
Build 30h02m38s 0s 2h19m37s 32h22m16s 2h19m37s
Suite 29h57m39s 55s 2h24m37s 32h22m16s 32h21m21s

Timeline

Config Eval Build Compressed gap
0s29h57m30h1m30h2m30h2m30h2m30h2m