The fiskaltrust.Middleware is an integrated set of highly configurable software components for POS systems to abstract the complexity of national fiscalization laws.
Right now, it's not officially supported to send line cancellations to the Middleware. However, this
Doesn't stop people from doing it, and
Leads to issues because most POS systems display them on their physical receipts, and PosCreators want them on the digital receipt as well.
Currently many PosCreators just sent them inversed, which leads to plenty of issues in the data exports, e.g. when it comes to DFKA and DSFinV-K sums (specifically when cancelling requests, see example below).
Solution
We'll introduce a position cancellation flag (to the ftChargeItemCase and ftPayItemCase) that works the same as in the future v2 of the Middleware interface - both the Amount and the Quantity of the sent item will have to be reversed.
The flag for both cases should be 0x0000_0000_0020_0000. When this flag is sent, we will:
Only use the amount for calculating the sums in the Middleware, the DSFinV-K and the DFKA (instead of our common approach with the Quantity-based calculation)
Set the STORNO field in the DSFinV-K and the DFKA
Tasks
[x] Add the new flag to the Middleware and calculate sums only based on the amount when it's used
[x] To ChargeItems
[x] To PayItems
[x] Add the new flag to the DFKA export and calculate sums only based on the amount when it's used
[x] To ChargeItems
[x] To PayItems
[x] Add the new flag to the DSFinV-K export and calculate sums only based on the amount when it's used
[x] To ChargeItems
[x] To PayItems
[x] Set the STORNO flag to true in lines.csv in the DSFinV-K when the flag is set
[x] Set the line item's STORNO (?) flag to true in DFKA when the flag is set
Context
Right now, it's not officially supported to send line cancellations to the Middleware. However, this
Currently many PosCreators just sent them inversed, which leads to plenty of issues in the data exports, e.g. when it comes to DFKA and DSFinV-K sums (specifically when cancelling requests, see example below).
Solution
We'll introduce a position cancellation flag (to the
ftChargeItemCase
andftPayItemCase
) that works the same as in the future v2 of the Middleware interface - both theAmount
and theQuantity
of the sent item will have to be reversed.The flag for both cases should be
0x0000_0000_0020_0000
. When this flag is sent, we will:Quantity
-based calculation)Tasks
lines.csv
in the DSFinV-K when the flag is setftChargeItemCaseFlag
ftPayItemCaseFlag