7f1ac302

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

centjes-stripe: configure the rate Stripe charges VAT on its fees at

A fee of 16 rappen carries 1 rappen of tax, which is what 8.1% rounds to and
also what 3.8% rounds to, so the rate cannot be read off the amounts.  Stripe's
tax on its own fees is a property of where the account is registered rather than
of the month, so it is configured instead, defaulting to the Swiss standard rate.

The amounts still get to object: whenever a month's fee is big enough to name a
rate, that rate has to be the configured one, so a wrong setting fails in the
first month that can tell rather than quietly claiming the wrong input tax.

Keep the Swiss rates in one place while here.  centjes-switzerland wrote the rate
table twice, in requireRatioVATRate and in vatRateRatio, and centjes-stripe wrote
it a third time.  A rate an importer writes that the VAT report cannot name is a
ledger that cannot be filed, so these have to be the same set rather than three
lists that agree today.  The report type ids were likewise written twice within
centjes-stripe; the column readers now take the ReportKind they read.

Also refuse to write an output file the ledger does not import.  Everything this
importer promises rests on reading back what it wrote, and without the import it
would replace by-hand edits and already-filed months with a fresh draft.
coverage-reporte2e-testexample-switzerland-taxesexample-switzerland-vatpackagepre-commitshellvim-pluginvim-syntaxweeder-checkconfiguredevShelldefaultmutation-centjesmutation-centjes-diffx86_64-linux