| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-romania |
| GIT | |
| GIT | https://github.com/OCA/l10n-romania.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-romania/tree/19.0/l10n_ro_dvi |
| VERSION | |
| VERSION | 0.2.0 |
| CATEGORY | |
| CATEGORY | Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| COMMITTERS | |
| COMMITTERS | GitHub, Weblate, OCA-git-bot, Mihai Fekete, oca-ci, Adrian Vacaru, stananatanaela, Flavia0320 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-romania |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:47 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-romania: - l10n_ro_stock_account_landed_cost - l10n_ro_stock_account_tracking - l10n_ro_stock_account - l10n_ro_stock - l10n_ro_config odoo/odoo: - stock_landed_costs - stock_account - stock - product - base - base_setup - web - bus - web_tour - html_editor - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - http_routing - auth_signup - resource - account - onboarding - analytic - purchase_stock - purchase - stock_dropshipping - sale_purchase_stock - sale_stock - sale - sales_team - account_payment - payment - utm - sale_purchase - l10n_ro - base_vat - account_edi_ubl_cii |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | DVI - declaraţie vamala de import Se face legatura dintre factura de achizitie si DVI (landed cost) Se genereaza automat un DVI cu doua linii si cu TVA. Contul 447 trebuie sa fie un cont de reconciliere pentru a se putea inchide prin banca |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_dvi_form |
DVI | l10n.ro.account.dvi | form | New |
view_account_dvi_tree |
l10n.ro.account.dvi.tree | l10n.ro.account.dvi | list | New |
view_move_form |
account.move.form | account.move | div | Inherits account.view_move_form |
view_stock_landed_cost_form |
stock.landed.cost.form | stock.landed.cost | group | Inherits l10n_ro_stock_account_landed_cost.view_stock_landed_cost_form |
l10n_ro_dvi_ids
Many2many → stock.landed.cost
compute='_compute_l10n_ro_dvi_ids'
help="DVI's linked to this invoice"
string="Romania - DVI's"
args: 'stock.landed.cost'
action_view_dvis(self)
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
customs_commission_product_id
Many2one → product.product
help='Product type service with l10n_ro_custom_commission checed (in purchase tab). Journal entry for commission will be with this product'
required=True
args: 'product.product'
customs_commission_value
Monetary
help='taken from dvi if exists'
customs_duty_product_id
Many2one → product.product
help='A product type service with l10n_ro_custom_duty checked (purchase tab). Journal entry for duty will be with this product & default vat for custom duty and invoice - to find it in declaration based on tags'
required=True
args: 'product.product'
customs_duty_tax_value
Monetary
compute='_compute_total_tax_value'
help='readonly computed tax from custom_duty_value'
readonly=True
customs_duty_value
Monetary
help='This is a value from received dvi'
date
Date
required=True
invoice_base_value
Monetary
compute='_compute_amount'
help='Invoices value without taxes'
invoice_ids
Many2many → account.move
domain=[('move_type', 'in', ['in_invoice', 'in_refund'])]
required=True
string='Invoices'
args: 'account.move'
invoice_tax_value
Monetary
compute='_compute_amount'
help='default is computed as tax_id from product; is not recomputed based on selected vat'
journal_id
Many2one → account.journal
domain="[('type', '=', 'general'), ('company_id', '=', company_id)]"
required=True
string='Journal'
args: 'account.journal'
landed_cost_ids
One2many → stock.landed.cost
readonly=True
args: 'stock.landed.cost', 'l10n_ro_account_dvi_id'
line_ids
One2many → l10n.ro.account.dvi.line
copy=False
string='DVI Lines'
args: 'l10n.ro.account.dvi.line', 'dvi_id'
name
Char
required=True
state
Selection
copy=False
default='draft'
index=True
readonly=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('reversed', 'Reversed')]
string='Status'
tracking=True
tax_id
Many2one → account.tax
domain="[('type_tax_use', '=', 'purchase'), ('company_id', '=', company_id)]"
help='Is the vat that is paid in custom for products. default is taken from custom duty tax. will put this vat tag in journal entry to find it in reports'
required=True
args: 'account.tax'
total_base_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
readonly=True
total_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
readonly=True
vat_price_difference
Monetary
help='VAT price difference'
vat_price_difference_move_id
Many2one → account.move
help='Move for vat price difference'
readonly=True
args: 'account.move'
vat_price_difference_product_id
Many2one → product.product
help='Product for vat price difference'
args: 'product.product'
action_view_landed_costs(self)
button_post(self)
button_reverse(self)
create(self, vals_list)
create_account_move_dvi(self)
default_get(self, fields_list)
prepare_dvi_landed_cost_lines(self, product, value, accounts_data)
prepare_dvi_landed_cost_vals(self)
prepare_dvi_landed_cost_values(self)
write(self, vals)
base_amount
Float
compute='_compute_base_vat_amount'
company_id
Many2one → res.company
related='dvi_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
related='dvi_id.currency_id'
args: 'res.currency'
dvi_id
Many2one → l10n.ro.account.dvi
index=True
ondelete='cascade'
required=True
string='DVI Ref'
args: 'l10n.ro.account.dvi'
invoice_id
Many2one → account.move
check_company=True
copy=False
index=True
readonly=True
string='DVI Invoice'
args: 'account.move'
invoice_line_id
Many2one → account.move.line
check_company=True
copy=False
readonly=True
args: 'account.move.line', 'Invoice Line'
line_qty
Float
default=1.0
digits='Product Unit of Measure'
help='The quantity declared in the DVI.'
string='DVI Quantity'
name
Char
readonly=True
related='invoice_line_id.name'
price_subtotal
Monetary
readonly=True
related='invoice_line_id.balance'
price_unit
Float
readonly=True
related='invoice_line_id.price_unit'
product_id
Many2one
readonly=True
related='invoice_line_id.product_id'
product_uom_id
Many2one
readonly=True
related='invoice_line_id.product_uom_id'
qty
Float
readonly=True
related='invoice_line_id.quantity'
tax_id
Many2one → account.tax
related='dvi_id.tax_id'
args: 'account.tax'
vat_amount
Float
compute='_compute_base_vat_amount'
string='VAT Amount'
No public methods.
l10n_ro_property_vat_price_difference_product_id
Many2one → product.product
domain="[('type', '=', 'service')]"
help='This product will be used in create an accounting note for the difference between customs duty and bill'
string='Romania - Vat Price Difference Product'
args: 'product.product'
No public methods.
l10n_ro_account_dvi_id
Many2one → l10n.ro.account.dvi
string='Romania - DVI'
args: 'l10n.ro.account.dvi'
l10n_ro_base_tax_value
Float
copy=False
help='Base VAT amount, calculated from invoice base amount, customs and commission.'
args: 'Romania - Base VAT amount'
l10n_ro_cost_type
Selection
ondelete={'dvi': 'set default'}
selection_add=[('dvi', 'DVI')]
l10n_ro_dvi_bill_ids
Many2many → account.move
readonly=True
relation='account_move_stock_landed_cost_rel'
string='Romania - DVI Invoices'
args: 'account.move'
l10n_ro_tax_id
Many2one → account.tax
copy=False
help='VAT tax for products and customs cost'
string='Romania - DVI Tax'
args: 'account.tax'
l10n_ro_tax_value
Float
copy=False
help='VAT amount, calculated from invoice base amount and customs.'
args: 'Romania - VAT amount paid at customs'
button_validate(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-romania |
| GIT | |
| GIT | https://github.com/OCA/l10n-romania.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-romania/tree/18.0/l10n_ro_dvi |
| VERSION | |
| VERSION | 1.3.0 |
| CATEGORY | |
| CATEGORY | Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Dorin Hongu, stananatanaela, Marius |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-romania |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:08 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-romania: - l10n_ro_stock_account_landed_cost - l10n_ro_stock_account_tracking - l10n_ro_stock_account - l10n_ro_config - l10n_ro_stock odoo/odoo: - stock_landed_costs - stock_account - stock - product - base - base_setup - web - bus - web_tour - html_editor - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - onboarding - analytic - purchase_stock - purchase - sale_stock - sale - sales_team - account_payment - payment - utm - stock_dropshipping - sale_purchase_stock - sale_purchase - l10n_ro - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | DVI - Declarația Vamală de Import ---------------------------------- Acest modul permite gestionarea detaliată a Declarațiilor Vamale de Import (DVI) în Odoo, asigurând conformitatea cu legislația din România (OMFP 1802/2014 și Codul Fiscal). Caracteristici principale: ------------------------- * **Model de date dedicat**: Introduce entitatea `l10n.ro.account.dvi` pentru evidența separată a documentelor vamale. * **Grupare facturi**: Permite asocierea mai multor facturi de furnizor (Vendor Bills) într-o singură declarație vamală. * **Calcul analitic**: Calculează automat taxele vamale, comisionul vamal și TVA-ul la nivel de linie de produs, bazat pe cantitățile declarate. * **Integrare cu Landed Costs**: Generează automat documente de tip `stock.landed.cost` pentru repartizarea taxelor în costul stocului. * **Trasabilitate fiscală**: Asigură popularea corectă a etichetelor fiscale (`tax_tag_ids`) pentru jurnalele de cumpărări și Declarația 300. * **Ajustări de curs**: Include posibilitatea de a gestiona diferențele de calcul pentru TVA (`vat_price_difference`) rezultate din discrepanța dintre cursul BNR al facturii și cursul vamal lunar. Baza legală: ------------ Prezentul capitol sintetizează cadrul legal aplicabil operațiunilor de import (achiziție marfă externă + Declarație Vamală de Import – DVI), cu accent pe următoarele aspecte: * Factura comercială externă se înregistrează în contabilitate la cursul BNR din data emiterii facturii; * Cursul valutar din vamă (cursul vamal lunar) se utilizează exclusiv pentru calculul valorii în vamă, al taxelor vamale (A00) și al TVA-ului la import (B00) din DVI; * Toate înregistrările contabile (factură, taxe vamale, stocuri) se efectuează și se prezintă doar în moneda națională (RON). 1. Legea contabilității nr. 82/1991 (republicată) ------------------------------------------------------ * **Art. 3 alin. (1):** „Contabilitatea se ține în limba română și în moneda națională.” * **Art. 3 alin. (2):** „Contabilitatea operațiunilor efectuate în valută se ține atât în moneda națională, cât și în valută, potrivit reglementărilor elaborate în acest sens.” Toate operațiunile de import (inclusiv factura furnizor și DVI) se înregistrează și se prezintă în situațiile financiare exclusiv în RON. 2. OMFP nr. 1802/2014 ----------------------- * **Pct. 319:** „O tranzacție în valută trebuie înregistrată inițial la cursul de schimb valutar, comunicat de Banca Națională a României, de la data efectuării operațiunii.” -> Factura comercială externă (Vendor Bill) se înregistrează la cursul BNR din data emiterii facturii. * **Pct. 6 (definiția costului de achiziție):** „Costul de achiziție al bunurilor cuprinde prețul de cumpărare, taxele de import și alte taxe (cu excepția acelora pe care persoana juridică le poate recupera de la autoritățile fiscale)…” * **Pct. 75 alin. (1) lit. a):** Bunurile se evaluează și se înregistrează la data intrării în entitate la cost de achiziție (care include taxele vamale plătite conform DVI). * **Pct. 94 lit. a):** Elementele monetare exprimate în valută se evaluează la cursul BNR la data bilanțului; diferențele de curs se înregistrează pe conturile 665 sau 765. Taxele vamale (A00) se capitalizează în costul stocurilor, iar toate valorile finale rămân exclusiv în RON. 3. Legea nr. 227/2015 – Codul Fiscal ------------------------------------------ * **Art. 289 (Baza de impozitare a importului de bunuri):** „Dacă elementele folosite la stabilirea bazei de impozitare a unui import de bunuri se exprimă în valută, cursul de schimb valutar se stabilește conform prevederilor europene care reglementează calculul valorii în vamă.” * **Art. 299 alin. (1) lit. c):** Dreptul de deducere a TVA aferente importului de bunuri se exercită pe baza Declarației vamale de import (DVI) sau a actului constatator emis de organele vamale (TVA B00 calculat la cursul vamal). Cursul din DVI se folosește doar pentru determinarea valorii în vamă, calculul taxei vamale (A00) și al TVA-ului la import (B00). Nu afectează înregistrarea facturii comerciale în contabilitate. 4. Regulamentul de punere în aplicare (UE) 2015/2447 al Comisiei ---------------------------------------------------------------------- * **Art. 146 (Conversia monetară în scopul determinării valorii în vamă):** „În situația în care valoarea în vamă a mărfurilor este exprimată într-o altă monedă decât cea națională, cursul de schimb folosit la determinarea acestei valori este cursul de schimb stabilit și comunicat de Banca Națională a României în penultima zi de miercuri a lunii anterioare lunii în care se utilizează.” Cursul vamal este un curs lunar fix, aplicabil exclusiv în cadrul procedurii vamale pentru calculul valorii statistice, taxelor vamale și TVA la import. Nu se utilizează pentru înregistrarea facturii furnizor în contabilitate. Concluzie --------- Cadrul legal este clar și unitar: * **Factura furnizor** -> curs BNR (data facturii) + înregistrare în RON. * **DVI** -> curs vamal lunar (Reg. UE 2015/2447 art. 146 + Cod Fiscal art. 289) doar pentru taxe vamale și TVA la import. * **Toate înregistrările contabile** (inclusiv costul stocurilor) -> exclusiv în RON. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_dvi_form |
DVI | l10n.ro.account.dvi | form | New |
view_account_dvi_tree |
l10n.ro.account.dvi.tree | l10n.ro.account.dvi | list | New |
view_move_form |
account.move.form | account.move | div | Inherits account.view_move_form |
view_stock_landed_cost_form |
stock.landed.cost.form | stock.landed.cost | group | Inherits l10n_ro_stock_account_landed_cost.view_stock_landed_cost_form |
l10n_ro_dvi_ids
Many2many → stock.landed.cost
compute='_compute_l10n_ro_dvi_ids'
help="DVI's linked to this invoice"
string="Romania - DVI's"
args: 'stock.landed.cost'
action_view_dvis(self)
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
customs_commission_product_id
Many2one → product.product
help='Product type service with l10n_ro_custom_commission checed (in purchase tab). Journal entry for commission will be with this product'
required=True
args: 'product.product'
customs_commission_value
Monetary
help='taken from dvi if exists'
customs_duty_product_id
Many2one → product.product
help='A product type service with l10n_ro_custom_duty checked (purchase tab). Journal entry for duty will be with this product & default vat for custom duty and invoice - to find it in declaration based on tags'
required=True
args: 'product.product'
customs_duty_tax_value
Monetary
compute='_compute_total_tax_value'
help='readonly computed tax from custom_duty_value'
readonly=True
customs_duty_value
Monetary
help='This is a value from received dvi'
date
Date
required=True
invoice_base_value
Monetary
compute='_compute_amount'
help='Invoices value without taxes'
invoice_ids
Many2many → account.move
domain=[('move_type', 'in', ['in_invoice', 'in_refund'])]
required=True
string='Invoices'
args: 'account.move'
invoice_tax_value
Monetary
compute='_compute_amount'
help='default is computed as tax_id from product; is not recomputed based on selected vat'
journal_id
Many2one → account.journal
domain="[('type', '=', 'general')]"
required=True
string='Journal'
args: 'account.journal'
landed_cost_ids
One2many → stock.landed.cost
readonly=True
args: 'stock.landed.cost', 'l10n_ro_account_dvi_id'
line_ids
One2many → l10n.ro.account.dvi.line
copy=False
string='DVI Lines'
args: 'l10n.ro.account.dvi.line', 'dvi_id'
name
Char
required=True
state
Selection
copy=False
default='draft'
index=True
readonly=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('reversed', 'Reversed')]
string='Status'
tracking=True
tax_id
Many2one → account.tax
domain="[('type_tax_use', '=', 'purchase')]"
help='Is the vat that is paid in custom for products. default is taken from custom duty tax. will put this vat tag in journal entry to find it in reports'
required=True
args: 'account.tax'
total_base_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
readonly=True
total_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
readonly=True
vat_price_difference
Monetary
help='VAT price difference'
vat_price_difference_move_id
Many2one → account.move
help='Move for vat price difference'
readonly=True
args: 'account.move'
vat_price_difference_product_id
Many2one → product.product
help='Product for vat price difference'
args: 'product.product'
action_view_landed_costs(self)
button_post(self)
button_reverse(self)
create(self, vals_list)
create_account_move_dvi(self)
default_get(self, fields_list)
prepare_dvi_landed_cost_lines(self, product, value, accounts_data)
prepare_dvi_landed_cost_vals(self)
prepare_dvi_landed_cost_values(self)
write(self, vals)
base_amount
Float
compute='_compute_base_vat_amount'
company_id
Many2one → res.company
related='dvi_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
related='dvi_id.currency_id'
args: 'res.currency'
dvi_id
Many2one → l10n.ro.account.dvi
index=True
ondelete='cascade'
required=True
string='DVI Ref'
args: 'l10n.ro.account.dvi'
invoice_id
Many2one → account.move
check_company=True
copy=False
index=True
readonly=True
string='DVI Invoice'
args: 'account.move'
invoice_line_id
Many2one → account.move.line
check_company=True
copy=False
readonly=True
args: 'account.move.line', 'Invoice Line'
line_qty
Float
default=1.0
digits='Product Unit of Measure'
help='The quantity declared in the DVI.'
string='DVI Quantity'
name
Char
readonly=True
related='invoice_line_id.name'
price_subtotal
Monetary
readonly=True
related='invoice_line_id.balance'
price_unit
Float
readonly=True
related='invoice_line_id.price_unit'
product_id
Many2one
readonly=True
related='invoice_line_id.product_id'
product_uom_id
Many2one
readonly=True
related='invoice_line_id.product_uom_id'
qty
Float
readonly=True
related='invoice_line_id.quantity'
tax_id
Many2one → account.tax
related='dvi_id.tax_id'
args: 'account.tax'
vat_amount
Float
compute='_compute_base_vat_amount'
string='VAT Amount'
No public methods.
l10n_ro_property_vat_price_difference_product_id
Many2one → product.product
domain="[('type', '=', 'service')]"
help='This product will be used in create an accounting note for the difference between customs duty and bill'
string='Romania - Vat Price Difference Product'
args: 'product.product'
No public methods.
l10n_ro_account_dvi_id
Many2one → l10n.ro.account.dvi
string='Romania - DVI'
args: 'l10n.ro.account.dvi'
l10n_ro_base_tax_value
Float
copy=False
help='Base VAT amount, calculated from invoice base amount, customs and commission.'
args: 'Romania - Base VAT amount'
l10n_ro_cost_type
Selection
ondelete={'dvi': 'set default'}
selection_add=[('dvi', 'DVI')]
l10n_ro_dvi_bill_ids
Many2many → account.move
readonly=True
relation='account_move_stock_landed_cost_rel'
string='Romania - DVI Invoices'
args: 'account.move'
l10n_ro_tax_id
Many2one → account.tax
copy=False
help='VAT tax for products and customs cost'
string='Romania - DVI Tax'
args: 'account.tax'
l10n_ro_tax_value
Float
copy=False
help='VAT amount, calculated from invoice base amount and customs.'
args: 'Romania - VAT amount paid at customs'
button_validate(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-romania |
| GIT | |
| GIT | https://github.com/OCA/l10n-romania.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-romania/tree/17.0/l10n_ro_dvi |
| VERSION | |
| VERSION | 1.9.0 |
| CATEGORY | |
| CATEGORY | Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, Mihai Fekete, oca-ci, Dorin Hongu, Stana Natanaela |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-romania |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:02 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-romania: - l10n_ro_stock_account_landed_cost - l10n_ro_stock_account_tracking - l10n_ro_stock_account - l10n_ro_config - l10n_ro_stock odoo/odoo: - stock_landed_costs - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - onboarding - analytic - purchase_stock - purchase - sale_stock - sale - sales_team - account_payment - payment - utm - stock_dropshipping - sale_purchase_stock - sale_purchase - l10n_ro - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | DVI - declaraţie vamala de import Se face legatura dintre factura de achizitie si DVI (landed cost) Se genereaza automat un DVI cu doua linii si cu TVA. Contul 447 trebuie sa fie un cont de reconciliere pentru a se putea inchide prin banca |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_dvi_form |
DVI | l10n.ro.account.dvi | form | New |
view_account_dvi_tree |
l10n.ro.account.dvi.tree | l10n.ro.account.dvi | tree | New |
view_move_form |
account.move.form | account.move | div | Inherits account.view_move_form |
view_stock_landed_cost_form |
stock.landed.cost.form | stock.landed.cost | group | Inherits l10n_ro_stock_account_landed_cost.view_stock_landed_cost_form |
l10n_ro_dvi_ids
Many2many → stock.landed.cost
compute='_compute_l10n_ro_dvi_ids'
help="DVI's linked to this invoice"
string="Romania - DVI's"
args: 'stock.landed.cost'
action_view_dvis(self)
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
customs_commission_product_id
Many2one → product.product
help='Product type service with l10n_ro_custom_commission checed (in purchase tab). Journal entry for commission will be with this product'
required=True
args: 'product.product'
customs_commission_value
Monetary
help='taken from dvi if exists'
customs_duty_product_id
Many2one → product.product
help='A product type service with l10n_ro_custom_duty checked (purchase tab). Journal entry for duty will be with this product & default vat for custom duty and invoice - to find it in declaration based on tags'
required=True
args: 'product.product'
customs_duty_tax_value
Monetary
compute='_compute_total_tax_value'
help='readonly computed tax from custom_duty_value'
readonly=True
customs_duty_value
Monetary
help='This is a value from received dvi'
date
Date
required=True
invoice_base_value
Monetary
compute='_compute_amount'
help='Invoices value without taxes'
invoice_ids
Many2many → account.move
domain=[('move_type', 'in', ['in_invoice', 'in_refund'])]
required=True
string='Invoices'
args: 'account.move'
invoice_tax_value
Monetary
compute='_compute_amount'
help='default is computed as tax_id from product; is not recomputed based on selected vat'
journal_id
Many2one → account.journal
domain="[('type', '=', 'general')]"
required=True
string='Journal'
args: 'account.journal'
landed_cost_ids
One2many → stock.landed.cost
readonly=True
args: 'stock.landed.cost', 'l10n_ro_account_dvi_id'
line_ids
One2many → l10n.ro.account.dvi.line
copy=False
string='DVI Lines'
args: 'l10n.ro.account.dvi.line', 'dvi_id'
name
Char
required=True
state
Selection
copy=False
default='draft'
index=True
readonly=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('reversed', 'Reversed')]
string='Status'
tracking=True
tax_id
Many2one → account.tax
domain="[('type_tax_use', '=', 'purchase')]"
help='Is the vat that is paid in custom for products. default is taken from custom duty tax. will put this vat tag in journal entry to find it in reports'
required=True
args: 'account.tax'
total_base_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
readonly=True
total_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
readonly=True
vat_price_difference
Monetary
help='VAT price difference'
vat_price_difference_move_id
Many2one → account.move
help='Move for vat price difference'
readonly=True
args: 'account.move'
vat_price_difference_product_id
Many2one → product.product
help='Product for vat price difference'
args: 'product.product'
action_view_landed_costs(self)
button_post(self)
button_reverse(self)
create(self, vals_list)
create_account_move_dvi(self)
default_get(self, fields_list)
prepare_dvi_landed_cost_lines(self, product, value, accounts_data)
prepare_dvi_landed_cost_vals(self)
prepare_dvi_landed_cost_values(self)
write(self, vals)
base_amount
Float
compute='_compute_base_vat_amount'
company_id
Many2one → res.company
related='dvi_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
related='dvi_id.currency_id'
args: 'res.currency'
dvi_id
Many2one → l10n.ro.account.dvi
index=True
ondelete='cascade'
required=True
string='DVI Ref'
args: 'l10n.ro.account.dvi'
invoice_id
Many2one → account.move
check_company=True
copy=False
index=True
readonly=True
string='DVI Invoice'
args: 'account.move'
invoice_line_id
Many2one → account.move.line
check_company=True
copy=False
readonly=True
args: 'account.move.line', 'Invoice Line'
line_qty
Float
default=1.0
digits='Product Unit of Measure'
help='The quantity declared in the DVI.'
string='DVI Quantity'
name
Char
readonly=True
related='invoice_line_id.name'
price_subtotal
Monetary
readonly=True
related='invoice_line_id.balance'
price_unit
Float
readonly=True
related='invoice_line_id.price_unit'
product_id
Many2one
readonly=True
related='invoice_line_id.product_id'
product_uom_id
Many2one
readonly=True
related='invoice_line_id.product_uom_id'
qty
Float
readonly=True
related='invoice_line_id.quantity'
tax_id
Many2one → account.tax
related='dvi_id.tax_id'
args: 'account.tax'
vat_amount
Float
compute='_compute_base_vat_amount'
string='VAT Amount'
No public methods.
l10n_ro_property_vat_price_difference_product_id
Many2one → product.product
domain="[('type', '=', 'service')]"
help='This product will be used in create an accounting note for the difference between customs duty and bill'
string='Romania - Vat Price Difference Product'
args: 'product.product'
No public methods.
l10n_ro_account_dvi_id
Many2one → l10n.ro.account.dvi
string='Romania - DVI'
args: 'l10n.ro.account.dvi'
l10n_ro_base_tax_value
Float
copy=False
help='Base VAT amount, calculated from invoice base amount, customs and commission.'
args: 'Romania - Base VAT amount'
l10n_ro_cost_type
Selection
ondelete={'dvi': 'set default'}
selection_add=[('dvi', 'DVI')]
l10n_ro_dvi_bill_ids
Many2many → account.move
readonly=True
relation='account_move_stock_landed_cost_rel'
string='Romania - DVI Invoices'
args: 'account.move'
l10n_ro_tax_id
Many2one → account.tax
copy=False
help='VAT tax for products and customs cost'
string='Romania - DVI Tax'
args: 'account.tax'
l10n_ro_tax_value
Float
copy=False
help='VAT amount, calculated from invoice base amount and customs.'
args: 'Romania - VAT amount paid at customs'
button_validate(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-romania |
| GIT | |
| GIT | https://github.com/OCA/l10n-romania.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-romania/tree/16.0/l10n_ro_dvi |
| VERSION | |
| VERSION | 1.9.0 |
| CATEGORY | |
| CATEGORY | Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, Mihai Fekete, oca-ci, Dorin Hongu, Stana Natanaela, Larisa-nexterp |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-romania |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:41 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-romania: - l10n_ro_stock_account_landed_cost - l10n_ro_stock_account_tracking - l10n_ro_stock_account - l10n_ro_config - l10n_ro_stock odoo/odoo: - stock_landed_costs - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic - purchase_stock - purchase - sale_stock - sale - sales_team - account_payment - payment - utm - stock_dropshipping - sale_purchase_stock - sale_purchase - l10n_ro - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_dvi_form |
DVI | l10n.ro.account.dvi | form | New |
view_account_dvi_tree |
l10n.ro.account.dvi.tree | l10n.ro.account.dvi | tree | New |
view_move_form |
account.move.form | account.move | div | Inherits account.view_move_form |
view_stock_landed_cost_form |
stock.landed.cost.form | stock.landed.cost | group | Inherits l10n_ro_stock_account_landed_cost.view_stock_landed_cost_form |
l10n_ro_dvi_ids
Many2many → stock.landed.cost
compute='_compute_l10n_ro_dvi_ids'
help="DVI's linked to this invoice"
string="Romania - DVI's"
args: 'stock.landed.cost'
action_view_dvis(self)
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
customs_commission_product_id
Many2one → product.product
help='Product type service with l10n_ro_custom_commission checed (in purchase tab). Journal entry for commission will be with this product'
required=True
args: 'product.product'
customs_commission_value
Monetary
help='taken from dvi if exists'
customs_duty_product_id
Many2one → product.product
help='A product type service with l10n_ro_custom_duty checked (purchase tab). Journal entry for duty will be with this product & default vat for custom duty and invoice - to find it in declaration based on tags'
required=True
args: 'product.product'
customs_duty_tax_value
Monetary
compute='_compute_total_tax_value'
help='readonly computed tax from custom_duty_value'
readonly=1
customs_duty_value
Monetary
help='This is a value from received dvi'
date
Date
required=True
invoice_base_value
Monetary
compute='_compute_amount'
help='Invoices value without taxes'
invoice_ids
Many2many → account.move
domain=[('move_type', 'in', ['in_invoice', 'in_refund'])]
required=True
string='Invoices'
args: 'account.move'
invoice_tax_value
Monetary
compute='_compute_amount'
help='default is computed as tax_id from product; is not recomputed based on selected vat'
journal_id
Many2one → account.journal
domain="[('type', '=', 'general')]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
args: 'account.journal'
landed_cost_ids
One2many → stock.landed.cost
readonly=True
args: 'stock.landed.cost', 'l10n_ro_account_dvi_id'
line_ids
One2many → l10n.ro.account.dvi.line
copy=False
readonly=False
states={'done': [('readonly', True)]}
string='DVI Lines'
args: 'l10n.ro.account.dvi.line', 'dvi_id'
name
Char
required=True
state
Selection
copy=False
default='draft'
index=True
readonly=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('reversed', 'Reversed')]
string='Status'
tracking=True
tax_id
Many2one → account.tax
domain="[('type_tax_use', '=', 'purchase')]"
help='Is the vat that is paid in custom for products. default is taken from custom duty tax. will put this vat tag in journal entry to find it in reports'
required=True
args: 'account.tax'
total_base_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
readonly=1
total_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
readonly=1
vat_price_difference
Monetary
help='VAT price difference'
vat_price_difference_move_id
Many2one → account.move
help='Move for vat price difference'
readonly=1
args: 'account.move'
vat_price_difference_product_id
Many2one → product.product
help='Product for vat price difference'
args: 'product.product'
action_view_landed_costs(self)
button_post(self)
button_reverse(self)
create(self, vals_list)
create_account_move_dvi(self)
default_get(self, fields_list)
prepare_dvi_landed_cost_lines(self, product, value, accounts_data)
prepare_dvi_landed_cost_vals(self)
prepare_dvi_landed_cost_values(self)
write(self, vals)
base_amount
Float
compute='_compute_base_vat_amount'
company_id
Many2one → res.company
related='dvi_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
related='dvi_id.currency_id'
args: 'res.currency'
dvi_id
Many2one → l10n.ro.account.dvi
index=True
ondelete='cascade'
required=True
string='DVI Ref'
args: 'l10n.ro.account.dvi'
invoice_id
Many2one → account.move
check_company=True
copy=False
index=True
readonly=True
string='DVI Invoice'
args: 'account.move'
invoice_line_id
Many2one → account.move.line
check_company=True
copy=False
readonly=True
args: 'account.move.line', 'Invoice Line'
line_qty
Float
default=1.0
digits='Product Unit of Measure'
help='The quantity declared in the DVI.'
string='DVI Quantity'
name
Char
readonly=True
related='invoice_line_id.name'
price_subtotal
Monetary
readonly=True
related='invoice_line_id.balance'
price_unit
Float
readonly=True
related='invoice_line_id.price_unit'
product_id
Many2one
readonly=True
related='invoice_line_id.product_id'
product_uom_id
Many2one
readonly=True
related='invoice_line_id.product_uom_id'
qty
Float
readonly=True
related='invoice_line_id.quantity'
tax_id
Many2one → account.tax
related='dvi_id.tax_id'
args: 'account.tax'
vat_amount
Float
compute='_compute_base_vat_amount'
string='VAT Amount'
No public methods.
l10n_ro_property_vat_price_difference_product_id
Many2one → product.product
domain="[('type', '=', 'service')]"
help='This product will be used in create an accounting note for the difference between customs duty and bill'
string='Romania - Vat Price Difference Product'
args: 'product.product'
No public methods.
l10n_ro_account_dvi_id
Many2one → l10n.ro.account.dvi
string='Romania - DVI'
args: 'l10n.ro.account.dvi'
l10n_ro_base_tax_value
Float
copy=False
help='Base VAT amount, calculated from invoice base amount, customs and commission.'
states={'done': [('readonly', True)]}
args: 'Romania - Base VAT amount'
l10n_ro_cost_type
Selection
ondelete={'dvi': 'set default'}
selection_add=[('dvi', 'DVI')]
l10n_ro_dvi_bill_ids
Many2many → account.move
readonly=True
relation='account_move_stock_landed_cost_rel'
string='Romania - DVI Invoices'
args: 'account.move'
l10n_ro_tax_id
Many2one → account.tax
copy=False
help='VAT tax for products and customs cost'
states={'done': [('readonly', True)]}
string='Romania - DVI Tax'
args: 'account.tax'
l10n_ro_tax_value
Float
copy=False
help='VAT amount, calculated from invoice base amount and customs.'
states={'done': [('readonly', True)]}
args: 'Romania - VAT amount paid at customs'
button_validate(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-romania |
| GIT | |
| GIT | https://github.com/OCA/l10n-romania.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-romania/tree/15.0/l10n_ro_dvi |
| VERSION | |
| VERSION | 1.9.0 |
| CATEGORY | |
| CATEGORY | Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, Mihai Fekete, oca-ci, Dorin Hongu, Stana Natanaela |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-romania |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:30 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-romania: - l10n_ro_stock_account - l10n_ro_config - l10n_ro_stock odoo/odoo: - stock_landed_costs - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic - purchase_stock - purchase - sale_stock - sale - sales_team - payment - utm - l10n_ro - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_dvi_form |
DVI | l10n.ro.account.dvi | form | New |
view_account_dvi_tree |
l10n.ro.account.dvi.tree | l10n.ro.account.dvi | tree | New |
view_move_form |
account.move.form | account.move | div | Inherits account.view_move_form |
view_stock_landed_cost_form |
stock.landed.cost.form | stock.landed.cost | group | Inherits l10n_ro_stock_account.view_stock_landed_cost_form |
l10n_ro_dvi_ids
Many2many → stock.landed.cost
compute='_compute_l10n_ro_dvi_ids'
help="DVI's linked to this invoice"
string="Romania - DVI's"
args: 'stock.landed.cost'
action_view_dvis(self)
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
customs_commission_product_id
Many2one → product.product
help='Product type service with l10n_ro_custom_commission checed (in purchase tab). Journal entry for commission will be with this product'
required=True
args: 'product.product'
customs_commission_value
Monetary
help='taken from dvi if exists'
customs_duty_product_id
Many2one → product.product
help='A product type service with l10n_ro_custom_duty checked (purchase tab). Journal entry for duty will be with this product & default vat for custom duty and invoice - to find it in declaration based on tags'
required=True
args: 'product.product'
customs_duty_tax_value
Monetary
compute='_compute_total_tax_value'
help='readonly computed tax from custom_duty_value'
readonly=1
customs_duty_value
Monetary
help='This is a value from received dvi'
date
Date
required=True
invoice_base_value
Monetary
compute='_compute_amount'
help='Invoices value without taxes'
invoice_ids
Many2many → account.move
domain=[('move_type', 'in', ['in_invoice', 'in_refund'])]
required=True
string='Invoices'
args: 'account.move'
invoice_tax_value
Monetary
compute='_compute_amount'
help='default is computed as tax_id from product; is not recomputed based on selected vat'
journal_id
Many2one → account.journal
domain="[('type', '=', 'general')]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
args: 'account.journal'
landed_cost_ids
One2many → stock.landed.cost
readonly=True
args: 'stock.landed.cost', 'l10n_ro_account_dvi_id'
line_ids
One2many → l10n.ro.account.dvi.line
copy=False
readonly=False
states={'done': [('readonly', True)]}
string='DVI Lines'
args: 'l10n.ro.account.dvi.line', 'dvi_id'
name
Char
required=True
state
Selection
copy=False
default='draft'
index=True
readonly=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('reversed', 'Reversed')]
string='Status'
tracking=True
tax_id
Many2one → account.tax
domain="[('type_tax_use', '=', 'purchase')]"
help='Is the vat that is paid in custom for products. default is taken from custom duty tax. will put this vat tag in journal entry to find it in reports'
required=True
args: 'account.tax'
total_base_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
total_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
vat_price_difference
Monetary
help='VAT price difference'
vat_price_difference_move_id
Many2one → account.move
help='Move for vat price difference'
readonly=1
args: 'account.move'
vat_price_difference_product_id
Many2one → product.product
help='Product for vat price difference'
args: 'product.product'
action_view_landed_costs(self)
button_post(self)
button_reverse(self)
create(self, vals)
create_account_move_dvi(self)
default_get(self, fields_list)
prepare_dvi_landed_cost_lines(self, product, value, accounts_data)
prepare_dvi_landed_cost_vals(self)
prepare_dvi_landed_cost_values(self)
write(self, vals)
base_amount
Float
compute='_compute_base_vat_amount'
company_id
Many2one → res.company
related='dvi_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
related='dvi_id.currency_id'
args: 'res.currency'
dvi_id
Many2one → l10n.ro.account.dvi
index=True
ondelete='cascade'
required=True
string='DVI Ref'
args: 'l10n.ro.account.dvi'
invoice_id
Many2one → account.move
check_company=True
copy=False
index=True
readonly=True
string='DVI Invoice'
args: 'account.move'
invoice_line_id
Many2one → account.move.line
check_company=True
copy=False
readonly=True
args: 'account.move.line', 'Invoice Line'
line_qty
Float
default=1.0
digits='Product Unit of Measure'
help='The quantity declared in the DVI.'
string='DVI Quantity'
name
Char
readonly=True
related='invoice_line_id.name'
price_subtotal
Monetary
readonly=True
related='invoice_line_id.balance'
price_unit
Float
readonly=True
related='invoice_line_id.price_unit'
product_id
Many2one
readonly=True
related='invoice_line_id.product_id'
product_uom_id
Many2one
readonly=True
related='invoice_line_id.product_uom_id'
qty
Float
readonly=True
related='invoice_line_id.quantity'
tax_id
Many2one → account.tax
related='dvi_id.tax_id'
args: 'account.tax'
vat_amount
Float
compute='_compute_base_vat_amount'
No public methods.
l10n_ro_property_vat_price_difference_product_id
Many2one → product.product
domain="[('type', '=', 'service')]"
help='This product will be used in create an accounting note for the difference between customs duty and bill'
string='Romania - Vat Price Difference Product'
args: 'product.product'
No public methods.
l10n_ro_account_dvi_id
Many2one → l10n.ro.account.dvi
string='Romania - DVI'
args: 'l10n.ro.account.dvi'
l10n_ro_base_tax_value
Float
copy=False
help='Base VAT amount, calculated from invoice base amount, customs and commission.'
states={'done': [('readonly', True)]}
args: 'Romania - Base VAT amount'
l10n_ro_cost_type
Selection
ondelete={'dvi': 'set default'}
selection_add=[('dvi', 'DVI')]
l10n_ro_dvi_bill_ids
Many2many → account.move
readonly=True
relation='account_move_stock_landed_cost_rel'
string='Romania - DVI Invoices'
args: 'account.move'
l10n_ro_tax_id
Many2one → account.tax
copy=False
help='VAT tax for products and customs cost'
states={'done': [('readonly', True)]}
string='Romania - DVI Tax'
args: 'account.tax'
l10n_ro_tax_value
Float
copy=False
help='VAT amount, calculated from invoice base amount and customs.'
states={'done': [('readonly', True)]}
args: 'Romania - VAT amount paid at customs'
button_validate(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-romania |
| GIT | |
| GIT | https://github.com/OCA/l10n-romania.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-romania/tree/14.0/l10n_ro_dvi |
| VERSION | |
| VERSION | 1.16.0 |
| CATEGORY | |
| CATEGORY | Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Terrabit, NextERP Romania |
| COMMITTERS | |
| COMMITTERS | Fekete Mihai, GitHub, Weblate, OCA-git-bot, Mihai Fekete, oca-ci, Cojocaru Marcel, Stana Natanaela |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-romania |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:51 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-romania: - l10n_ro_stock_account - l10n_ro_config - l10n_ro_stock odoo/odoo: - stock_landed_costs - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic - purchase_stock - purchase - sale_stock - sale - sales_team - payment - utm - l10n_ro - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_dvi_form |
DVI | l10n.ro.account.dvi | form | New |
view_account_dvi_tree |
l10n.ro.account.dvi.tree | l10n.ro.account.dvi | tree | New |
view_move_form |
account.move.form | account.move | div | Inherits account.view_move_form |
view_stock_landed_cost_form |
stock.landed.cost.form | stock.landed.cost | group | Inherits l10n_ro_stock_account.view_stock_landed_cost_form |
l10n_ro_dvi_ids
Many2many → stock.landed.cost
compute='_compute_l10n_ro_dvi_ids'
help="DVI's linked to this invoice"
string="Romania - DVI's"
args: 'stock.landed.cost'
action_view_dvis(self)
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
customs_commission_product_id
Many2one → product.product
help='Product type service with l10n_ro_custom_commission checed (in purchase tab). Journal entry for commission will be with this product'
required=True
args: 'product.product'
customs_commission_value
Monetary
help='taken from dvi if exists'
customs_duty_product_id
Many2one → product.product
help='A product type service with l10n_ro_custom_duty checked (purchase tab). Journal entry for duty will be with this product & default vat for custom duty and invoice - to find it in declaration based on tags'
required=True
args: 'product.product'
customs_duty_tax_value
Monetary
compute='_compute_total_tax_value'
help='readonly computed tax from custom_duty_value'
readonly=1
customs_duty_value
Monetary
help='This is a value from received dvi'
date
Date
required=True
invoice_base_value
Monetary
compute='_compute_amount'
help='Invoices value without taxes'
invoice_ids
Many2many → account.move
domain=[('move_type', 'in', ['in_invoice', 'in_refund'])]
required=True
string='Invoices'
args: 'account.move'
invoice_tax_value
Monetary
compute='_compute_amount'
help='default is computed as tax_id from product; is not recomputed based on selected vat'
journal_id
Many2one → account.journal
domain="[('type', '=', 'general')]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
args: 'account.journal'
landed_cost_ids
One2many → stock.landed.cost
readonly=True
args: 'stock.landed.cost', 'l10n_ro_account_dvi_id'
line_ids
One2many → l10n.ro.account.dvi.line
copy=False
readonly=False
states={'done': [('readonly', True)]}
string='DVI Lines'
args: 'l10n.ro.account.dvi.line', 'dvi_id'
name
Char
required=True
state
Selection
copy=False
default='draft'
index=True
readonly=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('reversed', 'Reversed')]
string='Status'
tracking=True
tax_id
Many2one → account.tax
domain="[('type_tax_use', '=', 'purchase')]"
help='Is the vat that is paid in custom for products. default is taken from custom duty tax. will put this vat tag in journal entry to find it in reports'
required=True
args: 'account.tax'
total_base_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
total_tax_value
Monetary
compute='_compute_total_tax_value'
help='Is readonly sum of product tax and custom tax.This must be the tax value that you have on dvi'
vat_price_difference
Monetary
help='VAT price difference'
vat_price_difference_move_id
Many2one → account.move
help='Move for vat price difference'
readonly=1
args: 'account.move'
vat_price_difference_product_id
Many2one → product.product
help='Product for vat price difference'
args: 'product.product'
action_view_landed_costs(self)
button_post(self)
button_reverse(self)
create(self, vals)
create_account_move_dvi(self)
default_get(self, fields_list)
prepare_dvi_landed_cost_lines(self, product, value, accounts_data)
prepare_dvi_landed_cost_vals(self)
prepare_dvi_landed_cost_values(self)
write(self, vals)
base_amount
Float
compute='_compute_base_vat_amount'
company_id
Many2one → res.company
related='dvi_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
related='dvi_id.currency_id'
args: 'res.currency'
dvi_id
Many2one → l10n.ro.account.dvi
index=True
ondelete='cascade'
required=True
string='DVI Ref'
args: 'l10n.ro.account.dvi'
invoice_id
Many2one → account.move
check_company=True
copy=False
index=True
readonly=True
string='DVI Invoice'
args: 'account.move'
invoice_line_id
Many2one → account.move.line
check_company=True
copy=False
readonly=True
args: 'account.move.line', 'Invoice Line'
line_qty
Float
default=1.0
digits='Product Unit of Measure'
help='The quantity declared in the DVI.'
string='DVI Quantity'
name
Char
readonly=True
related='invoice_line_id.name'
price_subtotal
Monetary
readonly=True
related='invoice_line_id.balance'
price_unit
Float
readonly=True
related='invoice_line_id.price_unit'
product_id
Many2one
readonly=True
related='invoice_line_id.product_id'
product_uom_id
Many2one
readonly=True
related='invoice_line_id.product_uom_id'
qty
Float
readonly=True
related='invoice_line_id.quantity'
tax_id
Many2one → account.tax
related='dvi_id.tax_id'
args: 'account.tax'
vat_amount
Float
compute='_compute_base_vat_amount'
No public methods.
l10n_ro_property_vat_price_difference_product_id
Many2one → product.product
domain="[('type', '=', 'service')]"
help='This product will be used in create an accounting note for the difference between customs duty and bill'
string='Romania - Vat Price Difference Product'
args: 'product.product'
No public methods.
l10n_ro_account_dvi_id
Many2one → l10n.ro.account.dvi
string='Romania - DVI'
args: 'l10n.ro.account.dvi'
l10n_ro_base_tax_value
Float
copy=False
help='Base VAT amount, calculated from invoice base amount, customs and commission.'
states={'done': [('readonly', True)]}
args: 'Romania - Base VAT amount'
l10n_ro_cost_type
Selection
ondelete={'dvi': 'set default'}
selection_add=[('dvi', 'DVI')]
l10n_ro_dvi_bill_ids
Many2many → account.move
readonly=True
relation='account_move_stock_landed_cost_rel'
string='Romania - DVI Invoices'
args: 'account.move'
l10n_ro_tax_id
Many2one → account.tax
copy=False
help='VAT tax for products and customs cost'
states={'done': [('readonly', True)]}
string='Romania - DVI Tax'
args: 'account.tax'
l10n_ro_tax_value
Float
copy=False
help='VAT amount, calculated from invoice base amount and customs.'
states={'done': [('readonly', True)]}
args: 'Romania - VAT amount paid at customs'
button_validate(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-romania |
| GIT | |
| GIT | https://github.com/OCA/l10n-romania.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-romania/tree/13.0/l10n_ro_dvi |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Warehouse |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Terrabit |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Terrabit |
| COMMITTERS | |
| COMMITTERS | OCA-git-bot, Mihai Fekete, Dorin Hongu |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-romania |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:10 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - account - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - sale - sales_team - payment - utm - l10n_ro - base_vat - purchase_stock - purchase - stock_landed_costs |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_invoice_dvi_form |
DVI | account.invoice.dvi | form | New |
view_move_form |
account.move.form | account.move | button | Inherits account.view_move_form |
view_stock_landed_cost_form |
stock.landed.cost.form | stock.landed.cost | notebook | Inherits stock_landed_costs.view_stock_landed_cost_form |
currency_id
Many2one → res.currency
default=<expr>
args: 'res.currency'
custom_duty
Monetary
string='Custom Duty'
customs_commission
Monetary
string='Customs Commission'
date
Date
tax_id
Many2one → account.tax
tax_value
Monetary
default_get(self, fields_list)
do_create_dvi(self)
get_custom_duty_product(self)
get_customs_commission_product(self)
dvi_id
Many2one → stock.landed.cost
string='DVI'
args: 'stock.landed.cost'
button_dvi(self)
landed_type
Selection
default='standard'
args: [('standard', 'Standard'), ('dvi', 'DVI')]
tax_id
Many2one → account.tax
tax_value
Float
button_validate(self)