mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2026-02-07 16:41:48 +01:00
Merge pull request #36571 from W1W1-M/new-expense-report-api-update-line
NEW expense report API update line method
This commit is contained in:
@@ -52,7 +52,7 @@ class ExpenseReports extends DolibarrApi
|
||||
'date',
|
||||
'fk_c_type_fees',
|
||||
'qty',
|
||||
'total_ttc',
|
||||
'value_unit',
|
||||
'vatrate'
|
||||
);
|
||||
|
||||
@@ -337,7 +337,7 @@ class ExpenseReports extends DolibarrApi
|
||||
|
||||
$result = $this->expensereport->addline(
|
||||
$request_data->qty,
|
||||
$request_data->total_ttc,
|
||||
$request_data->value_unit,
|
||||
(int) $request_data->fk_c_type_fees,
|
||||
$request_data->vatrate,
|
||||
$request_data->date,
|
||||
@@ -356,71 +356,75 @@ class ExpenseReports extends DolibarrApi
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a line to given Expense Report
|
||||
* Update a line of an expense report
|
||||
*
|
||||
* @param int $id Id of Expense Report to update
|
||||
* @param int $lineid Id of line to update
|
||||
* @param array $request_data Expense Report data
|
||||
* @since 23.0.0 Initial implementation
|
||||
*
|
||||
* @param int $id ID of the expense report
|
||||
* @param int $lineid ID of the line to update
|
||||
* @param array $request_data Expense Report data
|
||||
* @phan-param ?array<string,string> $request_data
|
||||
* @phpstan-param ?array<string,string> $request_data
|
||||
*
|
||||
* @url PUT {id}/lines/{lineid}
|
||||
*
|
||||
* @return object
|
||||
* @return Object|false Object with cleaned properties
|
||||
*
|
||||
* @throws RestException 403
|
||||
* @throws RestException 404
|
||||
* @throws RestException 500
|
||||
*/
|
||||
/*
|
||||
public function putLine($id, $lineid, $request_data = null)
|
||||
{
|
||||
if(! DolibarrApiAccess::$user->hasRight('expensereport', 'creer')) {
|
||||
throw new RestException(403);
|
||||
if (!DolibarrApiAccess::$user->hasRight('expensereport', 'creer')) {
|
||||
throw new RestException(403);
|
||||
}
|
||||
|
||||
$result = $this->expensereport->fetch($id);
|
||||
if( ! $result ) {
|
||||
if (!$result) {
|
||||
throw new RestException(404, 'expensereport not found');
|
||||
}
|
||||
|
||||
if( ! DolibarrApi::_checkAccessToResource('expensereport',$this->expensereport->id)) {
|
||||
if (!DolibarrApi::_checkAccessToResource('expensereport', $this->expensereport->id)) {
|
||||
throw new RestException(403, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||
}
|
||||
|
||||
if ($this->expensereport->status != ExpenseReport::STATUS_DRAFT) {
|
||||
throw new RestException(403, 'Expense report must be in draft status to update lines');
|
||||
}
|
||||
|
||||
$line = new ExpenseReportLine($this->db);
|
||||
$result = $line->fetch($lineid);
|
||||
if ($result <= 0) {
|
||||
throw new RestException(404, 'Expense report line not found');
|
||||
}
|
||||
|
||||
$request_data = (object) $request_data;
|
||||
|
||||
$request_data->desc = sanitizeVal($request_data->desc, 'restricthtml');
|
||||
$request_data->label = sanitizeVal($request_data->label);
|
||||
$request_data->comments = sanitizeVal($request_data->comments, 'restricthtml');
|
||||
|
||||
$updateRes = $this->expensereport->updateline(
|
||||
$lineid,
|
||||
$request_data->desc,
|
||||
$request_data->subprice,
|
||||
$request_data->qty,
|
||||
$request_data->remise_percent,
|
||||
$request_data->tva_tx,
|
||||
$request_data->localtax1_tx,
|
||||
$request_data->localtax2_tx,
|
||||
'HT',
|
||||
$request_data->info_bits,
|
||||
$request_data->date_start,
|
||||
$request_data->date_end,
|
||||
$request_data->product_type,
|
||||
$request_data->fk_parent_line,
|
||||
0,
|
||||
$request_data->fk_fournprice,
|
||||
$request_data->pa_ht,
|
||||
$request_data->label,
|
||||
$request_data->special_code,
|
||||
$request_data->array_options,
|
||||
$request_data->fk_unit
|
||||
$lineid,
|
||||
(int) $request_data->fk_c_type_fees,
|
||||
$request_data->fk_project,
|
||||
$request_data->vatrate,
|
||||
$request_data->comments,
|
||||
$request_data->qty,
|
||||
$request_data->value_unit,
|
||||
$request_data->date,
|
||||
$id,
|
||||
$request_data->fk_c_exp_tax_cat,
|
||||
$request_data->fk_ecm_files
|
||||
);
|
||||
|
||||
if ($updateRes > 0) {
|
||||
$result = $this->get($id);
|
||||
unset($result->line);
|
||||
return $this->_cleanObjectDatas($result);
|
||||
} else {
|
||||
throw new RestException(500, 'Error updating line: '.$this->expensereport->error);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Delete a line from an expense report
|
||||
|
||||
Reference in New Issue
Block a user