Skip to content

Commit

Permalink
NEW Delete a line of invoice using the REST API
Browse files Browse the repository at this point in the history
Adds the ability to delete a line of an invoice using the REST API
Rename a post action with a "verb"
  • Loading branch information
Neil Orley committed Oct 6, 2017
1 parent 3bacb7c commit 925a86b
Showing 1 changed file with 51 additions and 1 deletion.
52 changes: 51 additions & 1 deletion htdocs/compta/facture/class/api_invoices.class.php
Expand Up @@ -305,6 +305,56 @@ function getLines($id) {
}
return $result;
}

/**
* Deletes a line of a given invoice
*
* @param int $id Id of invoice
* @param int $rowid Id of the line to delete
*
* @url DELETE {id}/deleteline
*
* @return array
* @throws 304
* @throws 400
* @throws 401
* @throws 404
*/
function deleteLine($id, $rowid) {

if(! DolibarrApiAccess::$user->rights->facture->creer) {
throw new RestException(401);
}
if(empty($rowid)) {
throw new RestException(400, 'RowID is mandatory');
}

$result = $this->invoice->fetch($id);
if( ! $result ) {
throw new RestException(404, 'Invoice not found');
}


$result = $this->invoice->deleteline($rowid);
if( $result < 0) {
throw new RestException(304);
}

$result = $this->invoice->fetch($id);

if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) {
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
}
$this->invoice->getLinesArray();
$result = array();
foreach ($this->invoice->lines as $line) {
array_push($result,$this->_cleanObjectDatas($line));
}
return $result;
}




/**
* Add a line to a given invoice
Expand All @@ -314,7 +364,7 @@ function getLines($id) {
* @param int $id Id of invoice
* @param array $request_data Invoiceline data
*
* @url POST {id}/lines
* @url POST {id}/addline
*
* @return int
*/
Expand Down

0 comments on commit 925a86b

Please sign in to comment.