Modification du fonctionnement du module codes barres

This commit is contained in:
Regis Houssin 2007-09-28 18:15:19 +00:00
parent 22ccdb3ac1
commit f2f4855d42
7 changed files with 140 additions and 90 deletions

View File

@ -31,21 +31,20 @@
require("./pre.inc.php"); require("./pre.inc.php");
$langs->load("admin"); $langs->load("admin");
$langs->load("bills");
if (!$user->admin) if (!$user->admin)
accessforbidden(); accessforbidden();
$barcode_encode_type_set = BARCODE_ENCODE_TYPE; if ($_POST["action"] == 'setcoder' && $user->admin)
$typeconst=array('yesno','texte','chaine');
if ($_GET["action"] == 'settype' && $user->admin)
{ {
if (dolibarr_set_const($db, "BARCODE_ENCODE_TYPE",$_GET["value"])) $sqlp = "UPDATE ".MAIN_DB_PREFIX."c_barcode";
$barcode_encode_type_set = $_GET["value"]; $sqlp.= " SET coder = " . $_POST["coder"];
$sqlp.= " WHERE rowid = ". $_POST["code_id"];
$resql=$db->query($sqlp);
} }
$html = new Form($db);
llxHeader('',$langs->trans("BarcodeSetup"),'BarcodeConfiguration'); llxHeader('',$langs->trans("BarcodeSetup"),'BarcodeConfiguration');
print_fiche_titre($langs->trans("BarcodeSetup"),'','setup'); print_fiche_titre($langs->trans("BarcodeSetup"),'','setup');
@ -58,43 +57,46 @@ print '<br>';
print_titre($langs->trans("BarcodeEncodeModule")); print_titre($langs->trans("BarcodeEncodeModule"));
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Name").'</td>'; print '<td>'.$langs->trans("Name").'</td>';
print '<td>'.$langs->trans("Description").'</td>'; print '<td>'.$langs->trans("Description").'</td>';
print '<td>'.$langs->trans("Example").'</td>'; print '<td width="200">'.$langs->trans("Example").'</td>';
print '<td align="center" width="60">'.$langs->trans("Default").'</td>'; print '<td align="center" width="60">'.$langs->trans("Default").'</td>';
print "</tr>\n"; print "</tr>\n";
clearstatcache(); $sql = "SELECT rowid, code, libelle, coder, example";
$var=true; $sql .= " FROM ".MAIN_DB_PREFIX."c_barcode";
$resql=$db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
$var=true;
//EAN8 while ($i < $num)
$var=!$var; {
print '<tr '.$bc[$var].'><td width="100">'; $obj = $db->fetch_object($resql);
print "EAN8";
print "</td><td>\n";
print "L'EAN se compose de 8 caractères, 7 chiffres plus une clé de contrôle.<br>"; print '<tr '.$bc[$var].'><td width="100">';
print "L'utilisation des symbologies EAN8 impose la souscription et l'abonnement auprès d'organisme tel que GENCOD.<br>"; print $obj->libelle;
print "Codes numériques utilisés exclusivement à l'identification des produits susceptibles d'être vendus au grand public."; print "</td><td>\n";
print '</td>'; print $langs->trans('BarcodeDesc'.$obj->code);
//print "L'EAN se compose de 8 caractères, 7 chiffres plus une clé de contrôle.<br>";
//print "L'utilisation des symbologies EAN8 impose la souscription et l'abonnement auprès d'organisme tel que GENCOD.<br>";
//print "Codes numériques utilisés exclusivement à l'identification des produits susceptibles d'être vendus au grand public.";
print '</td>';
// Affiche exemple // Affiche exemple
print '<td align="center"><img src="'.dol_genbarcode('1234567','EAN',2).'"></td>'; print '<td align="center"><img src="'.dol_genbarcode($obj->example,$obj->code,$obj->coder).'"></td>';
print '<td align="center">';
if ($barcode_encode_type_set == "EAN8")
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=EAN8">'.$langs->trans("Default").'</a>';
}
print "</td></tr>\n";
print '<td align="center">';
print $html->setBarcodeEncoder($obj->coder,$obj->rowid,'form'.$i);
print "</td></tr>\n";
$var=!$var;
$i++;
}
}
/*
//EAN13 //EAN13
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'><td width="100">'; print '<tr '.$bc[$var].'><td width="100">';
@ -110,15 +112,9 @@ $var=true;
print '<td align="center"><img src="'.dol_genbarcode('123456789012','EAN',1).'"></td>'; print '<td align="center"><img src="'.dol_genbarcode('123456789012','EAN',1).'"></td>';
print '<td align="center">'; print '<td align="center">';
if ($barcode_encode_type_set == "EAN13") print $html->setBarcodeEncoder('EAN13','form'.$i);
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=EAN13">'.$langs->trans("Default").'</a>';
}
print "</td></tr>\n"; print "</td></tr>\n";
$i++;
//UPC //UPC
$var=!$var; $var=!$var;
@ -135,15 +131,9 @@ $var=true;
print '<td align="center"><img src="'.dol_genbarcode('123456789012','UPC',1).'"></td>'; print '<td align="center"><img src="'.dol_genbarcode('123456789012','UPC',1).'"></td>';
print '<td align="center">'; print '<td align="center">';
if ($barcode_encode_type_set == "UPC") print $html->setBarcodeEncoder('UPC','form'.$i);
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=UPC">'.$langs->trans("Default").'</a>';
}
print "</td></tr>\n"; print "</td></tr>\n";
$i++;
//ISBN //ISBN
$var=!$var; $var=!$var;
@ -157,15 +147,9 @@ $var=true;
print '<td align="center"><img src="'.dol_genbarcode('123456789','ISBN',1).'"></td>'; print '<td align="center"><img src="'.dol_genbarcode('123456789','ISBN',1).'"></td>';
print '<td align="center">'; print '<td align="center">';
if ($barcode_encode_type_set == "ISBN") print $html->setBarcodeEncoder('ISBN','form'.$i);
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=ISBN">'.$langs->trans("Default").'</a>';
}
print "</td></tr>\n"; print "</td></tr>\n";
$i++;
//code 39 //code 39
$var=!$var; $var=!$var;
@ -183,15 +167,9 @@ $var=true;
print '<td align="center"><img src="'.dol_genbarcode('1234567890','39',1).'"></td>'; print '<td align="center"><img src="'.dol_genbarcode('1234567890','39',1).'"></td>';
print '<td align="center">'; print '<td align="center">';
if ($barcode_encode_type_set == "code39") print $html->setBarcodeEncoder('C39','form'.$i);
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=code39">'.$langs->trans("Default").'</a>';
}
print "</td></tr>\n"; print "</td></tr>\n";
$i++;
//code 128 //code 128
@ -210,15 +188,9 @@ $var=true;
print '<td align="center"><img src="'.dol_genbarcode('ABCD1234567890','128',1).'"></td>'; print '<td align="center"><img src="'.dol_genbarcode('ABCD1234567890','128',1).'"></td>';
print '<td align="center">'; print '<td align="center">';
if ($barcode_encode_type_set == "code128") print $html->setBarcodeEncoder('C128','form'.$i);
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=code128">'.$langs->trans("Default").'</a>';
}
print "</td></tr>\n"; print "</td></tr>\n";
$i++;
//I25 //I25
$var=!$var; $var=!$var;
@ -232,16 +204,10 @@ $var=true;
print '<td align="center"><img src="'.dol_genbarcode('1234567890','I25',1).'"></td>'; print '<td align="center"><img src="'.dol_genbarcode('1234567890','I25',1).'"></td>';
print '<td align="center">'; print '<td align="center">';
if ($barcode_encode_type_set == "I25") print $html->setBarcodeEncoder('I25','form'.$i);
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=I25">'.$langs->trans("Default").'</a>';
}
print "</td></tr>\n"; print "</td></tr>\n";
$i++;
*/
print "</table>\n"; print "</table>\n";
print "<br>"; print "<br>";

