Files
acn-documentatie-roris/DOCUMENTATIE_DATE_FACTURARE_RORIS.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

12 KiB
Raw Blame History

Date necesare pentru facturare — modernizare RORIS (specificație minimă)

Beneficiar: ACN — facturare tranzit/ecluzare barje și nave, cheiaj Sistem sursă (actual): RORIS — bază de date SQL Server Sistem care consumă datele: ROA (aplicația de facturare) — bază de date Oracle Scop: stabilirea datelor minime pe care noul RORIS trebuie să le pună la dispoziția facturării. Autor: ROMFAST SRL — dezvoltatorul ERP-ului ROA și al programului de facturare. Data: 24.06.2026


1. Principiu de integrare (mod actual, de păstrat)

Facturarea ROA (Oracle) preia astăzi datele din RORIS (SQL Server) prin vederi/tabele expuse de RORIS, citite de Oracle printr-un database link (gateway heterogen Oracle → SQL Server, RORISSQL). Importul este o simplă copiere (merge) din aceste surse în tabelele Oracle ale ROA, fără API sau servicii web. Vederile/tabelele relevante poartă prefixul ips_* (date) și ips_v* (vederi de calcul).

Cerința de bază a modernizării: noul RORIS trebuie să expună în continuare, pe partea sa de SQL Server, aceleași vederi/tabele, cu aceleași denumiri de coloane și aceeași semnificație, accesibile prin database link din Oracle, astfel încât importul actual să funcționeze neschimbat sau cu adaptări minime.

De prevăzut în buget: dacă noul RORIS este construit pe altă platformă sau cu altă structură de date (alte tabele/coloane, alt model), modernizarea trebuie să includă un strat de compatibilitate pe partea RORIS (vederi SQL Server / tabele intermediare / replicare) care să reproducă structura de mai jos și să rămână accesibil prin database link Oracle. Nu se dorește rescrierea importului pe API/REST — aceasta ar însemna refacerea integrală a mecanismului de facturare și costuri suplimentare nejustificate.


2. Entitățile necesare facturării (12)

# Sursă RORIS Conținut Folosită la
1 IPS_CONTACTS Firme (transportatori, plătitori) Client/plătitor pe factură
2 IPS_COUNTRIES Țări Atribut navă/voiaj/marfă
3 IPS_RISGOODS Mărfuri (NSTR, IMO, periculos) Încadrare tarifară pe marfă
4 IPS_VESSELS Nave/barje (tonaj, putere, LBD, tip) Cantitate facturată tranzit/cheiaj
5 IPS_RIS_VES_TYPES Tipuri de navă Încadrare tarifară pe tip/grupă
6 IPS_ROUTE_POINTS Puncte de rută (km/porturi/dane) Rută, distanță, dană
7 IPS_VOYAGES Voiaje/convoaie (avizare, declarație) Antet tranzit; perioadă facturare
8 IPS_VOYAGE_MEMBERS Membri convoi (navă + traseu + distanță) Linia de bază a tranzitului
9 IPS_CARGOES Marfă pe membru convoi (cantitate, UM) Cantitate și încadrare marfă
10 IPS_VOYAGE_LOCK Ecluzări (ecluză, cameră, durată) Repartiția valorii pe ecluze
11 IPS_BERTHINGS Acostări/staționări la dană Baza facturării cheiajului
12 Nomenclatoare de config (în ROA) Grupă tip navă, grupă marfă, UM, dane — pe baza ID-urilor RORIS Selecția tarifului (vezi 2.1 și cap. 4)

Detaliul complet pe câmpuri (toate coloanele, tip, obligativitate) se află în anexa dictionar_date_facturare.csv. Mai jos sunt doar câmpurile esențiale pentru facturare.

2.1. Nomenclatoare folosite la facturare (listă completă)

Nomenclatoarele sunt listele de clasificare/referință de care depinde facturarea (în special selecția tarifelor — vezi cap. 4). Toate trebuie furnizate de noul sistem, cu ID-uri stabile.

