Romania - Mesaje SPV

l10n_ro_message_spv
REPOSITORY
REPOSITORYOCA/l10n-romania
GIT
GIThttps://github.com/OCA/l10n-romania.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-romania/tree/19.0/l10n_ro_message_spv
VERSION
VERSION
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Terrabit
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Terrabit
COMMITTERS
COMMITTERSGitHub, Weblate, OCA-git-bot, oca-ci, Dorin Hongu
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-romania
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:47
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-romania:
    - l10n_ro_config
odoo/odoo:
    - l10n_ro_edi
    - account_edi_ubl_cii
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_ro
    - base_vat
    - account_edi
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Acest modul facilitează gestionarea mesajelor din Spațiul Privat Virtual (SPV) ANAF, asigurând descărcarea și procesarea automată a facturilor electronice (e-Factura):

  - Funcționalități:

    - Descărcare automată mesaje SPV: sincronizare periodică (via cron) a listei de mesaje din SPV pentru facturi primite, trimise sau erori.
    - Procesare fișiere ZIP: descărcarea automată a arhivelor ZIP de la ANAF și extragerea fișierelor XML semnate.
    - Creare automată facturi de furnizor: generează schițe de factură (draft) direct din fișierele XML descărcate, mapând automat furnizorul pe baza codului fiscal (CIF).
    - Gestionare PDF-uri e-Factura:
      - Generare PDF ANAF: posibilitatea de a genera și descărca vizualizarea PDF oficială a XML-ului folosind serviciile ANAF.
      - Extragere PDF încorporat: extrage PDF-urile atașate direct în fișierul XML (dacă există).
    - Monitorizare stări: urmărirea stării fiecărui mesaj (Draft, Downloaded, Invoice, Error, Done) și a încercărilor de descărcare.
    - Integrare cu fluxul de facturare: legarea automată a mesajelor de facturile existente în sistem pe baza ID-ului de tranzacție sau a referinței.
    - Căutare produs după codul furnizorului: la importul UBL/CIUS-RO, produsul este identificat automat după codul furnizorului (`SellersItemIdentification` sau `StandardItemIdentification`) folosind `product.supplierinfo`, cu prioritate maximă față de celelalte criterii de căutare.
    - Salvare cod furnizor pe linia de factură: codul furnizorului (`l10n_ro_vendor_code`) este salvat pe linia de factură la import, chiar dacă produsul nu a fost găsit, pentru a permite asocierea ulterioară la validarea facturii.
    - Sincronizarea datelor produselor: permite salvarea automată a codurilor de furnizor pentru produse la validarea facturilor primite.
    - Configurare număr de zile pentru descărcarea e-facturilor (`l10n_ro_download_einvoices_days`): numărul maxim de zile pentru care se descarcă mesajele din SPV (implicit 60 de zile).
    - Configurare număr de zile pentru reîmprospătarea mesajelor (`l10n_ro_refresh_message_days`): numărul maxim de zile pentru care se reîmprospătează mesajele e-Factura (implicit 60 de zile).

---

## Diferențe față de modulul standard `l10n_ro_edi`

Modulul `l10n_ro_message_spv` extinde modulul standard Odoo `l10n_ro_edi` (Romania - E-invoicing), adăugând funcționalități suplimentare pentru gestionarea avansată a mesajelor din SPV.

### Ce face modulul standard `l10n_ro_edi`?

- **Trimitere facturi de ieșire** către SPV ANAF (e-Factura) cu urmărirea stării (Trimis / Validat / Refuzat).
- **Sincronizare automată** (via cron) a stărilor facturilor trimise și descărcarea răspunsurilor de la SPV.
- **Descărcare facturi primite** (received bills): creează automat o factură draft de furnizor din XML-ul primit, atașează XML-ul și PDF-ul generat de ANAF.
- **Jurnal configurabil** pentru facturile importate (`l10n_ro_edi_anaf_imported_inv_journal_id`).
- **Deduplicare** facturi primite pe baza sumei totale, CIF-ului furnizorului și datei.

### Ce adaugă `l10n_ro_message_spv` în plus?

