| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-paraguay |
| GIT | |
| GIT | https://github.com/OCA/l10n-paraguay.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-paraguay/tree/16.0/l10n_py_account |
| VERSION | |
| VERSION | 2.0.0 |
| CATEGORY | |
| CATEGORY | Accounting/Localizations |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), KMEE |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), KMEE |
| COMMITTERS | |
| COMMITTERS | mileo, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-paraguay |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:12:07 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-paraguay: - l10n_py - l10n_py_base odoo/odoo: - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - base_address_extended - l10n_latam_base - contacts - base_vat - l10n_latam_invoice_document - account_debit_note |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
num2words |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | # Paraguay - Accounting Extensions This module extends the base Paraguayan accounting localization with specific functionality required for Paraguayan fiscal compliance. ## Features - **Journal Extensions**: Enhanced journal configuration with Paraguayan-specific fields - Establishment (punto de expedición) - Point of Sale (punto de emisión) - Timbrado (tax stamp authorization) - **Authorization Management**: Complete timbrado lifecycle management - Authorization number tracking - Validity period control - Document number range management - Automatic sequence generation - **Account Move Extensions**: Enhanced invoice/bill features - Automatic timbrado assignment - Document number formatting - Fiscal validations - **Fiscal Validations**: - Valid timbrado verification - Document number range validation - Expiration date checking ## Purpose This module bridges the gap between Odoo's standard accounting and Paraguayan fiscal requirements, particularly focusing on timbrado management which is mandatory for all fiscal documents in Paraguay. ## Dependencies - `account`: Odoo core accounting - `l10n_py_base`: Base Paraguayan localization |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_authorization_form |
account.authorization.form | account.authorization | form | New |
view_account_authorization_search |
account.authorization.search | account.authorization | search | New |
view_account_authorization_tree |
account.authorization.tree | account.authorization | tree | New |
view_account_journal_form_edi |
account.journal.form.edi | account.journal | xpath | Inherits account.view_account_journal_form |
view_invoice_tree_py |
account.move.tree.py | account.move | xpath | Inherits account.view_invoice_tree |
view_move_form_py |
account.move.form.py | account.move | xpath | Inherits account.view_move_form |
active
Boolean
default=True
help='Marcar como inactivo para deshabilitar el timbrado'
string='Activo'
company_id
Many2one → res.company
default=<expr>
required=True
string='Compañía'
args: 'res.company'
date_from
Date
help='Fecha desde la cual el timbrado es válido'
required=True
string='Fecha de Inicio'
date_to
Date
help='Fecha hasta la cual el timbrado es válido'
required=True
string='Fecha de Vencimiento'
establishment
Char
default='001'
help='Código de establecimiento (3 dígitos)'
required=True
size=3
string='Establecimiento'
expedition_point
Char
default='001'
help='Código de punto de expedición (3 dígitos)'
required=True
size=3
string='Punto de Expedición'
invoice_number_from
Integer
help='Primer número de factura autorizado'
required=True
string='Número Desde'
invoice_number_to
Integer
help='Último número de factura autorizado'
required=True
string='Número Hasta'
l10n_latam_document_type_id
Many2one → l10n_latam.document.type
comodel_name='l10n_latam.document.type'
help='Tipo de documento LATAM (Factura, NC, ND, etc.)'
required=True
string='Tipo de Documento'
name
Char
help='Número de timbrado otorgado por la SET'
required=True
size=8
string='Número de Timbrado'
next_number
Integer
compute='_compute_next_number'
help='Próximo número de factura a utilizar'
string='Próximo Número'
remaining_numbers
Integer
compute='_compute_remaining_numbers'
help='Cantidad de números aún disponibles'
string='Números Disponibles'
series
Char
default='AA'
help='Serie del timbrado (2 letras mayúsculas, AA-ZZ). Permite reiniciar numeración cuando se agota la faja.'
size=2
string='Serie'
state
Selection
compute='_compute_state'
store=True
string='Estado'
args: [('valid', 'Vigente'), ('expired', 'Vencido'), ('to_expire', 'Por Vencer')]
usage_percentage
Float
compute='_compute_usage_percentage'
help='Porcentaje de números utilizados respecto al total autorizado'
string='Porcentaje de Uso'
used_numbers
Integer
compute='_compute_used_numbers'
help='Cantidad de números ya utilizados'
string='Números Utilizados'
check_number_available(self, number, exclude_move_id=False)
check_validity(self)
name_get(self)
l10n_py_authorization_id
Many2one → account.authorization
domain="[('company_id', '=', company_id), ('active', '=', True)]"
help='Timbrado autorizado por SET para este diario'
string='Timbrado'
args: 'account.authorization'
l10n_py_authorization_validity
Date
help='Fecha de vencimiento del timbrado'
readonly=True
related='l10n_py_authorization_id.date_to'
store=True
string='Vencimiento del Timbrado'
l10n_py_establishment
Char
default='001'
help='Código de establecimiento (3 dígitos)'
size=3
string='Establecimiento'
l10n_py_point
Char
default='001'
help='Código de punto de expedición (3 dígitos)'
size=3
string='Punto de Expedición'
No public methods.
l10n_py_amount_exempt
Monetary
compute='_compute_l10n_py_iva'
currency_field='currency_id'
help='Subtotal exento/no gravado (SIFEN F003)'
store=True
string='Total Exento (F003)'
l10n_py_amount_iva_10
Monetary
compute='_compute_l10n_py_iva'
currency_field='currency_id'
help='Liquidación IVA 10% (SIFEN F016)'
store=True
string='Liquidación IVA 10% (F016)'
l10n_py_amount_iva_5
Monetary
compute='_compute_l10n_py_iva'
currency_field='currency_id'
help='Liquidación IVA 5% (SIFEN F015)'
store=True
string='Liquidación IVA 5% (F015)'
l10n_py_amount_iva_total
Monetary
compute='_compute_l10n_py_iva'
currency_field='currency_id'
help='Total liquidación IVA (SIFEN F014)'
store=True
string='Total IVA (F014)'
l10n_py_amount_subtotal_10
Monetary
compute='_compute_l10n_py_iva'
currency_field='currency_id'
help='Subtotal gravado 10% — valor con impuesto incluido (SIFEN F005)'
store=True
string='Total Gravado 10% (F005)'
l10n_py_amount_subtotal_5
Monetary
compute='_compute_l10n_py_iva'
currency_field='currency_id'
help='Subtotal gravado 5% — valor con impuesto incluido (SIFEN F004)'
store=True
string='Total Gravado 5% (F004)'
l10n_py_amount_total_pyg
Monetary
compute='_compute_l10n_py_total_pyg'
currency_field='currency_id'
help='Total de la operación en guaraníes (SIFEN F023)'
store=True
string='Total en Guaraníes (F023)'
l10n_py_amount_total_words
Char
compute='_compute_l10n_py_amount_total_words'
string='Total en Letras'
l10n_py_authorization_id
Many2one → account.authorization
domain="[('company_id', '=', company_id), ('active', '=', True), ('state', '!=', 'expired')]"
help='Timbrado utilizado para esta factura'
string='Timbrado'
args: 'account.authorization'
l10n_py_base_10
Monetary
compute='_compute_l10n_py_iva'
currency_field='currency_id'
help='Base gravada neta 10% sin IVA (SIFEN F019)'
store=True
string='Base Gravada 10% (F019)'
l10n_py_base_5
Monetary
compute='_compute_l10n_py_iva'
currency_field='currency_id'
help='Base gravada neta 5% sin IVA (SIFEN F018)'
store=True
string='Base Gravada 5% (F018)'
l10n_py_base_total
Monetary
compute='_compute_l10n_py_iva'
currency_field='currency_id'
help='Total base gravada (SIFEN F020 = F018 + F019)'
store=True
string='Total Base Gravada (F020)'
l10n_py_exchange_rate
Float
digits=(16, 4)
help='Tipo de cambio a guaraníes (PYG) para facturación en moneda extranjera'
string='Tipo de Cambio'
l10n_py_full_invoice_number
Char
compute='_compute_l10n_py_full_invoice_number'
help='Número completo de factura (formato: 001-001-0000001)'
store=True
string='Número Completo'
l10n_py_invoice_number
Integer
help='Número de factura según timbrado autorizado'
string='Número de Factura'
l10n_py_total_operation
Monetary
compute='_compute_l10n_py_iva'
currency_field='currency_id'
help='Total de la operación (SIFEN F008 = F003 + F004 + F005)'
store=True
string='Total Operación (F008)'
action_post(self)
No new fields.
Public methods (0)No public methods.