TIP: You can type at any time to perform a new search.
Paraguay - Base Localization
l10n_py_base · OCA/l10n-paraguay
Security findings
- Repository
- OCA/l10n-paraguay · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Localization
- Folder size
- 2.34 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/l10n-paraguay
- Last tracking update
- 2026-10-04 00:16:29
- Authors
- Odoo Community Association (OCA), KMEE
- Maintainers
- Odoo Community Association (OCA), KMEE
- Committers
- OCA-git-bot, oca-ci, Daniel Sadamo
- Odoo dependencies
- Python dependencies
- python-stdnum
- System dependencies
- None
- Required by
- l10n_py_account
- Description
Base localization module for Paraguay. Provides geographic data (departments, cities, neighborhoods), RUC validation, and fiscal fields on partners.
Code Analysis
Views touched (5)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_py_base_res_partner_address |
l10n_py_base.res.partner.address | res.partner | form | New |
l10n_py_base_res_partner_form |
l10n_py_base.res.partner.form | res.partner | form | Inherits base.view_partner_form |
view_l10n_py_neighborhood_form |
l10n_py.neighborhood.form | l10n_py.neighborhood | form | New |
view_l10n_py_neighborhood_list |
l10n_py.neighborhood.list | l10n_py.neighborhood | list | New |
view_l10n_py_neighborhood_search |
l10n_py.neighborhood.search | l10n_py.neighborhood | search | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (5)
New fields (6)
-
city_idMany2one → res.cityhelp='Ciudad a la que pertenece el barrio'ondelete='cascade'required=Truestring='Ciudad' args: 'res.city' -
codeCharhelp='Código del barrio'string='Código' -
country_idMany2one → res.countryhelp='País al que pertenece el barrio'readonly=Truerelated='city_id.country_id'store=Truestring='País' args: 'res.country' -
nameCharhelp='Nombre del barrio'required=Truestring='Nombre' -
state_idMany2one → res.country.statehelp='Departamento al que pertenece el barrio'readonly=Truerelated='city_id.state_id'store=Truestring='Departamento' args: 'res.country.state' -
zipcodeCharhelp='Código postal del barrio'string='Código Postal'
No public methods.
New fields (1)
-
l10n_py_codeCharhelp='Código de la ciudad según SET (Subsecretaría de Estado de Tributación)'size=4string='Código SET'
No public methods.
New fields (1)
-
country_idMany2onedefault=<expr>
No public methods.
New fields (1)
-
l10n_py_codeIntegerhelp='Código del departamento según SET (Subsecretaría de Estado de Tributación)'string='Código SET'
No public methods.
New fields (12)
-
country_idMany2one → res.countrycomodel_name='res.country'default=<expr> -
l10n_py_activity_descriptionCharhelp='Descripción de la actividad económica principal'string='Actividad Económica' -
l10n_py_city_codeCharhelp='Código de la ciudad según SET'readonly=Truerelated='city_id.l10n_py_code'store=Truestring='Código Ciudad SET' -
l10n_py_department_codeIntegerhelp='Código del departamento según SET'readonly=Truerelated='state_id.l10n_py_code'store=Truestring='Código Departamento SET' -
l10n_py_doc_numberCharhelp='Número de documento de identidad para no contribuyentes (SIFEN D025)'size=20string='Número de Documento' -
l10n_py_doc_typeSelectionhelp='Tipo de documento de identidad para no contribuyentes (SIFEN D024)'string='Tipo de Documento de Identidad' args: [('1', 'Cédula de Identidad'), ('2', 'Pasaporte'), ('3', 'Carnet de Residencia'), ('4', 'Innominado')] -
l10n_py_fantasy_nameCharhelp='Nombre comercial o de fantasía'string='Nombre de Fantasía' -
l10n_py_neighborhood_idMany2one → l10n_py.neighborhoodcomodel_name='l10n_py.neighborhood'domain="[('city_id', '=', city_id)]"help='Barrio o distrito del contacto'string='Barrio' -
l10n_py_neighborhood_nameCharreadonly=Truerelated='l10n_py_neighborhood_id.name'store=Truestring='Nombre del Barrio' -
l10n_py_rucCharcompute='_compute_l10n_py_ruc_fields'help='Registro Único del Contribuyente (sin dígito verificador)'inverse='_inverse_l10n_py_ruc'size=20store=Truestring='RUC' -
l10n_py_ruc_dvCharcompute='_compute_l10n_py_ruc_fields'help='Dígito verificador del RUC'size=1store=Truestring='DV' -
l10n_py_taxpayer_typeSelectionhelp='Tipo de contribuyente según la SET'string='Tipo de Contribuyente' args: [('1', 'Contribuyente'), ('2', 'No Contribuyente')]
-
check_vat_py(self, vat)Validate a Paraguayan RUC, check digit included. Only partners whose identification type is flagged as VAT reach this method: ``l10n_latam_base`` filters the others out before calling ``base_vat``, so documents such as CI, passport or residence card are not validated here. -
create(self, vals_list)@api.model_create_multi -
format_vat_py(self, vat)@api.modelKeep the RUC as typed instead of letting base_vat compact it. Since Odoo 19, ``base_vat`` formats the VAT through ``format_vat_<cc>`` and falls back to the python-stdnum ``compact()``, which strips the hyphen of ``NNNNNNNN-D``. ``_format_vat_py`` would then take the whole compacted number (check digit included) as the RUC base and append a new, wrong check digit. -
write(self, values)
Loading…
Loading…
- Status
- Open migration PR — not merged yet for this version
- CI status
- green — ready to merge
- Open since
- 2 days ago
- Last activity
- 2 days ago
- Repository
- OCA/l10n-paraguay
- Pull request
- [20.0][MIG] l10n_py_base: Migration to 20.0 (#55)