Repository
OCA/l10n-romania · module folder · Try on Runboat
Module version
0.7.0
Category
Localization
Folder size
42.01 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/l10n-romania
Last tracking update
2026-08-07 09:06:35
Authors
Odoo Community Association (OCA), Forest and Biomass Romania, NextERP Romania
Maintainers
Odoo Community Association (OCA), Forest and Biomass Romania, NextERP Romania
Committers
GitHub, Mihai Fekete, Dorin Hongu, Weblate, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
l10n_ro_fiscal_validation, l10n_ro_nondeductible_vat
Description
Acest modul implementează suportul pentru **TVA la Încasare** (regim special de TVA conform legislației române), permițând verificarea automată a partenerilor înregistrați în sistemul ANAF ca plătitori de TVA la Încasare.

Funcționalități principale:

- **Verificare ANAF**: Descarcă și procesează fișierul de istoric ANAF (`istoric.txt`) cu toți contribuabilii înregistrați în regimul TVA la Încasare, stocând istoricul perioadelor de aplicare.
- **Câmp TVA la Încasare pe partener**: Adaugă câmpul `Romania - VAT on Payment` pe fișa contabilă a partenerului, indicând dacă partenerul aplică în prezent regimul TVA la Încasare.
- **Verificare automată**: La crearea sau modificarea unui partener român (cu TVA românesc), statusul TVA la Încasare este verificat și actualizat automat din datele ANAF.
- **Setare automată poziție fiscală pe facturi**: La selectarea partenerului pe o factură, modulul verifică dacă firma proprie sau furnizorul aplică TVA la Încasare și setează automat poziția fiscală „Regim TVA la Încasare" (`l10n_ro_property_vat_on_payment_position_id`).
- **Joburi cron zilnice**: Două joburi automate — unul pentru descărcarea datelor ANAF, altul pentru actualizarea statusului TVA la Încasare al partenerilor români — asigură că informațiile sunt mereu la zi.
- **Istoric ANAF**: Pe fișa partenerului este disponibil istoricul complet al perioadelor în care acesta a fost înregistrat în regimul TVA la Încasare.

---

### De ce este nevoie de acest modul față de comportamentul standard Odoo?

Odoo standard poate seta o poziție fiscală pe o factură pe baza regulilor de mapare configurate manual (țară, grup de taxe etc.) sau dacă pe partener este setată explicit o poziție fiscală. **Însă Odoo standard nu știe dacă un furnizor este înregistrat în regimul TVA la Încasare** — nu există nicio integrare cu ANAF și nicio verificare automată.

Fără acest modul, ar fi necesară verificarea manuală a fiecărui furnizor pe site-ul ANAF și setarea manuală a poziției fiscale pe fiecare partener — un proces imposibil de menținut în practică pentru un număr mare de furnizori.

Modulul aduce trei avantaje esențiale față de configurarea manuală:

1. **Sursa oficială de adevăr — datele ANAF**: Statusul TVA la Încasare provine direct din fișierul oficial ANAF (`istoric.txt`), nu dintr-o configurare manuală care poate fi uitată sau greșită. Toți contribuabilii înregistrați în regim sunt acoperiți automat.

2. **Verificare temporală bazată pe data facturii**: Modulul verifică dacă furnizorul era în regim TVA la Încasare **la data facturii**, nu doar în prezent. Aceasta este o cerință legală importantă: un furnizor poate fi intrat sau ieșit din regim între timp, iar factura trebuie tratată conform statusului din ziua emiterii.

3. **Verificare pe firma proprie (emitent)**: Pe lângă verificarea furnizorului, modulul verifică și dacă **firma ta** aplică TVA la Încasare. Dacă da, toate facturile de vânzare emise de firma ta trebuie să folosească automat poziția fiscală corespunzătoare — indiferent de clientul selectat.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
partner_vat_on_payment_filter partners_vat_on_payment_filter res.partner Inherits base.view_res_partner_filter
partner_vat_on_payment_tree partners_vat_on_payment_tree res.partner tree Inherits base.view_partner_tree
partners_form_add_vat_payment partners_form_add_vat_payment res.partner form Inherits l10n_ro_config.view_partner_create_by_vat
view_partner_anaf_form res.partner.vat.inherit res.partner form Inherits l10n_ro_config.view_partner_anaf_status_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (5)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • onchange_l10n_ro_tax_ids(self)
    @api.onchange('tax_ids')

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (7)
  • anaf_id Char
    index=True
  • end_date Date
    index=True
  • operation_date Date
  • operation_type Selection
    args: [('I', 'Register'), ('E', 'Fix error'), ('D', 'Removal'), ('S', 'Suspension')]
  • publish_date Date
  • start_date Date
    index=True
  • vat Char
    index=True
Public methods (1)
  • download_anaf_data(self, file_date=None)
    @api.model
    Download VAT on Payment data from ANAF if the file was not modified in the same date

New fields (3)
  • l10n_ro_anaf_history One2many → l10n.ro.res.partner.anaf
    compute='_compute_l10n_ro_anaf_history' readonly=True string='Romania - ANAF History' args: 'l10n.ro.res.partner.anaf'
  • l10n_ro_vat_on_payment Boolean
    string='Romania - VAT on Payment'
  • l10n_ro_vat_payment_check_date Date
    help='The date on which the VAT on Payment status was last checked.' string='Romania - VAT on Payment Check Date'
Public methods (4)
  • check_vat_on_payment(self)
  • create(self, vals_list)
    @api.model_create_multi
  • update_vat_payment_all(self)
    @api.model
  • write(self, vals)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…