* 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"]); } else if ($_POST["action"] == 'setdefaultbarcodetype') { dolibarr_set_const($db, "PRODUIT_DEFAULT_BARCODE_TYPE", $_POST["coder_id"]); } else if ($_POST["action"] == 'GENBARCODE_BARCODETYPE_THIRDPARTY') { dolibarr_set_const($db, "GENBARCODE_BARCODETYPE_THIRDPARTY", $_POST["coder_id"]); } /* 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; if ($module->isEnabled()) { $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)) { // Build barcode on disk $result=$module->writeBarCode($obj->example,$obj->encoding,'Y'); // Output files with barcode generators $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->societe->enabled) { $var=!$var; print ""; print ""; print ""; print ''; print '"; print ''; print ''; } // Module produits if ($conf->produit->enabled) { $var=!$var; 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("SetDefaultBarcodeTypeProducts").''; print $formbarcode->select_barcode_type($conf->global->PRODUIT_DEFAULT_BARCODE_TYPE,"coder_id",1); print ''; print ''; print "
'.$langs->trans("SetDefaultBarcodeTypeThirdParties").''; print $formbarcode->select_barcode_type($conf->global->GENBARCODE_BARCODETYPE_THIRDPARTY,"coder_id",1); print ''; print ''; print "
'; print "
"; $db->close(); llxFooter('$Date$ - $Revision$'); ?>