Browse Source

Apr 25 [UPDT] : Bug Fixed 'product_barcode'

pull/254/head
AjmalCybro 2 years ago
parent
commit
b98c018f47
  1. 2
      product_barcode/__manifest__.py
  2. 16
      product_barcode/models/product_form.py

2
product_barcode/__manifest__.py

@ -22,7 +22,7 @@
{ {
'name': 'Product Barcode Generator', 'name': 'Product Barcode Generator',
'version': '15.0.1.1.1', 'version': '15.0.1.1.2',
'summary': 'Generates EAN13 Standard Barcode for Product.', 'summary': 'Generates EAN13 Standard Barcode for Product.',
'live_test_url': 'https://www.youtube.com/watch?v=0BrFcOEkWu4&feature=youtu.be', 'live_test_url': 'https://www.youtube.com/watch?v=0BrFcOEkWu4&feature=youtu.be',
'category': 'Inventory', 'category': 'Inventory',

16
product_barcode/models/product_form.py

@ -32,7 +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:]
return res return res
@ -68,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):
@ -90,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