2016-12-02 12:02:08 +01:00
< ? php
2015-12-17 20:40:33 +01:00
if ( empty ( $keyforselect ) || empty ( $keyforelement ) || empty ( $keyforaliasextra ))
{
//print $keyforselet.' - '.$keyforelement.' - '.$keyforaliasextra;
dol_print_error ( '' , 'include of file extrafieldsinexport.inc.php was done but var $keyforselect or $keyforelement or $keyforaliasextra was not set' );
exit ;
}
// Add extra fields
2020-01-30 01:48:28 +01:00
$sql = " SELECT name, label, type, param, fieldcomputed, fielddefault FROM " . MAIN_DB_PREFIX . " extrafields WHERE elementtype = ' " . $keyforselect . " ' AND type != 'separate' AND entity IN (0, " . $conf -> entity . ') ORDER BY pos ASC' ;
2015-12-17 20:40:33 +01:00
//print $sql;
2020-01-30 01:48:28 +01:00
$resql = $this -> db -> query ( $sql );
2015-12-17 20:40:33 +01:00
if ( $resql ) // This can fail when class is used on old database (during migration for example)
{
2020-01-30 01:48:28 +01:00
while ( $obj = $this -> db -> fetch_object ( $resql ))
2015-12-17 20:40:33 +01:00
{
2020-01-30 01:48:28 +01:00
$fieldname = $keyforaliasextra . '.' . $obj -> name ;
$fieldlabel = ucfirst ( $obj -> label );
$typeFilter = " Text " ;
$typefield = preg_replace ( '/\(.*$/' , '' , $obj -> type ); // double(24,8) -> double
2017-07-28 14:54:13 +02:00
switch ( $typefield ) {
2015-12-17 20:40:33 +01:00
case 'int' :
2017-07-28 14:54:13 +02:00
case 'integer' :
2015-12-17 20:40:33 +01:00
case 'double' :
case 'price' :
2020-01-30 01:48:28 +01:00
$typeFilter = " Numeric " ;
2015-12-17 20:40:33 +01:00
break ;
case 'date' :
case 'datetime' :
2017-07-28 14:54:13 +02:00
case 'timestamp' :
2020-01-30 01:48:28 +01:00
$typeFilter = " Date " ;
2015-12-17 20:40:33 +01:00
break ;
case 'boolean' :
2020-01-30 01:48:28 +01:00
$typeFilter = " Boolean " ;
2015-12-17 20:40:33 +01:00
break ;
2019-07-02 18:06:51 +02:00
case 'select' :
2020-01-30 01:48:28 +01:00
if ( ! empty ( $conf -> global -> EXPORT_LABEL_FOR_SELECT ))
2019-07-02 18:06:51 +02:00
{
2020-01-30 01:48:28 +01:00
$tmpparam = unserialize ( $obj -> param ); // $tmpparam may be array with 'options' = array(key1=>val1, key2=>val2 ...)
2019-07-02 18:06:51 +02:00
if ( $tmpparam [ 'options' ] && is_array ( $tmpparam [ 'options' ])) {
2020-01-30 01:48:28 +01:00
$typeFilter = " Select: " . $obj -> param ;
2019-07-02 18:06:51 +02:00
}
}
break ;
2015-12-17 20:40:33 +01:00
case 'sellist' :
2020-01-30 01:48:28 +01:00
$tmp = '' ;
$tmpparam = unserialize ( $obj -> param ); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
2015-12-17 20:40:33 +01:00
if ( $tmpparam [ 'options' ] && is_array ( $tmpparam [ 'options' ])) {
2020-01-30 01:48:28 +01:00
$tmpkeys = array_keys ( $tmpparam [ 'options' ]);
$tmp = array_shift ( $tmpkeys );
2015-12-17 20:40:33 +01:00
}
2020-01-30 01:48:28 +01:00
if ( preg_match ( '/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/' , $tmp )) $typeFilter = " List: " . $tmp ;
2015-12-17 20:40:33 +01:00
break ;
}
2020-01-30 01:48:28 +01:00
if ( $obj -> type != 'separate' )
2017-06-13 18:50:31 +02:00
{
// If not a computed field
if ( empty ( $obj -> fieldcomputed ))
{
2020-01-30 01:48:28 +01:00
$this -> export_fields_array [ $r ][ $fieldname ] = $fieldlabel ;
$this -> export_TypeFields_array [ $r ][ $fieldname ] = $typeFilter ;
$this -> export_entities_array [ $r ][ $fieldname ] = $keyforelement ;
2017-06-13 18:50:31 +02:00
}
// If this is a computed field
2020-05-21 01:41:27 +02:00
else {
2020-01-30 01:48:28 +01:00
$this -> export_fields_array [ $r ][ $fieldname ] = $fieldlabel ;
$this -> export_TypeFields_array [ $r ][ $fieldname ] = $typeFilter . 'Compute' ;
$this -> export_special_array [ $r ][ $fieldname ] = $obj -> fieldcomputed ;
$this -> export_entities_array [ $r ][ $fieldname ] = $keyforelement ;
2017-06-13 18:50:31 +02:00
}
2016-12-09 17:17:58 +01:00
}
2015-12-17 20:40:33 +01:00
}
}
// End add axtra fields