Browse Source

Feb 18 [IMP] : Bug fixed, Feature Updated 'product_barcode'

pull/259/head
AjmalCybro 2 years ago
parent
commit
7f0baa2ae4
  1. 2
      product_barcode/__manifest__.py
  2. 17
      product_barcode/models/product_form.py

2
product_barcode/__manifest__.py

@ -22,7 +22,7 @@
{ {
'name': 'Product Barcode Generator', 'name': 'Product Barcode Generator',
'version': '13.0.1.2.0', 'version': '13.0.1.2.1',
'summary': 'Generates EAN13 Standard Barcode for Product.', 'summary': 'Generates EAN13 Standard Barcode for Product.',
'category': 'Inventory', 'category': 'Inventory',
'author': 'Cybrosys Techno solutions', 'author': 'Cybrosys Techno solutions',

17
product_barcode/models/product_form.py

@ -32,8 +32,7 @@ class ProductAutoBarcode(models.Model):
def create(self, vals): def create(self, vals):
res = super(ProductAutoBarcode, self).create(vals) res = super(ProductAutoBarcode, self).create(vals)
ean = generate_ean(str(res.id)) ean = generate_ean(str(res.id))
res.barcode = ean res.barcode = '21' + ean[2:]
print("res.barcode",res.barcode)
return res return res
@ -69,19 +68,17 @@ def check_ean(eancode):
int(eancode) int(eancode)
except: except:
return False return False
return ean_checksum(eancode) == int(eancode[-1]) return ean_checksum(eancode)
def generate_ean(ean): def generate_ean(ean):
"""Creates and returns a valid ean13 from an invalid one""" """Creates and returns a valid ean13 from an invalid one"""
if not ean: if not ean:
return "0000000000000" return "0000000000000"
ean = re.sub("[A-Za-z]", "0", ean) product_identifier = '00000000000' + ean
ean = re.sub("[^0-9]", "", ean) ean = product_identifier[-11:]
ean = ean[:13] check_number = check_ean(ean + '00')
if len(ean) < 13: return f'{ean}0{check_number}'
ean = ean + '0' * (13 - len(ean))
return ean[:-1] + str(ean_checksum(ean))
class ProductTemplateAutoBarcode(models.Model): class ProductTemplateAutoBarcode(models.Model):
@ -91,7 +88,7 @@ class ProductTemplateAutoBarcode(models.Model):
def create(self, vals_list): def create(self, vals_list):
templates = super(ProductTemplateAutoBarcode, self).create(vals_list) templates = super(ProductTemplateAutoBarcode, self).create(vals_list)
ean = generate_ean(str(templates.id)) ean = generate_ean(str(templates.id))
templates.barcode = ean templates.barcode = '22' + ean[2:]
return templates return templates

Loading…
Cancel
Save