# Flux Contabil - Import Bonuri Fiscale Achiziție

**Actualizat:** 2026-02-03

---

## 1. Formula Contabilă Generală

### Bon fiscal achiziție (plătit cash)

```
┌─────────────────────────────────────────────────────────────┐
│  DEBIT           │  CREDIT         │  SUMA    │  DESCRIERE  │
├──────────────────┼─────────────────┼──────────┼─────────────┤
│  6xx (cheltuială)│  401 (furnizor) │  fără TVA│  Cheltuială │
│  4426 (TVA ded.) │  401 (furnizor) │  TVA     │  TVA deduct.│
│  401 (furnizor)  │  5311 (casa)    │  cu TVA  │  Plată cash │
└──────────────────┴─────────────────┴──────────┴─────────────┘
```

### Bon fiscal cu TVA la încasare

```
┌─────────────────────────────────────────────────────────────┐
│  DEBIT           │  CREDIT         │  SUMA    │  DESCRIERE  │
├──────────────────┼─────────────────┼──────────┼─────────────┤
│  6xx (cheltuială)│  401 (furnizor) │  fără TVA│  Cheltuială │
│  4428 (TVA neex.)│  401 (furnizor) │  TVA     │  TVA neexig.│
│  401 (furnizor)  │  5311 (casa)    │  cu TVA  │  Plată cash │
│  4426 (TVA ded.) │  4428 (TVA neex)│  TVA     │  Exigibiliz.│
└──────────────────┴─────────────────┴──────────┴─────────────┘
```

---

## 2. Conturi Cheltuieli (6xx)

| Cont | Denumire | Utilizare |
|------|----------|-----------|
| 6021 | Cheltuieli cu materialele auxiliare | Rechizite, materiale consumabile |
| 6022 | Cheltuieli privind combustibilii | Benzină, motorină, GPL |
| 6024 | Cheltuieli privind piesele de schimb | Piese auto, componente |
| 6028 | Cheltuieli privind alte materiale consumabile | Diverse materiale |
| 604 | Cheltuieli privind materialele nestocate | Materiale directe în consum |
| 611 | Cheltuieli cu întreținerea și reparațiile | Service, reparații |
| 612 | Cheltuieli cu redevențele | Licențe, abonamente |
| 613 | Cheltuieli cu primele de asigurare | Asigurări |
| 614 | Cheltuieli cu studiile și cercetările | Consultanță |
| 622 | Cheltuieli privind comisioanele | Comisioane bancare |
| 623 | Cheltuieli de protocol, reclamă | Protocol, publicitate |
| 624 | Cheltuieli cu transportul | Transport bunuri/persoane |
| 625 | Cheltuieli cu deplasările | Diurnă, cazare, transport |
| 626 | Cheltuieli poștale și telecomunicații | Telefon, internet |
| 627 | Cheltuieli cu serviciile bancare | Comisioane bancare |
| 628 | Alte cheltuieli cu serviciile | Diverse servicii |

---

## 3. Mapare Automată CUI → Cont

### Benzinării

| CUI | Denumire | Cont |
|-----|----------|------|
| RO1590082 | OMV PETROM | 6022 |
| RO1025tried | ROMPETROL | 6022 |
| RO14991381 | MOL ROMANIA | 6022 |
| RO524186 | LUKOIL | 6022 |

### Magazine Bricolaj

| CUI | Denumire | Cont |
|-----|----------|------|
| RO10562600 | DEDEMAN | 6021/6028 |
| RO6323780 | HORNBACH | 6021/6028 |
| RO14688790 | LEROY MERLIN | 6021/6028 |

### Supermarket-uri

| CUI | Denumire | Cont |
|-----|----------|------|
| RO15tried | MEGA IMAGE | 6028 |
| RO5765323 | KAUFLAND | 6028 |
| RO3891449 | CARREFOUR | 6028 |
| RO6334171 | LIDL | 6028 |

---

## 4. Exemplu Complet - Bon Benzină

**Bon:**
- Furnizor: OMV PETROM (CUI: RO1590082)
- Data: 2026-02-03
- Număr bon: 12345
- Total: 250.00 RON (210.08 + 39.92 TVA 19%)

### 4.1 Date extrase OCR

