Files
acn-documentatie-roris/CLAUDE.md
Marius Mutu a19651c029 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>
2026-06-24 11:19:07 +03:00

85 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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ă**.