Add shared ERP sync core and Optima adapter

This commit is contained in:
2026-09-08 02:07:42 +00:00
parent a040a91d1f
commit 6c4e50f7a6
366 changed files with 4707 additions and 478 deletions

View File

@@ -0,0 +1,48 @@
# Testy integracyjne Comarch ERP Optima
Testy z bazą są celowo wykonywane dopiero po ręcznym przygotowaniu i zarejestrowaniu firmy w Optimie. Narzędzia w tym repozytorium nie odtwarzają, nie tworzą ani nie modyfikują konfiguracji baz Optimy.
## Przygotowanie
1. Skopiuj `src/SmartB2B.Optima.Service/config/optima.json.sample` do lokalnego, ignorowanego przez Git pliku `src/SmartB2B.Optima.Service/config/optima.json`.
2. Uzupełnij nazwę firmy widoczną podczas logowania, operatora, hasło, identyfikator magazynu i connection string SQL.
3. Nie dodawaj pliku `optima.json` do repozytorium ani paczki wdrożeniowej.
4. W przygotowanej firmie zapewnij kontrolowane dane testowe: kontrahenta, towar, magazyn, walutę oraz definicje RO liczone netto i brutto.
## Kontrola bez zapisu
Uruchom opublikowaną wersję x64:
```powershell
.\release-optima\SmartB2B.Optima.Service.exe --config .\src\SmartB2B.Optima.Service\config\optima.json --check-config
```
Polecenie sprawdza JSON, zgodność architektury procesu z `op_base.dll`, rejestrację COM, wersję Optimy, połączenie SQL, logowanie operatora i utworzenie sesji. Nie zapisuje dokumentu.
## Scenariusze zapisu przez WAMP
Pierwszy kontrolowany zapis adaptera można wykonać runnerem, który wymaga jawnego
parametru `--write-order` i domyślnie zapisuje wyłącznie w trybie `Buffer`:
```powershell
dotnet run --project .\tests\SmartB2B.Optima.IntegrationTests -- --config .\src\SmartB2B.Optima.Service\config\optima.json --negative-tests --write-order --customer-id 2 --product-code SMARTB2B_TEST_TWR
```
Zatwierdzenie dokumentu wymaga dodatkowej flagi `--approved` i powinno być wykonywane
wyłącznie w firmie testowej:
```powershell
dotnet run --project .\tests\SmartB2B.Optima.IntegrationTests -- --config .\src\SmartB2B.Optima.Service\config\optima.json --write-order --approved --customer-id 2 --product-code SMARTB2B_TEST_TWR
```
Po pomyślnym `--check-config` uruchom usługę z tym samym plikiem konfiguracji i sprawdź kolejno:
- RO w buforze (`saveMode: Buffer`) i zatwierdzone (`saveMode: Approved`);
- definicję liczoną netto z `price_netto` i brutto z `price_brutto`;
- rabat, uwagi, numer obcy, magazyn oraz walutę;
- zgodność `order_erp_id`, `order_erp_symbol`, `value_netto` i `value_brutto` z dokumentem zapisanym w Optimie;
- błędy dla brakującego kontrahenta, produktu, magazynu, waluty i wymaganej ceny;
- parametryzowane `sql_raw`, wiele recordsetów, dane binarne oraz błąd SQL;
- dwa równoczesne wywołania `place_order` — dokumenty mają zostać utworzone kolejno na jednym wątku COM.
Przed testami trybu `Approved` wykonaj kopię bezpieczeństwa bazy lub użyj firmy przeznaczonej wyłącznie do testów.