diff --git a/test/phpunit/WebservicesInvoicesTest.php b/test/phpunit/WebservicesInvoicesTest.php
index 20e01595375..a295dbdc64e 100755
--- a/test/phpunit/WebservicesInvoicesTest.php
+++ b/test/phpunit/WebservicesInvoicesTest.php
@@ -102,6 +102,8 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
+
+ // create a third_party, needed to create an invoice
print __METHOD__."\n";
}
@@ -118,11 +120,118 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase
/**
- * testWSInvoicesXxx
+ * testWSInvoicesCreateInvoice
*
* @return int
*/
- public function testWSInvoicesXxx()
+ public function testWSInvoicesCreateInvoice()
+ {
+ global $conf,$user,$langs,$db;
+ $conf=$this->savconf;
+ $user=$this->savuser;
+ $langs=$this->savlangs;
+ $db=$this->savdb;
+
+ $WS_DOL_URL = DOL_MAIN_URL_ROOT.'/webservices/server_invoice.php';
+ $WS_METHOD = 'createInvoice';
+ $ns='http://www.dolibarr.org/ns/';
+
+ // Set the WebService URL
+ print __METHOD__." create nusoap_client for URL=".$WS_DOL_URL."\n";
+ $soapclient = new nusoap_client($WS_DOL_URL);
+ if ($soapclient)
+ {
+ $soapclient->soap_defencoding='UTF-8';
+ $soapclient->decodeUTF8(false);
+ }
+
+ $body = array (
+ ["id"] => NULL,
+ ["ref"]=> NULL,
+ ["ref_ext"]=> "165",
+ ["thirdparty_id"]=> "209",
+ ["fk_user_author"] => NULL,
+ ["fk_user_valid"] => NULL,
+ ["date"]=> "2015-04-19 20:16:53",
+ ["date_due"]=> "",
+ ["date_creation"]=> "",
+ ["date_validation"]=> "",
+ ["date_modification"]=> "",
+ ["type"]=> "",
+ ["total_net"]=> "36.30",
+ ["total_vat"]=> "6.00",
+ ["total"]=> "42.30",
+ ["payment_mode_id"]=> 50,
+ ["note_private"]=> "Synchronised from Prestashop",
+ ["note_public"]=> "",
+ ["status"]=> "1",
+ ["close_code"]=> NULL ,
+ ["close_note"]=> NULL,
+ ["project_id"]=> NULL,
+ ["lines"] => array(
+ ["id"] => NULL,
+ ["type"]=> 0,
+ ["desc"]=> "Horloge Vinyle Serge",
+ ["vat_rate"]=> 20,
+ ["qty"]=> "1",
+ ["unitprice"]=> "30.000000",
+ ["total_net"]=> "30.000000",
+ ["total_vat"]=> "6.00",
+ ["total"]=> "36.000000",
+ ["date_start"]=> "",
+ ["date_end"]=> "",
+ ["payment_mode_id"]=> "",
+ ["product_id"]=> "",
+ ["product_ref"]=> "",
+ ["product_label"]=> "",
+ ["product_desc"]=> "" )
+ );
+
+ // Call the WebService method and store its result in $result.
+ $authentication=array(
+ 'dolibarrkey'=>$conf->global->WEBSERVICES_KEY,
+ 'sourceapplication'=>'DEMO',
+ 'login'=>'admin',
+ 'password'=>'admin',
+ 'entity'=>'');
+
+ // Test URL
+ $result='';
+ $parameters = array('authentication'=>$authentication,'invoice'=>$body);
+ print __METHOD__." call method ".$WS_METHOD."\n";
+ try {
+ $result = $soapclient->call($WS_METHOD,$parameters,$ns,'');
+ }
+ catch(SoapFault $exception)
+ {
+ echo $exception;
+ $result=0;
+ }
+ if (! $result || ! empty($result['faultstring']))
+ {
+ //var_dump($soapclient);
+ print $soapclient->error_str;
+ print "\n
\n";
+ print $soapclient->request;
+ print "\n
\n";
+ print $soapclient->response;
+ print "\n";
+ }
+
+ print __METHOD__." result=".$result."\n";
+ $this->assertEquals('OK',$result['result']['result_code']);
+ $this->assertEquals('165', $result['ref_ext']);
+
+
+ return $result;
+ }
+
+ /**
+ * testWSInvoicesGetInvoice
+ *
+ * @return int
+ */
+ public function testWSInvoicesGetInvoice()
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
@@ -153,7 +262,7 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase
// Test URL
$result='';
- $parameters = array('authentication'=>$authentication,'id'=>1);
+ $parameters = array('authentication'=>$authentication,'id'=>NULL,'ref'=>NULL,'ref_ext'=>165);
print __METHOD__." call method ".$WS_METHOD."\n";
try {
$result = $soapclient->call($WS_METHOD,$parameters,$ns,'');
@@ -176,6 +285,116 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase
print __METHOD__." result=".$result."\n";
$this->assertEquals('OK',$result['result']['result_code']);
+ $this->assertEquals('165', $result['result']['invoice']->ref_ext);
+
+
+ return $result;
+ }
+
+ /**
+ * testWSInvoicesUpdateInvoice
+ *
+ * @return int
+ */
+ public function testWSInvoicesUpdateInvoice()
+ {
+ global $conf,$user,$langs,$db;
+ $conf=$this->savconf;
+ $user=$this->savuser;
+ $langs=$this->savlangs;
+ $db=$this->savdb;
+
+ $WS_DOL_URL = DOL_MAIN_URL_ROOT.'/webservices/server_invoice.php';
+ $WS_METHOD = 'updateInvoice';
+ $ns='http://www.dolibarr.org/ns/';
+
+ // Set the WebService URL
+ print __METHOD__." create nusoap_client for URL=".$WS_DOL_URL."\n";
+ $soapclient = new nusoap_client($WS_DOL_URL);
+ if ($soapclient)
+ {
+ $soapclient->soap_defencoding='UTF-8';
+ $soapclient->decodeUTF8(false);
+ }
+
+ // update status to 2
+ $body = array (
+ ["id"] => NULL,
+ ["ref"]=> NULL,
+ ["ref_ext"]=> "165",
+ ["thirdparty_id"]=> "209",
+ ["fk_user_author"] => NULL,
+ ["fk_user_valid"] => NULL,
+ ["date"]=> "2015-04-19 20:16:53",
+ ["date_due"]=> "",
+ ["date_creation"]=> "",
+ ["date_validation"]=> "",
+ ["date_modification"]=> "",
+ ["type"]=> "",
+ ["total_net"]=> "36.30",
+ ["total_vat"]=> "6.00",
+ ["total"]=> "42.30",
+ ["payment_mode_id"]=> 50,
+ ["note_private"]=> "Synchronised from Prestashop",
+ ["note_public"]=> "",
+ ["status"]=> "2",
+ ["close_code"]=> NULL ,
+ ["close_note"]=> NULL,
+ ["project_id"]=> NULL,
+ ["lines"] => array(
+ ["id"] => NULL,
+ ["type"]=> 0,
+ ["desc"]=> "Horloge Vinyle Serge",
+ ["vat_rate"]=> 20,
+ ["qty"]=> "1",
+ ["unitprice"]=> "30.000000",
+ ["total_net"]=> "30.000000",
+ ["total_vat"]=> "6.00",
+ ["total"]=> "36.000000",
+ ["date_start"]=> "",
+ ["date_end"]=> "",
+ ["payment_mode_id"]=> "",
+ ["product_id"]=> "",
+ ["product_ref"]=> "",
+ ["product_label"]=> "",
+ ["product_desc"]=> "" )
+ );
+
+ // Call the WebService method and store its result in $result.
+ $authentication=array(
+ 'dolibarrkey'=>$conf->global->WEBSERVICES_KEY,
+ 'sourceapplication'=>'DEMO',
+ 'login'=>'admin',
+ 'password'=>'admin',
+ 'entity'=>'');
+
+ // Test URL
+ $result='';
+ $parameters = array('authentication'=>$authentication,'invoice'=>$body);
+ print __METHOD__." call method ".$WS_METHOD."\n";
+ try {
+ $result = $soapclient->call($WS_METHOD,$parameters,$ns,'');
+ }
+ catch(SoapFault $exception)
+ {
+ echo $exception;
+ $result=0;
+ }
+ if (! $result || ! empty($result['faultstring']))
+ {
+ //var_dump($soapclient);
+ print $soapclient->error_str;
+ print "\n
\n";
+ print $soapclient->request;
+ print "\n
\n";
+ print $soapclient->response;
+ print "\n";
+ }
+
+ print __METHOD__." result=".$result."\n";
+ $this->assertEquals('OK',$result['result']['result_code']);
+ $this->assertEquals('2', $result['result']['invoice']->status);
+
return $result;
}