diff --git a/htdocs/comm/propal/class/api_proposals.class.php b/htdocs/comm/propal/class/api_proposals.class.php index c697b1b9eb9..3c3447f3697 100644 --- a/htdocs/comm/propal/class/api_proposals.class.php +++ b/htdocs/comm/propal/class/api_proposals.class.php @@ -328,6 +328,9 @@ class Proposals extends DolibarrApi $request_data = (object) $request_data; + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->label = checkVal($request_data->label); + $updateRes = $this->propal->addline( $request_data->desc, $request_data->subprice, @@ -337,8 +340,8 @@ class Proposals extends DolibarrApi $request_data->localtax2_tx, $request_data->fk_product, $request_data->remise_percent, - 'HT', - 0, + $request_data->price_base_type ? $request_data->price_base_type : 'HT', + $request_data->subprice, $request_data->info_bits, $request_data->product_type, $request_data->rang, @@ -392,6 +395,9 @@ class Proposals extends DolibarrApi $request_data = (object) $request_data; + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->label = checkVal($request_data->label); + $propalline = new PropaleLigne($this->db); $result = $propalline->fetch($lineid); if ($result <= 0) { @@ -407,7 +413,7 @@ class Proposals extends DolibarrApi isset($request_data->localtax1_tx) ? $request_data->localtax1_tx : $propalline->localtax1_tx, isset($request_data->localtax2_tx) ? $request_data->localtax2_tx : $propalline->localtax2_tx, isset($request_data->desc) ? $request_data->desc : $propalline->desc, - 'HT', + isset($request_data->price_base_type) ? $request_data->price_base_type : 'HT', isset($request_data->info_bits) ? $request_data->info_bits : $propalline->info_bits, isset($request_data->special_code) ? $request_data->special_code : $propalline->special_code, isset($request_data->fk_parent_line) ? $request_data->fk_parent_line : $propalline->fk_parent_line, diff --git a/htdocs/commande/class/api_orders.class.php b/htdocs/commande/class/api_orders.class.php index 1bf3b97a040..763fb061446 100644 --- a/htdocs/commande/class/api_orders.class.php +++ b/htdocs/commande/class/api_orders.class.php @@ -331,7 +331,12 @@ class Orders extends DolibarrApi if (!DolibarrApi::_checkAccessToResource('commande', $this->commande->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->label = checkVal($request_data->label); + $updateRes = $this->commande->addline( $request_data->desc, $request_data->subprice, @@ -343,8 +348,8 @@ class Orders extends DolibarrApi $request_data->remise_percent, $request_data->info_bits, $request_data->fk_remise_except, - 'HT', - 0, + $request_data->price_base_type ? $request_data->price_base_type : 'HT', + $request_data->subprice, $request_data->date_start, $request_data->date_end, $request_data->product_type, @@ -394,7 +399,12 @@ class Orders extends DolibarrApi if (!DolibarrApi::_checkAccessToResource('commande', $this->commande->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->label = checkVal($request_data->label); + $updateRes = $this->commande->updateline( $lineid, $request_data->desc, @@ -404,7 +414,7 @@ class Orders extends DolibarrApi $request_data->tva_tx, $request_data->localtax1_tx, $request_data->localtax2_tx, - 'HT', + $request_data->price_base_type ? $request_data->price_base_type : 'HT', $request_data->info_bits, $request_data->date_start, $request_data->date_end, diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 40fd3892c4c..074e3a6d67b 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -2397,9 +2397,9 @@ class Commande extends CommonOrder } /** - * Applique une remise relative + * Set a percentage discount * - * @param User $user User qui positionne la remise + * @param User $user User setting the discount * @param float $remise Discount (percent) * @param int $notrigger 1=Does not execute triggers, 0= execute triggers * @return int <0 if KO, >0 if OK @@ -2458,7 +2458,7 @@ class Commande extends CommonOrder // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Applique une remise absolue + * Set a fixed amount discount * * @param User $user User qui positionne la remise * @param float $remise Discount @@ -3156,7 +3156,9 @@ class Commande extends CommonOrder $langs->load("errors"); $this->error = $langs->trans('ErrorStockIsNotEnoughToAddProductOnOrder', $product->ref); $this->errors[] = $this->error; + dol_syslog(get_class($this)."::addline error=Product ".$product->ref.": ".$this->error, LOG_ERR); + $this->db->rollback(); return self::STOCK_NOT_ENOUGH_FOR_ORDER; } diff --git a/htdocs/compta/bank/class/api_bankaccounts.class.php b/htdocs/compta/bank/class/api_bankaccounts.class.php index 0f13ed1e523..8cdd33425d6 100644 --- a/htdocs/compta/bank/class/api_bankaccounts.class.php +++ b/htdocs/compta/bank/class/api_bankaccounts.class.php @@ -481,7 +481,7 @@ class BankAccounts extends DolibarrApi * @param string $accountancycode Accountancy code {@from body} * @param int $datev Payment date value (timestamp) {@from body} {@type timestamp} * @param string $num_releve Bank statement numero {@from body} - * @return int ID of line + * @return int ID of line * * @url POST {id}/lines */ @@ -497,6 +497,14 @@ class BankAccounts extends DolibarrApi throw new RestException(404, 'account not found'); } + $type = checkVal($type); + $label = checkVal($label); + $cheque_number = checkVal($cheque_number); + $cheque_writer = checkVal($cheque_writer); + $cheque_bank = checkVal($cheque_bank); + $accountancycode = checkVal($accountancycode); + $num_releve = checkVal($num_releve); + $result = $account->addline( $date, $type, @@ -548,6 +556,10 @@ class BankAccounts extends DolibarrApi throw new RestException(404, 'account line not found'); } + $url = checkVal($url); + $label = checkVal($label); + $type = checkVal($type); + $result = $account->add_url_line($line_id, $url_id, $url, $label, $type); if ($result < 0) { throw new RestException(503, 'Error when adding link to account line: '.$account->error); diff --git a/htdocs/compta/facture/class/api_invoices.class.php b/htdocs/compta/facture/class/api_invoices.class.php index 0633affef49..a8f640a61ec 100644 --- a/htdocs/compta/facture/class/api_invoices.class.php +++ b/htdocs/compta/facture/class/api_invoices.class.php @@ -407,7 +407,12 @@ class Invoices extends DolibarrApi if (!DolibarrApi::_checkAccessToResource('facture', $this->invoice->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->label = checkVal($request_data->label); + $updateRes = $this->invoice->updateline( $lineid, $request_data->desc, @@ -419,7 +424,7 @@ class Invoices extends DolibarrApi $request_data->tva_tx, $request_data->localtax1_tx, $request_data->localtax2_tx, - 'HT', + $request_data->price_base_type ? $request_data->price_base_type : 'HT', $request_data->info_bits, $request_data->product_type, $request_data->fk_parent_line, @@ -694,6 +699,9 @@ class Invoices extends DolibarrApi $request_data = (object) $request_data; + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->label = checkVal($request_data->label); + // Reset fk_parent_line for no child products and special product if (($request_data->product_type != 9 && empty($request_data->fk_parent_line)) || $request_data->product_type == 9) { $request_data->fk_parent_line = 0; @@ -717,8 +725,8 @@ class Invoices extends DolibarrApi $request_data->fk_code_ventilation, $request_data->info_bits, $request_data->fk_remise_except, - 'HT', - 0, + $request_data->price_base_type ? $request_data->price_base_type : 'HT', + $request_data->subprice, $request_data->product_type, $request_data->rang, $request_data->special_code, diff --git a/htdocs/contrat/class/api_contracts.class.php b/htdocs/contrat/class/api_contracts.class.php index 1de8f0c480d..c52aeeb30e8 100644 --- a/htdocs/contrat/class/api_contracts.class.php +++ b/htdocs/contrat/class/api_contracts.class.php @@ -274,7 +274,12 @@ class Contracts extends DolibarrApi if (!DolibarrApi::_checkAccessToResource('contrat', $this->contract->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->price_base_type = checkVal($request_data->price_base_type); + $updateRes = $this->contract->addline( $request_data->desc, $request_data->subprice, @@ -286,7 +291,7 @@ class Contracts extends DolibarrApi $request_data->remise_percent, $request_data->date_start, // date_start = date planned start, date ouverture = date_start_real $request_data->date_end, // date_end = date planned end, date_cloture = date_end_real - $request_data->HT, + $request_data->price_base_type ? $request_data->price_base_type : 'HT', $request_data->subprice_excl_tax, $request_data->info_bits, $request_data->fk_fournprice, @@ -330,6 +335,9 @@ class Contracts extends DolibarrApi $request_data = (object) $request_data; + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->price_base_type = checkVal($request_data->price_base_type); + $updateRes = $this->contract->updateline( $lineid, $request_data->desc, @@ -343,7 +351,7 @@ class Contracts extends DolibarrApi $request_data->localtax2_tx, $request_data->date_ouverture, $request_data->date_cloture, - 'HT', + $request_data->price_base_type ? $request_data->price_base_type : 'HT', $request_data->info_bits, $request_data->fk_fourn_price, $request_data->pa_ht, @@ -426,8 +434,6 @@ class Contracts extends DolibarrApi throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - // $request_data = (object) $request_data; - $updateRes = $this->contract->close_line(DolibarrApiAccess::$user, $lineid, $datestart, $comment); if ($updateRes > 0) { diff --git a/htdocs/expedition/class/api_shipments.class.php b/htdocs/expedition/class/api_shipments.class.php index 961790cc3bd..1d47921e423 100644 --- a/htdocs/expedition/class/api_shipments.class.php +++ b/htdocs/expedition/class/api_shipments.class.php @@ -275,7 +275,12 @@ class Shipments extends DolibarrApi if( ! DolibarrApi::_checkAccessToResource('expedition',$this->shipment->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->label = checkVal($request_data->label); + $updateRes = $this->shipment->addline( $request_data->desc, $request_data->subprice, @@ -338,7 +343,12 @@ class Shipments extends DolibarrApi if( ! DolibarrApi::_checkAccessToResource('expedition',$this->shipment->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->label = checkVal($request_data->label); + $updateRes = $this->shipment->updateline( $lineid, $request_data->desc, @@ -403,7 +413,6 @@ class Shipments extends DolibarrApi // TODO Check the lineid $lineid is a line of ojbect - $request_data = (object) $request_data; $updateRes = $this->shipment->deleteline(DolibarrApiAccess::$user, $lineid); if ($updateRes > 0) { return $this->get($id); diff --git a/htdocs/expensereport/class/api_expensereports.class.php b/htdocs/expensereport/class/api_expensereports.class.php index 7321cb40625..a87ccf5bb1a 100644 --- a/htdocs/expensereport/class/api_expensereports.class.php +++ b/htdocs/expensereport/class/api_expensereports.class.php @@ -247,7 +247,12 @@ class ExpenseReports extends DolibarrApi if( ! DolibarrApi::_checkAccessToResource('expensereport',$this->expensereport->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - $request_data = (object) $request_data; + + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->label = checkVal($request_data->label); + $updateRes = $this->expensereport->addline( $request_data->desc, $request_data->subprice, @@ -310,7 +315,12 @@ class ExpenseReports extends DolibarrApi if( ! DolibarrApi::_checkAccessToResource('expensereport',$this->expensereport->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->label = checkVal($request_data->label); + $updateRes = $this->expensereport->updateline( $lineid, $request_data->desc, diff --git a/htdocs/fourn/class/api_supplier_invoices.class.php b/htdocs/fourn/class/api_supplier_invoices.class.php index b9b541f0229..55518997d5e 100644 --- a/htdocs/fourn/class/api_supplier_invoices.class.php +++ b/htdocs/fourn/class/api_supplier_invoices.class.php @@ -546,8 +546,12 @@ class SupplierInvoices extends DolibarrApi if (!DolibarrApi::_checkAccessToResource('fournisseur', $this->invoice->id, 'facture_fourn', 'facture')) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + $request_data->description = checkVal($request_data->description, 'restricthtml'); + $request_data->ref_supplier = checkVal($request_data->ref_supplier); + $updateRes = $this->invoice->addline( $request_data->description, $request_data->pu_ht, @@ -561,7 +565,7 @@ class SupplierInvoices extends DolibarrApi $request_data->date_end, $request_data->ventil, $request_data->info_bits, - 'HT', + $request_data->price_base_type ? $request_data->price_base_type : 'HT', $request_data->product_type, $request_data->rang, false, @@ -609,7 +613,12 @@ class SupplierInvoices extends DolibarrApi if (!DolibarrApi::_checkAccessToResource('fournisseur', $this->invoice->id, 'facture_fourn', 'facture')) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->description = checkVal($request_data->description, 'restricthtml'); + $request_data->ref_supplier = checkVal($request_data->ref_supplier); + $updateRes = $this->invoice->updateline( $lineid, $request_data->description, @@ -619,7 +628,7 @@ class SupplierInvoices extends DolibarrApi $request_data->localtax2_tx, $request_data->qty, $request_data->fk_product, - 'HT', + $request_data->price_base_type ? $request_data->price_base_type : 'HT', $request_data->info_bits, $request_data->product_type, $request_data->remise_percent, diff --git a/htdocs/projet/class/api_projects.class.php b/htdocs/projet/class/api_projects.class.php index 6a08aa7a4bd..c5430b655b1 100644 --- a/htdocs/projet/class/api_projects.class.php +++ b/htdocs/projet/class/api_projects.class.php @@ -330,7 +330,11 @@ class Projects extends DolibarrApi if( ! DolibarrApi::_checkAccessToResource('project',$this->project->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $updateRes = $this->project->addline( $request_data->desc, $request_data->subprice, @@ -393,7 +397,11 @@ class Projects extends DolibarrApi if( ! DolibarrApi::_checkAccessToResource('project',$this->project->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $updateRes = $this->project->updateline( $lineid, $request_data->desc, diff --git a/htdocs/projet/class/api_tasks.class.php b/htdocs/projet/class/api_tasks.class.php index cd6df68d590..2c3fd107d53 100644 --- a/htdocs/projet/class/api_tasks.class.php +++ b/htdocs/projet/class/api_tasks.class.php @@ -330,7 +330,11 @@ class Tasks extends DolibarrApi if( ! DolibarrApi::_checkAccessToResource('project',$this->project->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $updateRes = $this->project->addline( $request_data->desc, $request_data->subprice, @@ -393,7 +397,11 @@ class Tasks extends DolibarrApi if( ! DolibarrApi::_checkAccessToResource('project',$this->project->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $request_data = (object) $request_data; + + $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $updateRes = $this->project->updateline( $lineid, $request_data->desc,