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',
'version': '15.0.1.1.1',
'version': '15.0.1.1.2',
'summary': 'Generates EAN13 Standard Barcode for Product.',
'live_test_url': 'https://www.youtube.com/watch?v=0BrFcOEkWu4&feature=youtu.be',
'category': 'Inventory',

16
product_barcode/models/product_form.py

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

Loading…
Cancel
Save