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