diff --git a/htdocs/admin/barcode.php b/htdocs/admin/barcode.php index 39e059d3c971bdb319bd4e3b3688fb6d7f50d430..3670f766b6865bfd04fa394f0d0f246711ccd116 100644 --- a/htdocs/admin/barcode.php +++ b/htdocs/admin/barcode.php @@ -1,8 +1,8 @@ <?php -/* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> - * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net> - * Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr> - * Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es> +/* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> + * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net> + * Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr> + * Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es> * * 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 @@ -108,11 +108,11 @@ clearstatcache(); // Scan list of all barcode included provided by external modules -$dirbarcode=array_merge(array("/core/modules/barcode/"),$conf->modules_parts['barcode']); +$dirbarcode=array_merge(array("/core/modules/barcode/"), $conf->modules_parts['barcode']); foreach($dirbarcode as $reldir) { - $dir=dol_buildpath($reldir,0); + $dir=dol_buildpath($reldir); $newdir=dol_osencode($dir); // Check if directory exists (we do not use dol_is_dir to avoid loading files.lib.php) diff --git a/htdocs/core/modules/DolibarrModules.class.php b/htdocs/core/modules/DolibarrModules.class.php index 5653c8977cd19aa8c93d96c29db3e3d03b7ec9de..843f7e40cacc7f4a6669455e2e4eadc362abddd6 100644 --- a/htdocs/core/modules/DolibarrModules.class.php +++ b/htdocs/core/modules/DolibarrModules.class.php @@ -62,7 +62,7 @@ abstract class DolibarrModules */ function _init($array_sql, $options='') { - global $langs; + global $conf, $langs; $err=0; $this->db->begin(); @@ -113,6 +113,9 @@ abstract class DolibarrModules $sql=$val; } + // Add current entity id + $sql=str_replace('__ENTITY__', $conf->entity, $sql); + dol_syslog(get_class($this)."::_init ignoreerror=".$ignoreerror." sql=".$sql, LOG_DEBUG); $result=$this->db->query($sql); if (! $result) diff --git a/htdocs/core/modules/modBarcode.class.php b/htdocs/core/modules/modBarcode.class.php index 34cd7aac886bff0ca574dbf654651181eab2717a..aef4e0426d401ab7709cc5b700042e042080687b 100644 --- a/htdocs/core/modules/modBarcode.class.php +++ b/htdocs/core/modules/modBarcode.class.php @@ -112,9 +112,16 @@ class modBarcode extends DolibarrModules // Permissions $this->remove($options); - $sql = array(); - - return $this->_init($sql,$options); + $sql = array( + array('sql'=>'INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ("EAN8", "EAN8", 0, "1234567", __ENTITY__)','ignoreerror'=>1), + array('sql'=>'INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ("EAN13", "EAN13", 0, "123456789012", __ENTITY__)','ignoreerror'=>1), + array('sql'=>'INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ("UPC", "UPC", 0, "123456789012", __ENTITY__)','ignoreerror'=>1), + array('sql'=>'INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ("ISBN", "ISBN", 0, "123456789", __ENTITY__)','ignoreerror'=>1), + array('sql'=>'INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ("C39", "Code 39", 0, "1234567890", __ENTITY__)','ignoreerror'=>1), + array('sql'=>'INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ("C128", "Code 128", 0, "ABCD1234567890", __ENTITY__)','ignoreerror'=>1) + ); + + return $this->_init($sql, $options); } /** @@ -129,7 +136,7 @@ class modBarcode extends DolibarrModules { $sql = array(); - return $this->_remove($sql,$options); + return $this->_remove($sql, $options); } } diff --git a/htdocs/install/mysql/data/llx_c_barcode_type.sql b/htdocs/install/mysql/data/llx_c_barcode_type.sql deleted file mode 100644 index af10d8d1e76065af45a7717f33a487f3839d8177..0000000000000000000000000000000000000000 --- a/htdocs/install/mysql/data/llx_c_barcode_type.sql +++ /dev/null @@ -1,37 +0,0 @@ --- Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> --- Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org> --- Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net> --- Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be> --- Copyright (C) 2004 Guillaume Delecourt <guillaume.delecourt@opensides.be> --- Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr> --- Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com> --- --- 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, see <http://www.gnu.org/licenses/>. --- --- - --- --- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors --- de l'install et tous les sigles '--' sont supprimés. --- - --- --- Codes barres --- -INSERT INTO llx_c_barcode_type (rowid, code, libelle, coder, example) VALUES (1, 'EAN8', 'EAN8', 0, '1234567'); -INSERT INTO llx_c_barcode_type (rowid, code, libelle, coder, example) VALUES (2, 'EAN13', 'EAN13', 0, '123456789012'); -INSERT INTO llx_c_barcode_type (rowid, code, libelle, coder, example) VALUES (3, 'UPC', 'UPC', 0, '123456789012'); -INSERT INTO llx_c_barcode_type (rowid, code, libelle, coder, example) VALUES (4, 'ISBN', 'ISBN', 0, '123456789'); -INSERT INTO llx_c_barcode_type (rowid, code, libelle, coder, example) VALUES (5, 'C39', 'Code 39', 0, '1234567890'); -INSERT INTO llx_c_barcode_type (rowid, code, libelle, coder, example) VALUES (6, 'C128', 'Code 128', 0, 'ABCD1234567890'); diff --git a/htdocs/install/mysql/migration/3.1.0-3.2.0.sql b/htdocs/install/mysql/migration/3.1.0-3.2.0.sql index 39d346c1de2f8237affb1dacddf7aa5d52fe747a..2f2e898261404548cb70027612758e2603b35e34 100755 --- a/htdocs/install/mysql/migration/3.1.0-3.2.0.sql +++ b/htdocs/install/mysql/migration/3.1.0-3.2.0.sql @@ -460,3 +460,5 @@ UPDATE llx_product SET canvas = NULL where canvas = 'product@product'; UPDATE llx_product SET canvas = NULL where canvas = 'service@product'; DELETE FROM llx_const WHERE __DECRYPT('name')__ = 'SOCIETE_CODECOMPTA_ADDON' AND __DECRYPT('value')__ = 'mod_codecompta_digitaria'; + +ALTER TABLE llx_c_barcode_type ADD UNIQUE INDEX uk_c_barcode_type(code, entity); diff --git a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql index db42038ce7421aa2327124c5c5e58451f34ba7cf..3685e5a56e370d2795b2318727fd5f7c773ab77a 100755 --- a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql +++ b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql @@ -70,5 +70,7 @@ ALTER TABLE llx_commande_fournisseur CHANGE fk_methode_commande fk_input_method INSERT INTO llx_const (name, value, type, note, visible) values ('PRODUCT_CODEPRODUCT_ADDON','mod_codeproduct_leopard','yesno','Module to control product codes',0); +ALTER TABLE llx_c_barcode_type ADD UNIQUE INDEX uk_c_barcode_type(code, entity); + ALTER TABLE llx_propaldet ADD COLUMN label varchar(255) DEFAULT NULL AFTER fk_product; diff --git a/htdocs/install/mysql/tables/llx_c_barcode_type.key.sql b/htdocs/install/mysql/tables/llx_c_barcode_type.key.sql new file mode 100755 index 0000000000000000000000000000000000000000..ca4cf7fc898278fbe956a7f8c6183ffbcbb2b068 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_c_barcode_type.key.sql @@ -0,0 +1,19 @@ +-- ======================================================================== +-- Copyright (C) 2012 Regis Houssin <regis@dolibarr.fr> +-- +-- 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, see <http://www.gnu.org/licenses/>. +-- +-- ======================================================================== + +ALTER TABLE llx_c_barcode_type ADD UNIQUE INDEX uk_c_barcode_type(code, entity);