* Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2005-2008 Regis Houssin * * 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. */ /** \file htdocs/admin/barcode.php \ingroup barcode \brief Page d'administration/configuration du module Code barre \version $Id$ */ require("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php"); require_once(DOL_DOCUMENT_ROOT."/includes/barcode/html.formbarcode.class.php"); $dir = DOL_DOCUMENT_ROOT."/includes/modules/barcode/"; $langs->load("admin"); if (!$user->admin) accessforbidden(); if ($_POST["action"] == 'setcoder') { $sqlp = "UPDATE ".MAIN_DB_PREFIX."c_barcode_type"; $sqlp.= " SET coder = '" . $_POST["coder"]."'"; $sqlp.= " WHERE rowid = ". $_POST["code_id"]; $resql=$db->query($sqlp); //print $sqlp; } else if ($_POST["action"] == 'setgenbarcodelocation') { dolibarr_set_const($db, "GENBARCODE_LOCATION",$_POST["genbarcodelocation"]); Header("Location: barcode.php"); exit; } else if ($_POST["action"] == 'setproductusebarcode') { dolibarr_set_const($db, "PRODUIT_USE_BARCODE",$_POST["value"]); Header("Location: barcode.php"); exit; } $html = new Form($db); $formbarcode = new FormBarCode($db); llxHeader('',$langs->trans("BarcodeSetup"),'BarcodeConfiguration'); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("BarcodeSetup"),$linkback,'setup'); // Detect bar codes modules $barcodelist=array(); clearstatcache(); $handle=opendir($dir); $var=true; while (($file = readdir($handle))!==false) { if (substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS') { if (is_readable($dir.$file)) { if (eregi('(.*)\.modules\.php',$file,$reg)) { $filebis=$reg[1]; // Chargement de la classe de codage require_once($dir.$file); $classname = "mod".ucfirst($filebis); $module = new $classname($db); // Show modules according to features level if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; $barcodelist[$filebis]=$module->info(); } } } } /* * CHOIX ENCODAGE */ print '
'; print_titre($langs->trans("BarcodeEncodeModule")); print ''; print ''; print ''; print ''; print ''; print ''; print "\n"; $sql = "SELECT rowid, code as encoding, libelle, coder, example"; $sql .= " FROM ".MAIN_DB_PREFIX."c_barcode_type"; $resql=$db->query($sql); if ($resql) { $num = $db->num_rows($resql); $i = 0; $var=true; while ($i < $num) { $obj = $db->fetch_object($resql); print ''; // Affiche exemple print ''; print '\n"; $var=!$var; $i++; } } print "
'.$langs->trans("Name").''.$langs->trans("Description").''.$langs->trans("Example").''.$langs->trans("CodeBarGenerator").'
'; print $obj->libelle; print "\n"; print $langs->trans('BarcodeDesc'.$obj->encoding); //print "L'EAN se compose de 8 caract�res, 7 chiffres plus une cl� de contr�le.
"; //print "L'utilisation des symbologies EAN8 impose la souscription et l'abonnement aupr�s d'organisme tel que GENCOD.
"; //print "Codes num�riques utilis�s exclusivement � l'identification des produits susceptibles d'�tre vendus au grand public."; print '
'; if ($obj->coder) { // Chargement de la classe de codage require_once($dir.$obj->coder.".modules.php"); $classname = "mod".ucfirst($obj->coder); $module = new $classname($db); if ($module->encodingIsSupported($obj->encoding)) { $url=DOL_URL_ROOT.'/viewimage.php?modulepart=barcode&generator='.urlencode($obj->coder).'&code='.urlencode($obj->example).'&encoding='.urlencode($obj->encoding); //print $url; print ''; } else { print $langs->trans("FormatNotSupportedByGenerator"); } } else { print $langs->trans("ChooseABarCode"); } print ''; print $formbarcode->setBarcodeEncoder($obj->coder,$barcodelist,$obj->rowid,'form'.$i); print "
\n"; print "
"; /* * Autres options * */ print_titre($langs->trans("OtherOptions")); $var=true; print ''; print ''; print ''; print ''; print ''; print ''; // Chemin du binaire genbarcode sous linux if (!isset($_ENV['windir']) && !file_exists($_ENV['windir'])) { $var=!$var; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; } // Module produits if ($conf->produit->enabled) { $var=!$var; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; } print '
'.$langs->trans("Parameter").''.$langs->trans("Value").' 
'.$langs->trans("GenbarcodeLocation").''; print ''; if (! empty($conf->global->GENBARCODE_LOCATION) && ! file_exists($conf->global->GENBARCODE_LOCATION)) { $langs->load("errors"); print '
'.$langs->trans("ErrorGenbarCodeNotfound").''; } print '
'.$langs->trans("UseBarcodeInProductModule").''; print $html->selectyesno('value',$conf->global->PRODUIT_USE_BARCODE,1); print '
'; /* //EAN13 $var=!$var; print ''; print "EAN13"; print "\n"; print "L'EAN se compose de 13 caract�res, 12 chiffres plus une cl� de contr�le. Il fonctionne de la m�me mani�re que l'UPC, avec lequel il est compatible.
"; print "L'utilisation des symbologies EAN13 impose la souscription et l'abonnement aupr�s d'organisme tel que GENCOD.
"; print "Codes num�riques utilis�s exclusivement � l'identification des produits susceptibles d'�tre vendus au grand public."; print ''; // Affiche exemple print ''; print ''; print $formbarcode->setBarcodeEncoder('EAN13','form'.$i); print "\n"; $i++; //UPC $var=!$var; print ''; print "UPC"; print "\n"; print "L'UPC est l'�quivalent de l'EAN8/13 pour des pays codificateurs autre que l'Europe.
"; print "Il ne comporte que 11 chiffres plus la cl�.
"; print "C'est en r�alit� un code EAN13 dont le premier chiffre serait z�ro et dont la pr�sentation serait l�g�rement diff�rente.
"; print "Codes num�riques utilis�s exclusivement � l'identification des produits susceptibles d'�tre vendus au grand public."; print ''; // Affiche exemple print ''; print ''; print $formbarcode->setBarcodeEncoder('UPC','form'.$i); print "\n"; $i++; //ISBN $var=!$var; print ''; print "ISBN"; print "\n"; print "Le code ISBN est un code d�di� au milieu de la presse �crite."; print ''; // Affiche exemple print ''; print ''; print $formbarcode->setBarcodeEncoder('ISBN','form'.$i); print "\n"; $i++; //code 39 $var=!$var; print ''; print "Code 39"; print "\n"; print "Premier code alpha num�rique utilis� massivement dans l'Industrie pour sa capacit� d'encodage (chiffres et lettres)
"; print "ainsi que par son degr� de s�curit� � l'encodage (clef de contr�le).
"; print "Il met a disposition les 10 chiffres, les 26 lettres de l'alphabet et sept symboles.
"; print "l'ast�risque (*) sert de caract�re de bornage. La lecture est bidirectionnelle.
"; print "La longueur est variable mais en g�n�ral ne d�passe pas 32 caract�res."; print ''; // Affiche exemple print ''; print ''; print $formbarcode->setBarcodeEncoder('C39','form'.$i); print "\n"; $i++; //code 128 $var=!$var; print ''; print "Code 128"; print "\n"; print "Ce code \"derni�re g�n�ration\" alpha num�rique est susceptible d'encoder les 128 caract�res de la table ASCII ( chiffres + lettres + symboles ).
"; print "Le code 128 poss�de des algorithmes de cryptage s�curis�s assez avanc�s.
"; print "C'est le plus complet des codes � barres, il propose 3 jeux de 128 caract�res.
"; print "La lecture est bidirectionnelle.
"; print "La longueur est variable mais en g�n�ral ne d�passe pas 20 caract�res."; print ''; // Affiche exemple print ''; print ''; print $formbarcode->setBarcodeEncoder('C128','form'.$i); print "\n"; $i++; //I25 $var=!$var; print ''; print "I25"; print "\n"; print "information"; print ''; // Affiche exemple print ''; print ''; print $formbarcode->setBarcodeEncoder('I25','form'.$i); print "\n"; $i++; */ print "
"; $db->close(); llxFooter('$Date$ - $Revision$'); ?>