Coloana „Mod de populare" arată dacă nomenclatorul este importat din RORIS (copiat într-o tabelă ROA), creat și întreținut în ROA (nu există în RORIS; configurarea lui — grupări, tarife, echivalențe — se bazează pe ID-urile din RORIS) sau generat în ROA din date importate.

Nomenclator Conținut Rol la facturare Mod de populare
IPS_CONTACTS Firme (transportatori, plătitori, armatori) Client/plătitor pe factură Importat din RORIS
IPS_COUNTRIES Țări Pavilion navă, țară marfă/voiaj Importat din RORIS
IPS_RISGOODS Mărfuri (cu NSTR, clasă IMO, indicator periculos) Încadrare tarifară pe marfă Importat din RORIS
IPS_GOODS_GROUPS Grupe de marfă Încadrare tarifară pe grupă de marfă Creat în ROA (config pe baza ID-urilor RORIS — nu există în RORIS)
IPS_RIS_VES_TYPES Tipuri de navă Atribut navă; bază pentru grupa de tip navă Importat din RORIS
IPS_GRUP_TIP_NAVE Grupe de tip navă Încadrare tarifară (tariful se definește pe grupă) Creat în ROA (config pe baza ID-urilor RORIS — nu există în RORIS)
IPS_ARAMIS_TIP_NAVE Tipuri de navă — clasificare ARAMIS Clasificarea navei la cheiaj Creat în ROA (config pe baza ID-urilor RORIS — nu există în RORIS)
IPS_ROUTE_POINTS Puncte de rută (km, porturi, dane) Definirea rutei, distanței și danei Importat din RORIS
IPS_ROUTES Rute (pereche punct plecaresosire + distanță) Încadrare tarifară pe rută Generat în ROA din date RORIS (din voyage_members + route_points)
IPS_VAS_UM Unități de măsură ale tarifelor (TC, TRN, LBD, CP, ZI) Selecția unității de măsură a tarifului Creat în ROA (config pe baza ID-urilor RORIS — nu există în RORIS)
IPS_VAS_ECHIVALENT Echivalențe între unitățile de măsură Conversii de UM la calcul Creat în ROA (config pe baza ID-urilor RORIS — nu există în RORIS)
IPS_DANE Dane Identificarea danei la cheiaj Creat în ROA (config pe baza ID-urilor RORIS — nu există în RORIS)

Observații:

  • IPS_CONTACTS, IPS_COUNTRIES, IPS_RISGOODS, IPS_RIS_VES_TYPES și IPS_ROUTE_POINTS apar și în tabelul entităților (1-6) — sunt în același timp date de tranzacție și nomenclatoare. Acestea trebuie furnizate de noul sistem, cu ID-uri stabile.
  • Nomenclatoarele marcate „Creat în ROA" NU există în RORIS și nu trebuie furnizate de noul sistem. Ele sunt configurate manual în ROA (de exemplu: gruparea tipurilor de navă în grupe tarifare, gruparea mărfurilor, echivalențele de unități de măsură, danele) și referă prin ID entitățile din RORIS (tip navă, marfă, punct de rută). La fel, IPS_ROUTES este construit în ROA din datele importate.
  • Consecință critică: deoarece aceste configurări din ROA sunt legate de ID-urile din RORIS, dacă noul sistem schimbă ID-urile entităților de bază (tip navă, marfă, punct de rută, navă, firmă), toate grupările și tarifele configurate în ROA se desincronizează și trebuie refăcute manual. De aceea stabilitatea ID-urilor din RORIS este esențială (vezi cap. 4).
  • Tarifele propriu-zise (IPS_TARIFE_TRANZIT și similare) sunt tot în ROA și referă prin ID nomenclatoarele de mai sus (vezi cap. 4, pct. 5).

3. Câmpuri esențiale per entitate

„ID" = identificator unic; toate ID-urile sunt text (uzual ≤36 caractere). Câmpurile marcate sunt cele fără de care facturarea nu funcționează. Restul câmpurilor — în CSV.

Firme (IPS_CONTACTS): id, name.

Mărfuri (IPS_RISGOODS): id, name, dangerous (periculos → coeficient).

Nave (IPS_VESSELS): id, name, gross_tonn (capacitate), trn (tonaj registru net), lbd, horsepower, vtp_id (tip navă).

