Fix international order VAT and currencies in Enova and Optima
This commit is contained in:
1 parent
75ef1ed69c
commit
248d7bac64
23 files changed
+308
-34
No files matched your search
@@ -15,7 +15,7 @@ procedury WAMP.
|
||||
- Zmiana wersji lub katalogu Enovy wymaga restartu usługi. Start kończy się błędem, jeżeli nowy zestaw DLL nie jest zgodny z adapterem.
|
||||
- Operacje Enovy są wykonywane pojedynczo i w osobnych sesjach. Zapytania SQL korzystają z puli połączeń i mogą działać równolegle.
|
||||
- ZO jest zapisywane transakcyjnie, domyślnie do bufora. Powtarzający się numer obcy nie jest blokowany.
|
||||
- Pierwsza wersja obsługuje PLN, `price_netto` i rabat procentowy `0-100`.
|
||||
- Adaptery obsługują waluty dostępne w ERP według `currency_iso`, `price_netto` i rabat procentowy `0-100`. Optima obsługuje również `price_brutto` zgodnie z definicją dokumentu.
|
||||
- Sentry raportuje błędy krytyczne procesu oraz nieoczekiwane błędy procedur Enovy i SQL, oznaczone portalem i nazwą procedury WAMP.
|
||||
|
||||
## Konfiguracja
|
||||
@@ -114,6 +114,8 @@ Wycofanie polega na uruchomieniu `release-enova/daemon/uninstall.cmd` i ponownym
|
||||
|
||||
- `eu.smartb2b.place_order` przyjmuje `currency_iso`, `companyErpId`, `warehouseErpId`, `purchase_order_number`, `notes` i `lines[]` z polami `symbol`, `quantity`, opcjonalnymi `price_netto` i `price_brutto` oraz `discount`. Dla Optimy opcjonalne `extraFields` jest mapą kodów atrybutów dokumentu (`DefAtrybuty.DeA_Kod`) na wartości tekstowe, np. `{"ŹRÓDŁO":"B2B"}`. Nieznany kod lub wartość odrzucona przez Optimę przerywa zapis zamówienia. Enova wymaga `price_netto`; Optima wybiera cenę zgodnie z `TypNB` definicji dokumentu. Wynik jest zwracany jako kwargs: `order_erp_id`, `order_erp_symbol`, `value_netto`, `value_brutto`, `stocks`.
|
||||
- Każde wywołanie `place_order` jest logowane przed walidacją do standardowego logu usługi jako jedna linia JSON z pełnymi `args` i `kwargs`, w tym `extraFields`. Działa to także bez `/verbose`; log zawiera niezmienione wartości przesłane przez portal i można go odczytać przez `eu.smartb2b.sync.get_log`.
|
||||
- Flagi logiczne `companyIsInternational` i `companyIsInEuropeanUnion` są zgodne z `WampOrder.php`. Dla klienta krajowego (`companyIsInternational=false`, także gdy należy do UE) Enova ustawia na danych dokumentu `RodzajPodmiotu.Krajowy`, a Optima `Export=0`. Dla zagranicznego klienta z UE jest to `Unijny` / `Export=3`, a dla klienta spoza UE `Eksportowy` / `Export=1`. Klasyfikacja jest ustawiana przed pozycjami; stawki VAT dobiera ERP zgodnie z definicją dokumentu i ustawieniami podatkowymi kontrahenta. Brak flag oznacza `false` dla zgodności ze starszymi wywołaniami.
|
||||
- Waluta dokumentu i cen pochodzi z `currency_iso`, niezależnie od kraju klienta. Enova ustawia walutę płatności przez `BruttoCy`, walutę cen przez `DoubleCy`; Optima przez `WalutaSymbol`. Nieznana waluta zwraca `eu.smartb2b.erp.currency_not_found`. Wynik `value_netto` i `value_brutto` w obu adapterach jest wyrażony w walucie zamówienia.
|
||||
- `eu.smartb2b.sql_raw` przyjmuje `query` i opcjonalne `params`; parametry odpowiadają kolejno `@1`, `@2`, itd. Wynik ma pola `recordsets`, `recordset`, `output`, `rowsAffected`.
|
||||
- Diagnostyka: `eu.smartb2b.sync.get_version`, `get_info`, `get_log`, `get_error_log`.
|
||||
|
||||
|
||||
Reference in new issue
Block a user