| Funcționalitate | `l10n_ro_edi` (standard) | `l10n_ro_message_spv` (acest modul) |
|---|---|---|
| Trimitere facturi ieșire | ✅ | ✅ (moștenit) |
| Descărcare facturi primite | ✅ (simplu) | ✅ (extins) |
| Interfață dedicată mesaje SPV | ❌ | ✅ cu stări: Draft, Downloaded, Invoice, Error, Done |
| Monitorizare încercări descărcare | ❌ | ✅ |
| Procesare fișiere ZIP ANAF | ❌ | ✅ |
| Generare PDF oficial ANAF | ✅ | ✅ |
| Extragere PDF încorporat în XML | ❌ | ✅ |
| Căutare produs după cod furnizor | ❌ | ✅ via `product.supplierinfo` |
| Salvare `l10n_ro_vendor_code` pe linie | ❌ | ✅ |
| Sincronizare coduri furnizor la validare | ❌ | ✅ |
| Configurare zile descărcare mesaje SPV | ❌ | ✅ (`l10n_ro_download_einvoices_days`) |
| Configurare zile reîmprospătare mesaje | ❌ | ✅ (`l10n_ro_refresh_message_days`) |

> **Notă:** `l10n_ro_message_spv` depinde de `l10n_ro_edi` și îl extinde — nu îl înlocuiește. Ambele module trebuie instalate pentru funcționalitate completă.

---

## De ce este importantă descărcarea periodică a mesajelor din SPV?

Descărcarea mesajelor și a facturilor din SPV nu este doar o recomandare de „bună practică", ci o necesitate critică din motive legale, fiscale și tehnice.

### 1. Termenul de Arhivare în SPV (Limitarea Tehnică)

Sistemul ANAF nu este un spațiu de stocare permanentă.

- **Ștergerea automată:** Mesajele și documentele (inclusiv facturile din e-Factura) sunt păstrate în SPV pentru o perioadă limitată (de regulă **60 de zile**).
- **Consecință:** Dacă nu le descarci în acest interval, ele dispar din interfață și recuperarea lor devine un proces birocratic anevoios sau chiar imposibil prin metodele standard.

### 2. Valabilitatea Juridică și Fiscală

Conform legislației din România (Codul Fiscal), documentul original care stă la baza deducerii TVA și a cheltuielilor este **fișierul XML însoțit de sigiliul electronic al Ministerului Finanțelor**.

- **Proba în caz de control:** În fața inspectorilor ANAF, simpla vizualizare a facturii în portal nu este suficientă. Trebuie să poți prezenta fișierul descărcat care conține semnătura electronică ce atestă autenticitatea.
- **Arhivarea obligatorie:** Firmele sunt obligate prin lege să arhiveze documentele contabile pe termene lungi (de regulă 10 ani). Deoarece SPV le șterge după 60 de zile, sarcina arhivării îți revine exclusiv ție.

### 3. Integrarea în Contabilitate

Majoritatea programelor de contabilitate au nevoie de fișierele XML descărcate pentru a automatiza procesele.

- Fără descărcare, datele trebuie introduse manual, ceea ce crește riscul de erori umane.
- Descărcarea permite corelarea rapidă între plățile efectuate și facturile primite.

### Ce trebuie descărcat?

Nu este suficient să salvezi doar PDF-ul (care este doar o reprezentare vizuală). Trebuie să salvezi:

1. **Fișierul XML:** Acesta este documentul „rege" din punct de vedere legal.
2. **Recipisa (Semnătura electronică):** Fișierul care confirmă că XML-ul a fost validat de sistemul ANAF.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
res_config_settings_form_inherit_l10n_ro_edi res.config.settings.form.inherit.l10n.ro.edi res.config.settings xpath Inherits l10n_ro_edi.res_config_settings_form_inherit_l10n_ro_edi
view_l10n_ro_message_spv_form l10n.ro.message.spv.form l10n.ro.message.spv form New
view_l10n_ro_message_spv_search l10n.ro.message.spv.search l10n.ro.message.spv search New
view_l10n_ro_message_spv_tree l10n.ro.message.spv.list l10n.ro.message.spv list New
view_move_form account.move.form account.move xpath Inherits account.view_move_form
Models touched (8)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • l10n_ro_edi_download Char
    copy=False help='ID used to download the ZIP file from ANAF.' args: 'ID Download ANAF (RO)'
  • l10n_ro_edi_transaction Char
    copy=False help='Technical field used to track the status of a submission.' args: 'Transaction ID (RO)'
  • l10n_ro_message_spv_ids One2many → l10n.ro.message.spv
    help='E-invoice messages related to this invoice.' string='Romania - E-invoice messages' args: 'l10n.ro.message.spv', 'invoice_id'
