diff --git a/product_internal_ref_generator/doc/RELEASE_NOTES.md b/product_internal_ref_generator/doc/RELEASE_NOTES.md index 93ebc6052..7524d492a 100644 --- a/product_internal_ref_generator/doc/RELEASE_NOTES.md +++ b/product_internal_ref_generator/doc/RELEASE_NOTES.md @@ -1,7 +1,7 @@ ## Module #### 29.04.2024 -#### Version 17.0.1.0.0 +#### Version 17.0.1.0.1 #### ADD - Initial commit for Product Internal Reference Generator diff --git a/product_internal_ref_generator/models/product_product.py b/product_internal_ref_generator/models/product_product.py index e623459ca..1b20aaaee 100644 --- a/product_internal_ref_generator/models/product_product.py +++ b/product_internal_ref_generator/models/product_product.py @@ -30,41 +30,44 @@ class ProductProduct(models.Model): def create(self, vals_list): """supering the create function, generating the internal reference""" res = super().create(vals_list) - auto_generate_internal_ref = self.env['ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.auto_generate_internal_ref') - if auto_generate_internal_ref: - product_name_config = self.env['ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.product_name_config') - pro_name_digit = self.env['ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_name_digit') - pro_name_separator = self.env['ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_name_separator') - pro_categ_config = self.env['ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_categ_config') - pro_categ_digit = self.env['ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_categ_digit') - pro_categ_separator = self.env['ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_categ_separator') - for rec in res: - default_code = '' - if rec.detailed_type == 'consu': - default_code += 'Consu:' - elif rec.detailed_type == 'service': - default_code += 'Servi:' - elif rec.detailed_type == 'product': - default_code += 'Stora:' - if product_name_config: - if rec.name: - default_code += rec.name[:int(pro_name_digit)] - default_code += pro_name_separator - if pro_categ_config: - if rec.categ_id.name: - default_code += rec.categ_id.name[:int(pro_categ_digit)] - default_code += pro_categ_separator - sequence_code = 'product.sequence.ref' - default_code += self.env['ir.sequence'].next_by_code( - sequence_code) - rec.default_code = default_code + if 'default_code' in vals_list: + pass + else: + auto_generate_internal_ref = self.env['ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.auto_generate_internal_ref') + if auto_generate_internal_ref: + product_name_config = self.env['ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.product_name_config') + pro_name_digit = self.env['ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_name_digit') + pro_name_separator = self.env['ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_name_separator') + pro_categ_config = self.env['ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_categ_config') + pro_categ_digit = self.env['ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_categ_digit') + pro_categ_separator = self.env['ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_categ_separator') + for rec in res: + default_code = '' + if rec.detailed_type == 'consu': + default_code += 'Consu:' + elif rec.detailed_type == 'service': + default_code += 'Servi:' + elif rec.detailed_type == 'product': + default_code += 'Stora:' + if product_name_config: + if rec.name: + default_code += rec.name[:int(pro_name_digit)] + default_code += pro_name_separator + if pro_categ_config: + if rec.categ_id.name: + default_code += rec.categ_id.name[:int(pro_categ_digit)] + default_code += pro_categ_separator + sequence_code = 'product.sequence.ref' + default_code += self.env['ir.sequence'].next_by_code( + sequence_code) + rec.default_code = default_code return res @api.model @@ -88,23 +91,24 @@ class ProductProduct(models.Model): 'ir.config_parameter'].sudo().get_param( 'product_internal_ref_generator.pro_categ_separator') for rec in products: - default_code = '' - if rec.detailed_type == 'consu': - default_code += 'Consu:' - elif rec.detailed_type == 'service': - default_code += 'Servi:' - elif rec.detailed_type == 'product': - default_code += 'Stora:' - if product_name_config: - if rec.name: - default_code += rec.name[:int(pro_name_digit)] - default_code += pro_name_separator - if pro_categ_config: - if rec.categ_id.name: - default_code += rec.categ_id.name[:int(pro_categ_digit)] - default_code += pro_categ_separator - sequence_code = 'product.sequence.ref' - default_code += self.env['ir.sequence'].next_by_code( - sequence_code) - rec.default_code = default_code + if not rec.default_code: + default_code = '' + if rec.detailed_type == 'consu': + default_code += 'Consu:' + elif rec.detailed_type == 'service': + default_code += 'Servi:' + elif rec.detailed_type == 'product': + default_code += 'Stora:' + if product_name_config: + if rec.name: + default_code += rec.name[:int(pro_name_digit)] + default_code += pro_name_separator + if pro_categ_config: + if rec.categ_id.name: + default_code += rec.categ_id.name[:int(pro_categ_digit)] + default_code += pro_categ_separator + sequence_code = 'product.sequence.ref' + default_code += self.env['ir.sequence'].next_by_code( + sequence_code) + rec.default_code = default_code return self diff --git a/product_internal_ref_generator/models/product_template.py b/product_internal_ref_generator/models/product_template.py index 8a6521121..dabd73aad 100644 --- a/product_internal_ref_generator/models/product_template.py +++ b/product_internal_ref_generator/models/product_template.py @@ -30,56 +30,59 @@ class ProductTemplate(models.Model): def create(self, vals_list): """supering the create function, generating the internal reference""" res = super().create(vals_list) - auto_generate_internal_ref = self.env['ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.auto_generate_internal_ref') - if auto_generate_internal_ref: - product_name_config = self.env[ - 'ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.product_name_config') - pro_name_digit = self.env['ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_name_digit') - pro_name_separator = self.env[ - 'ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_name_separator') - pro_categ_config = self.env['ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_categ_config') - pro_categ_digit = self.env['ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_categ_digit') - pro_categ_separator = self.env[ - 'ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_categ_separator') - pro_template_config = self.env[ - 'ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_template_config') - pro_template_digit = self.env[ - 'ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_template_digit') - pro_template_separator = self.env[ - 'ir.config_parameter'].sudo().get_param( - 'product_internal_ref_generator.pro_template_separator') - for rec in res: - default_code = '' - if rec.detailed_type == 'consu': - default_code += 'Consu:' - elif rec.detailed_type == 'service': - default_code += 'Servi:' - elif rec.detailed_type == 'product': - default_code += 'Stora:' - if product_name_config: - default_code += rec.name[:int(pro_name_digit)] - default_code += pro_name_separator - if pro_categ_config: - default_code += rec.categ_id.name[:int(pro_categ_digit)] - default_code += pro_categ_separator - if pro_template_config: - for attribute in rec.attribute_line_ids: - for value in attribute.value_ids: - default_code += value.name[:int(pro_template_digit)] - default_code += pro_template_separator - sequence_code = 'attribute.sequence.ref' - default_code += self.env['ir.sequence'].next_by_code( - sequence_code) - rec.default_code = default_code + if 'default_code' in vals_list: + pass + else: + auto_generate_internal_ref = self.env['ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.auto_generate_internal_ref') + if auto_generate_internal_ref: + product_name_config = self.env[ + 'ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.product_name_config') + pro_name_digit = self.env['ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_name_digit') + pro_name_separator = self.env[ + 'ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_name_separator') + pro_categ_config = self.env['ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_categ_config') + pro_categ_digit = self.env['ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_categ_digit') + pro_categ_separator = self.env[ + 'ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_categ_separator') + pro_template_config = self.env[ + 'ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_template_config') + pro_template_digit = self.env[ + 'ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_template_digit') + pro_template_separator = self.env[ + 'ir.config_parameter'].sudo().get_param( + 'product_internal_ref_generator.pro_template_separator') + for rec in res: + default_code = '' + if rec.detailed_type == 'consu': + default_code += 'Consu:' + elif rec.detailed_type == 'service': + default_code += 'Servi:' + elif rec.detailed_type == 'product': + default_code += 'Stora:' + if product_name_config: + default_code += rec.name[:int(pro_name_digit)] + default_code += pro_name_separator + if pro_categ_config: + default_code += rec.categ_id.name[:int(pro_categ_digit)] + default_code += pro_categ_separator + if pro_template_config: + for attribute in rec.attribute_line_ids: + for value in attribute.value_ids: + default_code += value.name[:int(pro_template_digit)] + default_code += pro_template_separator + sequence_code = 'attribute.sequence.ref' + default_code += self.env['ir.sequence'].next_by_code( + sequence_code) + rec.default_code = default_code return res @api.model @@ -107,26 +110,27 @@ class ProductTemplate(models.Model): 'ir.config_parameter'].sudo().get_param( 'product_internal_ref_generator.pro_template_separator') for rec in products: - default_code = '' - if rec.detailed_type == 'consu': - default_code += 'Consu:' - elif rec.detailed_type == 'service': - default_code += 'Servi:' - elif rec.detailed_type == 'product': - default_code += 'Stora:' - if product_name_config: - default_code += rec.name[:int(pro_name_digit)] - default_code += pro_name_separator - if pro_categ_config: - default_code += rec.categ_id.name[:int(pro_categ_digit)] - default_code += pro_categ_separator - if pro_template_config: - for attribute in rec.attribute_line_ids: - for value in attribute.value_ids: - default_code += value.name[:int(pro_template_digit)] - default_code += pro_template_separator - sequence_code = 'attribute.sequence.ref' - default_code += self.env['ir.sequence'].next_by_code( - sequence_code) - rec.default_code = default_code + if not rec.default_code: + default_code = '' + if rec.detailed_type == 'consu': + default_code += 'Consu:' + elif rec.detailed_type == 'service': + default_code += 'Servi:' + elif rec.detailed_type == 'product': + default_code += 'Stora:' + if product_name_config: + default_code += rec.name[:int(pro_name_digit)] + default_code += pro_name_separator + if pro_categ_config: + default_code += rec.categ_id.name[:int(pro_categ_digit)] + default_code += pro_categ_separator + if pro_template_config: + for attribute in rec.attribute_line_ids: + for value in attribute.value_ids: + default_code += value.name[:int(pro_template_digit)] + default_code += pro_template_separator + sequence_code = 'attribute.sequence.ref' + default_code += self.env['ir.sequence'].next_by_code( + sequence_code) + rec.default_code = default_code return self