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");
$langs->load("admin");
$langs->load("bills");
if (!$user->admin)
accessforbidden();
$barcode_encode_type_set = BARCODE_ENCODE_TYPE;
$typeconst=array('yesno','texte','chaine');
if ($_GET["action"] == 'settype' && $user->admin)
if ($_POST["action"] == 'setcoder' && $user->admin)
{
if (dolibarr_set_const($db, "BARCODE_ENCODE_TYPE",$_GET["value"]))
$barcode_encode_type_set = $_GET["value"];
$sqlp = "UPDATE ".MAIN_DB_PREFIX."c_barcode";
$sqlp.= " SET coder = " . $_POST["coder"];
$sqlp.= " WHERE rowid = ". $_POST["code_id"];
$resql=$db->query($sqlp);
}
$html = new Form($db);
llxHeader('',$langs->trans("BarcodeSetup"),'BarcodeConfiguration');
print_fiche_titre($langs->trans("BarcodeSetup"),'','setup');
@ -53,48 +52,51 @@ print_fiche_titre($langs->trans("BarcodeSetup"),'','setup');
/*
* CHOIX ENCODAGE
*/
print '<br>';
print_titre($langs->trans("BarcodeEncodeModule"));
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Name").'</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 "</tr>\n";
clearstatcache();
$var=true;
$sql = "SELECT rowid, code, libelle, coder, example";
$sql .= " FROM ".MAIN_DB_PREFIX."c_barcode";
$resql=$db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
$var=true;
while ($i < $num)
{
$obj = $db->fetch_object($resql);
//EAN8
$var=!$var;
print '<tr '.$bc[$var].'><td width="100">';
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 "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
print '<td align="center"><img src="'.dol_genbarcode('1234567','EAN',2).'"></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 '<tr '.$bc[$var].'><td width="100">';
print $obj->libelle;
print "</td><td>\n";
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
print '<td align="center"><img src="'.dol_genbarcode($obj->example,$obj->code,$obj->coder).'"></td>';
print '<td align="center">';
print $html->setBarcodeEncoder($obj->coder,$obj->rowid,'form'.$i);
print "</td></tr>\n";
$var=!$var;
$i++;
}
}
/*
//EAN13
$var=!$var;
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">';
if ($barcode_encode_type_set == "EAN13")
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=EAN13">'.$langs->trans("Default").'</a>';
}
print $html->setBarcodeEncoder('EAN13','form'.$i);
print "</td></tr>\n";
$i++;
//UPC
$var=!$var;
@ -135,15 +131,9 @@ $var=true;
print '<td align="center"><img src="'.dol_genbarcode('123456789012','UPC',1).'"></td>';
print '<td align="center">';
if ($barcode_encode_type_set == "UPC")
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=UPC">'.$langs->trans("Default").'</a>';
}
print $html->setBarcodeEncoder('UPC','form'.$i);
print "</td></tr>\n";
$i++;
//ISBN
$var=!$var;
@ -157,15 +147,9 @@ $var=true;
print '<td align="center"><img src="'.dol_genbarcode('123456789','ISBN',1).'"></td>';
print '<td align="center">';
if ($barcode_encode_type_set == "ISBN")
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=ISBN">'.$langs->trans("Default").'</a>';
}
print $html->setBarcodeEncoder('ISBN','form'.$i);
print "</td></tr>\n";
$i++;
//code 39
$var=!$var;
@ -183,15 +167,9 @@ $var=true;
print '<td align="center"><img src="'.dol_genbarcode('1234567890','39',1).'"></td>';
print '<td align="center">';
if ($barcode_encode_type_set == "code39")
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=code39">'.$langs->trans("Default").'</a>';
}
print $html->setBarcodeEncoder('C39','form'.$i);
print "</td></tr>\n";
$i++;
//code 128
@ -210,15 +188,9 @@ $var=true;
print '<td align="center"><img src="'.dol_genbarcode('ABCD1234567890','128',1).'"></td>';
print '<td align="center">';
if ($barcode_encode_type_set == "code128")
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=code128">'.$langs->trans("Default").'</a>';
}
print $html->setBarcodeEncoder('C128','form'.$i);
print "</td></tr>\n";
$i++;
//I25
$var=!$var;
@ -232,16 +204,10 @@ $var=true;
print '<td align="center"><img src="'.dol_genbarcode('1234567890','I25',1).'"></td>';
print '<td align="center">';
if ($barcode_encode_type_set == "I25")
{
print img_tick();
}
else
{
print '<a href="barcode.php?action=settype&amp;value=I25">'.$langs->trans("Default").'</a>';
}
print $html->setBarcodeEncoder('I25','form'.$i);
print "</td></tr>\n";
$i++;
*/
print "</table>\n";
print "<br>";
@ -249,4 +215,4 @@ print "<br>";
$db->close();
llxFooter('$Date$ - $Revision$');
?>
?>

View File

@ -3505,7 +3505,25 @@ class Form
$ret.='</td></tr></table>';
}
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')
{
if ($encoding == 'EAN8' || $encoding == 'EAN13') $encoding = 'EAN';
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';
}
else if ($generator == 2)

View File

@ -16,6 +16,13 @@ function dolibarr_type_reload(param)
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
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 (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);
--
-- 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

@ -880,4 +880,20 @@ ALTER TABLE llx_element_contact ADD INDEX idx_element_contact_fk_socpeople (fk_s
-- Supprimme orphelins pour permettre montée de la clé
-- 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;