diff --git a/htdocs/webservices/server_thirdparty.php b/htdocs/webservices/server_thirdparty.php index ccc05902dcac279a86d04542676de9d99e87028a..6010306a98a9d60e00605418ff3a517be338b21c 100644 --- a/htdocs/webservices/server_thirdparty.php +++ b/htdocs/webservices/server_thirdparty.php @@ -290,7 +290,7 @@ function getThirdParty($authentication,$id='',$ref='',$ref_ext='') $result=$thirdparty->fetch($id,$ref,$ref_ext); if ($result > 0) { - + $thirdparty_result_fields=array( 'id' => $thirdparty->id, 'ref' => $thirdparty->name, @@ -328,16 +328,16 @@ function getThirdParty($authentication,$id='',$ref='',$ref_ext='') 'vat_number' => $thirdparty->tva_intra, 'note_private' => $thirdparty->note_private, 'note_public' => $thirdparty->note_public); - + //Retreive all extrafield for thirdsparty // fetch optionals attributes and labels $extrafields=new ExtraFields($db); $extralabels=$extrafields->fetch_name_optionals_label('societe',true); //Get extrafield values $thirdparty->fetch_optionals($thirdparty->id,$extralabels); - + foreach($extrafields->attribute_label as $key=>$label) - { + { $thirdparty_result_fields=array_merge($thirdparty_result_fields,array('options_'.$key => $thirdparty->array_options['options_'.$key])); } @@ -444,7 +444,7 @@ function createThirdParty($authentication,$thirdparty) $newobject->canvas=$thirdparty['canvas']; $newobject->particulier=$thirdparty['individual']; - + //Retreive all extrafield for thirdsparty // fetch optionals attributes and labels $extrafields=new ExtraFields($db); @@ -520,16 +520,16 @@ function updateThirdParty($authentication,$thirdparty) if (! $error) { $objectfound=false; - + include_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; $object=new Societe($db); $result=$object->fetch($thirdparty['id']); - + if (!empty($object->id)) { - + $objectfound=true; - + $object->ref=$thirdparty['ref']; $object->name=$thirdparty['ref']; $object->ref_ext=$thirdparty['ref_ext']; @@ -546,12 +546,12 @@ function updateThirdParty($authentication,$thirdparty) $object->address=$thirdparty['address']; $object->zip=$thirdparty['zip']; $object->town=$thirdparty['town']; - + $object->country_id=$thirdparty['country_id']; if ($thirdparty['country_code']) $object->country_id=getCountry($thirdparty['country_code'],3); $object->province_id=$thirdparty['province_id']; //if ($thirdparty['province_code']) $newobject->province_code=getCountry($thirdparty['province_code'],3); - + $object->phone=$thirdparty['phone']; $object->fax=$thirdparty['fax']; $object->email=$thirdparty['email']; @@ -562,15 +562,15 @@ function updateThirdParty($authentication,$thirdparty) $object->idprof4=$thirdparty['profid4']; $object->idprof5=$thirdparty['profid5']; $object->idprof6=$thirdparty['profid6']; - + $object->capital=$thirdparty['capital']; - + $object->barcode=$thirdparty['barcode']; $object->tva_assuj=$thirdparty['vat_used']; $object->tva_intra=$thirdparty['vat_number']; - + $object->canvas=$thirdparty['canvas']; - + //Retreive all extrafield for thirdsparty // fetch optionals attributes and labels $extrafields=new ExtraFields($db); @@ -580,9 +580,9 @@ function updateThirdParty($authentication,$thirdparty) $key='options_'.$key; $object->array_options[$key]=$thirdparty[$key]; } - + $db->begin(); - + $result=$object->update($thirdparty['id'],$fuser); if ($result <= 0) { $error++; @@ -640,6 +640,7 @@ function getListOfThirdParties($authentication,$filterthirdparty) // Init and check authentication $objectresp=array(); $arraythirdparties=array(); + $errorcode='';$errorlabel=''; $error=0; $fuser=check_authentication($authentication,$error,$errorcode,$errorlabel); @@ -647,9 +648,11 @@ function getListOfThirdParties($authentication,$filterthirdparty) if (! $error) { - $sql ="SELECT s.rowid, s.nom as ref, s.ref_ext, s.address, s.zip, s.town, p.libelle as country, s.phone, s.fax, s.url"; + $sql ="SELECT s.rowid as socRowid, s.nom as ref, s.ref_ext, s.address, s.zip, s.town, p.libelle as country, s.phone, s.fax, s.url, extra.*"; $sql.=" FROM ".MAIN_DB_PREFIX."societe as s"; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_pays as p ON s.fk_pays = p.rowid'; + $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."societe_extrafields as extra ON s.rowid=fk_object"; + $sql.=" WHERE entity=".$conf->entity; foreach($filterthirdparty as $key => $val) { @@ -658,6 +661,11 @@ function getListOfThirdParties($authentication,$filterthirdparty) if ($key == 'category' && $val != '') $sql.=" AND s.rowid IN (SELECT fk_societe FROM ".MAIN_DB_PREFIX."categorie_societe WHERE fk_categorie=".$db->escape($val).") "; } dol_syslog("Function: getListOfThirdParties sql=".$sql); + + $extrafields=new ExtraFields($db); + $extralabels=$extrafields->fetch_name_optionals_label('societe',true); + + $resql=$db->query($sql); if ($resql) { @@ -666,18 +674,25 @@ function getListOfThirdParties($authentication,$filterthirdparty) $i=0; while ($i < $num) { + $extrafieldsOptions=array(); $obj=$db->fetch_object($resql); - $arraythirdparties[]=array('id'=>$obj->rowid, - 'ref'=>$obj->ref, - 'ref_ext'=>$obj->ref_ext, - 'adress'=>$obj->adress, - 'zip'=>$obj->zip, - 'town'=>$obj->town, - 'country'=>$obj->country, - 'phone'=>$obj->phone, - 'fax'=>$obj->fax, - 'url'=>$obj->url + foreach($extrafields->attribute_label as $key=>$label) + { + $extrafieldsOptions['options_'.$key] = $obj->{$key}; + } + $arraythirdparties[]=array('id'=>$obj->socRowid, + 'ref'=>$obj->ref, + 'ref_ext'=>$obj->ref_ext, + 'adress'=>$obj->adress, + 'zip'=>$obj->zip, + 'town'=>$obj->town, + 'country'=>$obj->country, + 'phone'=>$obj->phone, + 'fax'=>$obj->fax, + 'url'=>$obj->url ); + $arraythirdparties[$i] = array_merge($arraythirdparties[$i],$extrafieldsOptions); + $i++; } }