MEDIATOR V20 - PRODUKCYJNY ZAPIS NR_KSEF DO TABELI RV
=====================================================

V20 jest programem bez interaktywnego menu. Przyjmuje dokladnie dwa argumenty:

RV_KSEF_WRITE.exe "TRANS_RV" "NR_KSEF"

Wymagania:
- TRANS_RV: dokladnie 10 znakow, bez spacji,
- NR_KSEF: dokladnie 35 znakow, bez spacji,
- tabela jest na stale ustawiona na rv,
- RDD: MEDCDX, biblioteka laczona: medntx.lib.

KOLEJNOSC URUCHOMIENIA
----------------------
1. BUILD_V20.bat
2. SELFTEST_V20_EXITCODE.bat
   Oczekiwany wynik: EXITCODE=10 oraz SELFTEST OK.
   Autotest nie otwiera bazy i niczego nie zapisuje.
3. Produkcyjnie wywoluj RV_KSEF_WRITE.exe z aplikacji KSeF.

WYNIK STANDARDOWY
-----------------
Sukces po pierwszym zapisie:
RESULT=OK|STATUS=WRITTEN|EXITCODE=0|...

Sukces po bezpiecznym ponowieniu tego samego zadania:
RESULT=OK|STATUS=ALREADY_SET|EXITCODE=0|...

Kazdy blad zwraca RESULT=ERROR, status tekstowy i niezerowy EXITCODE.
Pelna tabela kodow znajduje sie w EXITCODES_V20.txt.

ZABEZPIECZENIA
--------------
- stale wymuszona tabela rv,
- walidacja dlugosci obu argumentow,
- wyszukanie TRANS_RV przez RV04 i kontrola dokladnego klucza,
- odmowa dla rekordu usunietego,
- brak mozliwosci nadpisania innego, niepustego NR_KSEF,
- idempotencja: ten sam NR_KSEF zwraca sukces bez ponownego zapisu,
- dwukrotna kontrola duplikatu przez RV06,
- ponowne wyszukanie celu, RLock i kontrola pod blokada,
- FieldPut tylko dla pola NR_KSEF oraz DbCommit,
- proba przywrocenia starej wartosci po wyjatku,
- kontrola zapisu przez RV04 i aktualizacji indeksu RV06.

LOG
---
RV_KSEF_WRITE.log jest dopisywany, a nie kasowany. Kazde uruchomienie ma date,
godzine, argumenty, przebieg operacji i koncowy RESULT/STATUS/EXITCODE.

INTEGRACJA PYTHON
-----------------
Plik example_python_call.py pokazuje wywolanie przez subprocess bez powloki
systemowej. Nie skladaj komendy jako jednego napisu i nie uzywaj shell=True.

UWAGA
-----
RUN_V20_MANUAL.bat jest przeznaczony tylko do recznego uruchomienia z prawdziwym
numerem otrzymanym z KSeF. Nie wpisuj wartosci testowych.