Public methods (2)
  • action_post(self)
  • unlink(self)

New fields (1)
  • l10n_ro_vendor_code Char
    copy=False string='Vendor Code'
Public methods (0)

No public methods.

New fields (24)
  • amount Monetary
  • attachment_anaf_pdf_id Many2one → ir.attachment
    compute='_compute_derived_attachments' string='ANAF PDF' args: 'ir.attachment'
  • attachment_embedded_pdf_id Many2one → ir.attachment
    compute='_compute_derived_attachments' string='Embedded PDF' args: 'ir.attachment'
  • attachment_id Many2one → ir.attachment
    string='Attachment' args: 'ir.attachment'
  • attachment_xml_id Many2one → ir.attachment
    compute='_compute_derived_attachments' string='XML' args: 'ir.attachment'
  • cif Char
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    default=<expr> args: 'res.currency'
  • date Datetime
  • details Char
  • download_attempts Integer
    default=0
  • error Text
  • file_name Char
  • invoice_amount Monetary
  • invoice_date Date
  • invoice_id Many2one → account.move
    string='Invoice' args: 'account.move'
  • last_download_date Date
  • message Text
  • message_type Selection
    string='Type' args: [('in_invoice', 'In Invoice'), ('out_invoice', 'Out Invoice'), ('out_receipt', 'Out Receipt'), ('in_receipt', 'In Receipt'), ('message', 'Message'), ('error', 'Error')]
  • name Char
    string='Message ID'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • ref Char
    string='Reference'
  • request_id Char
    string='Request ID'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('downloaded', 'Downloaded'), ('invoice', 'Invoice'), ('error', 'Error'), ('done', 'Done')]
