Browse Source

Jul 1 [UPDT] Updated 'product_internal_ref_generator'

pull/331/head
AjmalCybro 10 months ago
parent
commit
2ad992e159
  1. 2
      product_internal_ref_generator/doc/RELEASE_NOTES.md
  2. 112
      product_internal_ref_generator/models/product_product.py
  3. 148
      product_internal_ref_generator/models/product_template.py

2
product_internal_ref_generator/doc/RELEASE_NOTES.md

@ -1,7 +1,7 @@
## Module <product_internal_ref_generator> ## Module <product_internal_ref_generator>
#### 29.04.2024 #### 29.04.2024
#### Version 17.0.1.0.0 #### Version 17.0.1.0.1
#### ADD #### ADD
- Initial commit for Product Internal Reference Generator - Initial commit for Product Internal Reference Generator

112
product_internal_ref_generator/models/product_product.py

@ -30,41 +30,44 @@ class ProductProduct(models.Model):
def create(self, vals_list): def create(self, vals_list):
"""supering the create function, generating the internal reference""" """supering the create function, generating the internal reference"""
res = super().create(vals_list) res = super().create(vals_list)
auto_generate_internal_ref = self.env['ir.config_parameter'].sudo().get_param( if 'default_code' in vals_list:
'product_internal_ref_generator.auto_generate_internal_ref') pass
if auto_generate_internal_ref: else:
product_name_config = self.env['ir.config_parameter'].sudo().get_param( auto_generate_internal_ref = self.env['ir.config_parameter'].sudo().get_param(
'product_internal_ref_generator.product_name_config') 'product_internal_ref_generator.auto_generate_internal_ref')
pro_name_digit = self.env['ir.config_parameter'].sudo().get_param( if auto_generate_internal_ref:
'product_internal_ref_generator.pro_name_digit') product_name_config = self.env['ir.config_parameter'].sudo().get_param(
pro_name_separator = self.env['ir.config_parameter'].sudo().get_param( 'product_internal_ref_generator.product_name_config')
'product_internal_ref_generator.pro_name_separator') pro_name_digit = self.env['ir.config_parameter'].sudo().get_param(
pro_categ_config = self.env['ir.config_parameter'].sudo().get_param( 'product_internal_ref_generator.pro_name_digit')
'product_internal_ref_generator.pro_categ_config') pro_name_separator = self.env['ir.config_parameter'].sudo().get_param(
pro_categ_digit = self.env['ir.config_parameter'].sudo().get_param( 'product_internal_ref_generator.pro_name_separator')
'product_internal_ref_generator.pro_categ_digit') pro_categ_config = self.env['ir.config_parameter'].sudo().get_param(
pro_categ_separator = self.env['ir.config_parameter'].sudo().get_param( 'product_internal_ref_generator.pro_categ_config')
'product_internal_ref_generator.pro_categ_separator') pro_categ_digit = self.env['ir.config_parameter'].sudo().get_param(
for rec in res: 'product_internal_ref_generator.pro_categ_digit')
default_code = '' pro_categ_separator = self.env['ir.config_parameter'].sudo().get_param(
if rec.detailed_type == 'consu': 'product_internal_ref_generator.pro_categ_separator')
default_code += 'Consu:' for rec in res:
elif rec.detailed_type == 'service': default_code = ''
default_code += 'Servi:' if rec.detailed_type == 'consu':
elif rec.detailed_type == 'product': default_code += 'Consu:'
default_code += 'Stora:' elif rec.detailed_type == 'service':
if product_name_config: default_code += 'Servi:'
if rec.name: elif rec.detailed_type == 'product':
default_code += rec.name[:int(pro_name_digit)] default_code += 'Stora:'
default_code += pro_name_separator if product_name_config:
if pro_categ_config: if rec.name:
if rec.categ_id.name: default_code += rec.name[:int(pro_name_digit)]
default_code += rec.categ_id.name[:int(pro_categ_digit)] default_code += pro_name_separator
default_code += pro_categ_separator if pro_categ_config:
sequence_code = 'product.sequence.ref' if rec.categ_id.name:
default_code += self.env['ir.sequence'].next_by_code( default_code += rec.categ_id.name[:int(pro_categ_digit)]
sequence_code) default_code += pro_categ_separator
rec.default_code = default_code sequence_code = 'product.sequence.ref'
default_code += self.env['ir.sequence'].next_by_code(
sequence_code)
rec.default_code = default_code
return res return res
@api.model @api.model
@ -88,23 +91,24 @@ class ProductProduct(models.Model):
'ir.config_parameter'].sudo().get_param( 'ir.config_parameter'].sudo().get_param(
'product_internal_ref_generator.pro_categ_separator') 'product_internal_ref_generator.pro_categ_separator')
for rec in products: for rec in products:
default_code = '' if not rec.default_code:
if rec.detailed_type == 'consu': default_code = ''
default_code += 'Consu:' if rec.detailed_type == 'consu':
elif rec.detailed_type == 'service': default_code += 'Consu:'
default_code += 'Servi:' elif rec.detailed_type == 'service':
elif rec.detailed_type == 'product': default_code += 'Servi:'
default_code += 'Stora:' elif rec.detailed_type == 'product':
if product_name_config: default_code += 'Stora:'
if rec.name: if product_name_config:
default_code += rec.name[:int(pro_name_digit)] if rec.name:
default_code += pro_name_separator default_code += rec.name[:int(pro_name_digit)]
if pro_categ_config: default_code += pro_name_separator
if rec.categ_id.name: if pro_categ_config:
default_code += rec.categ_id.name[:int(pro_categ_digit)] if rec.categ_id.name:
default_code += pro_categ_separator default_code += rec.categ_id.name[:int(pro_categ_digit)]
sequence_code = 'product.sequence.ref' default_code += pro_categ_separator
default_code += self.env['ir.sequence'].next_by_code( sequence_code = 'product.sequence.ref'
sequence_code) default_code += self.env['ir.sequence'].next_by_code(
rec.default_code = default_code sequence_code)
rec.default_code = default_code
return self return self

