Repository
OCA/l10n-paraguay · module folder · Try on Runboat
Module version
1.0.0
Category
Localization
Folder size
0.09 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/l10n-paraguay
Last tracking update
2026-08-03 17:34:13
Authors
Odoo Community Association (OCA), KMEE
Maintainers
Odoo Community Association (OCA), KMEE
Committers
OCA-git-bot, oca-ci, André Marcos Ferreira
Odoo dependencies
Python dependencies
python-stdnum
System dependencies
None
Required by
None
Description
Base module for Paraguay's Maquila regime (Ley 7547/2025, regulated by
Decreto 5714/2026), which replaced Ley 1064/97.

It provides the core data model shared by the rest of the maquila stack:

- **Maquila program**: biministerial resolution, legal regime (Ley 7547/2025
  or legacy Ley 1064/97), modalities (pura, servicios, capacidad ociosa,
  sub-maquila, shelter/albergue, coexistencia), foreign matrix, CNIME contract
  (OCA Agreement) and benefit duration (20 years, Art. 13).
- **Program products** with their INTN certificates and validity.
- An expiry cron that raises warning activities for programs, contracts and
  INTN certificates nearing their deadline.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_maquila_program_form l10n_py.maquila.program.form l10n_py.maquila.program form New
view_maquila_program_search l10n_py.maquila.program.search l10n_py.maquila.program search New
view_maquila_program_tree l10n_py.maquila.program.tree l10n_py.maquila.program list New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (3)

New fields (18)
  • active Boolean
    default=True
  • agreement_id Many2one → agreement
    help='OCA Agreement linked to CNIME contract' string='CNIME Contract' tracking=True args: 'agreement'
  • analytic_account_id Many2one → account.analytic.account
    help='Analytic account for accounting segregation of this program' string='Analytic Account' tracking=True args: 'account.analytic.account'
  • benefit_duration_years Integer
    default=20 help='Benefit term in years (Ley 7547/2025 Art. 13: 20 years, renewable).'
  • benefit_expiry Date
    compute='_compute_benefit_expiry' help='End of the benefit term, computed from the resolution date.' store=True
  • cnime_resolution_date Date
    string='CNIME Resolution Date' tracking=True
  • cnime_resolution_expiry Date
    string='CNIME Resolution Expiry' tracking=True
  • code Char
    help='Resolucion biministerial (e.g. RES-BIM-2026-001)' required=True string='Biministerial Resolution' tracking=True
  • company_id Many2one → res.company
    default=<expr> required=True string='Maquiladora' tracking=True args: 'res.company'
  • internal_sale_pct Float
    help='Percentage allowed for domestic sale (capacidad ociosa type)' string='Internal Market %'
  • legal_regime Selection
    default='ley_7547' help='Legacy 1064/97 programs keep prior conditions for 12 months, then migrate to Ley 7547/2025 (Art. 42).' required=True tracking=True args: [('ley_7547', 'Ley 7547/2025'), ('ley_1064', 'Ley 1064/97 (legacy)')]
  • maquila_type Selection
    help="Legal modalities under Ley 7547/2025 (Arts. 3, 25-27). 'abrigo' is kept for the textile/garment rubro." required=True tracking=True args: [('pura', 'Maquila Pura'), ('servicio', 'Maquila de Servicios'), ('ociosidad', 'Capacidad Ociosa'), ('sub_maquila', 'Sub-Maquila (Sub-contratación)'), ('shelter', 'Shelter / Albergue'), ('coexistencia', 'Coexistencia (régimen ordinario)'), ('abrigo', 'Maquila de Abrigo')]
  • matriz_partner_id Many2one → res.partner
    help='Foreign parent company (owner of temporary goods)' required=True string='Foreign Matrix' tracking=True args: 'res.partner'
  • name Char
    required=True tracking=True
  • product_line_ids One2many → l10n_py.maquila.program.product
    string='Product Lines' args: 'l10n_py.maquila.program.product', 'program_id'
  • resolution_attachment Binary
    attachment=True string='Resolution PDF'
  • resolution_attachment_name Char
  • state Selection
    default='draft' required=True tracking=True args: [('draft', 'Draft'), ('active', 'Active'), ('suspended', 'Suspended'), ('closed', 'Closed')]
Public methods (4)
  • action_activate(self)
  • action_close(self)
  • action_draft(self)
  • action_suspend(self)

New fields (5)
  • intn_certificate Char
    string='INTN Certificate'
  • intn_certificate_date Date
    string='INTN Certificate Date'
  • intn_expiry_date Date
    help='INTN certificate validity (typically 2 years)' string='INTN Expiry Date'
  • product_id Many2one → product.product
    required=True args: 'product.product'
  • program_id Many2one → l10n_py.maquila.program
    ondelete='cascade' required=True args: 'l10n_py.maquila.program'
Public methods (0)

No public methods.

New fields (1)
  • l10n_py_is_maquiladora Boolean
    help='Check if this company operates under Maquila regime (Ley 7547/2025)' string='Is Maquiladora'
Public methods (0)

No public methods.