Public methods (14)
  • action_download_anaf_pdf(self)
  • action_download_attachment(self)
  • action_download_embedded_pdf(self)
  • action_download_xml(self)
  • check_anaf_error_xml(self, zip_content)
  • check_anaf_message_xml(self, zip_content)
  • create_invoice(self)
  • download_from_spv(self)
    Rutina de descarcare a fisierelor de la SPV
  • get_data_from_invoice(self)
  • get_invoice_from_move(self)
  • get_partner(self)
  • get_xml_fom_zip(self)
    Parse the invoice XML from the ZIP and update the message metadata. The XML is processed in memory — no attachment is created here.
  • refresh(self)
  • show_invoice(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • l10n_ro_download_einvoices_days Integer
    default=60 string='Maximum number of days to download e-invoices.'
  • l10n_ro_refresh_message_days Integer
    default=60 string='Maximum number of days to refresh e-invoice messages.'
Public methods (2)
  • l10n_ro_download_message_spv(self)
  • l10n_ro_download_zip_message_spv(self, limit=5)

New fields (2)
  • l10n_ro_download_einvoices_days Integer
    readonly=False related='company_id.l10n_ro_download_einvoices_days'
  • l10n_ro_refresh_message_days Integer
    readonly=False related='company_id.l10n_ro_refresh_message_days'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-romania
GIT
GIThttps://github.com/OCA/l10n-romania.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-romania/tree/18.0/l10n_ro_message_spv
VERSION
VERSION 2.2.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Terrabit
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Terrabit
COMMITTERS
COMMITTERSGitHub, Weblate, OCA-git-bot, oca-ci, Dorin Hongu, Stana Natanaela, danila12, Sima Elisabeta, VoicuStefan2001
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-romania
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-romania:
    - l10n_ro_config
odoo/odoo:
    - l10n_ro_edi
    - account_edi_ubl_cii
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_ro
    - base_vat
    - account_edi
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Acest modul facilitează gestionarea mesajelor din Spațiul Privat Virtual (SPV) ANAF, asigurând descărcarea și procesarea automată a facturilor electronice (e-Factura):

  - Funcționalități:

    - Descărcare automată mesaje SPV: sincronizare periodică (via cron) a listei de mesaje din SPV pentru facturi primite, trimise sau erori.
    - Procesare fișiere ZIP: descărcarea automată a arhivelor ZIP de la ANAF și extragerea fișierelor XML semnate.
    - Creare automată facturi de furnizor: generează schițe de factură (draft) direct din fișierele XML descărcate, mapând automat furnizorul pe baza codului fiscal (CIF).
    - Gestionare PDF-uri e-Factura:
      - Generare PDF ANAF: posibilitatea de a genera și descărca vizualizarea PDF oficială a XML-ului folosind serviciile ANAF.
      - Extragere PDF încorporat: extrage PDF-urile atașate direct în fișierul XML (dacă există).
    - Monitorizare stări: urmărirea stării fiecărui mesaj (Draft, Downloaded, Invoice, Error, Done) și a încercărilor de descărcare.
    - Integrare cu fluxul de facturare: legarea automată a mesajelor de facturile existente în sistem pe baza ID-ului de tranzacție sau a referinței.
    - Sincronizarea datelor produselor: permite salvarea automată a codurilor de furnizor pentru produse la validarea facturilor primite.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
res_config_settings_form_inherit_l10n_ro_edi res.config.settings.form.inherit.l10n.ro.edi res.config.settings xpath Inherits l10n_ro_edi.res_config_settings_form_inherit_l10n_ro_edi
view_l10n_ro_message_spv_form l10n.ro.message.spv.form l10n.ro.message.spv form New
view_l10n_ro_message_spv_search l10n.ro.message.spv.search l10n.ro.message.spv search New
view_l10n_ro_message_spv_tree l10n.ro.message.spv.list l10n.ro.message.spv list New
view_move_form account.move.form account.move xpath Inherits account.view_move_form
Models touched (7)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • l10n_ro_edi_download Char
    copy=False help='ID used to download the ZIP file from ANAF.' args: 'ID Download ANAF (RO)'
  • l10n_ro_edi_transaction Char
    copy=False help='Technical field used to track the status of a submission.' args: 'Transaction ID (RO)'
  • l10n_ro_message_spv_ids One2many → l10n.ro.message.spv
    help='E-invoice messages related to this invoice.' string='Romania - E-invoice messages' args: 'l10n.ro.message.spv', 'invoice_id'
Public methods (2)
  • action_post(self)
  • unlink(self)

New fields (1)
  • l10n_ro_vendor_code Char
    copy=False string='Vendor Code'
Public methods (0)

No public methods.

New fields (24)
  • amount Monetary
  • attachment_anaf_pdf_id Many2one → ir.attachment
    compute='_compute_derived_attachments' string='ANAF PDF' args: 'ir.attachment'
  • attachment_embedded_pdf_id Many2one → ir.attachment
    compute='_compute_derived_attachments' string='Embedded PDF' args: 'ir.attachment'
  • attachment_id Many2one → ir.attachment
    check_company=True string='Attachment' args: 'ir.attachment'
  • attachment_xml_id Many2one → ir.attachment
    compute='_compute_derived_attachments' string='XML' args: 'ir.attachment'
  • cif Char
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    default=<expr> args: 'res.currency'
  • date Datetime
  • details Char
  • download_attempts Integer
    default=0
  • error Text
  • file_name Char
  • invoice_amount Monetary
  • invoice_date Date
  • invoice_id Many2one → account.move
    check_company=True string='Invoice' args: 'account.move'
  • last_download_date Date
  • message Text
  • message_type Selection
    string='Type' args: [('in_invoice', 'In Invoice'), ('out_invoice', 'Out Invoice'), ('out_receipt', 'Out Receipt'), ('in_receipt', 'In Receipt'), ('message', 'Message'), ('error', 'Error')]
  • name Char
    string='Message ID'
  • partner_id Many2one → res.partner
    check_company=True string='Partner' args: 'res.partner'
  • ref Char
    string='Reference'
  • request_id Char
    string='Request ID'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('downloaded', 'Downloaded'), ('invoice', 'Invoice'), ('error', 'Error'), ('done', 'Done')]
