Files
Echo f184b2b179 feat(process_bon): script complet procesare bonuri fiscale
- OCR via roa2web API
- SQLite via API (payment_methods, tva_breakdown)
- Oracle: partener, TVA încasare (4426/4428), ID_FDOC=17
- ID_JTVA_COLOANA per cotă TVA
- TAXCODE (TVAI pentru firma TVA încasare)
- Suport multiple cote TVA în același bon
- Plată CARD: fără 401=5311 (se face la extras)
2026-02-03 16:50:48 +00:00

6.1 KiB

Schema Oracle - ROA (MARIUSM_AUTO)

Actualizat: 2026-02-03


Tabele Principale

ACT - Note Contabile

ACT (
    ID_ACT NUMBER PRIMARY KEY,
    LUNA NUMBER,
    AN NUMBER,
    COD NUMBER,                    -- Cod document unic
    DATAIREG DATE,                 -- Data înregistrare
    NRACT NUMBER,                  -- Număr act
    DATAACT DATE,                  -- Data act
    EXPLICATIA VARCHAR2(100),      -- Descriere
    SCD VARCHAR2(10),              -- Cont DEBIT
    ASCD VARCHAR2(20),             -- Analitic debit
    SCC VARCHAR2(10),              -- Cont CREDIT
    ASCC VARCHAR2(20),             -- Analitic credit
    SUMA NUMBER,                   -- Sumă
    ID_FACTD NUMBER,               -- Factură debit
    ID_FACTC NUMBER,               -- Factură credit
    PERECHED NUMBER,
    PERECHEC NUMBER,
    SUMA_VAL NUMBER,               -- Sumă valută
    CURS NUMBER,                   -- Curs valutar
    DATASCAD DATE,                 -- Data scadență
    ID_UTIL NUMBER,                -- Utilizator creare
    DATAORA DATE,                  -- Data/ora creare
    ID_UTILS NUMBER,               -- Utilizator modificare
    DATAORAS DATE,                 -- Data/ora modificare
    TVA_INCASARE NUMBER,           -- Flag TVA la încasare
    SERIE_ACT VARCHAR2(10),        -- Serie act
    ID_PART NUMBER,                -- ID partener
    ID_CTR NUMBER,                 -- ID contract
    CONT VARCHAR2(10),
    ACONT VARCHAR2(20),
    ID_VALUTA NUMBER,
    ID_SUCURSALA NUMBER,
    ID_SET NUMBER,
    TIP_SAFT NUMBER
)

ACT_TEMP - Staging Note Contabile

Aceeași structură ca ACT, folosită pentru inserare temporară înainte de transfer.

RUL - Rulaje Gestiuni

RUL (
    ID_RUL NUMBER PRIMARY KEY,
    AN NUMBER,
    LUNA NUMBER,
    COD NUMBER,
    NNIR NUMBER,                   -- Număr NIR
    ID_ARTICOL NUMBER,
    ID_GESTIUNE NUMBER,
    PRET NUMBER,
    PRETV NUMBER,                  -- Preț vânzare
    TVA NUMBER,
    TVAV NUMBER,
    CANT NUMBER,                   -- Cantitate
    CANTE NUMBER,
    CONT VARCHAR2(10),
    ACONT VARCHAR2(20),
    ADAOS NUMBER,
    ID_LUCRARE NUMBER,
    ID_RESPONSABIL NUMBER,
    DATAACT DATE,
    PROCENT NUMBER,
    CURS NUMBER,
    PRETD NUMBER,
    ID_UTIL NUMBER,
    DATAORA DATE,
    ID_SECTIE NUMBER,
    PROC_TVA NUMBER,
    ID_FACT NUMBER,
    STERS NUMBER,
    ID_TIP_RULAJ NUMBER,           -- 0=intrare/ieșire reală
    ID_SET NUMBER,
    ID_SUCURSALA NUMBER,
    NRACT NUMBER,
    SERIE_ACT VARCHAR2(10),
    ID_VALUTA NUMBER,
    LOT VARCHAR2(50),
    ADATA_EXPIRARE DATE,
    ...
)

NOM_TIP_RULAJ - Tipuri Rulaj

(0, 'INTRARE/IESIRE REALA')
(1, 'TRANSFER')
(2, 'RULAJ CMP')
(6, 'INVENTARIERE')

STOC - Stocuri

STOC (
    ID_STOC NUMBER PRIMARY KEY,
    AN NUMBER,
    LUNA NUMBER,
    ID_ARTICOL NUMBER,
    PRET NUMBER,
    PRETV NUMBER,
    TVA NUMBER,
    TVAV NUMBER,
    CANTS NUMBER,                  -- Cantitate sold
    CANT NUMBER,
    CANTE NUMBER,
    CONT VARCHAR2(10),
    ID_GESTIUNE NUMBER,
    ...
)