148
product_internal_ref_generator/models/product_template.py

@ -30,56 +30,59 @@ class ProductTemplate(models.Model):
def create(self, vals_list): def create(self, vals_list):
"""supering the create function, generating the internal reference""" """supering the create function, generating the internal reference"""
res = super().create(vals_list) res = super().create(vals_list)
auto_generate_internal_ref = self.env['ir.config_parameter'].sudo().get_param( if 'default_code' in vals_list:
'product_internal_ref_generator.auto_generate_internal_ref') pass
if auto_generate_internal_ref: else:
product_name_config = self.env[ auto_generate_internal_ref = self.env['ir.config_parameter'].sudo().get_param(
'ir.config_parameter'].sudo().get_param( 'product_internal_ref_generator.auto_generate_internal_ref')
'product_internal_ref_generator.product_name_config') if auto_generate_internal_ref:
pro_name_digit = self.env['ir.config_parameter'].sudo().get_param( product_name_config = self.env[
'product_internal_ref_generator.pro_name_digit') 'ir.config_parameter'].sudo().get_param(
pro_name_separator = self.env[ 'product_internal_ref_generator.product_name_config')
'ir.config_parameter'].sudo().get_param( pro_name_digit = self.env['ir.config_parameter'].sudo().get_param(
'product_internal_ref_generator.pro_name_separator') 'product_internal_ref_generator.pro_name_digit')
pro_categ_config = self.env['ir.config_parameter'].sudo().get_param( pro_name_separator = self.env[
'product_internal_ref_generator.pro_categ_config') 'ir.config_parameter'].sudo().get_param(
pro_categ_digit = self.env['ir.config_parameter'].sudo().get_param( 'product_internal_ref_generator.pro_name_separator')
'product_internal_ref_generator.pro_categ_digit') pro_categ_config = self.env['ir.config_parameter'].sudo().get_param(
pro_categ_separator = self.env[ 'product_internal_ref_generator.pro_categ_config')
'ir.config_parameter'].sudo().get_param( pro_categ_digit = self.env['ir.config_parameter'].sudo().get_param(
'product_internal_ref_generator.pro_categ_separator') 'product_internal_ref_generator.pro_categ_digit')
pro_template_config = self.env[ pro_categ_separator = self.env[
'ir.config_parameter'].sudo().get_param( 'ir.config_parameter'].sudo().get_param(
'product_internal_ref_generator.pro_template_config') 'product_internal_ref_generator.pro_categ_separator')
pro_template_digit = self.env[ pro_template_config = self.env[
'ir.config_parameter'].sudo().get_param( 'ir.config_parameter'].sudo().get_param(
'product_internal_ref_generator.pro_template_digit') 'product_internal_ref_generator.pro_template_config')
pro_template_separator = self.env[ pro_template_digit = self.env[
'ir.config_parameter'].sudo().get_param( 'ir.config_parameter'].sudo().get_param(
'product_internal_ref_generator.pro_template_separator') 'product_internal_ref_generator.pro_template_digit')
for rec in res: pro_template_separator = self.env[
default_code = '' 'ir.config_parameter'].sudo().get_param(
if rec.detailed_type == 'consu': 'product_internal_ref_generator.pro_template_separator')
default_code += 'Consu:' for rec in res:
elif rec.detailed_type == 'service': default_code = ''
default_code += 'Servi:' if rec.detailed_type == 'consu':
elif rec.detailed_type == 'product': default_code += 'Consu:'
default_code += 'Stora:' elif rec.detailed_type == 'service':
if product_name_config: default_code += 'Servi:'
default_code += rec.name[:int(pro_name_digit)] elif rec.detailed_type == 'product':
default_code += pro_name_separator default_code += 'Stora:'
if pro_categ_config: if product_name_config:
default_code += rec.categ_id.name[:int(pro_categ_digit)] default_code += rec.name[:int(pro_name_digit)]
default_code += pro_categ_separator default_code += pro_name_separator
if pro_template_config: if pro_categ_config:
for attribute in rec.attribute_line_ids: default_code += rec.categ_id.name[:int(pro_categ_digit)]
for value in attribute.value_ids: default_code += pro_categ_separator
default_code += value.name[:int(pro_template_digit)] if pro_template_config:
default_code += pro_template_separator for attribute in rec.attribute_line_ids:
sequence_code = 'attribute.sequence.ref' for value in attribute.value_ids:
default_code += self.env['ir.sequence'].next_by_code( default_code += value.name[:int(pro_template_digit)]
sequence_code) default_code += pro_template_separator
rec.default_code = default_code sequence_code = 'attribute.sequence.ref'
default_code += self.env['ir.sequence'].next_by_code(
sequence_code)
rec.default_code = default_code
return res return res
@api.model @api.model
@ -107,26 +110,27 @@ class ProductTemplate(models.Model):
'ir.config_parameter'].sudo().get_param( 'ir.config_parameter'].sudo().get_param(
'product_internal_ref_generator.pro_template_separator') 'product_internal_ref_generator.pro_template_separator')
for rec in products: for rec in products:
default_code = '' if not rec.default_code:
if rec.detailed_type == 'consu': default_code = ''
default_code += 'Consu:' if rec.detailed_type == 'consu':
elif rec.detailed_type == 'service': default_code += 'Consu:'
default_code += 'Servi:' elif rec.detailed_type == 'service':
elif rec.detailed_type == 'product': default_code += 'Servi:'
default_code += 'Stora:' elif rec.detailed_type == 'product':
if product_name_config: default_code += 'Stora:'
default_code += rec.name[:int(pro_name_digit)] if product_name_config:
default_code += pro_name_separator default_code += rec.name[:int(pro_name_digit)]
if pro_categ_config: default_code += pro_name_separator
default_code += rec.categ_id.name[:int(pro_categ_digit)] if pro_categ_config:
default_code += pro_categ_separator default_code += rec.categ_id.name[:int(pro_categ_digit)]
if pro_template_config: default_code += pro_categ_separator
for attribute in rec.attribute_line_ids: if pro_template_config:
for value in attribute.value_ids: for attribute in rec.attribute_line_ids:
default_code += value.name[:int(pro_template_digit)] for value in attribute.value_ids:
default_code += pro_template_separator default_code += value.name[:int(pro_template_digit)]
sequence_code = 'attribute.sequence.ref' default_code += pro_template_separator
default_code += self.env['ir.sequence'].next_by_code( sequence_code = 'attribute.sequence.ref'
sequence_code) default_code += self.env['ir.sequence'].next_by_code(
rec.default_code = default_code sequence_code)
rec.default_code = default_code
return self return self

Loading…
Cancel
Save