From 574a950dc625a94873d0d0eb75ec4767b0a45c14 Mon Sep 17 00:00:00 2001 From: fhenry Date: Sat, 8 Dec 2012 13:30:39 +0100 Subject: [PATCH] Add third party extrafield in web service exposure --- htdocs/webservices/server_thirdparty.php | 41 ++++++++++++++++++------ 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/htdocs/webservices/server_thirdparty.php b/htdocs/webservices/server_thirdparty.php index 2e6cfbc083c..ba9ec57fea1 100755 --- a/htdocs/webservices/server_thirdparty.php +++ b/htdocs/webservices/server_thirdparty.php @@ -29,6 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/ws.lib.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; dol_syslog("Call Dolibarr webservices interfaces"); @@ -82,14 +83,8 @@ $server->wsdl->addComplexType( ) ); -// Define other specific objects -$server->wsdl->addComplexType( - 'thirdparty', - 'complexType', - 'struct', - 'all', - '', - array( + +$thirdparty_fields= array( 'id' => array('name'=>'id','type'=>'xsd:string'), 'ref' => array('name'=>'name','type'=>'xsd:string'), 'ref_ext' => array('name'=>'ref_ext','type'=>'xsd:string'), @@ -123,8 +118,34 @@ $server->wsdl->addComplexType( 'profid6' => array('name'=>'profid6','type'=>'xsd:string'), 'capital' => array('name'=>'capital','type'=>'xsd:string'), 'vat_used' => array('name'=>'vat_used','type'=>'xsd:string'), - 'vat_number' => array('name'=>'vat_number','type'=>'xsd:string') - ) + 'vat_number' => array('name'=>'vat_number','type'=>'xsd:string')); + +//Retreive all extrafield for thirdsparty +// fetch optionals attributes and labels +$extrafields=new ExtraFields($db); +$extralabels=$extrafields->fetch_name_optionals_label('company'); +foreach($extrafields->attribute_label as $key=>$label) +{ + //$value=$object->array_options["options_".$key]; + $type =$extrafields->attribute_type[$key]; + if ($type=='date' || $type=='datetime') {$type='xsd:dateTime';} + else {$type='xsd:string';} + + $extrafield_array = array(); + + $extrafield_array[$key]=array('name'=>$key,'type'=>$type); +} + +$thirdparty_fields=array_merge($thirdparty_fields,$extrafield_array); + +// Define other specific objects +$server->wsdl->addComplexType( + 'thirdparty', + 'complexType', + 'struct', + 'all', + '', + $thirdparty_fields ); // Define other specific objects