BAL - Balanță Verificare

BAL (
    ID_BAL NUMBER PRIMARY KEY,
    CONT VARCHAR2(10),
    PRECDEB1 NUMBER,               -- Precedent debit (an)
    PRECCRED1 NUMBER,
    PRECDEB NUMBER,                -- Precedent debit (lună)
    PRECCRED NUMBER,
    RULDEB NUMBER,                 -- Rulaj debit
    RULCRED NUMBER,                -- Rulaj credit
    AN NUMBER,
    LUNA NUMBER,
    ID_SUCURSALA NUMBER
)

IREG_PARTENERI - Evidență Parteneri

IREG_PARTENERI (
    ID_IREG_PART NUMBER PRIMARY KEY,
    AN NUMBER,
    LUNA NUMBER,
    ID_PART NUMBER,
    CONT VARCHAR2(10),
    ACONT VARCHAR2(20),
    DEBIT NUMBER,
    CREDIT NUMBER,
    VALDEBIT NUMBER,
    VALCREDIT NUMBER,
    CURS NUMBER,
    ID_FDOC NUMBER,                -- Tip document
    DATAACT DATE,
    DATAIREG DATE,
    DATASCAD DATE,
    NRACT NUMBER,
    ID_RESPONSABIL NUMBER,
    PRECDEB NUMBER,
    PRECCRED NUMBER,
    ...
)

ATAS_ATASAMENTE - Fișiere Atașate

ATAS_ATASAMENTE (
    ID_ATAS NUMBER PRIMARY KEY,
    NUME_FISIER VARCHAR2(200),
    FISIER BLOB,                   -- Conținut fișier
    ID_UTIL NUMBER,
    DATAORA DATE,
    STERS NUMBER,
    ID_UTILS NUMBER,
    DATAORAS DATE,
    DESCRIERE VARCHAR2(500),
    ID_LINK NUMBER,
    ID_TIP_ENT_PREL NUMBER
)

ATAS_REFERINTE - Legături Atașamente

ATAS_REFERINTE (
    ID_REFERINTA NUMBER PRIMARY KEY,
    ID_ATAS NUMBER,                -- FK la ATAS_ATASAMENTE
    ID_ENTITATE NUMBER,            -- ID din tabela referită
    ID_UTIL NUMBER,
    DATAORA DATE,
    STERS NUMBER,
    ID_UTILS NUMBER,
    DATAORAS DATE,
    ID_PROGRAM NUMBER,             -- Identificator tabel/modul
    ORDINE NUMBER
)

NOM_FDOC - Nomenclator Tipuri Documente

NOM_FDOC (
    ID_FDOC NUMBER PRIMARY KEY,
    FEL_DOCUMENT VARCHAR2(50),
    STERS NUMBER,
    ID_MOD NUMBER,
    INACTIV NUMBER,
    TIP_DOC VARCHAR2(5),
    PAYMENTCODE VARCHAR2(10)
)

-- Exemple:
(1, 'ABONAMENT')
(3, 'AVANSURI')
(5, 'AVIZ EXP')
(6, 'BILET')
...

Package-uri Oracle

PACK_CONTAFIN (principal)

Proceduri principale:

  • INITIALIZEAZA_SCRIERE_ACT_RUL - Inițializare sesiune
  • SCRIE_IN_ACT - Transfer ACT_TEMP → ACT
  • SCRIE_IN_BALANTA - Actualizare balanță
  • SCRIE_IN_RUL - Transfer RUL_TEMP → RUL
  • SCRIE_IN_STOC - Actualizare stoc
  • SCRIE_IN_IREG_PARTENERI - Actualizare evidență parteneri
  • FINALIZEAZA_SCRIERE_ACT_RUL - Finalizare (apelează toate cele de mai sus)

PACK_FACTURARE (referință)

Exemple INSERT ACT_TEMP:

  • Liniile 1000-1200 în package body
  • Model pentru structura datelor
  • NU pentru achiziții, dar util ca referință

PACK_PARTENERI

  • Gestiune parteneri (furnizori, clienți)
  • Căutare/creare partener după CUI

Conexiune Python

import oracledb

conn = oracledb.connect(
    user="CONTAFIN_ORACLE",
    password="ROMFASTSOFT",
    dsn="10.0.20.121:1521/ROA"
)

# Toate operațiile folosesc schema MARIUSM_AUTO
cursor.execute("SELECT * FROM MARIUSM_AUTO.ACT WHERE ROWNUM <= 1")

Schema documentată de Echo • 2026-02-03