Tipuri navă (IPS_RIS_VES_TYPES): id, name.

Puncte rută (IPS_ROUTE_POINTS): id, name.

Voiaje (IPS_VOYAGES): id, data avizării, data declarației, convoy_name, declaration, ctt_id (firmă), origin, destination.

Membri convoi (IPS_VOYAGE_MEMBERS): id, vye_id (voiaj), vsl_id (navă), rstart_id/rfin_id (plecare/sosire), distance, distance_cdmn (distanța pe canalul principal).

Marfă (IPS_CARGOES): id, vms_id (membru), risgds_id (marfă), quantity, unit.

Ecluzări (IPS_VOYAGE_LOCK): id, vye_id, fk_voyage_member (membru), chamber_nr, chamber_name, lock_name, date. (vezi cap. 4 — denumiri și camere obligatorii)

Acostări (IPS_BERTHINGS): id, ves_id (navă), arrival_time, departure_time, tip (1=port, 2=dană așteptare, 9=altele), rpt_id (dană).


4. Impact asupra facturării

Tariful unei tranzitări se alege în ROA după ID-urile din RORIS, nu după denumiri — în funcție de combinația grupă de tip navă + grupă/tip de marfă + rută + capacitate. Gruparea (tip navă → grupă, marfă → grupă) și tarifele se configurează în ROA; din RORIS se folosesc doar ID-urile de tip navă, marfă și punct de rută, plus atributele de calcul ale navei (capacitate, cuplat/necuplat, distanțe pe canale).

Următoarele modificări ale noului sistem afectează direct facturarea. Pentru fiecare, dacă nu se respectă regula, va fi nevoie de un adaptor la nivelul importului/calculului ROA, care trebuie prevăzut ca efort și buget.

# Risc / modificare Efect asupra facturării Cerință / adaptor necesar
1 ID-uri schimbate la migrare (voiaje, nave, mărfuri, puncte rută, firme) Se rup legăturile cu tarifele/contractele și relistarea facturilor istorice ID-uri păstrate identic, sau tabel de echivalență ID_vechi↔ID_nou pentru remapare
2 Denumiri ecluze modificate Repartiția valorii pe ecluze devine 0; valoarea trece greșit pe „senal" lock_name trebuie să conțină AGIGEA / CERNAVODA / OVIDIU / NAVODARI
3 Coduri cameră ecluză modificate Aceeași problemă ca mai sus, pe cameră chamber_name exact: SAS1 / SAS2 (canal principal), C1 / C2 (canal Năvodari)
4 Camera ecluzei necompletată Ecluzarea nu se poate factura corect (caz deja problematic azi) Completarea camerei obligatorie la fiecare ecluzare
5 ID-uri de bază RORIS schimbate (tip navă, marfă, punct de rută) Grupările și tarifele configurate în ROA (pe baza acestor ID-uri) nu se mai potrivesc → tranzitul nu se facturează ID-uri RORIS stabile, ca să rămână valide configurările din ROA (gruparea tip→grupă/marfă→grupă se întreține în ROA)
6 Structură/denumiri coloane diferite în vederi Importul actual din vederi nu mai rulează Păstrarea acelorași vederi și denumiri de coloane (cap. 1)
7 Date fără oră (avizare/declarație, sosire/plecare) Perioada de facturare și durata la cheiaj sunt greșite Livrare ca dată + oră completă
8 Unități de măsură marfă/navă inconsistente Cantitățile facturate se denaturează UM stabile și consecvente în timp

Notă privind responsabilitatea: ERP-ul ROA și programul de facturare sunt dezvoltate și întreținute de ROMFAST SRL. Adaptările de pe partea de import/calcul ROA pot fi realizate de ROMFAST, dar numai dacă noul sistem respectă regulile de mai sus. Orice abatere (în special ID-uri instabile, denumiri de ecluze/camere schimbate, sau lipsa vederilor) transferă efort suplimentar și risc asupra facturării și trebuie evitată sau, după caz, prevăzută explicit în buget.


Anexă tehnică: dictionar_date_facturare.csv — lista completă a câmpurilor pe fiecare entitate.