Skip to content
Health
82/100
good
  • Security25/25
    No findings
  • Activity25/25
    Last human commit 1 month ago
  • Required by20/25
    3 modules depend on it
  • Maturity12/25
    In 2 Odoo series since 18.0

Heuristic over the facts below, not an audit · How it's computed

Security findings
Grave / minor (static analysis)
Required by
3
Modules depending on it
External deps
1 pip · 0 bin
Python packages / system binaries
License
AGPL-3
No conflicts with its dependencies
Folder size
0.08 MB
Module directory on disk
Code analysis 0 migration notes 3 models 3 views 0 HTTP endpoints

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.

Dependencies

Odoo dependencies
Python dependencies
python-stdnum
System dependencies
None
Required by
l10n_py_maquila_mrp, l10n_py_maquila_ops, l10n_py_maquila_report

Code analysis

Extracted from the source by best-effort static analysis (no code is executed); details may be incomplete.

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.

Loading…

Loading…