Documentatie date facturare pentru modernizare RoRIS

Specificatie minima cu datele de care depinde facturarea ROA, pentru
caietul de sarcini al modernizarii RoRIS. Include:
- DOCUMENTATIE_DATE_FACTURARE_RORIS.md/.docx (livrabil)
- dictionar_date_facturare.csv (anexa tehnica)
- PACK_ACN_IMPORT.pck (sursa analizata)
- CLAUDE.md (context)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-24 11:19:07 +03:00
commit a19651c029
6 changed files with 997 additions and 0 deletions

84
CLAUDE.md Normal file
View File

@@ -0,0 +1,84 @@
# CLAUDE.md
Context pentru asistarea pe acest folder. Citește înainte de a relua lucrul.
## Ce este acest folder
Folder de lucru pentru o **documentație de modernizare RoRIS** cerută de ACN. Autorul/clientul
este **Marius Mutu (ROMFAST SRL)** — firma care a dezvoltat ERP-ul de facturare **ROA**
(aplicația `ROAACNPRO`). ACN a depus cerere de finanțare pentru modernizarea sistemului **RoRIS**
și are nevoie de o specificație cu datele de care depinde facturarea, ca să o impună în caietul de
sarcini către firma care va face modernizarea.
## Arhitectura sistemelor (de reținut)
- **RoRIS** = sistemul sursă (date operaționale tranzit barje/nave, ecluzări, acostări).
Bază de date **SQL Server**.
- **ROA** (`ROAACNPRO`, dezvoltat de ROMFAST) = ERP-ul de facturare. Bază de date **Oracle**,
aplicație Visual FoxPro 9.
- ROA (Oracle) preia datele din RoRIS (SQL Server) printr-un **database link** (gateway heterogen
Oracle → SQL Server, `RORISSQL`). Importul e o copiere (`merge`) în tabele Oracle `ips_*`.
**Nu există API/REST** — clientul vrea explicit să păstreze acest model, nu să-l înlocuiască.
## Fișierele din acest folder
- `PACK_ACN_IMPORT.pck` — pachetul Oracle care importă din RoRIS în ROA (sursa analizei).
- `DOCUMENTATIE_DATE_FACTURARE_RORIS.md`**livrabilul principal** (specificație minimă, în
română, ton impersonal). Structură: 1) Principiu integrare; 2) Entități + nomenclatoare (2.1);
3) Câmpuri esențiale; 4) Impact asupra facturării (tabel de riscuri).
- `DOCUMENTATIE_DATE_FACTURARE_RORIS.docx` — versiunea Word, **generată din .md** (vezi mai jos).
- `dictionar_date_facturare.csv` — anexă tehnică, dicționar complet de câmpuri (delimitator `;`,
se deschide nativ în Excel România).
## Sursa de adevăr (codul ROA real)
Programul de facturare e în `D:\ROA\ROAACNPRO`. Pentru detalii de cod, relevante:
- `D:\ROA\ROAACNPRO\PACK_ACN_IMPORT.pck` (copie și aici) — ce entități se importă.
- `D:\ROA\ROAACNPRO\Programe\proceduri_acnpro.prg` — calcul/salvare facturare; rapoarte de
indicatori `vizualizare_tranzit_nave` (~linia 228) și `vizualizare_cheiaj_nave` (~383);
distribuția pe ecluze (`completeaza_regdoc_tranzit`, ~22592606); tarife `ips_tarife_tranzit`
(`vizualizare_tarife_tranzit`, ~4820).
- `D:\ROA\ROAACNPRO\database.txt` — sinonime/granturi RoRIS.
- `D:\ROA\ROAACNPRO\docs\fluxuri_calcul_facturare.md` și `docs\facturare.md` — fluxuri de calcul.
- `D:\ROA\ROAACNPRO\CLAUDE.md` — ghidul aplicației ROA.
## Constatări cheie (deja încorporate în documentație)
1. **Ecluzele se potrivesc pe DENUMIRE, nu pe `id_lock`.** Codul filtrează `lock_name LIKE
'%AGIGEA%'/'%CERNAVODA%'/'%OVIDIU%'/'%NAVODARI%'` și `chamber_name` exact `SAS1`/`SAS2` (canal
principal CDMN) sau `C1`/`C2` (canal PAMN, Năvodari). `id_lock` poate fi orice. Camera trebuie
**obligatoriu completată** (există `verificare_roris_ecluze.exe` care semnalează lipsurile).
2. **ID-urile entităților din RoRIS trebuie stabile în timp.** Sunt folosite ca FK în tarife,
contracte și vânzările deja facturate → relistarea facturilor istorice depinde de ele.
3. **Nomenclatoarele de grupare/tarifare NU există în RoRIS — sunt create în ROA** și referă prin
ID entitățile RoRIS: grupe tip navă (`ips_grup_tip_nave`), grupe marfă (`ips_goods_groups`),
UM (`ips_vas_um`), echivalențe (`ips_vas_echivalent`), dane (`ips_dane`), tarifele
(`ips_tarife_tranzit`). Tariful de tranzit se alege pe combinația **grupă tip navă + grupă/tip
marfă + rută + capacitate**, totul pe ID-uri RoRIS. Dacă RoRIS schimbă ID-urile de bază,
configurarea din ROA se desincronizează.
4. **Entități importate din RoRIS** (12): contacts, countries, goods (RISGOODS), vessels,
vessel_types (RIS_VES_TYPES), route_points, voyages, voyage_members, cargoes, voyage_locks
(VOYAGE_LOCK), berthings; `ips_routes` e generat în ROA din voyage_members + route_points.
## Cum se regenerează DOCX din MD
Nu există pandoc; există Word 2010 (COM). Workflow: MD → HTML curat → Word salvează ca .docx.
Scriptul convertor (`_md2docx.ps1`) se creează ad-hoc, se rulează și **se șterge după** (e temporar,
nu se păstrează în folder). Pași:
1. Scrie `_md2docx.ps1` (convertor MD→HTML cu suport pentru titluri, tabele, **bold**, `cod`,
blockquote, liste; apoi Word COM `SaveAs` format 16 = .docx).
2. Salvează întâi într-un `_doc_new.docx`, apoi `Move-Item` peste cel final (dacă fișierul final e
deschis în Word, e blocat — anunță utilizatorul să închidă Word).
3. Șterge fișierele temporare `_md2docx.ps1`, `_doc_new.docx`, `_doc_tmp.html`.
Verificare: documentul Word este uneori deschis în IDE/Word și blochează suprascrierea.
## Preferințe ale utilizatorului (din interacțiuni)
- Documentație **minimă, lizibilă pentru oameni**, nu restrictivă/verbose.
- **Ton impersonal** — fără adresare cu „tu".
- Folosește terminologia din sistem (ex. `TRN`, nu „NRT").
- Accent pe **afectarea cât mai mică a facturării** și pe **păstrarea modelului actual** (import
din vederi RoRIS, fără API/REST); dacă e nevoie de strat de compatibilitate, de menționat că
trebuie prevăzut în **buget**.
- Limba documentelor: **română**.