```json
{
  "partner_name": "OMV PETROM MARKETING SRL",
  "cui": "RO1590082",
  "receipt_date": "2026-02-03",
  "receipt_number": "12345",
  "amount": 250.00,
  "tva_entries": [
    {"code": "A", "percent": 19, "amount": 39.92}
  ],
  "tva_total": 39.92,
  "payment_methods": [{"method": "NUMERAR", "amount": 250.00}]
}
```

### 4.2 Note Contabile Generate

```sql
-- LINIA 1: Cheltuială combustibil
INSERT INTO ACT_TEMP (
    LUNA, AN, COD, DATAIREG, DATAACT, NRACT,
    EXPLICATIA,
    SCD, SCC, SUMA,
    ID_PARTC, ID_FDOC
) VALUES (
    2, 2026, :cod, SYSDATE, TO_DATE('2026-02-03', 'YYYY-MM-DD'), 12345,
    'Combustibil OMV bon 12345',
    '6022', '401', 210.08,
    :id_part_omv, :id_fdoc_bon
);

-- LINIA 2: TVA deductibil
INSERT INTO ACT_TEMP (
    LUNA, AN, COD, DATAIREG, DATAACT, NRACT,
    EXPLICATIA,
    SCD, SCC, SUMA, PROC_TVA,
    ID_PARTC, ID_FDOC
) VALUES (
    2, 2026, :cod, SYSDATE, TO_DATE('2026-02-03', 'YYYY-MM-DD'), 12345,
    'TVA combustibil OMV bon 12345',
    '4426', '401', 39.92, 1.19,
    :id_part_omv, :id_fdoc_bon
);

-- LINIA 3: Plată din casă
INSERT INTO ACT_TEMP (
    LUNA, AN, COD, DATAIREG, DATAACT, NRACT,
    EXPLICATIA,
    SCD, SCC, SUMA,
    ID_PARTD, ID_FDOC
) VALUES (
    2, 2026, :cod, SYSDATE, TO_DATE('2026-02-03', 'YYYY-MM-DD'), 12345,
    'Plata bon OMV 12345',
    '401', '5311', 250.00,
    :id_part_omv, :id_fdoc_bon
);
```

### 4.3 Flux Complet Python

```python
import oracledb

def import_bon_achizitie(extraction_data, conn):
    cursor = conn.cursor()
    
    # 1. Găsește sau creează partenerul
    id_part = find_or_create_partner(cursor, extraction_data['cui'], extraction_data['partner_name'])
    
    # 2. Determină contul de cheltuială
    cont_cheltuiala = get_cont_by_cui(extraction_data['cui'])  # ex: '6022'
    
    # 3. Calculează sumele
    total_cu_tva = extraction_data['amount']
    tva = extraction_data['tva_total']
    total_fara_tva = total_cu_tva - tva
    
    # 4. Inițializare
    cursor.callproc('MARIUSM_AUTO.PACK_CONTAFIN.INITIALIZEAZA_SCRIERE_ACT_RUL', [
        id_util,      # ID utilizator
        datetime.now(),
        an,
        luna,
        0,            # suprascriere_cod
        0,            # suprascriere_anluna  
        0,            # scrie_sterge (0=scrie)
        id_sucursala
    ])
    
    # 5. INSERT în ACT_TEMP (cele 3 linii)
    # ... INSERT-uri ca mai sus ...
    
    # 6. Finalizare
    mesaj = cursor.var(oracledb.STRING)
    cursor.callproc('MARIUSM_AUTO.PACK_CONTAFIN.FINALIZEAZA_SCRIERE_ACT_RUL', [
        id_util,
        cod,
        0,            # scrie_sterge
        0,            # modificare_nota
        0,            # scrie_cump_vanz
        mesaj
    ])
    
    conn.commit()
    return mesaj.getvalue()
```

---

## 5. Cote TVA România

| Cotă | Procent | PROC_TVA | Aplicare |
|------|---------|----------|----------|
| Standard | 19% | 1.19 | Majoritatea bunurilor/serviciilor |
| Redus 1 | 9% | 1.09 | Alimente, medicamente, cărți |
| Redus 2 | 5% | 1.05 | Locuințe sociale |
| Zero | 0% | 1.00 | Export, anumite servicii |

---

## 6. Validări Necesare

1. **CUI valid** - verificare checksum
2. **Data bon** - nu în viitor, nu mai veche de 1 an
3. **Sumă** - pozitivă, format corect
4. **TVA** - să corespundă cu cotele legale
5. **Balanță** - SUMA(debit) = SUMA(credit)

---

*Flux documentat de Echo • 2026-02-03*
