2010-05-03 10:22:35 +02:00
< ? php
2012-07-28 12:35:11 +02:00
/* Copyright ( C ) 2008 - 2012 Laurent Destailleur < eldy @ users . sourceforge . net >
2012-12-30 15:13:49 +01:00
* Copyright ( C ) 2008 - 2012 Regis Houssin < regis . houssin @ capnetworks . com >
2014-07-03 17:39:31 +02:00
* Copyright ( C ) 2014 Juanjo Menent < jmenent @ 2 byte . es >
2017-09-01 17:10:19 +02:00
* Copyright ( C ) 2017 Rui Strecht < rui . strecht @ aliartalentos . com >
2010-05-03 10:22:35 +02: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
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2010-05-03 10:22:35 +02:00
* ( 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
2011-08-01 01:45:11 +02:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2010-05-03 10:22:35 +02:00
*/
/**
2010-06-08 01:52:43 +02:00
* \file htdocs / core / class / html . formcompany . class . php
2010-11-22 10:18:53 +01:00
* \ingroup core
2010-05-03 10:22:35 +02:00
* \brief File of class to build HTML component for third parties management
*/
/**
2012-01-27 15:17:36 +01:00
* Class to build HTML component for third parties management
* Only common components are here .
2010-05-03 10:22:35 +02:00
*/
class FormCompany
{
var $db ;
var $error ;
/**
2011-12-29 23:23:31 +01:00
* Constructor
*
* @ param DoliDB $db Database handler
2010-05-03 10:22:35 +02:00
*/
2012-07-30 17:17:33 +02:00
function __construct ( $db )
2010-05-03 10:22:35 +02:00
{
2011-12-29 23:23:31 +01:00
$this -> db = $db ;
2010-05-03 10:22:35 +02:00
return 1 ;
}
/**
2011-06-08 00:05:07 +02:00
* Return list of labels ( translated ) of third parties type
2011-12-29 23:23:31 +01:00
*
* @ param int $mode 0 = Return id + label , 1 = Return code + label
* @ param string $filter Add a SQL filter to select
* @ return array Array of types
2010-05-03 10:22:35 +02:00
*/
2011-06-08 00:05:07 +02:00
function typent_array ( $mode = 0 , $filter = '' )
2010-05-03 10:22:35 +02:00
{
2014-07-11 13:56:35 +02:00
global $langs , $mysoc ;
2010-05-03 10:22:35 +02:00
$effs = array ();
$sql = " SELECT id, code, libelle " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " c_typent " ;
2014-07-11 13:56:35 +02:00
$sql .= " WHERE active = 1 AND (fk_country IS NULL OR fk_country = " . ( empty ( $mysoc -> country_id ) ? '0' : $mysoc -> country_id ) . " ) " ;
2011-06-08 00:05:07 +02:00
if ( $filter ) $sql .= " " . $filter ;
2016-02-19 21:09:36 +01:00
$sql .= " ORDER by position, id " ;
2014-06-13 01:34:39 +02:00
dol_syslog ( get_class ( $this ) . '::typent_array' , LOG_DEBUG );
2010-05-03 10:22:35 +02:00
$resql = $this -> db -> query ( $sql );
if ( $resql )
{
$num = $this -> db -> num_rows ( $resql );
$i = 0 ;
while ( $i < $num )
{
$objp = $this -> db -> fetch_object ( $resql );
if ( ! $mode ) $key = $objp -> id ;
else $key = $objp -> code ;
2011-06-11 16:14:27 +02:00
if ( $langs -> trans ( $objp -> code ) != $objp -> code ) $effs [ $key ] = $langs -> trans ( $objp -> code );
else $effs [ $key ] = $objp -> libelle ;
if ( $effs [ $key ] == '-' ) $effs [ $key ] = '' ;
2010-05-03 10:22:35 +02:00
$i ++ ;
}
$this -> db -> free ( $resql );
}
return $effs ;
}
/**
2011-12-29 23:23:31 +01:00
* Renvoie la liste des types d ' effectifs possibles ( pas de traduction car nombre )
*
* @ param int $mode 0 = renvoi id + libelle , 1 = renvoi code + libelle
2014-04-22 11:20:19 +02:00
* @ param string $filter Add a SQL filter to select
2011-12-29 23:23:31 +01:00
* @ return array Array of types d ' effectifs
2010-05-03 10:22:35 +02:00
*/
2014-04-22 11:20:19 +02:00
function effectif_array ( $mode = 0 , $filter = '' )
2010-05-03 10:22:35 +02:00
{
$effs = array ();
$sql = " SELECT id, code, libelle " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " c_effectif " ;
$sql .= " WHERE active = 1 " ;
2014-04-22 11:20:19 +02:00
if ( $filter ) $sql .= " " . $filter ;
2010-05-03 10:22:35 +02:00
$sql .= " ORDER BY id ASC " ;
2014-06-13 01:34:39 +02:00
dol_syslog ( get_class ( $this ) . '::effectif_array' , LOG_DEBUG );
2010-05-03 10:22:35 +02:00
$resql = $this -> db -> query ( $sql );
if ( $resql )
{
$num = $this -> db -> num_rows ( $resql );
$i = 0 ;
while ( $i < $num )
{
$objp = $this -> db -> fetch_object ( $resql );
if ( ! $mode ) $key = $objp -> id ;
else $key = $objp -> code ;
$effs [ $key ] = $objp -> libelle != '-' ? $objp -> libelle : '' ;
$i ++ ;
}
$this -> db -> free ( $resql );
}
return $effs ;
}
/**
2011-12-29 23:23:31 +01:00
* Affiche formulaire de selection des modes de reglement
*
* @ param int $page Page
* @ param int $selected Id or code preselected
* @ param string $htmlname Nom du formulaire select
* @ param int $empty Add empty value in list
* @ return void
2010-05-03 10:22:35 +02:00
*/
function form_prospect_level ( $page , $selected = '' , $htmlname = 'prospect_level_id' , $empty = 0 )
{
2017-01-23 10:23:24 +01:00
global $user , $langs ;
2010-05-03 10:22:35 +02:00
print '<form method="post" action="' . $page . '">' ;
print '<input type="hidden" name="action" value="setprospectlevel">' ;
print '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
2011-12-29 23:23:31 +01:00
dol_syslog ( get_class ( $this ) . '::form_prospect_level' , LOG_DEBUG );
2010-05-03 10:22:35 +02:00
$sql = " SELECT code, label " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " c_prospectlevel " ;
$sql .= " WHERE active > 0 " ;
$sql .= " ORDER BY sortorder " ;
$resql = $this -> db -> query ( $sql );
if ( $resql )
{
2016-04-16 21:33:23 +02:00
$options = array ();
2010-05-03 10:22:35 +02:00
2016-04-16 21:33:23 +02:00
if ( $empty ) {
$options [ '' ] = '' ;
}
2010-05-03 10:22:35 +02:00
2016-04-16 21:33:23 +02:00
while ( $obj = $this -> db -> fetch_object ( $resql )) {
$level = $langs -> trans ( $obj -> code );
if ( $level == $obj -> code ) {
$level = $langs -> trans ( $obj -> label );
}
$options [ $obj -> code ] = $level ;
2010-05-03 10:22:35 +02:00
}
2016-04-16 21:33:23 +02:00
print Form :: selectarray ( $htmlname , $options , $selected );
2010-05-03 10:22:35 +02:00
}
else dol_print_error ( $this -> db );
2017-01-23 10:23:24 +01:00
if ( ! empty ( $htmlname ) && $user -> admin ) print ' ' . info_admin ( $langs -> trans ( " YouCanChangeValuesForThisListFromDictionarySetup " ), 1 );
2016-09-26 00:10:29 +02:00
print '<input type="submit" class="button valignmiddle" value="' . $langs -> trans ( " Modify " ) . '">' ;
print '</form>' ;
2010-05-03 10:22:35 +02:00
}
2010-10-31 21:09:50 +01:00
2010-05-03 10:22:35 +02:00
/**
2011-12-29 23:23:31 +01:00
* Retourne la liste deroulante des departements / province / cantons tout pays confondu ou pour un pays donne .
* Dans le cas d 'une liste tout pays confondus, l' affichage fait une rupture sur le pays .
* La cle de la liste est le code ( il peut y avoir plusieurs entree pour
* un code donnee mais dans ce cas , le champ pays differe ) .
* Ainsi les liens avec les departements se font sur un departement independemment de son nom .
*
* @ param string $selected Code state preselected
* @ param int $country_codeid 0 = list for all countries , otherwise country code or country rowid to show
* @ param string $htmlname Id of department
* @ return void
2010-05-03 10:22:35 +02:00
*/
2013-09-20 14:34:14 +02:00
function select_departement ( $selected = '' , $country_codeid = 0 , $htmlname = 'state_id' )
2010-09-01 22:51:10 +02:00
{
2011-12-29 23:23:31 +01:00
print $this -> select_state ( $selected , $country_codeid , $htmlname );
2010-09-01 22:51:10 +02:00
}
/**
2011-12-29 18:07:41 +01:00
* Retourne la liste deroulante des departements / province / cantons tout pays confondu ou pour un pays donne .
* Dans le cas d 'une liste tout pays confondus, l' affichage fait une rupture sur le pays .
* La cle de la liste est le code ( il peut y avoir plusieurs entree pour
* un code donnee mais dans ce cas , le champ pays differe ) .
* Ainsi les liens avec les departements se font sur un departement independemment de son nom .
2011-12-29 23:23:31 +01:00
*
2014-02-04 20:49:07 +01:00
* @ param string $selected Code state preselected ( mus be state id )
2016-06-23 20:19:43 +02:00
* @ param integer $country_codeid Country code or id : 0 = list for all countries , otherwise country code or country rowid to show
2018-08-13 16:44:49 +02:00
* @ param string $htmlname Id of department . If '' , we want only the string with < option >
2013-06-09 18:29:06 +02:00
* @ return string String with HTML select
2015-05-31 12:25:33 +02:00
* @ see select_country
2010-09-01 22:51:10 +02:00
*/
2013-09-20 14:34:14 +02:00
function select_state ( $selected = '' , $country_codeid = 0 , $htmlname = 'state_id' )
2010-05-03 10:22:35 +02:00
{
global $conf , $langs , $user ;
2012-03-15 22:37:42 +01:00
dol_syslog ( get_class ( $this ) . " ::select_departement selected= " . $selected . " , country_codeid= " . $country_codeid , LOG_DEBUG );
2010-05-03 10:22:35 +02:00
$langs -> load ( " dict " );
2010-10-31 21:09:50 +01:00
2010-09-01 22:51:10 +02:00
$out = '' ;
2010-05-03 10:22:35 +02:00
2018-08-13 16:44:49 +02:00
// Serch departements/cantons/province active d'une region et pays actif
2017-09-01 16:53:06 +02:00
$sql = " SELECT d.rowid, d.code_departement as code, d.nom as name, d.active, c.label as country, c.code as country_code, r.nom as region_name FROM " ;
2014-08-10 13:37:39 +02:00
$sql .= " " . MAIN_DB_PREFIX . " c_departements as d, " . MAIN_DB_PREFIX . " c_regions as r, " . MAIN_DB_PREFIX . " c_country as c " ;
$sql .= " WHERE d.fk_region=r.code_region and r.fk_pays=c.rowid " ;
$sql .= " AND d.active = 1 AND r.active = 1 AND c.active = 1 " ;
2018-03-15 01:55:47 +01:00
if ( $country_codeid && is_numeric ( $country_codeid )) $sql .= " AND c.rowid = ' " . $this -> db -> escape ( $country_codeid ) . " ' " ;
if ( $country_codeid && ! is_numeric ( $country_codeid )) $sql .= " AND c.code = ' " . $this -> db -> escape ( $country_codeid ) . " ' " ;
2014-08-10 13:37:39 +02:00
$sql .= " ORDER BY c.code, d.code_departement " ;
2010-05-03 10:22:35 +02:00
$result = $this -> db -> query ( $sql );
if ( $result )
{
2016-09-21 03:54:54 +02:00
if ( ! empty ( $htmlname )) $out .= '<select id="' . $htmlname . '" class="flat maxwidth200onsmartphone minwidth300" name="' . $htmlname . '">' ;
2011-12-29 18:07:41 +01:00
if ( $country_codeid ) $out .= '<option value="0"> </option>' ;
2010-05-03 10:22:35 +02:00
$num = $this -> db -> num_rows ( $result );
$i = 0 ;
2011-12-29 23:23:31 +01:00
dol_syslog ( get_class ( $this ) . " ::select_departement num= " . $num , LOG_DEBUG );
2010-05-03 10:22:35 +02:00
if ( $num )
{
2013-02-25 17:56:41 +01:00
$country = '' ;
2010-05-03 10:22:35 +02:00
while ( $i < $num )
{
$obj = $this -> db -> fetch_object ( $result );
if ( $obj -> code == '0' ) // Le code peut etre une chaine
{
2010-09-01 22:51:10 +02:00
$out .= '<option value="0"> </option>' ;
2010-05-03 10:22:35 +02:00
}
else {
2013-02-25 17:56:41 +01:00
if ( ! $country || $country != $obj -> country )
2010-05-03 10:22:35 +02:00
{
// Affiche la rupture si on est en mode liste multipays
2011-12-29 18:07:41 +01:00
if ( ! $country_codeid && $obj -> country_code )
2010-05-03 10:22:35 +02:00
{
2015-05-07 11:57:23 +02:00
$out .= '<option value="-1" disabled>----- ' . $obj -> country . " -----</option> \n " ;
2013-02-25 17:56:41 +01:00
$country = $obj -> country ;
2010-05-03 10:22:35 +02:00
}
}
2013-10-11 12:14:14 +02:00
if (( ! empty ( $selected ) && $selected == $obj -> rowid )
|| ( empty ( $selected ) && ! empty ( $conf -> global -> MAIN_FORCE_DEFAULT_STATE_ID ) && $conf -> global -> MAIN_FORCE_DEFAULT_STATE_ID == $obj -> rowid ))
2010-05-03 10:22:35 +02:00
{
2015-05-07 12:20:20 +02:00
$out .= '<option value="' . $obj -> rowid . '" selected>' ;
2010-05-03 10:22:35 +02:00
}
else
{
2010-09-01 22:51:10 +02:00
$out .= '<option value="' . $obj -> rowid . '">' ;
2010-05-03 10:22:35 +02:00
}
2017-09-18 17:48:13 +02:00
2010-09-01 22:51:10 +02:00
// Si traduction existe, on l'utilise, sinon on prend le libelle par defaut
2018-09-04 10:10:47 +02:00
if ( ! empty ( $conf -> global -> MAIN_SHOW_STATE_CODE ) &&
2018-02-07 17:07:33 +01:00
( $conf -> global -> MAIN_SHOW_STATE_CODE == 1 || $conf -> global -> MAIN_SHOW_STATE_CODE == 2 || $conf -> global -> MAIN_SHOW_STATE_CODE === 'all' )) {
2018-01-31 12:19:39 +01:00
if ( ! empty ( $conf -> global -> MAIN_SHOW_REGION_IN_STATE_SELECT ) && $conf -> global -> MAIN_SHOW_REGION_IN_STATE_SELECT == 1 ) {
2017-09-18 17:48:13 +02:00
$out .= $obj -> region_name . ' - ' . $obj -> code . ' - ' . ( $langs -> trans ( $obj -> code ) != $obj -> code ? $langs -> trans ( $obj -> code ) : ( $obj -> name != '-' ? $obj -> name : '' ));
}
else {
$out .= $obj -> code . ' - ' . ( $langs -> trans ( $obj -> code ) != $obj -> code ? $langs -> trans ( $obj -> code ) : ( $obj -> name != '-' ? $obj -> name : '' ));
}
2017-09-01 16:53:06 +02:00
}
else {
2018-01-31 12:19:39 +01:00
if ( ! empty ( $conf -> global -> MAIN_SHOW_REGION_IN_STATE_SELECT ) && $conf -> global -> MAIN_SHOW_REGION_IN_STATE_SELECT == 1 ) {
2017-09-18 17:48:13 +02:00
$out .= $obj -> region_name . ' - ' . ( $langs -> trans ( $obj -> code ) != $obj -> code ? $langs -> trans ( $obj -> code ) : ( $obj -> name != '-' ? $obj -> name : '' ));
}
else {
$out .= ( $langs -> trans ( $obj -> code ) != $obj -> code ? $langs -> trans ( $obj -> code ) : ( $obj -> name != '-' ? $obj -> name : '' ));
}
2017-09-01 16:53:06 +02:00
}
2017-09-18 17:48:13 +02:00
2010-09-01 22:51:10 +02:00
$out .= '</option>' ;
2010-05-03 10:22:35 +02:00
}
$i ++ ;
}
}
2012-07-09 18:09:44 +02:00
if ( ! empty ( $htmlname )) $out .= '</select>' ;
2015-05-31 12:25:33 +02:00
if ( ! empty ( $htmlname ) && $user -> admin ) $out .= ' ' . info_admin ( $langs -> trans ( " YouCanChangeValuesForThisListFromDictionarySetup " ), 1 );
2010-05-03 10:22:35 +02:00
}
else
{
dol_print_error ( $this -> db );
}
2010-10-31 21:09:50 +01:00
2018-08-13 16:44:49 +02:00
// Make select dynamic
if ( ! empty ( $htmlname ))
{
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php' ;
$out .= ajax_combobox ( $htmlname );
}
2015-05-31 12:25:33 +02:00
2010-09-01 22:51:10 +02:00
return $out ;
2010-05-03 10:22:35 +02:00
}
/**
2011-12-29 23:23:31 +01:00
* Retourne la liste deroulante des regions actives dont le pays est actif
* La cle de la liste est le code ( il peut y avoir plusieurs entree pour
* un code donnee mais dans ce cas , le champ pays et lang differe ) .
2014-10-04 17:20:17 +02:00
* Ainsi les liens avec les regions se font sur une region independemment de son name .
2011-12-29 23:23:31 +01:00
*
* @ param string $selected Preselected value
* @ param string $htmlname Name of HTML select field
* @ return void
2010-05-03 10:22:35 +02:00
*/
function select_region ( $selected = '' , $htmlname = 'region_id' )
{
global $conf , $langs ;
$langs -> load ( " dict " );
2014-08-17 17:47:25 +02:00
$sql = " SELECT r.rowid, r.code_region as code, r.nom as label, r.active, c.code as country_code, c.label as country " ;
2014-08-10 13:37:39 +02:00
$sql .= " FROM " . MAIN_DB_PREFIX . " c_regions as r, " . MAIN_DB_PREFIX . " c_country as c " ;
$sql .= " WHERE r.fk_pays=c.rowid AND r.active = 1 and c.active = 1 " ;
$sql .= " ORDER BY c.code, c.label ASC " ;
2010-05-03 10:22:35 +02:00
2014-06-12 11:31:53 +02:00
dol_syslog ( get_class ( $this ) . " ::select_region " , LOG_DEBUG );
2010-05-03 10:22:35 +02:00
$resql = $this -> db -> query ( $sql );
if ( $resql )
{
print '<select class="flat" name="' . $htmlname . '">' ;
$num = $this -> db -> num_rows ( $resql );
$i = 0 ;
if ( $num )
{
2013-02-25 17:56:41 +01:00
$country = '' ;
2010-05-03 10:22:35 +02:00
while ( $i < $num )
{
$obj = $this -> db -> fetch_object ( $resql );
if ( $obj -> code == 0 ) {
print '<option value="0"> </option>' ;
}
else {
2013-02-25 17:56:41 +01:00
if ( $country == '' || $country != $obj -> country )
2010-05-03 10:22:35 +02:00
{
// Show break
2011-12-29 18:07:41 +01:00
$key = $langs -> trans ( " Country " . strtoupper ( $obj -> country_code ));
$valuetoshow = ( $key != " Country " . strtoupper ( $obj -> country_code )) ? $obj -> country_code . " - " . $key : $obj -> country ;
2015-05-07 11:57:23 +02:00
print '<option value="-1" disabled>----- ' . $valuetoshow . " -----</option> \n " ;
2013-02-25 17:56:41 +01:00
$country = $obj -> country ;
2010-05-03 10:22:35 +02:00
}
if ( $selected > 0 && $selected == $obj -> code )
{
2015-05-07 12:20:20 +02:00
print '<option value="' . $obj -> code . '" selected>' . $obj -> label . '</option>' ;
2010-05-03 10:22:35 +02:00
}
else
{
2014-08-10 13:37:39 +02:00
print '<option value="' . $obj -> code . '">' . $obj -> label . '</option>' ;
2010-05-03 10:22:35 +02:00
}
}
$i ++ ;
}
}
print '</select>' ;
}
else
{
dol_print_error ( $this -> db );
}
}
2010-10-31 21:09:50 +01:00
2010-05-03 10:22:35 +02:00
/**
2011-10-22 15:55:08 +02:00
* Return combo list with people title
*
2013-06-09 18:29:06 +02:00
* @ param string $selected Title preselected
* @ param string $htmlname Name of HTML select combo field
2017-06-02 12:27:46 +02:00
* @ param string $morecss Add more css on SELECT element
2013-06-09 18:29:06 +02:00
* @ return string String with HTML select
2010-09-01 22:51:10 +02:00
*/
2016-11-05 03:27:56 +01:00
function select_civility ( $selected = '' , $htmlname = 'civility_id' , $morecss = 'maxwidth100' )
2010-05-03 10:22:35 +02:00
{
global $conf , $langs , $user ;
$langs -> load ( " dict " );
2010-10-31 21:09:50 +01:00
2010-09-01 22:51:10 +02:00
$out = '' ;
2010-05-03 10:22:35 +02:00
2014-08-12 06:03:27 +02:00
$sql = " SELECT rowid, code, label, active FROM " . MAIN_DB_PREFIX . " c_civility " ;
2010-05-03 10:22:35 +02:00
$sql .= " WHERE active = 1 " ;
2014-06-12 11:31:53 +02:00
dol_syslog ( " Form::select_civility " , LOG_DEBUG );
2010-05-03 10:22:35 +02:00
$resql = $this -> db -> query ( $sql );
if ( $resql )
{
2016-11-05 03:27:56 +01:00
$out .= '<select class="flat' . ( $morecss ? ' ' . $morecss : '' ) . '" name="' . $htmlname . '" id="' . $htmlname . '">' ;
2010-09-01 22:51:10 +02:00
$out .= '<option value=""> </option>' ;
2010-05-03 10:22:35 +02:00
$num = $this -> db -> num_rows ( $resql );
$i = 0 ;
if ( $num )
{
while ( $i < $num )
{
$obj = $this -> db -> fetch_object ( $resql );
if ( $selected == $obj -> code )
{
2015-05-07 12:20:20 +02:00
$out .= '<option value="' . $obj -> code . '" selected>' ;
2010-05-03 10:22:35 +02:00
}
else
{
2010-09-01 22:51:10 +02:00
$out .= '<option value="' . $obj -> code . '">' ;
2010-05-03 10:22:35 +02:00
}
// Si traduction existe, on l'utilise, sinon on prend le libelle par defaut
2014-08-12 06:03:27 +02:00
$out .= ( $langs -> trans ( " Civility " . $obj -> code ) != " Civility " . $obj -> code ? $langs -> trans ( " Civility " . $obj -> code ) : ( $obj -> label != '-' ? $obj -> label : '' ));
2010-09-01 22:51:10 +02:00
$out .= '</option>' ;
2010-05-03 10:22:35 +02:00
$i ++ ;
}
}
2010-09-01 22:51:10 +02:00
$out .= '</select>' ;
2014-02-05 17:53:30 +01:00
if ( $user -> admin ) $out .= info_admin ( $langs -> trans ( " YouCanChangeValuesForThisListFromDictionarySetup " ), 1 );
2010-05-03 10:22:35 +02:00
}
else
{
dol_print_error ( $this -> db );
}
2010-10-31 21:09:50 +01:00
2010-09-01 22:51:10 +02:00
return $out ;
2010-05-03 10:22:35 +02:00
}
2010-10-31 21:09:50 +01:00
2010-05-03 10:22:35 +02:00
/**
2011-06-08 00:05:07 +02:00
* Retourne la liste deroulante des formes juridiques tous pays confondus ou pour un pays donne .
2011-12-29 23:23:31 +01:00
* Dans le cas d ' une liste tous pays confondu , on affiche une rupture sur le pays .
*
* @ param string $selected Code forme juridique a pre - selectionne
* @ param mixed $country_codeid 0 = liste tous pays confondus , sinon code du pays a afficher
* @ param string $filter Add a SQL filter on list
* @ return void
2014-05-04 23:46:36 +02:00
* @ deprecated Use print xxx -> select_juridicalstatus instead
2015-04-23 23:21:06 +02:00
* @ see select_juridicalstatus ()
2010-05-03 10:22:35 +02:00
*/
2011-12-29 23:23:31 +01:00
function select_forme_juridique ( $selected = '' , $country_codeid = 0 , $filter = '' )
2010-09-01 22:51:10 +02:00
{
2011-12-29 23:23:31 +01:00
print $this -> select_juridicalstatus ( $selected , $country_codeid , $filter );
2010-09-01 22:51:10 +02:00
}
/**
2011-06-08 00:05:07 +02:00
* Retourne la liste deroulante des formes juridiques tous pays confondus ou pour un pays donne .
* Dans le cas d ' une liste tous pays confondu , on affiche une rupture sur le pays
2011-12-29 23:23:31 +01:00
*
2014-05-04 23:46:36 +02:00
* @ param string $selected Preselected code of juridical type
* @ param int $country_codeid 0 = list for all countries , otherwise list only country requested
2011-12-29 23:23:31 +01:00
* @ param string $filter Add a SQL filter on list
2015-05-31 12:25:33 +02:00
* @ param string $htmlname HTML name of select
2011-12-29 23:23:31 +01:00
* @ return string String with HTML select
2010-09-01 22:51:10 +02:00
*/
2015-05-31 12:25:33 +02:00
function select_juridicalstatus ( $selected = '' , $country_codeid = 0 , $filter = '' , $htmlname = 'forme_juridique_code' )
2010-05-03 10:22:35 +02:00
{
global $conf , $langs , $user ;
$langs -> load ( " dict " );
2010-10-31 21:09:50 +01:00
2010-09-01 22:51:10 +02:00
$out = '' ;
2010-05-03 10:22:35 +02:00
// On recherche les formes juridiques actives des pays actifs
2014-08-10 13:37:39 +02:00
$sql = " SELECT f.rowid, f.code as code , f.libelle as label, f.active, c.label as country, c.code as country_code " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " c_forme_juridique as f, " . MAIN_DB_PREFIX . " c_country as c " ;
$sql .= " WHERE f.fk_pays=c.rowid " ;
$sql .= " AND f.active = 1 AND c.active = 1 " ;
if ( $country_codeid ) $sql .= " AND c.code = ' " . $country_codeid . " ' " ;
2011-06-08 00:05:07 +02:00
if ( $filter ) $sql .= " " . $filter ;
2014-08-10 13:37:39 +02:00
$sql .= " ORDER BY c.code " ;
2010-05-03 10:22:35 +02:00
2014-06-12 11:31:53 +02:00
dol_syslog ( get_class ( $this ) . " ::select_juridicalstatus " , LOG_DEBUG );
2014-05-04 23:46:36 +02:00
$resql = $this -> db -> query ( $sql );
if ( $resql )
2010-05-03 10:22:35 +02:00
{
2010-09-01 22:51:10 +02:00
$out .= '<div id="particulier2" class="visible">' ;
2015-05-31 12:25:33 +02:00
$out .= '<select class="flat minwidth200" name="' . $htmlname . '" id="' . $htmlname . '">' ;
2015-04-01 21:00:51 +02:00
if ( $country_codeid ) $out .= '<option value="0"> </option>' ; // When country_codeid is set, we force to add an empty line because it does not appears from select. When not set, we already get the empty line from select.
2014-05-04 23:46:36 +02:00
$num = $this -> db -> num_rows ( $resql );
2010-05-03 10:22:35 +02:00
if ( $num )
{
2014-05-04 23:46:36 +02:00
$i = 0 ;
$country = '' ; $arraydata = array ();
2010-05-03 10:22:35 +02:00
while ( $i < $num )
{
2014-05-04 23:46:36 +02:00
$obj = $this -> db -> fetch_object ( $resql );
2015-04-01 21:00:51 +02:00
if ( $obj -> code ) // We exclude empty line, we will add it later
{
$labelcountry = (( $langs -> trans ( " Country " . $obj -> country_code ) != " Country " . $obj -> country_code ) ? $langs -> trans ( " Country " . $obj -> country_code ) : $obj -> country );
$labeljs = (( $langs -> trans ( " JuridicalStatus " . $obj -> code ) != " JuridicalStatus " . $obj -> code ) ? $langs -> trans ( " JuridicalStatus " . $obj -> code ) : ( $obj -> label != '-' ? $obj -> label : '' )); // $obj->label is already in output charset (converted by database driver)
$arraydata [ $obj -> code ] = array ( 'code' => $obj -> code , 'label' => $labeljs , 'label_sort' => $labelcountry . '_' . $labeljs , 'country_code' => $obj -> country_code , 'country' => $labelcountry );
}
2014-05-04 23:46:36 +02:00
$i ++ ;
}
2010-05-03 10:22:35 +02:00
2014-05-04 23:46:36 +02:00
$arraydata = dol_sort_array ( $arraydata , 'label_sort' , 'ASC' );
2015-04-01 21:00:51 +02:00
if ( empty ( $country_codeid )) // Introduce empty value (if $country_codeid not empty, empty value was already added)
{
$arraydata [ 0 ] = array ( 'code' => 0 , 'label' => '' , 'label_sort' => '_' , 'country_code' => '' , 'country' => '' );
}
2014-05-04 23:46:36 +02:00
foreach ( $arraydata as $key => $val )
{
if ( ! $country || $country != $val [ 'country' ])
{
// Show break when we are in multi country mode
if ( empty ( $country_codeid ) && $val [ 'country_code' ])
2010-05-03 10:22:35 +02:00
{
2015-05-31 12:25:33 +02:00
$out .= '<option value="0" disabled class="selectoptiondisabledwhite">----- ' . $val [ 'country' ] . " -----</option> \n " ;
2014-05-04 23:46:36 +02:00
$country = $val [ 'country' ];
2010-05-03 10:22:35 +02:00
}
}
2014-05-04 23:46:36 +02:00
if ( $selected > 0 && $selected == $val [ 'code' ])
{
2015-05-07 12:20:20 +02:00
$out .= '<option value="' . $val [ 'code' ] . '" selected>' ;
2014-05-04 23:46:36 +02:00
}
else
{
$out .= '<option value="' . $val [ 'code' ] . '">' ;
}
// If translation exists, we use it, otherwise we use default label in database
$out .= $val [ 'label' ];
$out .= '</option>' ;
2010-05-03 10:22:35 +02:00
}
}
2010-09-01 22:51:10 +02:00
$out .= '</select>' ;
2015-06-04 11:42:24 +02:00
if ( $user -> admin ) $out .= ' ' . info_admin ( $langs -> trans ( " YouCanChangeValuesForThisListFromDictionarySetup " ), 1 );
2015-05-31 12:25:33 +02:00
// Make select dynamic
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php' ;
$out .= ajax_combobox ( $htmlname );
2010-09-01 22:51:10 +02:00
$out .= '</div>' ;
2010-05-03 10:22:35 +02:00
}
else
{
dol_print_error ( $this -> db );
}
2010-10-31 21:09:50 +01:00
2010-09-01 22:51:10 +02:00
return $out ;
2010-05-03 10:22:35 +02:00
}
/**
2014-02-04 20:49:07 +01:00
* Output list of third parties .
2011-12-29 23:23:31 +01:00
*
2013-11-07 21:23:29 +01:00
* @ param object $object Object we try to find contacts
2012-03-14 14:00:20 +01:00
* @ param string $var_id Name of id field
* @ param string $selected Pre - selected third party
* @ param string $htmlname Name of HTML form
2012-04-21 19:44:05 +02:00
* @ param array $limitto Disable answers that are not id in this array list
2013-01-02 14:35:16 +01:00
* @ param int $forceid This is to force another object id than object -> id
2014-02-04 20:49:07 +01:00
* @ param string $moreparam String with more param to add into url when noajax search is used .
2018-03-06 11:54:05 +01:00
* @ param string $morecss More CSS on select component
2014-02-04 20:49:07 +01:00
* @ return int The selected third party ID
2010-05-03 10:22:35 +02:00
*/
2018-03-06 11:54:05 +01:00
function selectCompaniesForNewContact ( $object , $var_id , $selected = '' , $htmlname = 'newcompany' , $limitto = '' , $forceid = 0 , $moreparam = '' , $morecss = '' )
2010-05-03 10:22:35 +02:00
{
global $conf , $langs ;
2014-12-05 13:26:47 +01:00
if ( ! empty ( $conf -> use_javascript_ajax ) && ! empty ( $conf -> global -> COMPANY_USE_SEARCH_TO_SELECT ))
2010-05-03 10:22:35 +02:00
{
2014-12-05 13:26:47 +01:00
// Use Ajax search
$minLength = ( is_numeric ( $conf -> global -> COMPANY_USE_SEARCH_TO_SELECT ) ? $conf -> global -> COMPANY_USE_SEARCH_TO_SELECT : 2 );
2012-02-25 01:34:05 +01:00
2014-12-05 13:26:47 +01:00
$socid = 0 ; $name = '' ;
if ( $selected > 0 )
2010-05-03 10:22:35 +02:00
{
2014-12-05 13:26:47 +01:00
$tmpthirdparty = new Societe ( $this -> db );
$result = $tmpthirdparty -> fetch ( $selected );
if ( $result > 0 )
2010-05-03 10:22:35 +02:00
{
2014-12-05 13:26:47 +01:00
$socid = $selected ;
$name = $tmpthirdparty -> name ;
2010-05-03 10:22:35 +02:00
}
2014-12-05 13:26:47 +01:00
}
2010-05-03 10:22:35 +02:00
2014-12-05 13:26:47 +01:00
$events = array ();
2016-02-14 23:53:42 +01:00
// Add an entry 'method' to say 'yes, we must execute url with param action = method';
// Add an entry 'url' to say which url to execute
2017-06-02 12:27:46 +02:00
// Add an entry htmlname to say which element we must change once url is called
// Add entry params => array('cssid' => 'attr') to say to remov or add attribute attr if answer of url return 0 or >0 lines
2016-02-14 23:53:42 +01:00
// To refresh contacts list on thirdparty list change
2014-12-05 13:26:47 +01:00
$events [] = array ( 'method' => 'getContacts' , 'url' => dol_buildpath ( '/core/ajax/contacts.php' , 1 ), 'htmlname' => 'contactid' , 'params' => array ( 'add-customer-contact' => 'disabled' ));
2017-06-02 12:27:46 +02:00
2014-12-05 13:26:47 +01:00
if ( count ( $events )) // If there is some ajax events to run once selection is done, we add code here to run events
{
print ' < script type = " text/javascript " >
jQuery ( document ) . ready ( function () {
$ ( " #search_'. $htmlname .' " ) . change ( function () {
var obj = '.json_encode($events).' ;
$ . each ( obj , function ( key , values ) {
if ( values . method . length ) {
runJsCodeForEvent '.$htmlname.' ( values );
}
});
/* Clean contact */
$ ( " div#s2id_contactid>a>span " ) . html ( \ ' \ ' );
});
2017-06-02 12:27:46 +02:00
2014-12-05 13:26:47 +01:00
// Function used to execute events when search_htmlname change
function runJsCodeForEvent '.$htmlname.' ( obj ) {
var id = $ ( " #'. $htmlname .' " ) . val ();
var method = obj . method ;
var url = obj . url ;
var htmlname = obj . htmlname ;
2018-05-22 19:43:28 +02:00
var showempty = obj . showempty ;
console . log ( " Run runJsCodeForEvent-'. $htmlname .' from selectCompaniesForNewContact id= " + id + " method= " + method + " showempty= " + showempty + " url= " + url + " htmlname= " + htmlname );
2014-12-05 13:26:47 +01:00
$ . getJSON ( url ,
{
action : method ,
id : id ,
htmlname : htmlname
},
function ( response ) {
if ( response != null )
{
2017-11-12 13:40:05 +01:00
console . log ( " Change select# " + htmlname + " with content " + response . value )
2014-12-05 13:26:47 +01:00
$ . each ( obj . params , function ( key , action ) {
if ( key . length ) {
var num = response . num ;
if ( num > 0 ) {
$ ( " # " + key ) . removeAttr ( action );
} else {
$ ( " # " + key ) . attr ( action , action );
}
2014-02-04 20:49:07 +01:00
}
});
2014-12-05 13:26:47 +01:00
$ ( " select# " + htmlname ) . html ( response . value );
}
}
);
};
});
</ script > ' ;
}
2010-05-03 10:22:35 +02:00
2014-12-05 13:26:47 +01:00
print " \n " . '<!-- Input text for third party with Ajax.Autocompleter (selectCompaniesForNewContact) -->' . " \n " ;
2016-02-14 23:53:42 +01:00
print '<input type="text" size="30" id="search_' . $htmlname . '" name="search_' . $htmlname . '" value="' . $name . '" />' ;
print ajax_autocompleter (( $socid ? $socid :- 1 ), $htmlname , DOL_URL_ROOT . '/societe/ajaxcompanies.php' , '' , $minLength , 0 );
2014-12-05 13:26:47 +01:00
return $socid ;
}
else
{
// Search to list thirdparties
$sql = " SELECT s.rowid, s.nom as name FROM " ;
$sql .= " " . MAIN_DB_PREFIX . " societe as s " ;
2017-05-30 18:50:54 +02:00
$sql .= " WHERE s.entity IN ( " . getEntity ( 'societe' ) . " ) " ;
2014-12-05 13:26:47 +01:00
// For ajax search we limit here. For combo list, we limit later
if ( is_array ( $limitto ) && count ( $limitto ))
{
$sql .= " AND s.rowid IN ( " . join ( ',' , $limitto ) . " ) " ;
2010-05-03 10:22:35 +02:00
}
2014-12-05 13:26:47 +01:00
$sql .= " ORDER BY s.nom ASC " ;
$resql = $this -> db -> query ( $sql );
if ( $resql )
2010-05-03 10:22:35 +02:00
{
2018-03-06 11:54:05 +01:00
print '<select class="flat' . ( $morecss ? ' ' . $morecss : '' ) . '" id="' . $htmlname . '" name="' . $htmlname . '"' ;
2014-02-04 20:49:07 +01:00
if ( $conf -> use_javascript_ajax )
{
$javaScript = " window.location=' " . $_SERVER [ 'PHP_SELF' ] . " ? " . $var_id . " = " . ( $forceid > 0 ? $forceid : $object -> id ) . $moreparam . " & " . $htmlname . " =' + form. " . $htmlname . " .options[form. " . $htmlname . " .selectedIndex].value; " ;
print ' onChange="' . $javaScript . '"' ;
}
print '>' ;
2011-06-13 16:17:44 +02:00
$num = $this -> db -> num_rows ( $resql );
2010-05-03 10:22:35 +02:00
$i = 0 ;
if ( $num )
{
while ( $i < $num )
{
2011-06-13 16:17:44 +02:00
$obj = $this -> db -> fetch_object ( $resql );
2010-05-03 10:22:35 +02:00
if ( $i == 0 ) $firstCompany = $obj -> rowid ;
$disabled = 0 ;
2011-09-17 21:49:50 +02:00
if ( is_array ( $limitto ) && count ( $limitto ) && ! in_array ( $obj -> rowid , $limitto )) $disabled = 1 ;
2010-05-03 10:22:35 +02:00
if ( $selected > 0 && $selected == $obj -> rowid )
{
print '<option value="' . $obj -> rowid . '"' ;
2015-05-07 11:57:23 +02:00
if ( $disabled ) print ' disabled' ;
2015-05-07 12:20:20 +02:00
print ' selected>' . dol_trunc ( $obj -> name , 24 ) . '</option>' ;
2010-05-03 10:22:35 +02:00
$firstCompany = $obj -> rowid ;
}
else
{
print '<option value="' . $obj -> rowid . '"' ;
2015-05-07 11:57:23 +02:00
if ( $disabled ) print ' disabled' ;
2014-10-04 17:20:17 +02:00
print '>' . dol_trunc ( $obj -> name , 24 ) . '</option>' ;
2010-05-03 10:22:35 +02:00
}
$i ++ ;
}
}
print " </select> \n " ;
return $firstCompany ;
}
2014-12-05 13:26:47 +01:00
else
{
dol_print_error ( $this -> db );
print 'Error sql' ;
}
2010-05-03 10:22:35 +02:00
}
}
2011-02-14 17:49:04 +01:00
/**
* Return a select list with types of contacts
2011-12-29 23:23:31 +01:00
*
2013-11-07 21:23:29 +01:00
* @ param object $object Object to use to find type of contact
2011-12-29 23:23:31 +01:00
* @ param string $selected Default selected value
* @ param string $htmlname HTML select name
* @ param string $source Source ( 'internal' or 'external' )
2016-02-26 15:03:07 +01:00
* @ param string $sortorder Sort criteria ( 'position' , 'code' , ... )
2011-12-29 23:23:31 +01:00
* @ param int $showempty 1 = Add en empty line
2017-06-02 12:27:46 +02:00
* @ param string $morecss Add more css to select component
2011-12-29 23:23:31 +01:00
* @ return void
2011-02-14 17:49:04 +01:00
*/
2017-06-02 12:27:46 +02:00
function selectTypeContact ( $object , $selected , $htmlname = 'type' , $source = 'internal' , $sortorder = 'position' , $showempty = 0 , $morecss = '' )
2010-05-03 10:22:35 +02:00
{
2016-02-29 13:24:59 +01:00
global $user , $langs ;
2017-06-02 12:27:46 +02:00
2012-10-31 09:59:24 +01:00
if ( is_object ( $object ) && method_exists ( $object , 'liste_type_contact' ))
2010-05-03 10:22:35 +02:00
{
2014-10-18 01:32:38 +02:00
$lesTypes = $object -> liste_type_contact ( $source , $sortorder , 0 , 1 );
2017-06-02 12:27:46 +02:00
print '<select class="flat valignmiddle' . ( $morecss ? ' ' . $morecss : '' ) . '" name="' . $htmlname . '" id="' . $htmlname . '">' ;
2012-10-31 09:59:24 +01:00
if ( $showempty ) print '<option value="0"></option>' ;
foreach ( $lesTypes as $key => $value )
{
print '<option value="' . $key . '"' ;
2014-10-18 01:32:38 +02:00
if ( $key == $selected ) print ' selected' ;
2012-10-31 09:59:24 +01:00
print '>' . $value . '</option>' ;
}
2016-02-29 13:24:59 +01:00
print " </select> " ;
if ( $user -> admin ) print ' ' . info_admin ( $langs -> trans ( " YouCanChangeValuesForThisListFromDictionarySetup " ), 1 );
print " \n " ;
2010-05-03 10:22:35 +02:00
}
}
2010-10-31 21:09:50 +01:00
2010-10-12 14:56:31 +02:00
/**
2011-02-14 17:49:04 +01:00
* Return a select list with zip codes and their town
2011-12-29 23:23:31 +01:00
*
* @ param string $selected Preselected value
* @ param string $htmlname HTML select name
* @ param string $fields Fields
* @ param int $fieldsize Field size
2015-06-20 17:24:34 +02:00
* @ param int $disableautocomplete 1 To disable ajax autocomplete features ( browser autocomplete may still occurs )
* @ param string $moreattrib Add more attribute on HTML input field
2016-11-05 03:27:56 +01:00
* @ param string $morecss More css
2015-02-10 10:45:48 +01:00
* @ return string
2010-10-12 14:56:31 +02:00
*/
2016-11-05 03:27:56 +01:00
function select_ziptown ( $selected = '' , $htmlname = 'zipcode' , $fields = '' , $fieldsize = 0 , $disableautocomplete = 0 , $moreattrib = '' , $morecss = '' )
2010-10-12 14:56:31 +02:00
{
2010-10-13 09:38:48 +02:00
global $conf ;
2010-10-31 21:09:50 +01:00
2010-10-13 15:54:30 +02:00
$out = '' ;
2010-10-31 21:09:50 +01:00
2010-10-13 09:38:48 +02:00
$size = '' ;
if ( ! empty ( $fieldsize )) $size = 'size="' . $fieldsize . '"' ;
2010-10-31 21:09:50 +01:00
2015-06-20 17:24:34 +02:00
if ( $conf -> use_javascript_ajax && empty ( $disableautocomplete ))
{
$out .= ajax_multiautocompleter ( $htmlname , $fields , DOL_URL_ROOT . '/core/ajax/ziptown.php' ) . " \n " ;
$moreattrib .= ' autocomplete="off"' ;
}
2016-11-05 03:27:56 +01:00
$out .= '<input id="' . $htmlname . '" class="maxwidthonsmartphone' . ( $morecss ? ' ' . $morecss : '' ) . '" type="text"' . ( $moreattrib ? ' ' . $moreattrib : '' ) . ' name="' . $htmlname . '" ' . $size . ' value="' . $selected . '">' . " \n " ;
2010-10-31 21:09:50 +01:00
2010-10-13 15:54:30 +02:00
return $out ;
2010-10-12 14:56:31 +02:00
}
2010-05-03 10:22:35 +02:00
2011-02-14 17:49:04 +01:00
/**
* Return HTML string to use as input of professional id into a HTML page ( siren , siret , etc ... )
2011-12-29 23:23:31 +01:00
*
* @ param int $idprof 1 , 2 , 3 , 4 ( Example : 1 = siren , 2 = siret , 3 = naf , 4 = rcs / rm )
* @ param string $htmlname Name of HTML select
* @ param string $preselected Default value to show
* @ param string $country_code FR , IT , ...
2016-06-19 16:07:34 +02:00
* @ param string $morecss More css
2011-12-29 23:23:31 +01:00
* @ return string HTML string with prof id
2011-02-14 17:49:04 +01:00
*/
2016-06-19 16:07:34 +02:00
function get_input_id_prof ( $idprof , $htmlname , $preselected , $country_code , $morecss = 'maxwidth100onsmartphone quatrevingtpercent' )
2011-02-14 17:49:04 +01:00
{
global $conf , $langs ;
2012-02-25 01:34:05 +01:00
$formlength = 0 ;
2012-07-28 12:35:11 +02:00
if ( empty ( $conf -> global -> MAIN_DISABLEPROFIDRULES )) {
2012-07-28 19:04:50 +02:00
if ( $country_code == 'FR' )
{
if ( isset ( $idprof )) {
if ( $idprof == 1 ) $formlength = 9 ;
else if ( $idprof == 2 ) $formlength = 14 ;
else if ( $idprof == 3 ) $formlength = 5 ; // 4 chiffres et 1 lettre depuis janvier
else if ( $idprof == 4 ) $formlength = 32 ; // No maximum as we need to include a town name in this id
}
}
else if ( $country_code == 'ES' )
{
if ( $idprof == 1 ) $formlength = 9 ; //CIF/NIF/NIE 9 digits
if ( $idprof == 2 ) $formlength = 12 ; //NASS 12 digits without /
if ( $idprof == 3 ) $formlength = 5 ; //CNAE 5 digits
if ( $idprof == 4 ) $formlength = 32 ; //depend of college
2012-07-28 12:35:11 +02:00
}
2011-02-14 17:49:04 +01:00
}
$selected = $preselected ;
2012-07-28 12:35:11 +02:00
if ( ! $selected && isset ( $idprof )) {
2012-07-28 19:04:50 +02:00
if ( $idprof == 1 && ! empty ( $this -> idprof1 )) $selected = $this -> idprof1 ;
else if ( $idprof == 2 && ! empty ( $this -> idprof2 )) $selected = $this -> idprof2 ;
else if ( $idprof == 3 && ! empty ( $this -> idprof3 )) $selected = $this -> idprof3 ;
2012-07-28 12:35:11 +02:00
else if ( $idprof == 4 && ! empty ( $this -> idprof4 )) $selected = $this -> idprof4 ;
}
2011-02-14 17:49:04 +01:00
2012-02-25 01:34:05 +01:00
$maxlength = $formlength ;
if ( empty ( $formlength )) { $formlength = 24 ; $maxlength = 128 ; }
2017-06-02 12:27:46 +02:00
2016-09-21 03:54:54 +02:00
$out = '<input type="text" ' . ( $morecss ? 'class="' . $morecss . '" ' : '' ) . 'name="' . $htmlname . '" id="' . $htmlname . '" maxlength="' . $maxlength . '" value="' . $selected . '">' ;
2011-02-14 17:49:04 +01:00
return $out ;
}
2014-07-04 14:19:03 +02:00
2014-07-03 17:39:31 +02:00
/**
2014-07-04 14:19:03 +02:00
* Return a HTML select with localtax values for thirdparties
*
* @ param int $local LocalTax
* @ param int $selected Preselected value
2014-07-12 14:45:09 +02:00
* @ param string $htmlname HTML select name
2014-07-04 14:19:03 +02:00
* @ return void
2014-07-03 17:39:31 +02:00
*/
function select_localtax ( $local , $selected , $htmlname )
{
$tax = get_localtax_by_third ( $local );
2014-07-04 14:19:03 +02:00
2014-07-03 17:39:31 +02:00
$num = $this -> db -> num_rows ( $tax );
$i = 0 ;
if ( $num )
{
$valors = explode ( " : " , $tax );
2014-07-04 14:19:03 +02:00
if ( count ( $valors ) > 1 )
2014-07-03 17:39:31 +02:00
{
//montar select
2014-07-12 14:45:09 +02:00
print '<select class="flat" name="' . $htmlname . '" id="' . $htmlname . '">' ;
2014-07-04 14:19:03 +02:00
while ( $i <= ( count ( $valors )) - 1 )
{
if ( $selected == $valors [ $i ])
{
2015-05-07 12:20:20 +02:00
print '<option value="' . $valors [ $i ] . '" selected>' ;
2014-07-04 14:19:03 +02:00
}
else
{
2014-07-03 17:39:31 +02:00
print '<option value="' . $valors [ $i ] . '">' ;
}
print $valors [ $i ];
print '</option>' ;
$i ++ ;
}
print '</select>' ;
}
}
}
2011-02-14 17:49:04 +01:00
2010-05-03 10:22:35 +02:00
}