Fix international order VAT and currencies in Enova and Optima

This commit is contained in:
janusz committed 2026-10-29 01:31:13 +01:00
1 parent 75ef1ed69c
commit 248d7bac64
23 files changed
+308 -34

No files matched your search

+25
View File
@@ -55,4 +55,29 @@ dotnet run --project .\tests\SmartB2B.Optima.IntegrationTests -- --config .\src\
Test odczytuje zapisane wartości z `CDN.DokAtrybuty` i sprawdza, że próba użycia nieznanego kodu nie utworzyła RO.
## Waluty i zamówienia zagraniczne
Runner przyjmuje `--currency` (domyślnie PLN), `--international` i `--eu`.
Przykład zamówienia unijnego w EUR w przygotowanej firmie testowej:
```powershell
dotnet run --project .\tests\SmartB2B.Optima.IntegrationTests -- --config .\src\SmartB2B.Optima.Service\config\optima.json --write-order --customer-id 2 --product-code SMARTB2B_TEST_TWR --currency EUR --international --eu
```
Powtórz dla eksportu spoza UE (`--currency USD --international`), klienta krajowego
(`--currency PLN --eu`) oraz zagranicznego zamówienia w PLN
(`--currency PLN --international --eu`). Użyj kontrahentów i walut przygotowanych
w firmie testowej. `--eu` bez `--international` oznacza klienta krajowego.
Po każdym zapisie runner odczytuje nagłówek i pozycje z bazy. Weryfikuje walutę,
rodzaj transakcji (0 / 3 / 1), zgodność sum w walucie z wynikiem adaptera, a dla
zamówień zagranicznych także stawki 0% na pozycjach i zerową kwotę VAT.
W Enovie analogiczne wywołanie WAMP powinno zapisać ZO z cenami i płatnością
w `currency_iso`, rodzajem VAT na danych dokumentu `Krajowy` / `Unijny` /
`Eksportowy`, oraz zwrócić sumy w walucie zamówienia. Sprawdź ZO w EUR dla
kontrahenta unijnego będącego podatnikiem VAT, eksport w USD, ZO krajowe w PLN
i unijne ZO w PLN. Definicja ZO i ustawienia podatkowe kontrahenta muszą pozwalać
ERP dobrać właściwe stawki; dla WDT pozycje powinny mieć 0%.
Przed testami trybu `Approved` wykonaj kopię bezpieczeństwa bazy lub użyj firmy przeznaczonej wyłącznie do testów.