← Back to team overview

openerp-india team mailing list archive

[Bug 1050648] [NEW] packaging EAN fails validation

 

Public bug reported:

OpenERP Server 6.1-1 
Windows sbs 2008

If I try to save a packaging EAN for a product, I have an error message
about invalid EAN.

I assume that this error is generated because the server tries to
validate the EAN code with the same validator as EAN13 BUT (here is the
but) this EAN is 14 digits.

I made some changes to the product.py file

I added this:


def check_ean14(eancode):
    if not eancode:
        return True
    if len(eancode) <> 14:
        return False
    try:
        int(eancode)
    except:
        return False
    oddsum=0
    evensum=0
    total=0
    eanvalue=eancode
    reversevalue = eanvalue[::-1]
    finalean=reversevalue[1:]

    for i in range(len(finalean)):
        if is_pair(i):
            oddsum += int(finalean[i])
        else:
            evensum += int(finalean[i])
    total=(oddsum * 3) + evensum

    check = int(10 - math.ceil(total % 10.0)) %10

    if check != int(eancode[-1]):
        return False
    return True


and modify this line from this:


  res = check_ean(pack.ean)


To this


  res = check_ean14(pack.ean)

with this I skipped the 14 characters error of the EAN but I am not sure
the method for validation is the correct for packaging EAN.

After doing this change i was able to add packaging EAN for a product.

** Affects: openobject-server
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Server.
https://bugs.launchpad.net/bugs/1050648

Title:
  packaging EAN fails validation

Status in OpenERP Server:
  New

Bug description:
  OpenERP Server 6.1-1 
  Windows sbs 2008

  If I try to save a packaging EAN for a product, I have an error
  message about invalid EAN.

  I assume that this error is generated because the server tries to
  validate the EAN code with the same validator as EAN13 BUT (here is
  the but) this EAN is 14 digits.

  I made some changes to the product.py file

  I added this:

  
  def check_ean14(eancode):
      if not eancode:
          return True
      if len(eancode) <> 14:
          return False
      try:
          int(eancode)
      except:
          return False
      oddsum=0
      evensum=0
      total=0
      eanvalue=eancode
      reversevalue = eanvalue[::-1]
      finalean=reversevalue[1:]

      for i in range(len(finalean)):
          if is_pair(i):
              oddsum += int(finalean[i])
          else:
              evensum += int(finalean[i])
      total=(oddsum * 3) + evensum

      check = int(10 - math.ceil(total % 10.0)) %10

      if check != int(eancode[-1]):
          return False
      return True

  
  and modify this line from this:

  
    res = check_ean(pack.ean)

  
  To this

  
    res = check_ean14(pack.ean)

  with this I skipped the 14 characters error of the EAN but I am not
  sure the method for validation is the correct for packaging EAN.

  After doing this change i was able to add packaging EAN for a product.

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-server/+bug/1050648/+subscriptions


Follow ups

References