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
2017-06-13 18:50:31 +02: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 . ')' ;
2015-12-17 20:40:33 +01:00
//print $sql;
$resql = $this -> db -> query ( $sql );
if ( $resql ) // This can fail when class is used on old database (during migration for example)
{
while ( $obj = $this -> db -> fetch_object ( $resql ))
{
$fieldname = $keyforaliasextra . '.' . $obj -> name ;
$fieldlabel = ucfirst ( $obj -> label );
$typeFilter = " Text " ;
2017-07-28 14:54:13 +02:00
$typefield = preg_replace ( '/\(.*$/' , '' , $obj -> type ); // double(24,8) -> double
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' :
$typeFilter = " Numeric " ;
break ;
case 'date' :
case 'datetime' :
2017-07-28 14:54:13 +02:00
case 'timestamp' :
2015-12-17 20:40:33 +01:00
$typeFilter = " Date " ;
break ;
case 'boolean' :
$typeFilter = " Boolean " ;
break ;
case 'sellist' :
$tmp = '' ;
$tmpparam = unserialize ( $obj -> param ); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ( $tmpparam [ 'options' ] && is_array ( $tmpparam [ 'options' ])) {
$tmpkeys = array_keys ( $tmpparam [ 'options' ]);
$tmp = array_shift ( $tmpkeys );
}
if ( preg_match ( '/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/' , $tmp )) $typeFilter = " List: " . $tmp ;
break ;
}
2017-06-13 18:50:31 +02:00
if ( $obj -> type != 'separate' )
{
// If not a computed field
if ( empty ( $obj -> fieldcomputed ))
{
$this -> export_fields_array [ $r ][ $fieldname ] = $fieldlabel ;
$this -> export_TypeFields_array [ $r ][ $fieldname ] = $typeFilter ;
$this -> export_entities_array [ $r ][ $fieldname ] = $keyforelement ;
}
// If this is a computed field
else
{
$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 ;
}
2016-12-09 17:17:58 +01:00
}
2015-12-17 20:40:33 +01:00
}
}
// End add axtra fields