diff --git a/htdocs/admin/barcode.php b/htdocs/admin/barcode.php index ca9d7c677921785897290bb562b9d0b94b32c864..f3e93a6fd84c16dd806c6fb200e77f9d766521c1 100644 --- a/htdocs/admin/barcode.php +++ b/htdocs/admin/barcode.php @@ -28,6 +28,7 @@ */ require("./pre.inc.php"); +require_once(DOL_DOCUMENT_ROOT."/includes/barcode/html.formbarcode.class.php"); $dir = DOL_DOCUMENT_ROOT."/includes/modules/barcode/"; @@ -60,6 +61,7 @@ else if ($_POST["action"] == 'setproductusebarcode') $html = new Form($db); +$formbarcode = new FormBarCode($db); llxHeader('',$langs->trans("BarcodeSetup"),'BarcodeConfiguration'); @@ -164,7 +166,7 @@ if ($resql) print '</td>'; print '<td align="center">'; - print $html->setBarcodeEncoder($obj->coder,$barcodelist,$obj->rowid,'form'.$i); + print $formbarcode->setBarcodeEncoder($obj->coder,$barcodelist,$obj->rowid,'form'.$i); print "</td></tr>\n"; $var=!$var; $i++; @@ -237,7 +239,7 @@ print '</table>'; print '<td align="center"><img src="'.dol_genbarcode('123456789012','EAN',1).'"></td>'; print '<td align="center">'; - print $html->setBarcodeEncoder('EAN13','form'.$i); + print $formbarcode->setBarcodeEncoder('EAN13','form'.$i); print "</td></tr>\n"; $i++; @@ -256,7 +258,7 @@ print '</table>'; print '<td align="center"><img src="'.dol_genbarcode('123456789012','UPC',1).'"></td>'; print '<td align="center">'; - print $html->setBarcodeEncoder('UPC','form'.$i); + print $formbarcode->setBarcodeEncoder('UPC','form'.$i); print "</td></tr>\n"; $i++; @@ -272,7 +274,7 @@ print '</table>'; print '<td align="center"><img src="'.dol_genbarcode('123456789','ISBN',1).'"></td>'; print '<td align="center">'; - print $html->setBarcodeEncoder('ISBN','form'.$i); + print $formbarcode->setBarcodeEncoder('ISBN','form'.$i); print "</td></tr>\n"; $i++; @@ -292,7 +294,7 @@ print '</table>'; print '<td align="center"><img src="'.dol_genbarcode('1234567890','39',1).'"></td>'; print '<td align="center">'; - print $html->setBarcodeEncoder('C39','form'.$i); + print $formbarcode->setBarcodeEncoder('C39','form'.$i); print "</td></tr>\n"; $i++; @@ -313,7 +315,7 @@ print '</table>'; print '<td align="center"><img src="'.dol_genbarcode('ABCD1234567890','128',1).'"></td>'; print '<td align="center">'; - print $html->setBarcodeEncoder('C128','form'.$i); + print $formbarcode->setBarcodeEncoder('C128','form'.$i); print "</td></tr>\n"; $i++; @@ -329,7 +331,7 @@ print '</table>'; print '<td align="center"><img src="'.dol_genbarcode('1234567890','I25',1).'"></td>'; print '<td align="center">'; - print $html->setBarcodeEncoder('I25','form'.$i); + print $formbarcode->setBarcodeEncoder('I25','form'.$i); print "</td></tr>\n"; $i++; */ diff --git a/htdocs/admin/produit.php b/htdocs/admin/produit.php index 58474fa1b24248b00f7b58a98a46d1a9c79485fc..03e555191089fb1049500a5cf5e7de361d578c8a 100644 --- a/htdocs/admin/produit.php +++ b/htdocs/admin/produit.php @@ -1,5 +1,5 @@ <?php -/* Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net> +/* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr> * Copyright (C) 2006-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org> * Copyright (C) 2007 Auguria SARL <info@auguria.org> @@ -20,7 +20,6 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id$ - * $Source$ */ /** @@ -31,6 +30,7 @@ */ require("./pre.inc.php"); +require_once(DOL_DOCUMENT_ROOT."/includes/barcode/html.formbarcode.class.php"); $langs->load("admin"); $langs->load("propal"); @@ -135,6 +135,8 @@ else if ($_POST["action"] == 'setdefaultbarcodetype') * Affiche page */ +$formbarcode=new FormBarCode($db); + llxHeader('',$langs->trans("ProductSetup")); print_fiche_titre($langs->trans("ProductSetup"),'','setup'); @@ -279,7 +281,7 @@ if ($conf->barcode->enabled && $conf->global->PRODUIT_USE_BARCODE) print "<tr ".$bc[$var].">"; print '<td>'.$langs->trans("SetDefaultBarcodeType").'</td>'; print '<td width="60" align="right">'; - print $html->select_barcode_type($conf->global->PRODUIT_DEFAULT_BARCODE_TYPE,"coder_id",1); + print $formbarcode->select_barcode_type($conf->global->PRODUIT_DEFAULT_BARCODE_TYPE,"coder_id",1); print '</td><td align="right">'; print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'; print "</td>"; @@ -363,5 +365,5 @@ if ($conf->left_menu == 'default.php' || $conf->left_menu == 'auguria_backoffice $db->close(); -llxFooter(); +llxFooter('$Date$ - $Revision$'); ?> diff --git a/htdocs/html.form.class.php b/htdocs/html.form.class.php index 0ab7e50a029415eca3d0734f00a47cf687b1cee9..2a67cd8d09f8112fd56696e75e274705ef101c43 100644 --- a/htdocs/html.form.class.php +++ b/htdocs/html.form.class.php @@ -3554,114 +3554,7 @@ class Form return $ret; } - /** - * \brief Liste de s�lection du g�n�rateur de codes barres - * \param selected Id code pr�-s�lectionn� - * \param code_id Id du code barre - * \param idForm Id du formulaire - */ - function setBarcodeEncoder($selected=0,$barcodelist,$code_id,$idForm='formbarcode') - { - global $conf, $langs; - - $disable = ''; - - // On v�rifie si le code de barre est d�j� s�lectionn� par d�faut dans le module produit - if ($conf->produit->enabled && $conf->global->PRODUIT_DEFAULT_BARCODE_TYPE == $code_id) - { - $disable = 'disabled="disabled"'; - } - - $select_encoder = '<form action="barcode.php" method="post" id="'.$idForm.'">'; - $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(\''.$idForm.'\')">'; - $select_encoder.= '<option value="0"'.($selected==0?' selected="true"':'').' '.$disable.'>'.$langs->trans('Disable').'</option>'; - $select_encoder.= '<option value="-1" disabled="disabled">--------------------</option>'; - foreach($barcodelist as $key => $value) - { - $select_encoder.= '<option value="'.$key.'"'.($selected==$key?' selected="true"':'').'>'.$value.'</option>'; - } - $select_encoder.= '</select></form>'; - return $select_encoder; - } - - /** - * \brief Retourne la liste des types de codes barres - * \param selected Id code pr�-s�lectionn� - * \param htmlname Nom de la zone select - * \param useempty Affiche valeur vide dans liste - */ - function select_barcode_type($selected='',$htmlname='coder_id',$useempty=0) - { - global $langs; - - $sql = "SELECT rowid, code, libelle"; - $sql.= " FROM ".MAIN_DB_PREFIX."c_barcode_type"; - $sql.= " WHERE coder > 0"; - $sql.= " ORDER BY rowid"; - $result = $this->db->query($sql); - if ($result) - { - $num = $this->db->num_rows($result); - $i = 0; - - if ($useempty && $num > 0) - { - print '<select class="flat" name="'.$htmlname.'">'; - print '<option value="0"> </option>'; - } - else - { - print '<select disabled="disabled" class="flat" name="'.$htmlname.'">'; - print '<option value="0" selected="true">'.$langs->trans('NoActivatedBarcode').'</option>'; - } - - while ($i < $num) - { - $obj = $this->db->fetch_object($result); - if ($selected == $obj->rowid) - { - print '<option value="'.$obj->rowid.'" selected="true">'; - } - else - { - print '<option value="'.$obj->rowid.'">'; - } - print $obj->libelle; - print '</option>'; - $i++; - } - print "</select>"; - } - else { - dolibarr_print_error($this->db); - } - } - - /** - * \brief Affiche formulaire de selection du type de code barre - * \param page Page - * \param selected Id condition pr�-s�lectionn�e - * \param htmlname Nom du formulaire select - */ - function form_barcode_type($page, $selected='', $htmlname='barcodetype_id') - { - global $langs,$conf; - if ($htmlname != "none") - { - print '<form method="post" action="'.$page.'">'; - print '<input type="hidden" name="action" value="setbarcodetype">'; - print '<table class="noborder" cellpadding="0" cellspacing="0">'; - print '<tr><td>'; - $this->select_barcode_type($selected, $htmlname, 1); - print '</td>'; - print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'">'; - print '</td></tr></table></form>'; - } - } - /** * \brief Retourne la liste des ecotaxes avec tooltip sur le libelle * \param selected code ecotaxes pre-selectionne diff --git a/htdocs/includes/barcode/html.formbarcode.class.php b/htdocs/includes/barcode/html.formbarcode.class.php new file mode 100644 index 0000000000000000000000000000000000000000..6cad9fcd71537c997260fbfd373af6f01c34bd25 --- /dev/null +++ b/htdocs/includes/barcode/html.formbarcode.class.php @@ -0,0 +1,162 @@ +<?php +/* Copyright (C) 2007 Regis Houssin <regis@dolibarr.fr> + * Copyright (C) 2008 Laurent Destailleur <eldy@users.sourceforge.net> + * + * 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. + * + * $Id$ + */ + +/** + \file htdocs/html.form.class.php + \brief Fichier de la classe des fonctions pr�d�finie de composants html + \version $Revision$ +*/ + + +/** + \class Form + \brief Classe permettant la g�n�ration de composants html +*/ + +class FormBarCode +{ + var $db; + var $error; + + + /** + \brief Constructeur + \param DB handler d'acc�s base de donn�e + */ + function FormBarCode($DB) + { + $this->db = $DB; + + return 1; + } + + + /** + * \brief Liste de s�lection du g�n�rateur de codes barres + * \param selected Id code pr�-s�lectionn� + * \param code_id Id du code barre + * \param idForm Id du formulaire + */ + function setBarcodeEncoder($selected=0,$barcodelist,$code_id,$idForm='formbarcode') + { + global $conf, $langs; + + $disable = ''; + + // On v�rifie si le code de barre est d�j� s�lectionn� par d�faut dans le module produit + if ($conf->produit->enabled && $conf->global->PRODUIT_DEFAULT_BARCODE_TYPE == $code_id) + { + $disable = 'disabled="disabled"'; + } + + $select_encoder = '<form action="barcode.php" method="post" id="'.$idForm.'">'; + $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(\''.$idForm.'\')">'; + $select_encoder.= '<option value="0"'.($selected==0?' selected="true"':'').' '.$disable.'>'.$langs->trans('Disable').'</option>'; + $select_encoder.= '<option value="-1" disabled="disabled">--------------------</option>'; + foreach($barcodelist as $key => $value) + { + $select_encoder.= '<option value="'.$key.'"'.($selected==$key?' selected="true"':'').'>'.$value.'</option>'; + } + $select_encoder.= '</select></form>'; + + return $select_encoder; + } + + /** + * \brief Retourne la liste des types de codes barres + * \param selected Id code pr�-s�lectionn� + * \param htmlname Nom de la zone select + * \param useempty Affiche valeur vide dans liste + */ + function select_barcode_type($selected='',$htmlname='coder_id',$useempty=0) + { + global $langs; + + $sql = "SELECT rowid, code, libelle"; + $sql.= " FROM ".MAIN_DB_PREFIX."c_barcode_type"; + $sql.= " WHERE coder > 0"; + $sql.= " ORDER BY rowid"; + $result = $this->db->query($sql); + if ($result) + { + $num = $this->db->num_rows($result); + $i = 0; + + if ($useempty && $num > 0) + { + print '<select class="flat" name="'.$htmlname.'">'; + print '<option value="0"> </option>'; + } + else + { + print '<select disabled="disabled" class="flat" name="'.$htmlname.'">'; + print '<option value="0" selected="true">'.$langs->trans('NoActivatedBarcode').'</option>'; + } + + while ($i < $num) + { + $obj = $this->db->fetch_object($result); + if ($selected == $obj->rowid) + { + print '<option value="'.$obj->rowid.'" selected="true">'; + } + else + { + print '<option value="'.$obj->rowid.'">'; + } + print $obj->libelle; + print '</option>'; + $i++; + } + print "</select>"; + } + else { + dolibarr_print_error($this->db); + } + } + + /** + * \brief Affiche formulaire de selection du type de code barre + * \param page Page + * \param selected Id condition pr�-s�lectionn�e + * \param htmlname Nom du formulaire select + */ + function form_barcode_type($page, $selected='', $htmlname='barcodetype_id') + { + global $langs,$conf; + if ($htmlname != "none") + { + print '<form method="post" action="'.$page.'">'; + print '<input type="hidden" name="action" value="setbarcodetype">'; + print '<table class="noborder" cellpadding="0" cellspacing="0">'; + print '<tr><td>'; + $this->select_barcode_type($selected, $htmlname, 1); + print '</td>'; + print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'">'; + print '</td></tr></table></form>'; + } + } + +} + +?> diff --git a/htdocs/product/barcode.php b/htdocs/product/barcode.php index 2a2ff1c186ed4eafe1472226b1bca19f46c926b5..4b6bf45a13b285a074e74d6cc62ca5b4401ec0b3 100644 --- a/htdocs/product/barcode.php +++ b/htdocs/product/barcode.php @@ -1,6 +1,6 @@ <?php /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org> - * Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net> + * Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2005-2007 Regis Houssin <regis@dolibarr.fr> * * This program is free software; you can redistribute it and/or modify @@ -18,7 +18,6 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id$ - * $Source$ */ /** @@ -31,6 +30,7 @@ require("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/lib/product.lib.php"); require_once(DOL_DOCUMENT_ROOT."/product.class.php"); +require_once(DOL_DOCUMENT_ROOT."/includes/barcode/html.formbarcode.class.php"); $langs->load("products"); $langs->load("bills"); @@ -76,6 +76,7 @@ if ($_POST['action'] == 'setbarcode' && $user->rights->barcode->creer) llxHeader("","",$langs->trans("BarCode")); $html = new Form($db); +$formbarcode = new FormBarCode($db); $product = new Product($db); if ($_GET["ref"]) $result = $product->fetch('',$_GET["ref"]); @@ -132,7 +133,7 @@ print '</tr></table>'; print '</td><td colspan="2">'; if ($_GET['action'] == 'editbarcodetype') { - $html->form_barcode_type($_SERVER['PHP_SELF'].'?id='.$product->id,$product->barcode_type,'barcodetype_id'); + $formbarcode->form_barcode_type($_SERVER['PHP_SELF'].'?id='.$product->id,$product->barcode_type,'barcodetype_id'); } else {