Public methods (15)
  • action_download_anaf_pdf(self)
  • action_download_attachment(self)
  • action_download_embedded_pdf(self)
  • action_download_xml(self)
  • check_anaf_error_xml(self, zip_content)
  • check_anaf_message_xml(self, zip_content)
  • create_invoice(self)
  • download_from_spv(self)
    Rutina de descarcare a fisierelor de la SPV
  • get_data_from_invoice(self)
  • get_invoice_from_move(self)
  • get_partner(self)
  • get_xml_fom_zip(self)
    Parse the invoice XML from the ZIP and update the message metadata. The XML is processed in memory — no attachment is created here.
  • process_xml(self, xml_tree)
  • refresh(self)
  • show_invoice(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • l10n_ro_download_einvoices_days Integer
    default=60 string='Maximum number of days to download e-invoices.'
Public methods (2)
  • l10n_ro_download_message_spv(self)
  • l10n_ro_download_zip_message_spv(self, limit=5)

New fields (1)
  • l10n_ro_download_einvoices_days Integer
    readonly=False related='company_id.l10n_ro_download_einvoices_days'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-romania
GIT
GIThttps://github.com/OCA/l10n-romania.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-romania/tree/17.0/l10n_ro_message_spv
VERSION
VERSION 1.41.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Terrabit
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Terrabit
COMMITTERS
COMMITTERSGitHub, Weblate, OCA-git-bot, Mihai Fekete, oca-ci, Dorin Hongu, Stana Natanaela, Sima Elisabeta, VoicuStefan2001, Adrian
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-romania
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-romania:
    - l10n_ro_config
odoo/odoo:
    - l10n_ro_edi
    - account_edi_ubl_cii
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_ro
    - base_vat
    - account_edi
    - l10n_ro_efactura
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Acest modul facilitează gestionarea mesajelor din Spațiul Privat Virtual (SPV) ANAF, asigurând descărcarea și procesarea automată a facturilor electronice (e-Factura):

  - Funcționalități:

    - Descărcare automată mesaje SPV: sincronizare periodică (via cron) a listei de mesaje din SPV pentru facturi primite, trimise sau erori.
    - Procesare fișiere ZIP: descărcarea automată a arhivelor ZIP de la ANAF și extragerea fișierelor XML semnate.
    - Creare automată facturi de furnizor: generează schițe de factură (draft) direct din fișierele XML descărcate, mapând automat furnizorul pe baza codului fiscal (CIF).
    - Gestionare PDF-uri e-Factura:
      - Generare PDF ANAF: posibilitatea de a genera și descărca vizualizarea PDF oficială a XML-ului folosind serviciile ANAF.
      - Extragere PDF încorporat: extrage PDF-urile atașate direct în fișierul XML (dacă există).
    - Monitorizare stări: urmărirea stării fiecărui mesaj (Draft, Downloaded, Invoice, Error, Done) și a încercărilor de descărcare.
    - Integrare cu fluxul de facturare: legarea automată a mesajelor de facturile existente în sistem pe baza ID-ului de tranzacție sau a referinței.
    - Sincronizarea datelor produselor: permite salvarea automată a codurilor de furnizor pentru produse la validarea facturilor primite.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
res_config_settings_form_inherit_l10n_ro_edi res.config.settings.form.inherit.l10n.ro.edi res.config.settings xpath Inherits l10n_ro_efactura.res_config_settings_form_inherit_l10n_ro_edi
view_l10n_ro_message_spv_form l10n.ro.message.spv.form l10n.ro.message.spv form New
view_l10n_ro_message_spv_search l10n.ro.message.spv.search l10n.ro.message.spv search New
view_l10n_ro_message_spv_tree l10n.ro.message.spv.tree l10n.ro.message.spv tree New
view_move_form account.move.form account.move xpath Inherits account.view_move_form
Models touched (7)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • l10n_ro_edi_download Char
    copy=False help='ID used to download the ZIP file from ANAF.' args: 'ID Download ANAF (RO)'
  • l10n_ro_edi_transaction Char
    copy=False help='Technical field used to track the status of a submission.' args: 'Transaction ID (RO)'
  • l10n_ro_message_spv_ids One2many → l10n.ro.message.spv
    help='E-invoice messages related to this invoice.' string='Romania - E-invoice messages' args: 'l10n.ro.message.spv', 'invoice_id'
Public methods (2)
  • action_post(self)
  • unlink(self)

New fields (1)
  • l10n_ro_vendor_code Char
    copy=False string='Vendor Code'
Public methods (0)

No public methods.

New fields (22)
  • amount Monetary
  • attachment_anaf_pdf_id Many2one → ir.attachment
    string='ANAF PDF' args: 'ir.attachment'
  • attachment_embedded_pdf_id Many2one → ir.attachment
    string='Embedded PDF' args: 'ir.attachment'
  • attachment_id Many2one → ir.attachment
    string='Attachment' args: 'ir.attachment'
  • attachment_xml_id Many2one → ir.attachment
    string='XML' args: 'ir.attachment'
  • cif Char
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    default=<expr> args: 'res.currency'
  • date Datetime
  • details Char
  • error Text
  • file_name Char
  • invoice_amount Monetary
  • invoice_date Date
  • invoice_id Many2one → account.move
    string='Invoice' args: 'account.move'
  • message Text
  • message_type Selection
    string='Type' args: [('in_invoice', 'In Invoice'), ('out_invoice', 'Out Invoice'), ('out_receipt', 'Out Receipt'), ('in_receipt', 'In Receipt'), ('message', 'Message'), ('error', 'Error')]
  • name Char
    string='Message ID'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • ref Char
    string='Reference'
  • request_id Char
    string='Request ID'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('downloaded', 'Downloaded'), ('invoice', 'Invoice'), ('error', 'Error'), ('done', 'Done')]
