Files
enterprise-addons/l10n_mx_edi_stock/models/product_template.py
T

107 lines
6.6 KiB
Python

from odoo import fields, models, api
MX_PACKAGING_CATALOG = [
('1A1', 'Bidones (Tambores) de Acero 1 de tapa no desmontable'),
('1A2', 'Bidones (Tambores) de Acero 1 de tapa desmontable'),
('1B1', 'Bidones (Tambores) de Aluminio de tapa no desmontable'),
('1B2', 'Bidones (Tambores) de Aluminio de tapa desmontable'),
('1D', 'Bidones (Tambores) de Madera contrachapada'),
('1G', 'Bidones (Tambores) de Cartón'),
('1H1', 'Bidones (Tambores) de Plástico de tapa no desmontable'),
('1H2', 'Bidones (Tambores) de Plástico de tapa desmontable'),
('1N1', 'Bidones (Tambores) de Metal que no sea acero ni aluminio de tapa no desmontable'),
('1N2', 'Bidones (Tambores) de Metal que no sea acero ni aluminio de tapa desmontable'),
('3A1', 'Jerricanes (Porrones) de Acero de tapa no desmontable'),
('3A2', 'Jerricanes (Porrones) de Acero de tapa desmontable'),
('3B1', 'Jerricanes (Porrones) de Aluminio de tapa no desmontable'),
('3B2', 'Jerricanes (Porrones) de Aluminio de tapa desmontable'),
('3H1', 'Jerricanes (Porrones) de Plástico de tapa no desmontable'),
('3H2', 'Jerricanes (Porrones) de Plástico de tapa desmontable'),
('4A', 'Cajas de Acero'),
('4B', 'Cajas de Aluminio'),
('4C1', 'Cajas de Madera natural ordinaria'),
('4C2', 'Cajas de Madera natural de paredes a prueba de polvos (estancas a los pulverulentos)'),
('4D', 'Cajas de Madera contrachapada'),
('4F', 'Cajas de Madera reconstituida'),
('4G', 'Cajas de Cartón'),
('4H1', 'Cajas de Plástico Expandido'),
('4H2', 'Cajas de Plástico Rígido'),
('5H1', 'Sacos (Bolsas) de Tejido de plástico sin forro ni revestimientos interiores'),
('5H2', 'Sacos (Bolsas) de Tejido de plástico a prueba de polvos (estancos a los pulverulentos)'),
('5H3', 'Sacos (Bolsas) de Tejido de plástico resistente al agua'),
('5H4', 'Sacos (Bolsas) de Película de plástico'),
('5L1', 'Sacos (Bolsas) de Tela sin forro ni revestimientos interiores'),
('5L2', 'Sacos (Bolsas) de Tela a prueba de polvos (estancos a los pulverulentos)'),
('5L3', 'Sacos (Bolsas) de Tela resistentes al agua'),
('5M1', 'Sacos (Bolsas) de Papel de varias hojas'),
('5M2', 'Sacos (Bolsas) de Papel de varias hojas, resistentes al agua'),
('6HA1', 'Envases y embalajes compuestos de Recipiente de plástico, con bidón (tambor) de acero'),
('6HA2', 'Envases y embalajes compuestos de Recipiente de plástico, con una jaula o caja de acero'),
('6HB1', 'Envases y embalajes compuestos de Recipiente de plástico, con un bidón (tambor) exterior de aluminio'),
('6HB2', 'Envases y embalajes compuestos de Recipiente de plástico, con una jaula o caja de aluminio'),
('6HC', 'Envases y embalajes compuestos de Recipiente de plástico, con una caja de madera'),
('6HD1', 'Envases y embalajes compuestos de Recipiente de plástico, con un bidón (tambor) de madera contrachapada'),
('6HD2', 'Envases y embalajes compuestos de Recipiente de plástico, con una caja de madera contrachapada'),
('6HG1', 'Envases y embalajes compuestos de Recipiente de plástico, con un bidón (tambor) de cartón'),
('6HG2', 'Envases y embalajes compuestos de Recipiente de plástico, con una caja de cartón'),
('6HH1', 'Envases y embalajes compuestos de Recipiente de plástico, con un bidón (tambor) de plástico'),
('6HH2', 'Envases y embalajes compuestos de Recipiente de plástico, con caja de plástico rígido'),
('6PA1', 'Envases y embalajes compuestos de Recipiente de vidrio, porcelana o de gres, con un bidón (tambor) de acero'),
('6PA2', 'Envases y embalajes compuestos de Recipiente de vidrio, porcelana o de gres, con una jaula o una caja de acero'),
('6PB1', 'Envases y embalajes compuestos de Recipiente de vidrio, porcelana o de gres, con un bidón (tambor) exterior de aluminio'),
('6PB2', 'Envases y embalajes compuestos de Recipiente de vidrio, porcelana o de gres, con una jaula o una caja de aluminio'),
('6PC', 'Envases y embalajes compuestos de Recipiente de vidrio, porcelana o de gres, con una caja de madera'),
('6PD1', 'Envases y embalajes compuestos de Recipiente de vidrio, porcelana o de gres, con bidón (tambor) de madera contrachapada'),
('6PD2', 'Envases y embalajes compuestos de Recipiente de vidrio, porcelana o de gres, con canasta de mimbre'),
('6PG1', 'Envases y embalajes compuestos de Recipiente de vidrio, porcelana o de gres, con un bidón (tambor) de cartón'),
('6PG2', 'Envases y embalajes compuestos de Recipiente de vidrio, porcelana o de gres, con una caja de cartón'),
('6PH1', 'Envases y embalajes compuestos de Recipiente de vidrio, porcelana o de gres, con un envase y embalaje de plástico expandido'),
('6PH2', 'Envases y embalajes compuestos de Recipiente de vidrio, porcelana o de gres, con un envase y embalaje de plástico rígido'),
('7H1', 'Bultos de Plástico'),
('7L1', 'Bultos de Tela'),
('Z01', 'No aplica')
]
class ProductTemplate(models.Model):
_inherit = 'product.template'
l10n_mx_edi_hazardous_material = fields.Selection(related='unspsc_code_id.l10n_mx_edi_hazardous_material')
l10n_mx_edi_hazardous_material_code_id = fields.Many2one(
comodel_name='l10n_mx_edi.hazardous.material',
string="Hazardous Material Designation Code",
compute='_compute_hazardous_material_fields',
store=True,
readonly=False,
)
l10n_mx_edi_hazard_package_type = fields.Selection(
selection=MX_PACKAGING_CATALOG,
string="Packaging type for hazardous material",
compute='_compute_hazardous_material_fields',
store=True,
readonly=False,
)
l10n_mx_edi_material_type = fields.Selection(
selection=[
('01', 'Materia prima'),
('02', 'Materia procesada'),
('03', 'Materia terminada(producto terminado)'),
('04', 'Materia para la industria manufacturera'),
('05', 'Otra'),
],
string="Material Type",
help="State of the material or product when performing a foreign trade operation.",
)
l10n_mx_edi_material_description = fields.Char(
string="Material Description",
help="Description of the state of the material or product when performing a foreign trade operation.",
)
@api.depends('unspsc_code_id')
def _compute_hazardous_material_fields(self):
for product in self:
if not product.unspsc_code_id.l10n_mx_edi_hazardous_material:
product.l10n_mx_edi_hazardous_material_code_id = False
product.l10n_mx_edi_hazard_package_type = False