2002-12-19 19:55:38 +01:00
< ? PHP
2005-01-05 16:34:24 +01:00
/* Copyright ( c ) 2002 - 2005 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2005-04-27 23:25:05 +02:00
* Copyright ( C ) 2004 - 2005 Laurent Destailleur < eldy @ users . sourceforge . net >
2004-07-17 19:16:42 +02:00
* Copyright ( C ) 2004 Benoit Mortier < benoit . mortier @ opensides . be >
2004-09-01 23:23:20 +02:00
* Copyright ( C ) 2004 Sebastien Di Cintio < sdicintio @ ressource - toi . org >
2004-12-22 21:07:14 +01:00
* Copyright ( C ) 2004 Eric Seigne < eric . seigne @ ryxeo . com >
2004-06-16 15:21:13 +02:00
*
2002-12-19 19:55:38 +01:00
* 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 $
* $Source $
*/
2005-03-28 15:52:40 +02:00
/**
\file htdocs / html . form . class . php
\brief Fichier de la classe des fonctions pr<EFBFBD> d<EFBFBD> finie de composants html
\version $Revision $
2004-09-18 18:36:33 +02:00
*/
2005-03-28 15:52:40 +02:00
/**
\class Form
\brief Classe permettant la g<EFBFBD> n<EFBFBD> ration de composants html
2004-09-18 18:36:33 +02:00
*/
2004-07-21 10:43:48 +02:00
class Form
{
2005-09-02 22:17:22 +02:00
var $db ;
var $errorstr ;
var $cache_types_paiements_code = array ();
var $cache_types_paiements_libelle = array ();
var $cache_conditions_paiements_code = array ();
var $cache_conditions_paiements_libelle = array ();
/**
2005-03-28 15:52:40 +02:00
\brief Constructeur
\param DB handler d ' acc<EFBFBD> s base de donn<EFBFBD> e
2005-09-02 22:17:22 +02:00
*/
2004-07-21 10:43:48 +02:00
2005-09-02 22:17:22 +02:00
function Form ( $DB )
{
$this -> db = $DB ;
return 1 ;
}
2004-07-21 10:43:48 +02:00
2005-09-02 22:17:22 +02:00
/**
* \brief Retourne la liste d<EFBFBD> roulante des d<EFBFBD> partements / province / cantons tout pays confondu ou pour un pays donn<EFBFBD> .
* \remarks Dans le cas d 'une liste tout pays confondus, l' affichage fait une rupture sur le pays .
* \remarks La cle de la liste est le code ( il peut y avoir plusieurs entr<EFBFBD> e pour
* un code donn<EFBFBD> e mais dans ce cas , le champ pays diff<EFBFBD> re ) .
* Ainsi les liens avec les d<EFBFBD> partements se font sur un d<EFBFBD> partement ind<EFBFBD> pendemment de nom som .
* \param selected code forme juridique a pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD>
* \param pays_code 0 = liste tous pays confondus , sinon code du pays <EFBFBD> afficher
*/
function select_departement ( $selected = '' , $pays_code = 0 )
{
2004-09-18 18:36:33 +02:00
global $conf , $langs ;
$langs -> load ( " dict " );
2005-02-13 19:16:02 +01:00
$htmlname = 'departement_id' ;
2004-07-21 10:43:48 +02:00
// On recherche les d<> partements/cantons/province active d'une region et pays actif
2005-02-13 19:16:02 +01:00
$sql = " SELECT d.rowid, d.code_departement as code , d.nom, d.active, p.libelle as libelle_pays, p.code as code_pays FROM " ;
$sql .= " " . MAIN_DB_PREFIX . " c_departements as d, " . MAIN_DB_PREFIX . " c_regions as r, " . MAIN_DB_PREFIX . " c_pays as p " ;
2004-07-21 10:43:48 +02:00
$sql .= " WHERE d.fk_region=r.code_region and r.fk_pays=p.rowid " ;
2005-02-13 19:16:02 +01:00
$sql .= " AND d.active = 1 AND r.active = 1 AND p.active = 1 " ;
if ( $pays_code ) $sql .= " AND p.code = ' " . $pays_code . " ' " ;
$sql .= " ORDER BY p.code, d.code_departement " ;
2004-06-10 02:26:07 +02:00
2005-02-13 19:16:02 +01:00
$result = $this -> db -> query ( $sql );
if ( $result )
{
2005-04-27 23:25:05 +02:00
print '<select class="flat" name="' . $htmlname . '">' ;
2005-02-13 19:16:02 +01:00
if ( $pays_code ) print '<option value="0"> </option>' ;
$num = $this -> db -> num_rows ( $result );
2004-09-18 18:36:33 +02:00
$i = 0 ;
if ( $num )
2005-02-13 19:16:02 +01:00
{
2004-09-18 18:36:33 +02:00
$pays = '' ;
while ( $i < $num )
2005-02-13 19:16:02 +01:00
{
$obj = $this -> db -> fetch_object ( $result );
2004-09-18 18:36:33 +02:00
if ( $obj -> code == 0 ) {
2005-02-13 19:16:02 +01:00
print '<option value="0"> </option>' ;
2004-09-18 18:36:33 +02:00
}
else {
2005-02-13 19:16:02 +01:00
if ( ! $pays || $pays != $obj -> libelle_pays ) {
// Affiche la rupture si on est en mode liste multipays
if ( ! $pays_code && $obj -> code_pays ) {
print '<option value="-1">----- ' . $obj -> libelle_pays . " -----</option> \n " ;
$pays = $obj -> libelle_pays ;
}
}
2004-09-18 18:36:33 +02:00
2005-02-13 19:16:02 +01:00
if ( $selected > 0 && $selected == $obj -> rowid )
2004-09-18 18:36:33 +02:00
{
2005-08-20 21:03:34 +02:00
print '<option value="' . $obj -> rowid . '" selected="true">' ;
2004-09-18 18:36:33 +02:00
}
2005-02-13 19:16:02 +01:00
else
2004-09-18 18:36:33 +02:00
{
2005-02-13 19:16:02 +01:00
print '<option value="' . $obj -> rowid . '">' ;
2004-09-18 18:36:33 +02:00
}
2005-02-13 19:16:02 +01:00
// Si traduction existe, on l'utilise, sinon on prend le libell<6C> par d<> faut
print $obj -> code . ' - ' . ( $langs -> trans ( $obj -> code ) != $obj -> code ? $langs -> trans ( $obj -> code ) : ( $obj -> nom != '-' ? $obj -> nom : '' ));
print '</option>' ;
2004-09-18 18:36:33 +02:00
}
$i ++ ;
2005-02-13 19:16:02 +01:00
}
}
2004-09-18 18:36:33 +02:00
print '</select>' ;
2005-02-13 19:16:02 +01:00
}
2004-07-21 10:43:48 +02:00
else {
2005-02-13 19:16:02 +01:00
dolibarr_print_error ( $this -> db );
2004-06-10 02:26:07 +02:00
}
2005-01-05 16:34:24 +01:00
}
2004-07-21 10:43:48 +02:00
2005-04-27 23:25:05 +02:00
2005-03-28 15:52:40 +02:00
/**
2004-10-23 16:27:26 +02:00
* \brief Retourne la liste d<EFBFBD> roulante des regions actives dont le pays est actif
* \remarks La cle de la liste est le code ( il peut y avoir plusieurs entr<EFBFBD> e pour
* un code donn<EFBFBD> e mais dans ce cas , le champ pays et lang diff<EFBFBD> re ) .
* Ainsi les liens avec les regions se font sur une region independemment
* de nom som .
2004-08-08 20:20:28 +02:00
*/
2004-10-20 23:06:45 +02:00
2004-08-08 20:20:28 +02:00
function select_region ( $selected = '' , $htmlname = 'region_id' )
{
2004-09-18 18:36:33 +02:00
global $conf , $langs ;
$langs -> load ( " dict " );
2004-08-08 20:20:28 +02:00
$sql = " SELECT r.rowid, r.code_region as code, r.nom as libelle, r.active, p.libelle as libelle_pays FROM " . MAIN_DB_PREFIX . " c_regions as r, " . MAIN_DB_PREFIX . " c_pays as p " ;
$sql .= " WHERE r.fk_pays=p.rowid AND r.active = 1 and p.active = 1 ORDER BY libelle_pays, libelle ASC " ;
if ( $this -> db -> query ( $sql ))
{
2005-04-27 23:25:05 +02:00
print '<select class="flat" name="' . $htmlname . '">' ;
2004-08-08 20:20:28 +02:00
$num = $this -> db -> num_rows ();
$i = 0 ;
if ( $num )
{
$pays = '' ;
while ( $i < $num )
{
2004-10-23 23:02:56 +02:00
$obj = $this -> db -> fetch_object ();
2004-08-08 20:20:28 +02:00
if ( $obj -> code == 0 ) {
print '<option value="0"> </option>' ;
}
else {
if ( $pays == '' || $pays != $obj -> libelle_pays ) {
// Affiche la rupture
print '<option value="-1">----- ' . $obj -> libelle_pays . " -----</option> \n " ;
$pays = $obj -> libelle_pays ;
}
if ( $selected > 0 && $selected == $obj -> code )
{
2005-08-20 21:03:34 +02:00
print '<option value="' . $obj -> code . '" selected="true">' . $obj -> libelle . '</option>' ;
2004-08-08 20:20:28 +02:00
}
else
{
print '<option value="' . $obj -> code . '">' . $obj -> libelle . '</option>' ;
}
}
$i ++ ;
}
}
2005-01-05 16:34:24 +01:00
print '</select>' ;
2004-08-08 20:20:28 +02:00
}
else {
dolibarr_print_error ( $this -> db );
}
}
2005-03-28 15:52:40 +02:00
/**
2004-10-23 16:27:26 +02:00
* \brief Retourne la liste d<EFBFBD> roulante des pays actifs , dans la langue de l ' utilisateur
2005-07-10 21:31:44 +02:00
* \param selected Code pays pr<EFBFBD> - s<EFBFBD> lectionn<EFBFBD>
* \param htmlname Nom de la liste deroulante
2005-08-20 16:36:32 +02:00
* \param htmloption Options html sur le select
2004-10-23 16:27:26 +02:00
* \todo trier liste sur noms apr<EFBFBD> s traduction plutot que avant
2004-02-17 11:03:22 +01:00
*/
2004-10-20 23:06:45 +02:00
2005-08-20 16:36:32 +02:00
function select_pays ( $selected = '' , $htmlname = 'pays_id' , $htmloption = '' )
2004-02-17 11:03:22 +01:00
{
2004-09-18 18:36:33 +02:00
global $conf , $langs ;
$langs -> load ( " dict " );
$sql = " SELECT rowid, libelle, code, active FROM " . MAIN_DB_PREFIX . " c_pays " ;
$sql .= " WHERE active = 1 " ;
2004-09-18 18:44:52 +02:00
$sql .= " ORDER BY code ASC; " ;
2004-09-18 18:36:33 +02:00
2004-02-17 11:03:22 +01:00
if ( $this -> db -> query ( $sql ))
2005-01-05 16:34:24 +01:00
{
2005-08-20 16:36:32 +02:00
print '<select class="flat" name="' . $htmlname . '" ' . $htmloption . '>' ;
2004-09-18 18:36:33 +02:00
$num = $this -> db -> num_rows ();
$i = 0 ;
if ( $num )
2005-01-05 16:34:24 +01:00
{
2004-09-18 18:36:33 +02:00
$foundselected = false ;
while ( $i < $num )
2005-01-05 16:34:24 +01:00
{
2004-10-23 23:02:56 +02:00
$obj = $this -> db -> fetch_object ();
2004-09-18 18:36:33 +02:00
if ( $selected > 0 && $selected == $obj -> rowid )
2005-01-05 16:34:24 +01:00
{
2004-09-18 18:36:33 +02:00
$foundselected = true ;
2005-08-20 21:03:34 +02:00
print '<option value="' . $obj -> rowid . '" selected="true">' ;
2005-01-05 16:34:24 +01:00
}
2004-09-18 18:36:33 +02:00
else
2005-01-05 16:34:24 +01:00
{
2004-09-18 18:36:33 +02:00
print '<option value="' . $obj -> rowid . '">' ;
2005-01-05 16:34:24 +01:00
}
2004-12-22 21:07:14 +01:00
// Si traduction existe, on l'utilise, sinon on prend le libell<6C> par d<> faut
if ( $obj -> code ) { print $obj -> code . ' - ' ; }
2005-08-21 20:55:34 +02:00
print ( $obj -> code && $langs -> trans ( " Country " . $obj -> code ) != " Country " . $obj -> code ? $langs -> trans ( " Country " . $obj -> code ) : ( $obj -> libelle != '-' ? $obj -> libelle : ' ' ));
2004-09-18 18:36:33 +02:00
print '</option>' ;
$i ++ ;
2005-01-05 16:34:24 +01:00
}
}
2004-09-18 18:36:33 +02:00
print '</select>' ;
return 0 ;
2005-01-05 16:34:24 +01:00
}
2004-09-18 18:36:33 +02:00
else {
2005-01-05 16:34:24 +01:00
dolibarr_print_error ( $this -> db );
return 1 ;
2004-09-18 18:36:33 +02:00
}
2004-02-17 11:03:22 +01:00
}
2004-08-08 20:20:28 +02:00
2005-03-28 15:52:40 +02:00
/**
2005-07-10 21:52:57 +02:00
* \brief Retourne la liste d<EFBFBD> roulante des langues disponibles
* \param selected Langue pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD> e
* \param htmlname Nom de la zone select
2004-08-08 20:20:28 +02:00
*/
2004-10-20 23:06:45 +02:00
2004-08-08 20:20:28 +02:00
function select_lang ( $selected = '' , $htmlname = 'lang_id' )
{
global $langs ;
$langs_available = $langs -> get_available_languages ();
2005-04-26 00:37:16 +02:00
print '<select class="flat" name="' . $htmlname . '">' ;
2005-01-05 16:34:24 +01:00
$num = count ( $langs_available );
$i = 0 ;
if ( $num )
{
while ( $i < $num )
2004-08-08 20:20:28 +02:00
{
2005-01-05 16:34:24 +01:00
if ( $selected == $langs_available [ $i ])
2004-08-08 20:20:28 +02:00
{
2005-08-20 21:03:34 +02:00
print '<option value="' . $langs_available [ $i ] . '" selected="true">' . $langs_available [ $i ] . '</option>' ;
2004-08-08 20:20:28 +02:00
}
2005-01-05 16:34:24 +01:00
else
{
print '<option value="' . $langs_available [ $i ] . '">' . $langs_available [ $i ] . '</option>' ;
}
$i ++ ;
2004-08-08 20:20:28 +02:00
}
2005-01-05 16:34:24 +01:00
}
2004-08-08 20:20:28 +02:00
print '</select>' ;
}
2005-05-08 00:01:39 +02:00
/**
2005-07-10 21:31:44 +02:00
* \brief Retourne la liste des types de comptes financiers
* \param selected Type pr<EFBFBD> - s<EFBFBD> lectionn<EFBFBD>
* \param htmlname Nom champ formulaire
2005-05-08 00:01:39 +02:00
*/
function select_type_comptes_financiers ( $selected = 1 , $htmlname = 'type' )
{
global $langs ;
$langs -> load ( " banks " );
$type_available = array ( 0 , 1 , 2 );
print '<select class="flat" name="' . $htmlname . '">' ;
$num = count ( $type_available );
$i = 0 ;
if ( $num )
{
while ( $i < $num )
{
if ( $selected == $type_available [ $i ])
{
2005-08-20 21:03:34 +02:00
print '<option value="' . $type_available [ $i ] . '" selected="true">' . $langs -> trans ( " BankType " . $type_available [ $i ]) . '</option>' ;
2005-05-08 00:01:39 +02:00
}
else
{
print '<option value="' . $type_available [ $i ] . '">' . $langs -> trans ( " BankType " . $type_available [ $i ]) . '</option>' ;
}
$i ++ ;
}
}
print '</select>' ;
}
2005-03-28 15:52:40 +02:00
/**
2005-06-11 14:12:55 +02:00
* \brief Retourne la liste d<EFBFBD> roulante des soci<EFBFBD> t<EFBFBD> s
2005-07-10 21:31:44 +02:00
* \param selected Societe pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD> e
* \param htmlname Nom champ formulaire
* \param filter Criteres optionnels de filtre
2004-07-24 00:28:30 +02:00
*/
2005-07-30 11:16:38 +02:00
function select_societes ( $selected = '' , $htmlname = 'soc_id' , $filter = '' )
2005-06-11 14:12:55 +02:00
{
// On recherche les societes
$sql = " SELECT s.idp, s.nom FROM " ;
$sql .= " " . MAIN_DB_PREFIX . " societe as s " ;
if ( $filter ) $sql .= " WHERE $filter " ;
$sql .= " ORDER BY nom ASC " ;
$resql = $this -> db -> query ( $sql );
if ( $resql )
{
print '<select class="flat" name="' . $htmlname . '">' ;
$num = $this -> db -> num_rows ( $resql );
$i = 0 ;
if ( $num )
{
while ( $i < $num )
{
$obj = $this -> db -> fetch_object ( $resql );
if ( $selected > 0 && $selected == $obj -> idp )
{
2005-08-20 21:03:34 +02:00
print '<option value="' . $obj -> idp . '" selected="true">' . $obj -> nom . '</option>' ;
2005-06-11 14:12:55 +02:00
}
else
{
print '<option value="' . $obj -> idp . '">' . $obj -> nom . '</option>' ;
}
$i ++ ;
}
}
print '</select>' ;
}
else {
dolibarr_print_error ( $this -> db );
}
2004-07-24 00:28:30 +02:00
}
2004-08-07 01:39:22 +02:00
2005-04-27 02:29:32 +02:00
2005-03-28 15:52:40 +02:00
/**
2005-07-10 21:31:44 +02:00
* \brief Retourne la liste d<EFBFBD> roulante des contacts d ' une soci<EFBFBD> t<EFBFBD> donn<EFBFBD> e
* \param socid Id de la soci<EFBFBD> t<EFBFBD>
* \param selected Id contact pr<EFBFBD> - s<EFBFBD> lectionn<EFBFBD>
* \param htmlname Nom champ formulaire
2004-08-07 01:39:22 +02:00
*/
2004-08-07 20:51:54 +02:00
function select_contacts ( $socid , $selected = '' , $htmlname = 'contactid' )
2004-08-07 01:39:22 +02:00
{
// On recherche les societes
$sql = " SELECT s.idp, s.name, s.firstname FROM " ;
$sql .= MAIN_DB_PREFIX . " socpeople as s " ;
$sql .= " WHERE fk_soc= " . $socid ;
$sql .= " ORDER BY s.name ASC " ;
if ( $this -> db -> query ( $sql ))
{
2005-04-27 23:25:05 +02:00
print '<select class="flat" name="' . $htmlname . '">' ;
2004-08-07 01:39:22 +02:00
$num = $this -> db -> num_rows ();
$i = 0 ;
if ( $num )
{
while ( $i < $num )
{
2005-01-05 16:34:24 +01:00
$obj = $this -> db -> fetch_object ();
2004-08-07 01:39:22 +02:00
2005-01-05 16:34:24 +01:00
if ( $selected && $selected == $obj -> idp )
{
2005-08-20 21:03:34 +02:00
print '<option value="' . $obj -> idp . '" selected="true">' . $obj -> name . ' ' . $obj -> firstname . '</option>' ;
2005-01-05 16:34:24 +01:00
}
else
{
print '<option value="' . $obj -> idp . '">' . $obj -> name . ' ' . $obj -> firstname . '</option>' ;
}
2004-08-07 01:39:22 +02:00
$i ++ ;
}
}
2005-01-05 16:34:24 +01:00
print '</select>' ;
}
else
{
dolibarr_print_error ( $this -> db );
2004-08-07 01:39:22 +02:00
}
2004-07-24 00:28:30 +02:00
}
2005-01-05 16:34:24 +01:00
2004-07-24 00:28:30 +02:00
2005-06-27 23:47:44 +02:00
/**
2005-08-11 22:08:59 +02:00
* \brief Affiche la liste d<EFBFBD> roulante des projets d ' une soci<EFBFBD> t<EFBFBD> donn<EFBFBD> e
* \param socid Id soci<EFBFBD> t<EFBFBD>
* \param selected Id projet pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD>
* \param htmlname Nom de la zone html
2005-06-27 23:47:44 +02:00
*/
function select_projects ( $socid = '' , $selected = '' , $htmlname = 'projectid' )
{
2005-07-16 01:28:38 +02:00
// On recherche les projets
2005-06-27 23:47:44 +02:00
$sql = 'SELECT p.rowid, p.title FROM ' ;
2005-07-16 01:28:38 +02:00
$sql .= MAIN_DB_PREFIX . 'projet as p' ;
$sql .= " WHERE fk_soc=' " . $socid . " ' " ;
$sql .= " ORDER BY p.title ASC " ;
2005-06-27 23:47:44 +02:00
$result = $this -> db -> query ( $sql );
if ( $result )
{
print '<select class="flat" name="' . $htmlname . '">' ;
2005-08-11 22:08:59 +02:00
print '<option value="0"> </option>' ;
2005-06-27 23:47:44 +02:00
$num = $this -> db -> num_rows ( $result );
$i = 0 ;
if ( $num )
{
while ( $i < $num )
{
$obj = $this -> db -> fetch_object ();
if ( ! empty ( $selected ) && $selected == $obj -> rowid )
{
2005-08-20 21:03:34 +02:00
print '<option value="' . $obj -> rowid . '" selected="true">' . $obj -> title . '</option>' ;
2005-06-27 23:47:44 +02:00
}
else
{
print '<option value="' . $obj -> rowid . '">' . $obj -> title . '</option>' ;
}
$i ++ ;
}
}
print '</select>' ;
}
else
{
dolibarr_print_error ( $this -> db );
}
}
2005-04-27 02:29:32 +02:00
/**
* \brief Retourne la liste des produits
* \param selected Produit pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD>
2005-05-08 20:05:09 +02:00
* \param htmlname Nom de la zone select
2005-04-27 02:29:32 +02:00
* \param filtretype Pour filtre sur type de produit
2005-07-10 21:52:57 +02:00
* \param limit Limite sur le nombre de lignes retourn<EFBFBD>
2005-04-27 02:29:32 +02:00
*/
2005-09-02 22:17:22 +02:00
function select_produits ( $selected = '' , $htmlname = 'productid' , $filtretype = '' , $limit = 20 )
{
global $langs , $conf ;
2005-07-10 17:54:27 +02:00
2005-09-02 22:17:22 +02:00
$sql = " SELECT p.rowid, p.label, p.ref, p.price, p.duration " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " product as p " ;
$sql .= " WHERE p.envente = 1 " ;
if ( $filtretype && $filtretype != '' ) $sql .= " AND p.fk_product_type= " . $filtretype ;
$sql .= " ORDER BY p.nbvente DESC " ;
if ( $limit ) $sql .= " LIMIT $limit " ;
2005-04-27 02:29:32 +02:00
2005-09-02 22:17:22 +02:00
$result = $this -> db -> query ( $sql );
if ( $result )
2005-04-27 02:29:32 +02:00
{
2005-09-02 22:17:22 +02:00
print '<select class="flat" name="' . $htmlname . '">' ;
print " <option value= \" 0 \" selected= \" true \" > </option> " ;
$num = $this -> db -> num_rows ( $result );
$i = 0 ;
while ( $i < $num )
{
$objp = $this -> db -> fetch_object ( $result );
$opt = " <option value= \" $objp->rowid\ " > [ $objp -> ref ] $objp -> label - $objp -> price " . $langs->trans ( " Currency " . $conf->monnaie );
if ( $objp -> duration ) $opt .= " - " . $objp -> duration ;
$opt .= " </option> \n " ;
print $opt ;
$i ++ ;
}
print '</select>' ;
$this -> db -> free ( $result );
}
else
{
dolibarr_print_error ( $db );
2005-04-27 02:29:32 +02:00
}
}
2005-09-02 22:17:22 +02:00
/**
2005-09-03 14:47:56 +02:00
* \brief Charge dans cache la liste des conditions de paiements possibles
* \return int Nb lignes charg<EFBFBD> es , 0 si d<EFBFBD> j<EFBFBD> charg<EFBFBD> es , < 0 si ko
2005-09-02 22:17:22 +02:00
*/
function load_cache_conditions_paiements ()
2005-04-27 02:29:32 +02:00
{
2005-09-02 22:17:22 +02:00
global $langs ;
2005-09-03 14:47:56 +02:00
if ( sizeof ( $this -> cache_conditions_paiements_code )) return 0 ; // Cache d<> ja charg<72>
2005-09-02 22:17:22 +02:00
dolibarr_syslog ( 'html.form.class.php::load_cache_conditions_paiements' );
$sql = " SELECT rowid, libelle " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " cond_reglement " ;
$sql .= " WHERE actif=1 " ;
$sql .= " ORDER BY sortorder " ;
$resql = $this -> db -> query ( $sql );
if ( $resql )
{
$num = $this -> db -> num_rows ( $result );
$i = 0 ;
while ( $i < $num )
{
$obj = $this -> db -> fetch_object ( $resql );
// Si traduction existe, on l'utilise, sinon on prend le libell<6C> par d<> faut
$libelle = ( $langs -> trans ( $obj -> code ) != $obj -> code ? $langs -> trans ( $obj -> code ) : ( $obj -> libelle != '-' ? $obj -> libelle : '' ));
$this -> cache_conditions_paiements_code [ $obj -> rowid ] = $obj -> code ;
$this -> cache_conditions_paiements_libelle [ $obj -> rowid ] = $libelle ;
$i ++ ;
}
return 1 ;
}
else {
dolibarr_print_error ( $this -> db );
return - 1 ;
}
2005-04-27 02:29:32 +02:00
}
2005-09-02 22:17:22 +02:00
/**
2005-09-03 14:47:56 +02:00
* \brief Charge dans cache la liste des types de paiements possibles
* \return int Nb lignes charg<EFBFBD> es , 0 si d<EFBFBD> j<EFBFBD> charg<EFBFBD> es , < 0 si ko
2005-09-02 22:17:22 +02:00
*/
function load_cache_types_paiements ()
2005-05-08 20:05:09 +02:00
{
global $langs ;
2005-09-02 22:17:22 +02:00
2005-09-03 14:47:56 +02:00
if ( sizeof ( $this -> cache_types_paiements_code )) return 0 ; // Cache d<> ja charg<72>
2005-09-02 22:17:22 +02:00
dolibarr_syslog ( 'html.form.class.php::load_cache_types_paiements' );
$sql = " SELECT id, code, libelle, type " ;
2005-05-08 20:05:09 +02:00
$sql .= " FROM " . MAIN_DB_PREFIX . " c_paiement " ;
$sql .= " WHERE active > 0 " ;
$sql .= " ORDER BY id " ;
2005-09-02 22:17:22 +02:00
$resql = $this -> db -> query ( $sql );
if ( $resql )
2005-05-08 20:05:09 +02:00
{
$num = $this -> db -> num_rows ( $result );
$i = 0 ;
while ( $i < $num )
{
2005-09-02 22:17:22 +02:00
$obj = $this -> db -> fetch_object ( $resql );
2005-05-08 20:05:09 +02:00
// Si traduction existe, on l'utilise, sinon on prend le libell<6C> par d<> faut
2005-09-02 22:17:22 +02:00
$libelle = ( $langs -> trans ( $obj -> code ) != $obj -> code ? $langs -> trans ( $obj -> code ) : ( $obj -> libelle != '-' ? $obj -> libelle : '' ));
$this -> cache_types_paiements_code [ $obj -> id ] = $obj -> code ;
$this -> cache_types_paiements_libelle [ $obj -> id ] = $libelle ;
$this -> cache_types_paiements_type [ $obj -> id ] = $obj -> type ;
2005-05-08 20:05:09 +02:00
$i ++ ;
}
2005-09-03 14:47:56 +02:00
return $num ;
2005-05-08 20:05:09 +02:00
}
else {
dolibarr_print_error ( $this -> db );
2005-09-02 22:17:22 +02:00
return - 1 ;
}
}
/**
2005-09-03 14:47:56 +02:00
* \brief Retourne la liste des types de paiements possibles
* \param selected Id du type de paiement pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD>
* \param htmlname Nom de la zone select
* \param filtertype Pour filtre
2005-09-02 22:17:22 +02:00
*/
function select_conditions_paiements ( $selected = '' , $htmlname = 'condid' , $filtertype =- 1 )
{
global $langs ;
2005-09-03 14:47:56 +02:00
$this -> load_cache_conditions_paiements ();
2005-09-02 22:17:22 +02:00
print '<select class="flat" name="' . $htmlname . '">' ;
foreach ( $this -> cache_conditions_paiements_code as $id => $code )
{
2005-09-03 14:47:56 +02:00
if ( $selected == $id )
2005-09-02 22:17:22 +02:00
{
print '<option value="' . $id . '" selected="true">' ;
}
else
{
print '<option value="' . $id . '">' ;
}
print $this -> cache_conditions_paiements_libelle [ $id ];
print '</option>' ;
}
print '</select>' ;
}
/**
2005-09-03 14:47:56 +02:00
* \brief Retourne la liste des modes de paiements possibles
* \param selected Id du mode de paiement pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD>
2005-09-02 22:17:22 +02:00
* \param htmlname Nom de la zone select
2005-09-02 23:48:34 +02:00
* \param filtertype Pour filtre
2005-09-02 22:17:22 +02:00
* \param format 0 = id + libelle , 1 = code + code
*/
function select_types_paiements ( $selected = '' , $htmlname = 'paiementtype' , $filtertype = '' , $format = 0 )
{
global $langs ;
$filterarray = array ();
if ( $filtertype && $filtertype != '-1' ) $filterarray = split ( ',' , $filtertype );
2005-09-03 14:47:56 +02:00
$this -> load_cache_types_paiements ();
2005-09-02 22:17:22 +02:00
print '<select class="flat" name="' . $htmlname . '">' ;
foreach ( $this -> cache_types_paiements_code as $id => $code )
{
// On passe si on a demand<6E> de filtrer sur des modes de paiments particuli<6C> rs
if ( sizeof ( $filterarray ) && ! in_array ( $this -> cache_types_paiements_type [ $id ], $filterarray )) continue ;
if ( $format == 0 ) print '<option value="' . $id . '"' ;
if ( $format == 1 ) print '<option value="' . $code . '"' ;
2005-09-03 14:47:56 +02:00
// Si selected est text, on compare avec code, sinon avec id
if ( eregi ( '[a-z]' , $selected ) && $selected == $code ) print ' selected="true"' ;
elseif ( $selected == $id ) print ' selected="true"' ;
2005-09-02 22:17:22 +02:00
print '>' ;
if ( $format == 0 ) print $this -> cache_types_paiements_libelle [ $id ];
if ( $format == 1 ) print $code ;
print '</option>' ;
2005-05-08 20:05:09 +02:00
}
2005-09-02 22:17:22 +02:00
print '</select>' ;
2005-05-08 20:05:09 +02:00
}
2005-09-05 00:39:53 +02:00
/**
* \brief Retourne la liste des comptes
* \param selected Id compte pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD>
* \param htmlname Nom de la zone select
* \param statut Statut des comptes recherch<EFBFBD> s
* \param filtre Pour filtre sur la liste
* \param useempty Affiche valeur vide dans liste
*/
function select_comptes ( $selected = '' , $htmlname = 'accountid' , $statut = 0 , $filtre = '' , $useempty = 0 )
2005-05-08 20:05:09 +02:00
{
global $langs ;
$sql = " SELECT rowid, label, bank " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " bank_account " ;
2005-09-05 00:39:53 +02:00
$sql .= " WHERE clos = ' " . $statut . " ' " ;
2005-05-08 20:05:09 +02:00
if ( $filtre ) $sql .= " AND " . $filtre ;
$sql .= " ORDER BY rowid " ;
$result = $this -> db -> query ( $sql );
if ( $result )
{
print '<select class="flat" name="' . $htmlname . '">' ;
2005-09-05 00:39:53 +02:00
if ( $useempty )
{
print '<option value="' . $obj -> rowid . '"> </option>' ;
}
2005-05-08 20:05:09 +02:00
$num = $this -> db -> num_rows ( $result );
$i = 0 ;
while ( $i < $num )
{
$obj = $this -> db -> fetch_object ( $result );
if ( $selected == $obj -> rowid )
{
2005-08-20 21:03:34 +02:00
print '<option value="' . $obj -> rowid . '" selected="true">' ;
2005-05-08 20:05:09 +02:00
}
else
{
print '<option value="' . $obj -> rowid . '">' ;
}
print $obj -> label ;
print '</option>' ;
$i ++ ;
}
print " </select> " ;
}
else {
dolibarr_print_error ( $this -> db );
}
}
2004-07-21 10:43:48 +02:00
2005-03-28 15:52:40 +02:00
/**
2004-10-23 16:27:26 +02:00
* \brief Retourne la liste d<EFBFBD> roulante des civilite actives
* \param selected civilite pr<EFBFBD> - s<EFBFBD> lectionn<EFBFBD> e
2004-06-16 15:21:13 +02:00
*/
2004-08-07 20:51:54 +02:00
function select_civilite ( $selected = '' )
2004-06-16 15:21:13 +02:00
{
2004-09-18 18:36:33 +02:00
global $conf , $langs ;
$langs -> load ( " dict " );
2004-08-08 21:23:55 +02:00
$sql = " SELECT rowid, code, civilite, active FROM " . MAIN_DB_PREFIX . " c_civilite " ;
2004-06-16 15:21:13 +02:00
$sql .= " WHERE active = 1 " ;
2004-09-18 18:36:33 +02:00
2004-06-16 15:21:13 +02:00
if ( $this -> db -> query ( $sql ))
2005-01-05 16:34:24 +01:00
{
2005-04-27 23:25:05 +02:00
print '<select class="flat" name="civilite_id">' ;
2004-12-25 19:31:51 +01:00
print '<option value=""> </option>' ;
2004-09-18 18:36:33 +02:00
$num = $this -> db -> num_rows ();
$i = 0 ;
if ( $num )
2005-01-05 16:34:24 +01:00
{
2004-09-18 18:36:33 +02:00
while ( $i < $num )
2005-01-05 16:34:24 +01:00
{
2004-10-23 23:02:56 +02:00
$obj = $this -> db -> fetch_object ();
2004-12-25 19:31:51 +01:00
if ( $selected == $obj -> code )
2005-01-05 16:34:24 +01:00
{
2005-08-20 21:03:34 +02:00
print '<option value="' . $obj -> code . '" selected="true">' ;
2005-01-05 16:34:24 +01:00
}
2004-09-18 18:36:33 +02:00
else
2005-01-05 16:34:24 +01:00
{
2004-09-18 18:36:33 +02:00
print '<option value="' . $obj -> code . '">' ;
2005-01-05 16:34:24 +01:00
}
2004-12-22 21:07:14 +01:00
// Si traduction existe, on l'utilise, sinon on prend le libell<6C> par d<> faut
2004-09-18 18:36:33 +02:00
print ( $langs -> trans ( $obj -> code ) != $obj -> code ? $langs -> trans ( $obj -> code ) : ( $obj -> civilite != '-' ? $obj -> civilite : '' ));
print '</option>' ;
$i ++ ;
2005-01-05 16:34:24 +01:00
}
}
2004-09-18 18:36:33 +02:00
print '</select>' ;
2005-01-05 16:34:24 +01:00
}
2004-08-07 01:39:22 +02:00
else {
2005-01-05 16:34:24 +01:00
dolibarr_print_error ( $this -> db );
2004-09-18 18:36:33 +02:00
}
2004-06-16 15:21:13 +02:00
}
2005-05-08 20:05:09 +02:00
2005-03-28 15:52:40 +02:00
/**
2005-05-08 20:05:09 +02:00
* \brief Retourne la liste d<EFBFBD> roulante des formes juridiques tous pays confondus ou pour un pays donn<EFBFBD> .
2005-02-13 19:16:02 +01:00
* \remarks Dans le cas d ' une liste tous pays confondu , on affiche une rupture sur le pays
2005-07-10 21:31:44 +02:00
* \param selected Code forme juridique a pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD>
2005-02-13 19:16:02 +01:00
* \param pays_code 0 = liste tous pays confondus , sinon code du pays <EFBFBD> afficher
2004-06-10 19:34:33 +02:00
*/
2004-10-20 23:06:45 +02:00
2005-02-13 19:16:02 +01:00
function select_forme_juridique ( $selected = '' , $pays_code = 0 )
2004-09-18 18:36:33 +02:00
{
global $conf , $langs ;
$langs -> load ( " dict " );
2005-02-13 19:16:02 +01:00
2004-09-18 18:36:33 +02:00
// On recherche les formes juridiques actives des pays actifs
2005-02-13 19:16:02 +01:00
$sql = " SELECT f.rowid, f.code as code , f.libelle as nom, f.active, p.libelle as libelle_pays, p.code as code_pays " ;
$sql .= " FROM llx_c_forme_juridique as f, llx_c_pays as p " ;
2004-09-18 18:36:33 +02:00
$sql .= " WHERE f.fk_pays=p.rowid " ;
2005-02-13 19:16:02 +01:00
$sql .= " AND f.active = 1 AND p.active = 1 " ;
if ( $pays_code ) $sql .= " AND p.code = ' " . $pays_code . " ' " ;
$sql .= " ORDER BY p.code, f.code " ;
2004-09-18 18:36:33 +02:00
2005-02-13 19:16:02 +01:00
$result = $this -> db -> query ( $sql );
if ( $result )
{
2005-04-27 23:25:05 +02:00
print '<select class="flat" name="forme_juridique_code">' ;
2005-02-13 19:16:02 +01:00
if ( $pays_code ) print '<option value="0"> </option>' ;
$num = $this -> db -> num_rows ( $result );
2004-09-18 18:36:33 +02:00
$i = 0 ;
if ( $num )
2005-02-13 19:16:02 +01:00
{
2004-09-18 18:36:33 +02:00
$pays = '' ;
while ( $i < $num )
2005-02-13 19:16:02 +01:00
{
$obj = $this -> db -> fetch_object ( $result );
2004-09-18 18:36:33 +02:00
if ( $obj -> code == 0 ) {
2005-02-13 19:16:02 +01:00
print '<option value="0"> </option>' ;
2004-09-18 18:36:33 +02:00
}
else {
2005-02-13 19:16:02 +01:00
if ( ! $pays || $pays != $obj -> libelle_pays ) {
// Affiche la rupture si on est en mode liste multipays
if ( ! $pays_code && $obj -> code_pays ) {
print '<option value="0">----- ' . $obj -> libelle_pays . " -----</option> \n " ;
$pays = $obj -> libelle_pays ;
}
}
2004-09-18 18:36:33 +02:00
2005-02-13 19:16:02 +01:00
if ( $selected > 0 && $selected == $obj -> code )
2004-09-18 18:36:33 +02:00
{
2005-08-20 21:03:34 +02:00
print '<option value="' . $obj -> code . '" selected="true">' ;
2004-09-18 18:36:33 +02:00
}
2005-02-13 19:16:02 +01:00
else
2004-09-18 18:36:33 +02:00
{
2005-02-13 19:16:02 +01:00
print '<option value="' . $obj -> code . '">' ;
2004-09-18 18:36:33 +02:00
}
2005-02-13 19:16:02 +01:00
// Si traduction existe, on l'utilise, sinon on prend le libell<6C> par d<> faut
print $obj -> code . ' - ' . ( $langs -> trans ( $obj -> code ) != $obj -> code ? $langs -> trans ( $obj -> code ) : ( $obj -> nom != '-' ? $obj -> nom : '' ));
print '</option>' ;
2004-06-10 19:34:33 +02:00
}
2004-09-18 18:36:33 +02:00
$i ++ ;
2005-02-13 19:16:02 +01:00
}
}
2004-09-18 18:36:33 +02:00
print '</select>' ;
2005-02-13 19:16:02 +01:00
}
2004-09-18 18:36:33 +02:00
else {
2005-02-13 19:16:02 +01:00
dolibarr_print_error ( $this -> db );
2004-06-10 19:34:33 +02:00
}
2004-09-18 18:36:33 +02:00
}
2004-07-21 10:05:56 +02:00
2005-05-08 20:05:09 +02:00
2005-08-20 16:36:32 +02:00
/**
* \brief Retourne le nom traduit de la forme juridique
* \param code Code de la forme juridique
* \return string Nom traduit du pays
*/
function forme_juridique_name ( $code )
{
global $langs ;
$sql = " SELECT libelle FROM " . MAIN_DB_PREFIX . " c_forme_juridique " ;
$sql .= " WHERE code=' $code '; " ;
if ( $this -> db -> query ( $sql ))
{
$num = $this -> db -> num_rows ();
if ( $num )
{
$obj = $this -> db -> fetch_object ();
2005-08-20 16:45:46 +02:00
$label = ( $obj -> libelle != '-' ? $obj -> libelle : '' );
2005-08-20 16:36:32 +02:00
return $label ;
}
else
{
return $langs -> trans ( " NotDefined " );
}
}
}
2005-09-07 22:26:15 +02:00
/**
* \brief Retourne le formulaire de saisie d ' un identifiant professionnel ( siren , siret , etc ... )
* \param idprof 1 , 2 , 3 , 4 ( Exemple : 1 = siren , 2 = siret , 3 = naf , 4 = rcs / rm )
* \param soc Objet societe
* \param htmlname Nom de la zone input
*/
function id_prof ( $idprof , $soc , $htmlname , $selected = '' )
{
global $langs ;
$formlength = 16 ;
if ( $idprof == 1 && $soc -> pays_code == 'FR' ) $formlength = 9 ;
if ( $idprof == 2 && $soc -> pays_code == 'FR' ) $formlength = 14 ;
if ( $idprof == 3 && $soc -> pays_code == 'FR' ) $formlength = 4 ;
if ( $idprof == 4 && $soc -> pays_code == 'FR' ) $formlength = 4 ;
print '<input type="text" name="' . $htmlname . '" size="' . ( $formlength + 1 ) . '" maxlength="' . $formlength . '" value="' . $selected . '">' ;
}
2005-05-08 20:05:09 +02:00
/**
2005-07-09 13:49:05 +02:00
* \brief Retourne le nom traduit ou code + nom d ' un pays
* \param id id du pays
* \param withcode 1 = affiche code + nom
* \return string Nom traduit du pays
2005-05-08 20:05:09 +02:00
*/
2005-07-09 13:49:05 +02:00
function pays_name ( $id , $withcode = 0 )
{
global $langs ;
$sql = " SELECT rowid, code, libelle FROM " . MAIN_DB_PREFIX . " c_pays " ;
$sql .= " WHERE rowid= $id ; " ;
if ( $this -> db -> query ( $sql ))
{
$num = $this -> db -> num_rows ();
if ( $num )
{
$obj = $this -> db -> fetch_object ();
$label = $obj -> code && $langs -> trans ( " Country " . $obj -> code ) != " Country " . $obj -> code ? $langs -> trans ( " Country " . $obj -> code ) : ( $obj -> libelle != '-' ? $obj -> libelle : '' );
if ( $withcode ) return $label == $obj -> code ? " $obj->code " : " $obj->code - $label " ;
else return $label ;
}
else
{
return $langs -> trans ( " NotDefined " );
}
}
}
2005-08-18 19:48:35 +02:00
2005-08-20 16:36:32 +02:00
2005-08-18 19:48:35 +02:00
/**
* \brief Retourne le nom traduit ou code + nom d ' une devise
* \param code_iso Code iso de la devise
* \param withcode 1 = affiche code + nom
* \return string Nom traduit de la devise
*/
function currency_name ( $code_iso , $withcode = 0 )
2005-07-09 13:49:05 +02:00
{
global $langs ;
2005-08-18 19:48:35 +02:00
// Si il existe une traduction, on peut renvoyer de suite le libell<6C>
if ( $langs -> trans ( " Currency " . $code_iso ) != " Currency " . $code_iso )
{
return $langs -> trans ( " Currency " . $code_iso );
}
// Si pas de traduction, on consulte libell<6C> par d<> faut en table
2005-07-09 13:49:05 +02:00
$sql = " SELECT label FROM " . MAIN_DB_PREFIX . " c_currencies " ;
$sql .= " WHERE code_iso=' $code_iso '; " ;
if ( $this -> db -> query ( $sql ))
{
$num = $this -> db -> num_rows ();
if ( $num )
{
$obj = $this -> db -> fetch_object ();
2005-08-18 19:48:35 +02:00
$label = ( $obj -> label != '-' ? $obj -> label : '' );
2005-07-09 13:49:05 +02:00
if ( $withcode ) return $label == $code_iso ? " $code_iso " : " $code_iso - $label " ;
else return $label ;
}
else
{
return $code_iso ;
}
}
}
2005-05-08 20:05:09 +02:00
2005-03-28 15:52:40 +02:00
/**
2004-09-18 18:36:33 +02:00
* \brief Affiche formulaire de demande de confirmation
* \param page page
* \param title title
* \param question question
* \param action action
2002-12-19 19:55:38 +01:00
*/
2004-10-20 23:06:45 +02:00
2004-08-07 20:51:54 +02:00
function form_confirm ( $page , $title , $question , $action )
2003-03-25 18:43:25 +01:00
{
2004-07-28 00:37:51 +02:00
global $langs ;
2003-03-25 18:43:25 +01:00
print '<form method="post" action="' . $page . '">' ;
2003-09-12 15:00:02 +02:00
print '<input type="hidden" name="action" value="' . $action . '">' ;
2004-10-23 23:02:56 +02:00
print '<table class="border" width="100%">' ;
2005-06-11 14:12:55 +02:00
// Ligne titre
print '<tr><td class="validtitle" colspan="3">' . $title . '</td></tr>' ;
// Ligne message
2003-03-25 18:43:25 +01:00
print '<tr><td class="valid">' . $question . '</td><td class="valid">' ;
$this -> selectyesno ( " confirm " , " no " );
print " </td> \n " ;
2005-04-27 23:52:22 +02:00
print '<td class="valid" align="center"><input class="button" type="submit" value="' . $langs -> trans ( " Confirm " ) . '"</td></tr>' ;
2005-06-11 14:12:55 +02:00
2003-03-25 18:43:25 +01:00
print '</table>' ;
print " </form> \n " ;
}
2005-05-08 20:05:09 +02:00
2005-09-03 14:47:56 +02:00
/**
* \brief Affiche formulaire de selection de projet
* \param page Page
* \param socid Id societe
* \param selected Id projet pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD>
* \param htmlname Nom du formulaire select
*/
2005-07-16 01:28:38 +02:00
function form_project ( $page , $socid , $selected = '' , $htmlname = 'projectid' )
{
global $langs ;
$langs -> load ( " project " );
if ( $htmlname != " none " )
{
print '<form method="post" action="' . $page . '">' ;
print '<input type="hidden" name="action" value="classin">' ;
print '<table class="noborder" cellpadding="0" cellspacing="0">' ;
print '<tr><td>' ;
2005-09-06 14:09:05 +02:00
$this -> select_projects ( $socid , $selected , $htmlname );
2005-07-16 01:28:38 +02:00
print '</td>' ;
2005-08-11 22:08:59 +02:00
print '<td align="left"><input type="submit" class="button" value="' . $langs -> trans ( " Modify " ) . '"></td>' ;
2005-07-16 01:28:38 +02:00
print '</tr></table></form>' ;
}
else
{
if ( $selected ) {
$projet = New Project ( $this -> db );
$projet -> fetch ( $selected );
print '<a href="' . DOL_URL_ROOT . '/projet/fiche.php?id=' . $selected . '">' . $projet -> title . '</a>' ;
} else {
print " " ;
}
}
}
2005-09-03 14:47:56 +02:00
/**
* \brief Affiche formulaire de selection de conditions de paiement
* \param page Page
* \param selected Id condition pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD> e
* \param htmlname Nom du formulaire select
*/
function form_conditions_reglement ( $page , $selected = '' , $htmlname = 'cond_reglement_id' )
{
global $langs ;
if ( $htmlname != " none " )
{
print '<form method="post" action="' . $page . '">' ;
print '<input type="hidden" name="action" value="setconditions">' ;
print '<table class="noborder" cellpadding="0" cellspacing="0">' ;
print '<tr><td>' ;
$this -> select_conditions_paiements ( $selected , $htmlname );
print '</td>' ;
print '<td align="left"><input type="submit" class="button" value="' . $langs -> trans ( " Modify " ) . '"></td>' ;
print '</tr></table></form>' ;
}
else
{
if ( $selected )
{
$this -> load_cache_conditions_paiements ();
print $this -> cache_conditions_paiements_libelle [ $selected ];
} else {
print " " ;
}
}
}
/**
* \brief Affiche formulaire de selection des modes de reglement
* \param page Page
* \param selected Id mode pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD>
* \param htmlname Nom du formulaire select
*/
function form_modes_reglement ( $page , $selected = '' , $htmlname = 'mode_reglement_id' )
{
global $langs ;
if ( $htmlname != " none " )
{
print '<form method="post" action="' . $page . '">' ;
print '<input type="hidden" name="action" value="setmode">' ;
print '<table class="noborder" cellpadding="0" cellspacing="0">' ;
print '<tr><td>' ;
$this -> select_types_paiements ( $selected , $htmlname );
print '</td>' ;
print '<td align="left"><input type="submit" class="button" value="' . $langs -> trans ( " Modify " ) . '"></td>' ;
print '</tr></table></form>' ;
}
else
{
if ( $selected )
{
$this -> load_cache_types_paiements ();
print $this -> cache_types_paiements_libelle [ $selected ];
} else {
print " " ;
}
}
}
/**
* \brief Retourne la liste des devises , dans la langue de l ' utilisateur
* \param selected code devise pr<EFBFBD> - s<EFBFBD> lectionn<EFBFBD> e
* \param htmlname nom de la liste deroulante
* \todo trier liste sur noms apr<EFBFBD> s traduction plutot que avant
*/
2005-07-09 13:49:05 +02:00
function select_currency ( $selected = '' , $htmlname = 'currency_id' )
{
global $conf , $langs ;
$langs -> load ( " dict " );
if ( $selected == 'euro' || $selected == 'euros' ) $selected = 'EUR' ; // Pour compatibilit<69>
$sql = " SELECT code_iso, label, active FROM " . MAIN_DB_PREFIX . " c_currencies " ;
$sql .= " WHERE active = 1 " ;
$sql .= " ORDER BY code_iso ASC; " ;
if ( $this -> db -> query ( $sql ))
{
print '<select class="flat" name="' . $htmlname . '">' ;
$num = $this -> db -> num_rows ();
$i = 0 ;
if ( $num )
{
$foundselected = false ;
while ( $i < $num )
{
$obj = $this -> db -> fetch_object ();
if ( $selected && $selected == $obj -> code_iso )
{
$foundselected = true ;
2005-08-20 21:03:34 +02:00
print '<option value="' . $obj -> code_iso . '" selected="true">' ;
2005-07-09 13:49:05 +02:00
}
else
{
print '<option value="' . $obj -> code_iso . '">' ;
}
// Si traduction existe, on l'utilise, sinon on prend le libell<6C> par d<> faut
if ( $obj -> code_iso ) { print $obj -> code_iso . ' - ' ; }
print ( $obj -> code_iso && $langs -> trans ( " Currency " . $obj -> code_iso ) != " Currency " . $obj -> code_iso ? $langs -> trans ( " Currency " . $obj -> code_iso ) : ( $obj -> label != '-' ? $obj -> label : '' ));
print '</option>' ;
$i ++ ;
}
}
print '</select>' ;
return 0 ;
}
else {
dolibarr_print_error ( $this -> db );
return 1 ;
}
}
2005-07-03 15:11:23 +02:00
/**
* \brief Selection du taux de tva
* \param name Nom champ html
* \param defaulttx Taux tva pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD>
2005-07-10 21:52:57 +02:00
* \param default Proposer ligne " Defaut "
2005-07-03 15:11:23 +02:00
*/
function select_tva ( $name = 'tauxtva' , $defaulttx = '' , $default = 0 )
{
2005-08-20 00:32:32 +02:00
global $langs , $conf ;
if ( ! $conf -> global -> MAIN_INFO_SOCIETE_PAYS )
{
print '<font class="error">' . $langs -> trans ( " ErrorYourCountryIsNotDefined " ) . '</div>' ;
}
2005-07-03 15:11:23 +02:00
2005-08-20 00:32:32 +02:00
$sql = " SELECT t.taux,t.recuperableonly " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " c_tva AS t " ;
$sql .= " WHERE t.fk_pays = ' " . $conf -> global -> MAIN_INFO_SOCIETE_PAYS . " ' " ;
$sql .= " AND t.active = 1 " ;
$sql .= " ORDER BY t.taux ASC, t.recuperableonly ASC " ;
if ( $this -> db -> query ( $sql ))
2005-07-03 15:11:23 +02:00
{
2005-08-20 00:32:32 +02:00
$num = $this -> db -> num_rows ();
for ( $i = 0 ; $i < $num ; $i ++ )
{
$obj = $this -> db -> fetch_object ();
$txtva [ $i ] = $obj -> taux ;
$libtva [ $i ] = $obj -> taux . '%' . ( $obj -> recuperableonly ? ' *' : '' );
}
2005-07-03 15:11:23 +02:00
}
else
{
$txtva [ 0 ] = '19.6' ;
2005-08-20 21:12:36 +02:00
$libtva [ 0 ] = '19.6%' ;
2005-07-03 15:11:23 +02:00
$txtva [ 1 ] = '5.5' ;
2005-08-20 21:12:36 +02:00
$libtva [ 1 ] = '5.5%' ;
2005-07-03 15:11:23 +02:00
$txtva [ 2 ] = '0' ;
2005-08-20 21:12:36 +02:00
$libtva [ 2 ] = '0%' ;
2005-07-03 15:11:23 +02:00
}
2005-08-20 00:32:32 +02:00
2005-07-03 15:11:23 +02:00
if ( $defaulttx == '' )
{
$defaulttx = $txtva [ 0 ];
}
2005-08-20 00:32:32 +02:00
2005-07-03 15:11:23 +02:00
$taille = sizeof ( $txtva );
2005-08-20 00:32:32 +02:00
2005-07-03 15:11:23 +02:00
print '<select class="flat" name="' . $name . '">' ;
if ( $default ) print '<option value="0">' . $langs -> trans ( " Default " ) . '</option>' ;
2005-08-20 00:32:32 +02:00
2005-07-03 15:11:23 +02:00
for ( $i = 0 ; $i < $taille ; $i ++ )
{
print '<option value="' . $txtva [ $i ] . '"' ;
if ( $txtva [ $i ] == $defaulttx )
{
2005-08-20 21:03:34 +02:00
print ' selected="true"' ;
2005-07-03 15:11:23 +02:00
}
2005-08-20 21:12:36 +02:00
print '>' . $libtva [ $i ] . '</option>' ;
2005-07-03 15:11:23 +02:00
}
print '</select>' ;
}
2003-03-12 19:59:53 +01:00
2005-05-08 20:05:09 +02:00
2005-09-01 20:02:12 +02:00
/**
* \brief Affiche zone de selection de date
* Liste deroulante pour les jours , mois , annee et eventuellement heurs et minutes
* Les champs sont pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD> es avec :
* - La date set_time ( timestamps ou date au format YYYY - MM - DD ou YYYY - MM - DD HH : MM )
* - La date du jour si set_time vaut ''
* - Aucune date ( champs vides ) si set_time vaut - 1
*/
function select_date ( $set_time = '' , $prefix = 're' , $h = 0 , $m = 0 , $empty = 0 )
{
global $langs ;
2003-03-12 19:59:53 +01:00
2005-09-01 20:02:12 +02:00
if ( ! $set_time && $empty == 0 )
{
$set_time = time ();
}
2003-03-12 19:59:53 +01:00
2005-09-01 20:02:12 +02:00
$strmonth [ 1 ] = $langs -> trans ( " January " );
$strmonth [ 2 ] = $langs -> trans ( " February " );
$strmonth [ 3 ] = $langs -> trans ( " March " );
$strmonth [ 4 ] = $langs -> trans ( " April " );
$strmonth [ 5 ] = $langs -> trans ( " May " );
$strmonth [ 6 ] = $langs -> trans ( " June " );
$strmonth [ 7 ] = $langs -> trans ( " July " );
$strmonth [ 8 ] = $langs -> trans ( " August " );
$strmonth [ 9 ] = $langs -> trans ( " September " );
$strmonth [ 10 ] = $langs -> trans ( " October " );
$strmonth [ 11 ] = $langs -> trans ( " November " );
$strmonth [ 12 ] = $langs -> trans ( " December " );
2003-03-12 19:59:53 +01:00
2005-09-01 20:02:12 +02:00
// Analyse de la date de pr<70> selection
if ( eregi ( '^([0-9]+)\-([0-9]+)\-([0-9]+)\s?([0-9]+)?:?([0-9]+)?' , $set_time , $reg )) {
// Date au format 'YYYY-MM-DD' ou 'YYYY-MM-DD HH:MM:SS'
$syear = $reg [ 1 ];
$smonth = $reg [ 2 ];
$sday = $reg [ 3 ];
$shour = $reg [ 4 ];
$smin = $reg [ 5 ];
2005-08-20 21:03:34 +02:00
}
2005-09-01 20:02:12 +02:00
elseif ( $set_time ) {
// Date est un timestamps
$syear = date ( " Y " , $set_time );
$smonth = date ( " n " , $set_time );
$sday = date ( " d " , $set_time );
$shour = date ( " H " , $set_time );
$smin = date ( " i " , $set_time );
}
else {
// Date est vide
$syear = '' ;
$smonth = '' ;
$sday = '' ;
$shour = '' ;
$smin = '' ;
2005-08-20 21:03:34 +02:00
}
2003-03-12 19:59:53 +01:00
2005-09-01 20:02:12 +02:00
// Jour
print '<select class="flat" name="' . $prefix . 'day">' ;
2003-03-12 19:59:53 +01:00
2005-09-01 20:02:12 +02:00
if ( $empty || $set_time == - 1 )
2005-08-20 21:03:34 +02:00
{
2005-09-01 20:02:12 +02:00
$sday = 0 ;
$smonth = 0 ;
$syear = 0 ;
$shour = 0 ;
$smin = 0 ;
2005-09-04 17:22:22 +02:00
print '<option value="0" selected="true"> </option>' ;
2005-08-20 21:03:34 +02:00
}
2005-09-01 20:02:12 +02:00
for ( $day = 1 ; $day <= 31 ; $day ++ )
2005-08-20 21:03:34 +02:00
{
2005-09-01 20:02:12 +02:00
if ( $day == $sday )
{
print " <option value= \" $day\ " selected = \ " true \" > $day " ;
}
else
{
print " <option value= \" $day\ " > $day " ;
}
print " </option> " ;
2005-08-20 21:03:34 +02:00
}
2005-09-01 20:02:12 +02:00
print " </select> " ;
print '<select class="flat" name="' . $prefix . 'month">' ;
if ( $empty || $set_time == - 1 )
2005-08-20 21:03:34 +02:00
{
2005-09-04 17:22:22 +02:00
print '<option value="0" selected="true"> </option>' ;
2005-08-20 21:03:34 +02:00
}
2003-08-03 13:56:34 +02:00
2005-09-01 20:02:12 +02:00
// Mois
for ( $month = 1 ; $month <= 12 ; $month ++ )
2005-08-20 21:03:34 +02:00
{
2005-09-01 20:02:12 +02:00
if ( $month == $smonth )
{
print " <option value= \" $month\ " selected = \ " true \" > " . $strmonth [ $month ];
}
else
{
print " <option value= \" $month\ " > " . $strmonth[$month] ;
}
print " </option> " ;
2005-08-20 21:03:34 +02:00
}
2005-09-01 20:02:12 +02:00
print " </select> " ;
// Ann<6E> e
if ( $empty || $set_time == - 1 )
2005-08-20 21:03:34 +02:00
{
2005-09-01 20:02:12 +02:00
print '<input class="flat" type="text" size="3" maxlength="4" name="' . $prefix . 'year">' ;
2005-08-20 21:03:34 +02:00
}
else
{
2005-09-01 20:02:12 +02:00
print '<select class="flat" name="' . $prefix . 'year">' ;
for ( $year = $syear - 3 ; $year < $syear + 5 ; $year ++ )
2005-08-20 21:03:34 +02:00
{
2005-09-01 20:02:12 +02:00
if ( $year == $syear )
{
print " <option value= \" $year\ " selected = \ " true \" > $year " ;
}
else
{
print " <option value= \" $year\ " > $year " ;
}
print " </option> " ;
2005-08-20 21:03:34 +02:00
}
2005-09-01 20:02:12 +02:00
print " </select> \n " ;
}
if ( $h )
{
print '<select class="flat" name="' . $prefix . 'hour">' ;
for ( $hour = 0 ; $hour < 24 ; $hour ++ )
2005-08-20 21:03:34 +02:00
{
2005-09-01 20:02:12 +02:00
if ( strlen ( $hour ) < 2 )
{
$hour = " 0 " . $hour ;
}
if ( $hour == $shour )
{
print " <option value= \" $hour\ " selected = \ " true \" > $hour " ;
}
else
{
print " <option value= \" $hour\ " > $hour " ;
}
print " </option> " ;
2005-08-20 21:03:34 +02:00
}
2005-09-01 20:02:12 +02:00
print " </select>H \n " ;
if ( $m )
2005-08-20 21:03:34 +02:00
{
2005-09-01 20:02:12 +02:00
print '<select class="flat" name="' . $prefix . 'min">' ;
for ( $min = 0 ; $min < 60 ; $min ++ )
{
if ( strlen ( $min ) < 2 )
{
$min = " 0 " . $min ;
}
if ( $min == $smin )
{
print " <option value= \" $min\ " selected = \ " true \" > $min " ;
}
else
{
print " <option value= \" $min\ " > $min " ;
}
print " </option> " ;
}
print " </select>M \n " ;
2005-08-20 21:03:34 +02:00
}
2005-09-01 20:02:12 +02:00
}
}
2004-10-20 23:06:45 +02:00
2005-08-23 20:04:15 +02:00
/**
* \brief Affiche liste d<EFBFBD> roulante depuis requete SQL
2005-09-02 23:48:34 +02:00
* \param name Nom de la zone select
* \param sql Requete sql
* \param id Id pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD>
2005-08-23 20:04:15 +02:00
*/
function select ( $name , $sql , $id = '' )
{
$resql = $this -> db -> query ( $sql );
if ( $resql )
{
print '<select class="flat" name="' . $name . '">' ;
$num = $this -> db -> num_rows ( $resql );
$i = 0 ;
while ( $i < $num )
{
$row = $this -> db -> fetch_row ( $resql );
print '<option value="' . $row [ 0 ] . '"' ;
if ( $id != '' && $id == $row [ 0 ])
{
print ' selected="true"' ;
}
print '>' . $row [ 1 ] . '</option>' ;
$i ++ ;
}
print " </select> \n " ;
}
else
{
dolibarr_print_error ( $this -> db );
}
}
2004-08-05 04:14:46 +02:00
2005-03-28 15:52:40 +02:00
/**
\brief Affiche un select <EFBFBD> partir d ' un tableau
2005-01-05 16:34:24 +01:00
\param name nom de la zone select
\param array tableau de key + valeur
\param id key pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD> e
\param empty 1 si il faut un valeur " " dans la liste , 0 sinon
\param key_libelle 1 pour afficher la key dans la valeur " [key] value "
*/
2004-10-20 23:06:45 +02:00
2004-08-07 20:51:54 +02:00
function select_array ( $name , $array , $id = '' , $empty = 0 , $key_libelle = 0 )
2005-01-05 16:34:24 +01:00
{
2005-04-09 16:11:36 +02:00
print '<select class="flat" name="' . $name . '">' ;
2004-12-25 20:03:22 +01:00
2005-01-05 16:34:24 +01:00
$i = 0 ;
2004-12-25 20:03:22 +01:00
2005-01-05 16:34:24 +01:00
if ( strlen ( $id )) {
if ( $empty == 1 )
{
$array [ 0 ] = " " ;
}
reset ( $array );
}
2004-12-25 20:03:22 +01:00
2005-01-05 16:34:24 +01:00
while ( list ( $key , $value ) = each ( $array ))
{
print " <option value= \" $key\ " " ;
// Si il faut pr<70> s<EFBFBD> lectionner une valeur
if ( $id && $id == $key )
{
2005-08-20 21:03:34 +02:00
print 'selected="true"' ;
2005-01-05 16:34:24 +01:00
}
if ( $key_libelle )
{
print " >[ $key ] $value </option> \n " ;
}
else
{
if ( $value == " - " ) { $value = " " ; }
print " > $value </option> \n " ;
}
}
2005-03-28 15:52:40 +02:00
2005-01-05 16:34:24 +01:00
print " </select> " ;
}
2005-03-28 15:52:40 +02:00
/**
2004-10-23 16:27:26 +02:00
* \brief Renvoie la cha<EFBFBD> ne de caract<EFBFBD> re d<EFBFBD> crivant l ' erreur
2002-12-19 19:55:38 +01:00
*
*/
2004-10-20 23:06:45 +02:00
2004-08-07 20:51:54 +02:00
function error ()
2005-01-05 16:34:24 +01:00
{
return $this -> errorstr ;
}
2004-10-23 16:27:26 +02:00
2005-03-28 15:52:40 +02:00
/**
* \brief Selection de oui / non en chaine ( renvoie yes / no )
2005-07-10 21:31:44 +02:00
* \param name Nom du select
* \param value Valeur pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD> e
* \param option 0 retourne yes / no , 1 retourne 1 / 0
2002-12-30 16:13:28 +01:00
*/
2004-10-23 16:27:26 +02:00
function selectyesno ( $name , $value = '' , $option = 0 )
2002-12-30 16:13:28 +01:00
{
2004-07-25 19:43:23 +02:00
global $langs ;
2005-04-16 15:30:36 +02:00
2004-10-23 16:27:26 +02:00
$yes = " yes " ; $no = " no " ;
2004-11-24 12:17:27 +01:00
2005-04-16 15:30:36 +02:00
if ( $option )
{
$yes = " 1 " ;
$no = " 0 " ;
}
2005-06-19 13:50:23 +02:00
2005-04-09 16:11:36 +02:00
print '<select class="flat" name="' . $name . '">' . " \n " ;
2005-06-19 13:50:23 +02:00
if (( " $value " == 'yes' ) || ( $value == 1 ))
2005-04-16 15:30:36 +02:00
{
2005-08-20 21:03:34 +02:00
print '<option value="' . $yes . '" selected="true">' . $langs -> trans ( " yes " ) . '</option>' . " \n " ;
2005-04-16 15:30:36 +02:00
print '<option value="' . $no . '">' . $langs -> trans ( " no " ) . '</option>' . " \n " ;
}
2002-12-30 16:13:28 +01:00
else
2005-04-16 15:30:36 +02:00
{
print '<option value="' . $yes . '">' . $langs -> trans ( " yes " ) . '</option>' . " \n " ;
2005-08-20 21:03:34 +02:00
print '<option value="' . $no . '" selected="true">' . $langs -> trans ( " no " ) . '</option>' . " \n " ;
2005-04-16 15:30:36 +02:00
}
2004-11-24 12:17:27 +01:00
print '</select>' . " \n " ;
2002-12-30 16:13:28 +01:00
}
2004-10-20 23:06:45 +02:00
2005-03-28 15:52:40 +02:00
/**
* \brief Selection de oui / non en chiffre ( renvoie 1 / 0 )
2005-07-10 21:31:44 +02:00
* \param name Nom du select
* \param value Valeur pr<EFBFBD> s<EFBFBD> lectionn<EFBFBD> e
2003-02-03 14:13:02 +01:00
*/
2004-08-07 20:51:54 +02:00
function selectyesnonum ( $name , $value = '' )
2003-02-03 14:13:02 +01:00
{
2004-10-23 23:52:50 +02:00
$this -> selectyesno ( $name , $value , 1 );
2003-02-03 14:13:02 +01:00
}
2004-10-20 23:06:45 +02:00
2005-03-28 15:52:40 +02:00
/**
2004-10-23 16:27:26 +02:00
* \brief Checkbox
2003-02-20 18:40:42 +01:00
*
*/
2004-08-07 20:51:54 +02:00
function checkbox ( $name , $checked = 0 , $value = 1 )
2005-01-05 16:34:24 +01:00
{
if ( $checked == 1 ){
print " <input type= \" checkbox \" name= \" $name\ " value = \ " $value\ " checked /> \n " ;
} else {
print " <input type= \" checkbox \" name= \" $name\ " value = \ " $value\ " /> \n " ;
2003-02-20 18:40:42 +01:00
}
2005-01-05 16:34:24 +01:00
}
2004-10-23 16:27:26 +02:00
2005-05-03 03:07:58 +02:00
/**
* \brief Affiche la cartouche g<EFBFBD> n<EFBFBD> rique d ' un rapport
2005-07-10 21:52:57 +02:00
* \param nom Valeur pour nom du rapport
* \param variante Lien optionnel de variante du rapport
* \param period Periode du reporting
* \param periodlink Lien pour changer de p<EFBFBD> riode
* \param description Description
* \param builddate Date g<EFBFBD> n<EFBFBD> ration
* \param exportlink Lien pour export
2005-05-03 03:07:58 +02:00
*/
function report_header ( $nom , $variante = '' , $period , $periodlink , $description , $builddate , $exportlink )
{
global $langs ;
print " \n \n <!-- debut cartouche rapport --> \n " ;
$h = 0 ;
$head [ $h ][ 0 ] = $_SERVER [ " PHP_SELF " ];
$head [ $h ][ 1 ] = $langs -> trans ( " Report " );
dolibarr_fiche_head ( $head , $hselected , $societe -> nom );
print '<table width="100%" class="border">' ;
// Ligne de titre
print '<tr>' ;
print '<td valign="top" width="110px">' . $langs -> trans ( " ReportName " ) . '</td>' ;
if ( ! $variante ) print '<td colspan="3">' ;
else print '<td>' ;
print $nom ;
if ( $variante ) print '</td><td colspan="2">' . $variante ;
print '</td>' ;
print '</tr>' ;
// Ligne de la periode d'analyse du rapport
print '<tr>' ;
print '<td>' . $langs -> trans ( " ReportPeriod " ) . '</td>' ;
if ( ! $periodlink ) print '<td colspan="3">' ;
else print '<td>' ;
print $period ;
if ( $periodlink ) print '</td><td colspan="2">' . $periodlink ;
print '</td>' ;
print '</tr>' ;
// Ligne de description
print '<tr>' ;
print '<td valign="top">' . $langs -> trans ( " ReportDescription " ) . '</td>' ;
print '<td colspan="3">' . $description . '</td>' ;
print '</tr>' ;
// Ligne d'export
print '<tr>' ;
print '<td>' . $langs -> trans ( " GeneratedOn " ) . '</td>' ;
if ( ! $exportlink ) print '<td colspan="3">' ;
else print '<td>' ;
print dolibarr_print_date ( $builddate );
if ( $exportlink ) print '</td><td>' . $langs -> trans ( " Export " ) . '</td><td>' . $exportlink ;
print '</td></tr>' ;
2005-07-16 14:54:00 +02:00
print '</table>' ;
2005-05-03 03:07:58 +02:00
print '</div>' ;
print " \n <!-- fin cartouche rapport --> \n \n " ;
}
2005-08-23 20:04:15 +02:00
/**
* \brief Affiche la cartouche de la liste des documents d ' une propale , facture ...
2005-09-02 23:34:22 +02:00
* \param modulepart propal = propal , facture = facture , ...
* \param filename Nom fichier
* \param filedir Repertoire <EFBFBD> scanner
* \param urlsource Url page origine
* \param genallowed G<EFBFBD> n<EFBFBD> ration autoris<EFBFBD> e
* \param delallowed Suppression autoris<EFBFBD> e
* \param modelselected Modele <EFBFBD> pr<EFBFBD> s<EFBFBD> lectionner par d<EFBFBD> faut
2005-08-23 20:04:15 +02:00
* \remarks Le fichier de facture d<EFBFBD> taill<EFBFBD> e est de la forme
* REFFACTURE - XXXXXX - detail . pdf ou XXXXX est une forme diverse
*/
function show_documents ( $modulepart , $filename , $filedir , $urlsource , $genallowed , $delallowed = 0 , $modelselected = '' )
{
global $langs , $bc ;
$var = true ;
$filename = sanitize_string ( $filename );
$relativepath = " ${ filename}/${filename } .pdf " ;
$fullpathfile = $filedir . " / " . $filename . " .pdf " ;
2005-08-25 00:05:06 +02:00
$i = 0 ;
2005-08-23 20:04:15 +02:00
if ( is_dir ( $filedir ))
{
$handle = opendir ( $filedir );
while (( $file = readdir ( $handle )) !== false )
{
2005-08-25 00:05:06 +02:00
// Si fichier non lisible ou non .pdf, on passe au suivant
if ( ! is_readable ( $filedir . " / " . $file ) || ! eregi ( '\.pdf$' , $file )) continue ;
2005-09-04 13:51:40 +02:00
if ( $i == 0 )
{
// Affiche en-tete tableau
if ( $genallowed )
{
print '<form action="' . $urlsource . '" method="post">' ;
print '<input type="hidden" name="action" value="setpdfmodel">' ;
}
print_titre ( $langs -> trans ( " Documents " ));
print '<table class="border" width="100%">' ;
if ( $genallowed )
{
$liste = array ();
if ( $modulepart == 'propal' )
{
include_once ( DOL_DOCUMENT_ROOT . '/includes/modules/propale/modules_propale.php' );
$model = new ModelePDFPropales ();
$liste = $model -> liste_modeles ( $this -> db );
}
elseif ( $modulepart == 'facture' )
{
include_once ( DOL_DOCUMENT_ROOT . '/includes/modules/facture/modules_facture.php' );
$model = new ModelePDFFactures ();
$liste = $model -> liste_modeles ( $this -> db );
}
else
{
dolibarr_print_error ( $this -> db , 'Bad value for modulepart' );
}
print '<tr ' . $bc [ $var ] . '><td>' . $langs -> trans ( 'Model' ) . '</td><td align="center">' ;
$this -> select_array ( 'modelpdf' , $liste , $modelselected );
$texte = $langs -> trans ( 'Generate' );
print '</td><td align="center" colspan="2"><input class="button" type="submit" value="' . $texte . '">' ;
print '</td></tr>' ;
}
}
2005-08-25 00:05:06 +02:00
print " <tr $bc[$var] > " ;
if ( eregi ( '\-detail\.pdf' , $file )) print '<td nowrap>PDF D<> taill<6C> </td>' ;
else print '<td nowrap>PDF</td>' ;
$relativepathdetail = " ${ filename } / $file " ;
print '<td><a href="' . DOL_URL_ROOT . '/document.php?modulepart=' . $modulepart . '&file=' . urlencode ( $relativepathdetail ) . '">' . $file . '</a></td>' ;
print '<td align="right">' . filesize ( $filedir . " / " . $file ) . ' bytes</td>' ;
print '<td align="right">' . strftime ( " %d %b %Y %H:%M:%S " , filemtime ( $filedir . " / " . $file )) . '</td>' ;
print '</tr>' ;
$i ++ ;
2005-08-23 20:04:15 +02:00
}
}
2005-09-04 13:51:40 +02:00
if ( $i > 0 )
2005-08-23 20:04:15 +02:00
{
2005-09-04 13:51:40 +02:00
// Affiche pied du tableau
print " </table> \n " ;
if ( $genallowed )
{
print '</form>' ;
}
2005-08-23 20:04:15 +02:00
}
}
2002-12-19 19:55:38 +01:00
}
?>