Public methods (18)
  • action_download_anaf_pdf(self)
  • action_download_attachment(self)
  • action_download_embedded_pdf(self)
  • action_download_xml(self)
  • check_anaf_error_xml(self, zip_content)
  • check_anaf_message_xml(self, zip_content)
  • create_invoice(self)
  • download_from_spv(self)
    Rutina de descarcare a fisierelor de la SPV
  • get_data_from_invoice(self)
  • get_embedded_pdf(self)
  • get_invoice_from_move(self)
  • get_partner(self)
  • get_xml_fom_zip(self)
  • process_xml(self, xml_tree, attachment_xml)
  • refresh(self)
  • render_anaf_pdf(self)
  • render_xml_anaf_pdf(self, no_validate=None)
  • show_invoice(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • l10n_ro_download_einvoices_days Integer
    default=60 string='Maximum number of days to download e-invoices.'
Public methods (2)
  • l10n_ro_download_message_spv(self)
  • l10n_ro_download_zip_message_spv(self, limit=5)

New fields (1)
  • l10n_ro_download_einvoices_days Integer
    readonly=False related='company_id.l10n_ro_download_einvoices_days'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-romania
GIT
GIThttps://github.com/OCA/l10n-romania.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-romania/tree/16.0/l10n_ro_message_spv
VERSION
VERSION 1.18.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Terrabit
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Terrabit
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, Mihai Fekete, oca-ci, Dorin Hongu, Stana Natanaela, Sima Elisabeta, Flavia0320
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-romania
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-romania:
    - l10n_ro_account_anaf_sync
    - l10n_ro_config
    - l10n_ro_account_edi_ubl
    - l10n_ro_partner_create_by_vat
odoo/odoo:
    - l10n_ro
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_vat
    - account_edi_ubl_cii
    - account_edi
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES PyJWT
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_ro_message_spv_form l10n.ro.message.spv.form l10n.ro.message.spv form New
view_l10n_ro_message_spv_search l10n.ro.message.spv.search l10n.ro.message.spv search New
view_l10n_ro_message_spv_tree l10n.ro.message.spv.tree l10n.ro.message.spv tree New
view_move_form account.move.form account.move xpath Inherits account.view_move_form
Models touched (3)

New fields (1)
  • l10n_ro_message_spv_ids One2many → l10n.ro.message.spv
    help='E-invoice messages related to this invoice.' string='Romania - E-invoice messages' args: 'l10n.ro.message.spv', 'invoice_id'
Public methods (1)
  • unlink(self)

New fields (22)
  • amount Monetary
  • attachment_anaf_pdf_id Many2one → ir.attachment
    string='ANAF PDF' args: 'ir.attachment'
  • attachment_embedded_pdf_id Many2one → ir.attachment
    string='Embedded PDF' args: 'ir.attachment'
  • attachment_id Many2one → ir.attachment
    string='Attachment' args: 'ir.attachment'
  • attachment_xml_id Many2one → ir.attachment
    string='XML' args: 'ir.attachment'
  • cif Char
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    default=<expr> args: 'res.currency'
  • date Datetime
  • details Char
  • error Text
  • file_name Char
  • invoice_amount Monetary
  • invoice_date Date
  • invoice_id Many2one → account.move
    string='Invoice' args: 'account.move'
  • message Text
  • message_type Selection
    string='Type' args: [('in_invoice', 'In Invoice'), ('out_invoice', 'Out Invoice'), ('out_receipt', 'Out Receipt'), ('in_receipt', 'In Receipt'), ('message', 'Message'), ('error', 'Error')]
  • name Char
    string='Message ID'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • ref Char
    string='Reference'
  • request_id Char
    string='Request ID'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('downloaded', 'Downloaded'), ('invoice', 'Invoice'), ('error', 'Error'), ('done', 'Done')]
