# Schema Oracle - ROA (MARIUSM_AUTO)

**Actualizat:** 2026-02-03

---

## Tabele Principale

### ACT - Note Contabile

```sql
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

```sql
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

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

### STOC - Stocuri

```sql
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

```sql
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

```sql
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

```sql
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

```sql
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

```sql
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

```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*
