TIP: You can type at any time to perform a new search.
Paraguay - Accounting Extensions
l10n_py_account · OCA/l10n-paraguay
- Repository
- OCA/l10n-paraguay · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Accounting/Localizations
- Folder size
- 0.19 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/l10n-paraguay
- Last tracking update
- 2026-08-07 08:42:53
- Authors
- Odoo Community Association (OCA), KMEE
- Maintainers
- Odoo Community Association (OCA), KMEE
- Committers
- mileo, OCA-git-bot, oca-ci, André Marcos Ferreira
- Odoo dependencies
- Python dependencies
- num2words, python-stdnum
- System dependencies
- None
- Required by
- l10n_py_edi_base
- 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
Code Analysis ⓘ
Views touched (6)
| 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 | list | New |
view_account_journal_form_edi |
account.journal.form.edi | account.journal | form | Inherits account.view_account_journal_form |
view_invoice_tree_py |
account.move.tree.py | account.move | tree | Inherits account.view_invoice_tree |
view_move_form_py |
account.move.form.py | account.move | form | Inherits account.view_move_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (16)
-
activeBooleandefault=Truehelp='Marcar como inactivo para deshabilitar el timbrado'string='Activo' -
company_idMany2one → res.companydefault=<expr>required=Truestring='Compañía' args: 'res.company' -
date_fromDatehelp='Fecha desde la cual el timbrado es válido'required=Truestring='Fecha de Inicio' -
date_toDatehelp='Fecha hasta la cual el timbrado es válido'required=Truestring='Fecha de Vencimiento' -
establishmentChardefault='001'help='Código de establecimiento (3 dígitos)'required=Truesize=3string='Establecimiento' -
expedition_pointChardefault='001'help='Código de punto de expedición (3 dígitos)'required=Truesize=3string='Punto de Expedición' -
invoice_number_fromIntegerhelp='Primer número de factura autorizado'required=Truestring='Número Desde' -
invoice_number_toIntegerhelp='Último número de factura autorizado'required=Truestring='Número Hasta' -
l10n_latam_document_type_idMany2one → l10n_latam.document.typecomodel_name='l10n_latam.document.type'help='Tipo de documento LATAM (Factura, NC, ND, etc.)'required=Truestring='Tipo de Documento' -
nameCharhelp='Número de timbrado otorgado por la SET'required=Truesize=8string='Número de Timbrado' -
next_numberIntegercompute='_compute_next_number'help='Próximo número de factura a utilizar'string='Próximo Número' -
remaining_numbersIntegercompute='_compute_remaining_numbers'help='Cantidad de números aún disponibles'string='Números Disponibles' -
seriesChardefault='AA'help='Serie del timbrado (2 letras mayúsculas, AA-ZZ). Permite reiniciar numeración cuando se agota la faja.'size=2string='Serie' -
stateSelectioncompute='_compute_state'store=Truestring='Estado' args: [('valid', 'Vigente'), ('expired', 'Vencido'), ('to_expire', 'Por Vencer')] -
usage_percentageFloatcompute='_compute_usage_percentage'help='Porcentaje de números utilizados respecto al total autorizado'string='Porcentaje de Uso' -
used_numbersIntegercompute='_compute_used_numbers'help='Cantidad de números ya utilizados'string='Números Utilizados'
-
check_number_available(self, number, exclude_move_id=False)Verifica si un número está disponible en este timbrado -
check_validity(self)Verifica si el timbrado es válido en la fecha actual
New fields (4)
-
l10n_py_authorization_idMany2one → account.authorizationdomain="[('company_id', '=', company_id), ('active', '=', True)]"help='Timbrado autorizado por SET para este diario'string='Timbrado' args: 'account.authorization' -
l10n_py_authorization_validityDatehelp='Fecha de vencimiento del timbrado'readonly=Truerelated='l10n_py_authorization_id.date_to'store=Truestring='Vencimiento del Timbrado' -
l10n_py_establishmentChardefault='001'help='Código de establecimiento (3 dígitos)'size=3string='Establecimiento' -
l10n_py_pointChardefault='001'help='Código de punto de expedición (3 dígitos)'size=3string='Punto de Expedición'
No public methods.
New fields (16)
-
l10n_py_amount_exemptMonetarycompute='_compute_l10n_py_iva'currency_field='currency_id'help='Subtotal exento/no gravado (SIFEN F003)'store=Truestring='Total Exento (F003)' -
l10n_py_amount_iva_10Monetarycompute='_compute_l10n_py_iva'currency_field='currency_id'help='Liquidación IVA 10% (SIFEN F016)'store=Truestring='Liquidación IVA 10% (F016)' -
l10n_py_amount_iva_5Monetarycompute='_compute_l10n_py_iva'currency_field='currency_id'help='Liquidación IVA 5% (SIFEN F015)'store=Truestring='Liquidación IVA 5% (F015)' -
l10n_py_amount_iva_totalMonetarycompute='_compute_l10n_py_iva'currency_field='currency_id'help='Total liquidación IVA (SIFEN F014)'store=Truestring='Total IVA (F014)' -
l10n_py_amount_subtotal_10Monetarycompute='_compute_l10n_py_iva'currency_field='currency_id'help='Subtotal gravado 10% — valor con impuesto incluido (SIFEN F005)'store=Truestring='Total Gravado 10% (F005)' -
l10n_py_amount_subtotal_5Monetarycompute='_compute_l10n_py_iva'currency_field='currency_id'help='Subtotal gravado 5% — valor con impuesto incluido (SIFEN F004)'store=Truestring='Total Gravado 5% (F004)' -
l10n_py_amount_total_pygMonetarycompute='_compute_l10n_py_total_pyg'currency_field='currency_id'help='Total de la operación en guaraníes (SIFEN F023)'store=Truestring='Total en Guaraníes (F023)' -
l10n_py_amount_total_wordsCharcompute='_compute_l10n_py_amount_total_words'string='Total en Letras' -
l10n_py_authorization_idMany2one → account.authorizationdomain="[('company_id', '=', company_id), ('active', '=', True), ('state', '!=', 'expired')]"help='Timbrado utilizado para esta factura'string='Timbrado' args: 'account.authorization' -
l10n_py_base_10Monetarycompute='_compute_l10n_py_iva'currency_field='currency_id'help='Base gravada neta 10% sin IVA (SIFEN F019)'store=Truestring='Base Gravada 10% (F019)' -
l10n_py_base_5Monetarycompute='_compute_l10n_py_iva'currency_field='currency_id'help='Base gravada neta 5% sin IVA (SIFEN F018)'store=Truestring='Base Gravada 5% (F018)' -
l10n_py_base_totalMonetarycompute='_compute_l10n_py_iva'currency_field='currency_id'help='Total base gravada (SIFEN F020 = F018 + F019)'store=Truestring='Total Base Gravada (F020)' -
l10n_py_exchange_rateFloatdigits=(16, 4)help='Tipo de cambio a guaraníes (PYG) para facturación en moneda extranjera'string='Tipo de Cambio' -
l10n_py_full_invoice_numberCharcompute='_compute_l10n_py_full_invoice_number'help='Número completo de factura (formato: 001-001-0000001)'store=Truestring='Número Completo' -
l10n_py_invoice_numberIntegerhelp='Número de factura según timbrado autorizado'string='Número de Factura' -
l10n_py_total_operationMonetarycompute='_compute_l10n_py_iva'currency_field='currency_id'help='Total de la operación (SIFEN F008 = F003 + F004 + F005)'store=Truestring='Total Operación (F008)'
-
action_post(self)Override para asignar numeración secuencial al confirmar
New fields (0)
No new fields.
Public methods (0)No public methods.
Loading…