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>
85 lines
5.2 KiB
Markdown
85 lines
5.2 KiB
Markdown
# 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`, ~2259–2606); 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ă**.
|