Public methods (17)
  • action_download_anaf_pdf(self)
  • action_download_attachment(self)
  • action_download_embedded_pdf(self)
  • action_download_xml(self)
  • check_anaf_error_xml(self, zip_content)
  • check_anaf_message_xml(self, zip_content)
  • create_invoice(self)
  • download_from_spv(self)
    Rutina de descarcare a fisierelor de la SPV
  • get_data_from_invoice(self)
  • get_embedded_pdf(self)
  • get_invoice_from_move(self)
  • get_partner(self)
  • get_xml_fom_zip(self)
  • refresh(self)
  • render_anaf_pdf(self)
  • render_xml_anaf_pdf(self, no_validate=None)
  • show_invoice(self)

New fields (0)

No new fields.

Public methods (1)
  • l10n_ro_download_message_spv(self)
    @api.model
REPOSITORY
REPOSITORYOCA/l10n-romania
GIT
GIThttps://github.com/OCA/l10n-romania.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-romania/tree/15.0/l10n_ro_message_spv
VERSION
VERSION 1.12.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Terrabit
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Terrabit
COMMITTERS
COMMITTERSGitHub, Weblate, OCA-git-bot, oca-ci, Dorin Hongu, Stana Natanaela, danila12
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-romania
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:30
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-romania:
    - l10n_ro_account_anaf_sync
    - l10n_ro_config
    - l10n_ro_account_edi_ubl
    - l10n_ro_partner_create_by_vat
odoo/odoo:
    - l10n_ro
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_vat
    - account_edi_ubl_cii
    - account_edi
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES PyJWT
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_ro_message_spv_form l10n.ro.message.spv.form l10n.ro.message.spv form New
view_l10n_ro_message_spv_search l10n.ro.message.spv.search l10n.ro.message.spv search New
view_l10n_ro_message_spv_tree l10n.ro.message.spv.tree l10n.ro.message.spv tree New
view_move_form account.move.form account.move xpath Inherits account.view_move_form
Models touched (3)

New fields (1)
  • l10n_ro_message_spv_ids One2many → l10n.ro.message.spv
    help='E-invoice messages related to this invoice.' string='Romania - E-invoice messages' args: 'l10n.ro.message.spv', 'invoice_id'
Public methods (1)
  • unlink(self)

New fields (21)
  • amount Monetary
  • attachment_anaf_pdf_id Many2one → ir.attachment
    string='ANAF PDF' args: 'ir.attachment'
  • attachment_embedded_pdf_id Many2one → ir.attachment
    string='Embedded PDF' args: 'ir.attachment'
  • attachment_id Many2one → ir.attachment
    string='Attachment' args: 'ir.attachment'
  • attachment_xml_id Many2one → ir.attachment
    string='XML' args: 'ir.attachment'
  • cif Char
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    default=<expr> args: 'res.currency'
  • date Datetime
  • details Char
  • error Text
  • file_name Char
  • invoice_amount Monetary
  • invoice_id Many2one → account.move
    string='Invoice' args: 'account.move'
  • message Text
  • message_type Selection
    string='Type' args: [('in_invoice', 'In Invoice'), ('out_invoice', 'Out Invoice'), ('message', 'Message'), ('error', 'Error')]
  • name Char
    string='Message ID'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • ref Char
    string='Reference'
  • request_id Char
    string='Request ID'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('downloaded', 'Downloaded'), ('invoice', 'Invoice'), ('error', 'Error'), ('done', 'Done')]
