Merge branch 'develop' of git+ssh://git@github.com/Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
81a97edf9c
@ -28,8 +28,9 @@ require_once(NUSOAP_PATH.'/nusoap.php'); // Include SOAP
|
|||||||
|
|
||||||
$WS_DOL_URL = DOL_MAIN_URL_ROOT.'/webservices/server_productorservice.php';
|
$WS_DOL_URL = DOL_MAIN_URL_ROOT.'/webservices/server_productorservice.php';
|
||||||
//$WS_DOL_URL = 'http://localhost:8080/'; // To test with Soapui mock. If not a page, should end with /
|
//$WS_DOL_URL = 'http://localhost:8080/'; // To test with Soapui mock. If not a page, should end with /
|
||||||
$WS_METHOD1 = 'createProductOrService';
|
$WS_METHOD1 = 'createProductOrService';
|
||||||
$WS_METHOD2 = 'getProductOrService';
|
$WS_METHOD2 = 'getProductOrService';
|
||||||
|
$WS_METHOD3 = 'getListOfProductsOrServices';
|
||||||
$ns='http://www.dolibarr.org/ns/';
|
$ns='http://www.dolibarr.org/ns/';
|
||||||
|
|
||||||
|
|
||||||
@ -47,6 +48,13 @@ if ($soapclient2)
|
|||||||
$soapclient2->soap_defencoding='UTF-8';
|
$soapclient2->soap_defencoding='UTF-8';
|
||||||
$soapclient2->decodeUTF8(false);
|
$soapclient2->decodeUTF8(false);
|
||||||
}
|
}
|
||||||
|
$soapclient3 = new nusoap_client($WS_DOL_URL);
|
||||||
|
if ($soapclient3)
|
||||||
|
{
|
||||||
|
$soapclient3->soap_defencoding='UTF-8';
|
||||||
|
$soapclient3->decodeUTF8(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Call the WebService method and store its result in $result.
|
// Call the WebService method and store its result in $result.
|
||||||
$authentication=array(
|
$authentication=array(
|
||||||
@ -79,14 +87,31 @@ if ($WS_METHOD2)
|
|||||||
{
|
{
|
||||||
$parameters = array('authentication'=>$authentication,'id'=>1,'ref'=>'');
|
$parameters = array('authentication'=>$authentication,'id'=>1,'ref'=>'');
|
||||||
dol_syslog("Call method ".$WS_METHOD2);
|
dol_syslog("Call method ".$WS_METHOD2);
|
||||||
$result2 = $soapclient1->call($WS_METHOD2,$parameters,$ns,'');
|
$result2 = $soapclient2->call($WS_METHOD2,$parameters,$ns,'');
|
||||||
if (! $result2)
|
if (! $result2)
|
||||||
{
|
{
|
||||||
print $soapclient1->error_str;
|
print $soapclient2->error_str;
|
||||||
print "<br>\n\n";
|
print "<br>\n\n";
|
||||||
print $soapclient1->request;
|
print $soapclient2->request;
|
||||||
print "<br>\n\n";
|
print "<br>\n\n";
|
||||||
print $soapclient1->response;
|
print $soapclient2->response;
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test url 3
|
||||||
|
if ($WS_METHOD3)
|
||||||
|
{
|
||||||
|
$parameters = array('authentication'=>$authentication,'filterproduct'=>array('type'=>-1));
|
||||||
|
dol_syslog("Call method ".$WS_METHOD3);
|
||||||
|
$result3 = $soapclient3->call($WS_METHOD3,$parameters,$ns,'');
|
||||||
|
if (! $result3)
|
||||||
|
{
|
||||||
|
print $soapclient3->error_str;
|
||||||
|
print "<br>\n\n";
|
||||||
|
print $soapclient3->request;
|
||||||
|
print "<br>\n\n";
|
||||||
|
print $soapclient3->response;
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -111,7 +136,7 @@ echo '<h4>Function</h4>';
|
|||||||
echo $WS_METHOD1;
|
echo $WS_METHOD1;
|
||||||
echo '<h4>SOAP Message</h4>';
|
echo '<h4>SOAP Message</h4>';
|
||||||
echo '<pre>' . htmlspecialchars($soapclient1->request, ENT_QUOTES) . '</pre>';
|
echo '<pre>' . htmlspecialchars($soapclient1->request, ENT_QUOTES) . '</pre>';
|
||||||
echo '<hr>';
|
//echo '<hr>';
|
||||||
echo "<h2>Response:</h2>";
|
echo "<h2>Response:</h2>";
|
||||||
echo '<h4>Result</h4>';
|
echo '<h4>Result</h4>';
|
||||||
echo '<pre>';
|
echo '<pre>';
|
||||||
@ -127,7 +152,7 @@ echo '<h4>Function</h4>';
|
|||||||
echo $WS_METHOD2;
|
echo $WS_METHOD2;
|
||||||
echo '<h4>SOAP Message</h4>';
|
echo '<h4>SOAP Message</h4>';
|
||||||
echo '<pre>' . htmlspecialchars($soapclient2->request, ENT_QUOTES) . '</pre>';
|
echo '<pre>' . htmlspecialchars($soapclient2->request, ENT_QUOTES) . '</pre>';
|
||||||
echo '<hr>';
|
//echo '<hr>';
|
||||||
echo "<h2>Response:</h2>";
|
echo "<h2>Response:</h2>";
|
||||||
echo '<h4>Result</h4>';
|
echo '<h4>Result</h4>';
|
||||||
echo '<pre>';
|
echo '<pre>';
|
||||||
@ -136,6 +161,22 @@ echo '</pre>';
|
|||||||
echo '<h4>SOAP Message</h4>';
|
echo '<h4>SOAP Message</h4>';
|
||||||
echo '<pre>' . htmlspecialchars($soapclient2->response, ENT_QUOTES) . '</pre>';
|
echo '<pre>' . htmlspecialchars($soapclient2->response, ENT_QUOTES) . '</pre>';
|
||||||
|
|
||||||
|
print '<hr>';
|
||||||
|
|
||||||
|
echo "<h2>Request:</h2>";
|
||||||
|
echo '<h4>Function</h4>';
|
||||||
|
echo $WS_METHOD3;
|
||||||
|
echo '<h4>SOAP Message</h4>';
|
||||||
|
echo '<pre>' . htmlspecialchars($soapclient3->request, ENT_QUOTES) . '</pre>';
|
||||||
|
//echo '<hr>';
|
||||||
|
echo "<h2>Response:</h2>";
|
||||||
|
echo '<h4>Result</h4>';
|
||||||
|
echo '<pre>';
|
||||||
|
print_r($result3);
|
||||||
|
echo '</pre>';
|
||||||
|
echo '<h4>SOAP Message</h4>';
|
||||||
|
echo '<pre>' . htmlspecialchars($soapclient3->response, ENT_QUOTES) . '</pre>';
|
||||||
|
|
||||||
echo '</body>'."\n";;
|
echo '</body>'."\n";;
|
||||||
echo '</html>'."\n";;
|
echo '</html>'."\n";;
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -117,6 +117,34 @@ $server->wsdl->addComplexType(
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Define other specific objects
|
||||||
|
$server->wsdl->addComplexType(
|
||||||
|
'filterproduct',
|
||||||
|
'complexType',
|
||||||
|
'struct',
|
||||||
|
'all',
|
||||||
|
'',
|
||||||
|
array(
|
||||||
|
// 'limit' => array('name'=>'limit','type'=>'xsd:string'),
|
||||||
|
'type' => array('name'=>'type','type'=>'xsd:string'),
|
||||||
|
'status_tobuy' => array('name'=>'status_tobuy','type'=>'xsd:string'),
|
||||||
|
'status_tosell' => array('name'=>'status_tosell','type'=>'xsd:string'),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Define other specific objects
|
||||||
|
$server->wsdl->addComplexType(
|
||||||
|
'arrayproducts',
|
||||||
|
'complexType',
|
||||||
|
'struct',
|
||||||
|
'all',
|
||||||
|
'',
|
||||||
|
array(
|
||||||
|
'id' => array('name'=>'id','type'=>'xsd:string'),
|
||||||
|
'ref' => array('name'=>'ref','type'=>'xsd:string'),
|
||||||
|
'ref_ext' => array('name'=>'ref_ext','type'=>'xsd:string'),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
// 5 styles: RPC/encoded, RPC/literal, Document/encoded (not WS-I compliant), Document/literal, Document/literal wrapped
|
// 5 styles: RPC/encoded, RPC/literal, Document/encoded (not WS-I compliant), Document/literal, Document/literal wrapped
|
||||||
@ -155,6 +183,20 @@ $server->register(
|
|||||||
'WS to create a product or service'
|
'WS to create a product or service'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Register WSDL
|
||||||
|
$server->register(
|
||||||
|
'getListOfProductsOrServices',
|
||||||
|
// Entry values
|
||||||
|
array('authentication'=>'tns:authentication','filterproduct'=>'tns:filterproduct'),
|
||||||
|
// Exit values
|
||||||
|
array('result'=>'tns:result','arrayproducts'=>'tns:arrayproducts'),
|
||||||
|
$ns,
|
||||||
|
$ns.'#getListOfProductsOrServices',
|
||||||
|
$styledoc,
|
||||||
|
$styleuse,
|
||||||
|
'WS to get list of all products or services id and ref'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get produt or service
|
* Get produt or service
|
||||||
@ -358,6 +400,84 @@ function createProductOrService($authentication,$product)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* getListOfProductsOrServices
|
||||||
|
*
|
||||||
|
* @param array $authentication Array of authentication information
|
||||||
|
* @param array $filterproduct Filter fields
|
||||||
|
* @return array Array result
|
||||||
|
*/
|
||||||
|
function getListOfProductsOrServices($authentication,$filterproduct)
|
||||||
|
{
|
||||||
|
global $db,$conf,$langs;
|
||||||
|
|
||||||
|
$now=dol_now();
|
||||||
|
|
||||||
|
dol_syslog("Function: getListOfProductsOrServices login=".$authentication['login']);
|
||||||
|
|
||||||
|
if ($authentication['entity']) $conf->entity=$authentication['entity'];
|
||||||
|
|
||||||
|
// Init and check authentication
|
||||||
|
$objectresp=array();
|
||||||
|
$arrayproducts=array();
|
||||||
|
$errorcode='';$errorlabel='';
|
||||||
|
$error=0;
|
||||||
|
$fuser=check_authentication($authentication,$error,$errorcode,$errorlabel);
|
||||||
|
// Check parameters
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$sql ="SELECT rowid, ref, ref_ext";
|
||||||
|
$sql.=" FROM ".MAIN_DB_PREFIX."product";
|
||||||
|
$sql.=" WHERE entity=".$conf->entity;
|
||||||
|
foreach($filterproduct as $key => $val)
|
||||||
|
{
|
||||||
|
if ($key == 'type' && $val >= 0) $sql.=" AND fk_product_type = ".$db->escape($val);
|
||||||
|
if ($key == 'tosell') $sql.=" AND to_sell = ".$db->escape($val);
|
||||||
|
if ($key == 'tobuy') $sql.=" AND to_buy = ".$db->escape($val);
|
||||||
|
}
|
||||||
|
$resql=$db->query($sql);
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$num=$db->num_rows($resql);
|
||||||
|
|
||||||
|
$i=0;
|
||||||
|
while ($i < $num)
|
||||||
|
{
|
||||||
|
$obj=$db->fetch_object($resql);
|
||||||
|
$arrayproducts[$obj->rowid]=array('id'=>$obj->rowid,'ref'=>$obj->ref,'ref_ext'=>$obj->ref_ext);
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$errorcode=$db->lasterrno();
|
||||||
|
$errorlabel=$db->lasterror();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($error)
|
||||||
|
{
|
||||||
|
$objectresp = array(
|
||||||
|
'result'=>array('result_code' => $errorcode, 'result_label' => $errorlabel),
|
||||||
|
'arrayproducts'=>$arrayproducts
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$objectresp = array(
|
||||||
|
'result'=>array('result_code' => 'OK', 'result_label' => ''),
|
||||||
|
'arrayproducts'=>$arrayproducts
|
||||||
|
);
|
||||||
|
}
|
||||||
|
var_dump($objectresp);exit;
|
||||||
|
return $objectresp;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Return the results.
|
// Return the results.
|
||||||
$server->service($HTTP_RAW_POST_DATA);
|
$server->service($HTTP_RAW_POST_DATA);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user