Alexandre Fayolle - camptocamp has proposed merging lp:~camptocamp/openerp-product-attributes/7.0-add_product_gtin-afe into lp:openerp-product-attributes.
Requested reviews: Product Core Editors (product-core-editors) For more details, see: https://code.launchpad.net/~camptocamp/openerp-product-attributes/7.0-add_product_gtin-afe/+merge/222760 replace product_gtin with chricar_product_gtin (from c2c-rd-addons), which works (whereas the existing module was not installable). I ported the history of changes of that addon using bazaar-extractor, and Alexis de Lattre did the actual porting to V7 + OCA coding standards -- https://code.launchpad.net/~camptocamp/openerp-product-attributes/7.0-add_product_gtin-afe/+merge/222760 Your team Product Core Editors is requested to review the proposed merge of lp:~camptocamp/openerp-product-attributes/7.0-add_product_gtin-afe into lp:openerp-product-attributes.
=== added directory 'product_gtin' === removed directory 'product_gtin' === added file 'product_gtin/__init__.py' --- product_gtin/__init__.py 1970-01-01 00:00:00 +0000 +++ product_gtin/__init__.py 2014-06-11 08:42:55 +0000 @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Product GTIN module for OpenERP +# Copyright (c) 2004 TINY SPRL. (http://tiny.be) All Rights Reserved. +# Fabien Pinckaers <f...@tiny.be> +# Copyright (c) 2008 ChriCar Beteilugungs- und Beratungs- GmbH +# All Rights Reserved. +# Ferdinand Gassauer <t...@chricar.at> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from . import product_gtin === removed file 'product_gtin/__init__.py' --- product_gtin/__init__.py 2009-04-09 07:06:02 +0000 +++ product_gtin/__init__.py 1970-01-01 00:00:00 +0000 @@ -1,31 +0,0 @@ -############################################################################## -# -# Copyright (c) 2004 TINY SPRL. (http://tiny.be) All Rights Reserved. -# Fabien Pinckaers <f...@tiny.be> -# Copyright (c) 2008 ChriCar Beteilugungs- und Beratungs- GmbH All Rights Reserved. -# Ferdinand Gassauer <t...@chricar.at> -# -# WARNING: This program as such is intended to be used by professional -# programmers who take the whole responsability of assessing all potential -# consequences resulting from its eventual inadequacies and bugs -# End users who are looking for a ready-to-use solution with commercial -# garantees and support are strongly adviced to contract a Free Software -# Service Company -# -# This program is Free Software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################## - -import product_gtin \ No newline at end of file === added file 'product_gtin/__openerp__.py' --- product_gtin/__openerp__.py 1970-01-01 00:00:00 +0000 +++ product_gtin/__openerp__.py 2014-06-11 08:42:55 +0000 @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Product GTIN module for OpenERP +# Copyright (C) 2004-2011 Tiny SPRL (<http://tiny.be>). +# Copyright (C) 2010-2011 Camptocamp Austria (<http://www.camptocamp.at>) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +{ + "name": "Product GTIN EAN8 EAN13 UPC JPC Support", + "version": "1.1", + "author": "ChriCar Beteiligungs- und Beratungs- GmbH", + "website": "http://www.chricar.at/ChriCar", + "category": "Sales Management", + "depends": ["product"], + "description": """ +Product GTIN module +=================== + +Replaces the EAN13 field on products, partners and packaging by a field with the same technical name that accepts EAN13, EAN8, JPC, UPC and GTIN. + """, + "demo": [], + "data": [], + "installable": True, +} === removed file 'product_gtin/__terp__.py' --- product_gtin/__terp__.py 2013-01-21 06:49:06 +0000 +++ product_gtin/__terp__.py 1970-01-01 00:00:00 +0000 @@ -1,17 +0,0 @@ -{ - "name" : "Invalid - Please use chricar_product_gtin instead Product GTIN EAN UPC JPC Support", - "version" : "1.0", - "author" : "ChriCar Beteiligungs- und Beratungs- GmbH", - "website" : "http://www.chricar.at/ChriCar", - "category" : "Generic Modules/Others", - "depends" : ["product"], - "description" : """ -Replaces the EAN13 code completion with a checkroutine for EAN13, EAN8, UPC and GTIN. -It allows to support different types of barcodes systems. - """, - "init_xml" : [], - "demo_xml" : [], - "update_xml" : [], - "active": False, - 'installable': False -} === added directory 'product_gtin/i18n' === removed directory 'product_gtin/i18n' === added file 'product_gtin/i18n/de.po' --- product_gtin/i18n/de.po 1970-01-01 00:00:00 +0000 +++ product_gtin/i18n/de.po 2014-06-11 08:42:55 +0000 @@ -0,0 +1,40 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * chricar_product_gtin +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 6.1rc1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-01-23 22:06+0000\n" +"PO-Revision-Date: 2012-01-24 01:28+0000\n" +"Last-Translator: Joël Grand-Guillaume @ CampToCamp " +"<joel.grandguilla...@camptocamp.com>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-10-23 05:13+0000\n" +"X-Generator: Launchpad (build 16179)\n" + +#. module: chricar_product_gtin +#: model:ir.model,name:chricar_product_gtin.model_product_packaging +msgid "Packaging" +msgstr "Verpackung" + +#. module: chricar_product_gtin +#: model:ir.model,name:chricar_product_gtin.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: chricar_product_gtin +#: model:ir.model,name:chricar_product_gtin.model_product_product +msgid "Product" +msgstr "Produkt" + +#. module: chricar_product_gtin +#: constraint:product.packaging:0 +#: constraint:product.product:0 +#: constraint:res.partner:0 +msgid "Error: Invalid EAN code" +msgstr "Fehler: ungültiger EAN Code" === removed file 'product_gtin/i18n/fr_BE.po' --- product_gtin/i18n/fr_BE.po 2014-05-17 07:09:00 +0000 +++ product_gtin/i18n/fr_BE.po 1970-01-01 00:00:00 +0000 @@ -1,32 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * product_gtin -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.6\n" -"Report-Msgid-Bugs-To: supp...@openerp.com\n" -"POT-Creation-Date: 2009-11-25 13:29+0000\n" -"PO-Revision-Date: 2014-03-11 12:21+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-05-17 07:08+0000\n" -"X-Generator: Launchpad (build 17007)\n" - -#. module: product_gtin -#: model:ir.module.module,description:product_gtin.module_meta_information -msgid "" -"\n" -"Replaces the EAN13 code completion with a checkroutine for EAN13, EAN8, UPC " -"and GTIN.\n" -"It allows to support different types of barcodes systems.\n" -" " -msgstr "" - -#. module: product_gtin -#: model:ir.module.module,shortdesc:product_gtin.module_meta_information -msgid "Product GTIN EAN UPC JPC Support" -msgstr "" === added file 'product_gtin/i18n/product_gtin.pot' --- product_gtin/i18n/product_gtin.pot 1970-01-01 00:00:00 +0000 +++ product_gtin/i18n/product_gtin.pot 2014-06-11 08:42:55 +0000 @@ -0,0 +1,39 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * product_gtin +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-10 22:04+0000\n" +"PO-Revision-Date: 2014-06-10 22:04+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: product_gtin +#: constraint:product.packaging:0 +#: constraint:product.product:0 +#: constraint:res.partner:0 +msgid "Error: Invalid EAN code" +msgstr "" + +#. module: product_gtin +#: model:ir.model,name:product_gtin.model_product_packaging +msgid "Packaging" +msgstr "" + +#. module: product_gtin +#: model:ir.model,name:product_gtin.model_res_partner +msgid "Partner" +msgstr "" + +#. module: product_gtin +#: model:ir.model,name:product_gtin.model_product_product +msgid "Product" +msgstr "" + === removed file 'product_gtin/i18n/product_gtin.pot' --- product_gtin/i18n/product_gtin.pot 2010-01-04 05:32:54 +0000 +++ product_gtin/i18n/product_gtin.pot 1970-01-01 00:00:00 +0000 @@ -1,30 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * product_gtin -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.6\n" -"Report-Msgid-Bugs-To: supp...@openerp.com\n" -"POT-Creation-Date: 2009-11-25 13:29:40+0000\n" -"PO-Revision-Date: 2009-11-25 13:29:40+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: product_gtin -#: model:ir.module.module,description:product_gtin.module_meta_information -msgid "\n" -"Replaces the EAN13 code completion with a checkroutine for EAN13, EAN8, UPC and GTIN.\n" -"It allows to support different types of barcodes systems.\n" -" " -msgstr "" - -#. module: product_gtin -#: model:ir.module.module,shortdesc:product_gtin.module_meta_information -msgid "Product GTIN EAN UPC JPC Support" -msgstr "" - === removed file 'product_gtin/i18n/sv.po' --- product_gtin/i18n/sv.po 2014-05-17 07:09:00 +0000 +++ product_gtin/i18n/sv.po 1970-01-01 00:00:00 +0000 @@ -1,36 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * product_gtin -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.14\n" -"Report-Msgid-Bugs-To: supp...@openerp.com\n" -"POT-Creation-Date: 2009-11-25 13:29+0000\n" -"PO-Revision-Date: 2014-03-11 12:44+0000\n" -"Last-Translator: Graeme Gellatly <Unknown>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-05-17 07:08+0000\n" -"X-Generator: Launchpad (build 17007)\n" - -#. module: product_gtin -#: model:ir.module.module,description:product_gtin.module_meta_information -msgid "" -"\n" -"Replaces the EAN13 code completion with a checkroutine for EAN13, EAN8, UPC " -"and GTIN.\n" -"It allows to support different types of barcodes systems.\n" -" " -msgstr "" -"\n" -"Ersätter EAN13-koden med en kontrollrutin för EAN13, EAN8, UPC och GTIN.\n" -"den tillåter användning av flera typer av streckkodsystem.\n" -" " - -#. module: product_gtin -#: model:ir.module.module,shortdesc:product_gtin.module_meta_information -msgid "Product GTIN EAN UPC JPC Support" -msgstr "Product GTIN EAN UPC JPC Support" === added file 'product_gtin/product_gtin.py' --- product_gtin/product_gtin.py 1970-01-01 00:00:00 +0000 +++ product_gtin/product_gtin.py 2014-06-11 08:42:55 +0000 @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Product GTIN module for OpenERP +# Copyright (C) 2004-2011 Tiny SPRL (<http://tiny.be>). +# Copyright (C) 2010-2011 Camptocamp (<http://www.camptocamp.at>) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from openerp.osv import orm, fields +import operator + + +def is_pair(x): + return not x % 2 + + +def check_ean(eancode): + if not eancode: + return True + if not len(eancode) in [8, 12, 13, 14]: + return False + try: + int(eancode) + except: + return False + sum = 0 + ean13_len = int(len(eancode)) + for i in range(ean13_len-1): + pos = int(ean13_len-2-i) + if is_pair(i): + sum += 3 * int(eancode[pos]) + else: + sum += int(eancode[pos]) + check = 10 - operator.mod(sum, 10) + if check == 10: + check = 0 + if check != int(eancode[ean13_len-1]): # last digit + return False + return True + + +class product_product(orm.Model): + _inherit = "product.product" + + def _check_ean_key(self, cr, uid, ids): + for rec in self.browse(cr, uid, ids): + if not check_ean(rec.ean13): + return False + return True + + _columns = { + 'ean13': fields.char( + 'EAN', size=14, + help="Code for EAN8 EAN13 UPC JPC GTIN " + "http://en.wikipedia.org/wiki/Global_Trade_Item_Number"), + } + + _constraints = [(_check_ean_key, 'Error: Invalid EAN code', ['ean13'])] + + +class product_packaging(orm.Model): + _inherit = "product.packaging" + + def _check_ean_key(self, cr, uid, ids): + for rec in self.browse(cr, uid, ids): + if not check_ean(rec.ean): + return False + return True + + _columns = { + 'ean': fields.char( + 'EAN', size=14, + help='Barcode number for EAN8 EAN13 UPC JPC GTIN'), + } + + _constraints = [(_check_ean_key, 'Error: Invalid EAN code', ['ean'])] + + +class res_partner(orm.Model): + _inherit = "res.partner" + + def _check_ean_key(self, cr, uid, ids): + for rec in self.browse(cr, uid, ids): + if not check_ean(rec.ean13): + return False + return True + + _columns = { + 'ean13': fields.char( + 'EAN', size=14, + help="Code for EAN8 EAN13 UPC JPC GTIN " + "http://en.wikipedia.org/wiki/Global_Trade_Item_Number"), + } + + _constraints = [(_check_ean_key, 'Error: Invalid EAN code', ['ean13'])] === removed file 'product_gtin/product_gtin.py' --- product_gtin/product_gtin.py 2009-04-09 07:06:02 +0000 +++ product_gtin/product_gtin.py 1970-01-01 00:00:00 +0000 @@ -1,105 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Copyright (c) 2004-2006 TINY SPRL. (http://tiny.be) All Rights Reserved. -# -# $Id: account.py 1005 2005-07-25 08:41:42Z nicoe $ -# -# WARNING: This program as such is intended to be used by professional -# programmers who take the whole responsability of assessing all potential -# consequences resulting from its eventual inadequacies and bugs -# End users who are looking for a ready-to-use solution with commercial -# garantees and support are strongly adviced to contract a Free Software -# Service Company -# -# This program is Free Software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################## - - -import netsvc -from osv import fields, osv -#import pooler -#import wizard -import math -#from _common import rounding - -#import product - -# need to replace the check_ean_key function -class product_product(osv.osv): - _inherit = "product.product" - _name = "product.product" - _columns = { - 'ean13': fields.char('EAN UPC JPC GTIN', size=14), - } - def _check_ean_key(self, cr, uid, ids): - def is_pair(x): - return not x%2 - for product in self.browse(cr, uid, ids): - if not product.ean13: - continue - if not len(product.ean13) in [8,12,13,14]: - return False - try: - int(product.ean13) - except: - return False - sum=0 - ean_len=len(product.ean13) - for i in range(ean_len-1): - pos=int(ean_len-2-i) - if is_pair(i): - sum += 3 * int(product.ean13[pos]) - else: - sum += int(product.ean13[pos]) - check = int(math.ceil(sum / 10.0) * 10 - sum) - if check != int(product.ean13[ean_len-1]): # last digit - return False - return True - _constraints = [(_check_ean_key, 'Error: Invalid EAN,UPC,JPC,GTIN code', ['ean13'])] -product_product() - -class res_partner(osv.osv): - _inherit = "res.partner" - def _check_ean_key(self, cr, uid, ids): - def is_pair(x): - return not x%2 - for partner in self.browse(cr, uid, ids): - if not partner.ean13: - continue - if not len(partner.ean13) in [8,12,13,14]: - return False - try: - int(partner.ean13) - except: - return False - sum=0 - ean_len=len(partner.ean13) - for i in range(ean_len-1): - pos=int(ean_len-2-i) - if is_pair(i): - sum += 3 * int(partner.ean13[pos]) - else: - sum += int(partner.ean13[pos]) - check = int(math.ceil(sum / 10.0) * 10 - sum) - if check != int(partner.ean13[ean_len-1]): # last digit - return False - return True - - _constraints = [(_check_ean_key, 'Error: Invalid EAN,UPC,JPC,GTIN code', ['ean13'])] - -res_partner() -
-- Mailing list: https://launchpad.net/~openerp-community-reviewer Post to : openerp-community-reviewer@lists.launchpad.net Unsubscribe : https://launchpad.net/~openerp-community-reviewer More help : https://help.launchpad.net/ListHelp