Public methods (14)
  • action_download_anaf_pdf(self)
  • action_download_attachment(self)
  • action_download_embedded_pdf(self)
  • action_download_xml(self)
  • check_anaf_error_xml(self, zip_content)
  • check_anaf_message_xml(self, zip_content)
  • create_invoice(self)
  • download_from_spv(self)
    Rutina de descarcare a fisierelor de la SPV
  • get_data_from_invoice(self)
  • get_embedded_pdf(self)
  • get_invoice_from_move(self)
  • get_partner(self)
  • get_xml_fom_zip(self)
  • render_anaf_pdf(self)

New fields (0)

No new fields.

Public methods (1)
  • l10n_ro_download_message_spv(self)
    @api.model
REPOSITORY
REPOSITORYOCA/l10n-romania
GIT
GIThttps://github.com/OCA/l10n-romania.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-romania/tree/14.0/l10n_ro_message_spv
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Terrabit, NextERP Romania
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Terrabit, NextERP Romania
COMMITTERS
COMMITTERSGitHub, Weblate, OCA-git-bot, oca-ci, Dorin Hongu, Stana Natanaela
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-romania
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:51
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-romania:
    - l10n_ro_account_anaf_sync
    - l10n_ro_config
    - l10n_ro_account_edi_ubl
odoo/odoo:
    - l10n_ro
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_vat
    - account_edi_ubl_cii
    - account_edi
    - account_edi_extended
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES PyJWT
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
view_l10n_ro_message_spv_form l10n.ro.message.spv.form l10n.ro.message.spv form New
view_l10n_ro_message_spv_search l10n.ro.message.spv.search l10n.ro.message.spv search New
view_l10n_ro_message_spv_tree l10n.ro.message.spv.tree l10n.ro.message.spv tree New
Models touched (2)

New fields (20)
  • amount Monetary
  • attachment_anaf_pdf_id Many2one → ir.attachment
    string='ANAF PDF' args: 'ir.attachment'
  • attachment_embedded_pdf_id Many2one → ir.attachment
    string='Embedded PDF' args: 'ir.attachment'
  • attachment_id Many2one → ir.attachment
    string='Attachment' args: 'ir.attachment'
  • attachment_xml_id Many2one → ir.attachment
    string='XML' args: 'ir.attachment'
  • cif Char
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    default=<expr> args: 'res.currency'
  • date Datetime
  • details Char
  • error Text
  • file_name Char
  • invoice_id Many2one → account.move
    string='Invoice' args: 'account.move'
  • message Text
  • message_type Selection
    string='Type' args: [('in_invoice', 'In Invoice'), ('out_invoice', 'Out Invoice'), ('message', 'Message'), ('error', 'Error')]
  • name Char
    string='Message ID'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • ref Char
    string='Reference'
  • request_id Char
    string='Request ID'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('downloaded', 'Downloaded'), ('invoice', 'Invoice'), ('error', 'Error'), ('done', 'Done')]
Public methods (12)
  • action_download_anaf_pdf(self)
  • action_download_attachment(self)
  • action_download_embedded_pdf(self)
  • action_download_xml(self)
  • check_anaf_error_xml(self, zip_content)
  • check_anaf_message_xml(self, zip_content)
  • create_invoice(self)
  • download_from_spv(self)
    Rutina de descarcare a fisierelor de la SPV
  • get_embedded_pdf(self)
  • get_invoice_from_move(self)
  • get_xml_fom_zip(self)
  • render_anaf_pdf(self)

New fields (0)

No new fields.

Public methods (1)
  • l10n_ro_download_message_spv(self)
    @api.model