View File

@ -3506,6 +3506,24 @@ class Form
} }
return $ret; return $ret;
} }
/**
*
*/
function setBarcodeEncoder($selected=0,$code_id,$formName='formbarcode')
{
global $langs;
$select_encoder = '<form action="barcode.php" method="post" id="'.$formName.'">';
$select_encoder.= '<input type="hidden" name="action" value="update">';
$select_encoder.= '<input type="hidden" name="code_id" value="'.$code_id.'">';
$select_encoder.= '<select class="flat" name="coder" onChange="barcode_coder_save(\''.$formName.'\')">';
$select_encoder.= '<option value="0"'.($selected==0?' selected="true"':'').'>'.$langs->trans('Disable').'</option>';
$select_encoder.= '<option value="1"'.($selected==1?' selected="true"':'').'>php-barcode</option>';
$select_encoder.= '<option value="2"'.($selected==2?' selected="true"':'').'>pi_barcode</option>';
$select_encoder.= '</select></form>';
return $select_encoder;
}
} }
?> ?>

View File

@ -3571,8 +3571,11 @@ function viewExcelFileContent($file_to_include='',$max_rows=0,$max_cols=0)
*/ */
function dol_genbarcode($code,$encoding,$generator=1,$readable='Y') function dol_genbarcode($code,$encoding,$generator=1,$readable='Y')
{ {
if ($encoding == 'EAN8' || $encoding == 'EAN13') $encoding = 'EAN';
if ($generator == 1) if ($generator == 1)
{ {
if ($encoding == 'C39' || $encoding == 'C128') $encoding = substr($encoding,1);
$url = DOL_URL_ROOT.'/includes/barcode/php-barcode/genbarcode.php?code='.$code.'&encoding='.$encoding.'&scale=1'; $url = DOL_URL_ROOT.'/includes/barcode/php-barcode/genbarcode.php?code='.$code.'&encoding='.$encoding.'&scale=1';
} }
else if ($generator == 2) else if ($generator == 2)

View File

@ -16,6 +16,13 @@ function dolibarr_type_reload(param)
document.formsoc.submit(); document.formsoc.submit();
} }
function barcode_coder_save(formNameID)
{
var formName = document.getElementById(formNameID);
formName.action.value='setcoder';
formName.submit();
}
/*================================================================= /*=================================================================
Purpose: Pour la fonction de saisie auto des villes Purpose: Pour la fonction de saisie auto des villes
Input: postalcode,objectville Input: postalcode,objectville

View File

@ -1575,3 +1575,13 @@ INSERT INTO `llx_c_ecotaxe` (`rowid`, `code`, `libelle`, `price`, `organization`
INSERT INTO `llx_c_ecotaxe` (`rowid`, `code`, `libelle`, `price`, `organization`, `fk_pays`, `active`) VALUES (36, 'ES-A-F', 'Jouets et équipements de loisirs et de sports < 0,5 kg', 0.04200000, 'Eco-systèmes', 1, 1); INSERT INTO `llx_c_ecotaxe` (`rowid`, `code`, `libelle`, `price`, `organization`, `fk_pays`, `active`) VALUES (36, 'ES-A-F', 'Jouets et équipements de loisirs et de sports < 0,5 kg', 0.04200000, 'Eco-systèmes', 1, 1);
INSERT INTO `llx_c_ecotaxe` (`rowid`, `code`, `libelle`, `price`, `organization`, `fk_pays`, `active`) VALUES (37, 'ES-A-G', 'Jouets et équipements de loisirs et de sports > 0,5 kg', 0.17000000, 'Eco-systèmes', 1, 1); INSERT INTO `llx_c_ecotaxe` (`rowid`, `code`, `libelle`, `price`, `organization`, `fk_pays`, `active`) VALUES (37, 'ES-A-G', 'Jouets et équipements de loisirs et de sports > 0,5 kg', 0.17000000, 'Eco-systèmes', 1, 1);
INSERT INTO `llx_c_ecotaxe` (`rowid`, `code`, `libelle`, `price`, `organization`, `fk_pays`, `active`) VALUES (38, 'ES-A-H', 'Jouets et équipements de loisirs et de sports > 10 kg', 1.25000000, 'Eco-systèmes', 1, 1); INSERT INTO `llx_c_ecotaxe` (`rowid`, `code`, `libelle`, `price`, `organization`, `fk_pays`, `active`) VALUES (38, 'ES-A-H', 'Jouets et équipements de loisirs et de sports > 10 kg', 1.25000000, 'Eco-systèmes', 1, 1);
--
-- Codes barres
--
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (1, 'EAN8', 'EAN8', 0, '1234567');
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (2, 'EAN13', 'EAN13', 0, '123456789012');
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (3, 'UPC', 'UPC', 0, '123456789012');
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (4, 'ISBN', 'ISBN', 0, '123456789');
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (5, 'C39', 'Code 39', 0, '1234567890');
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (6, 'C128', 'Code 128', 0, 'ABCD1234567890');

View File

@ -881,3 +881,19 @@ ALTER TABLE llx_element_contact ADD INDEX idx_element_contact_fk_socpeople (fk_s
-- V4 DELETE llx_fichinter FROM llx_fichinter LEFT JOIN llx_societe ON llx_fichinter.fk_soc = llx_societe.rowid WHERE llx_societe.rowid IS NULL; -- V4 DELETE llx_fichinter FROM llx_fichinter LEFT JOIN llx_societe ON llx_fichinter.fk_soc = llx_societe.rowid WHERE llx_societe.rowid IS NULL;
ALTER TABLE llx_societe ADD COLUMN supplier_account varchar(32) after fournisseur; ALTER TABLE llx_societe ADD COLUMN supplier_account varchar(32) after fournisseur;
create table llx_c_barcode
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
code varchar(16) NOT NULL,
libelle varchar(50) NOT NULL,
coder integer NOT NULL DEFAULT 0,
example varchar(16) NOT NULL
)type=innodb;
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (1, 'EAN8', 'EAN8', 0, '1234567');
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (2, 'EAN13', 'EAN13', 0, '123456789012');
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (3, 'UPC', 'UPC', 0, '123456789012');
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (4, 'ISBN', 'ISBN', 0, '123456789');
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (5, 'C39', 'Code 39', 0, '1234567890');
INSERT INTO llx_c_barcode (rowid, code, libelle, coder, example) VALUES (6, 'C128', 'Code 128', 0, 'ABCD1234567890');

View File

@ -0,0 +1,30 @@
-- ========================================================================
-- Copyright (C) 2007 Regis Houssin <regis.houssin@cap-networks.com>
--
-- $Id$
-- $Source$
--
-- 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.
--
-- ========================================================================
create table llx_c_barcode
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
code varchar(16) NOT NULL,
libelle varchar(50) NOT NULL,
coder integer NOT NULL DEFAULT 0,
example varchar(16) NOT NULL
)type=innodb;