2
0
forked from Wavyzz/dolibarr

Merge pull request #14792 from c3do/patch-15

FIX API Order unlink contact did not work like expected
This commit is contained in:
Laurent Destailleur
2020-10-03 15:30:07 +02:00
committed by GitHub

View File

@@ -545,8 +545,9 @@ class Orders extends DolibarrApi
*
* @param int $id Id of order to update
* @param int $rowid Row key of the contact in the array contact_ids.
* @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER).
*
* @url DELETE {id}/contact/{rowid}
* @url DELETE {id}/contact/{contactid}/{type}
*
* @return int
*
@@ -554,7 +555,7 @@ class Orders extends DolibarrApi
* @throws RestException 404
* @throws RestException 500
*/
public function deleteContact($id, $rowid)
public function deleteContact($id, $contactid, $type)
{
if (!DolibarrApiAccess::$user->rights->commande->creer) {
throw new RestException(401);
@@ -569,10 +570,16 @@ class Orders extends DolibarrApi
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
}
$result = $this->commande->delete_linked_contact($rowid);
$contacts = $this->commande->liste_contact();
if (!$result) {
throw new RestException(500, 'Error when deleted the contact');
foreach ($contacts as $contact) {
if ($contact['id'] == $contactid && $contact['code'] == $type) {
$result = $this->commande->delete_contact($contact['rowid']);
if (!$result) {
throw new RestException(500, 'Error when deleted the contact');
}
}
}
return array(