diff --git a/htdocs/api/class/api_setup.class.php b/htdocs/api/class/api_setup.class.php
index 9dcd168f344..e06cdeb0312 100644
--- a/htdocs/api/class/api_setup.class.php
+++ b/htdocs/api/class/api_setup.class.php
@@ -319,8 +319,8 @@ class Setup extends DolibarrApi
/**
* Get state by ID.
*
- * @param int $id ID of state
- * @return array Array of cleaned object properties
+ * @param int $id ID of state
+ * @return Object Object with cleaned properties
*
* @url GET dictionary/states/{id}
*
@@ -334,8 +334,8 @@ class Setup extends DolibarrApi
/**
* Get state by Code.
*
- * @param string $code Code of state
- * @return array Array of cleaned object properties
+ * @param string $code Code of state
+ * @return Object Object with cleaned properties
*
* @url GET dictionary/states/byCode/{code}
*
@@ -424,10 +424,9 @@ class Setup extends DolibarrApi
/**
* Get country by ID.
*
- * @param int $id ID of country
- * @param string $lang Code of the language the name of the
- * country must be translated to
- * @return array Array of cleaned object properties
+ * @param int $id ID of country
+ * @param string $lang Code of the language the name of the country must be translated to
+ * @return Object Object with cleaned properties
*
* @url GET dictionary/countries/{id}
*
@@ -441,10 +440,9 @@ class Setup extends DolibarrApi
/**
* Get country by Code.
*
- * @param string $code Code of country (2 characters)
- * @param string $lang Code of the language the name of the
- * country must be translated to
- * @return array Array of cleaned object properties
+ * @param string $code Code of country (2 characters)
+ * @param string $lang Code of the language the name of the country must be translated to
+ * @return Object Object with cleaned properties
*
* @url GET dictionary/countries/byCode/{code}
*
@@ -458,10 +456,9 @@ class Setup extends DolibarrApi
/**
* Get country by Iso.
*
- * @param string $iso ISO of country (3 characters)
- * @param string $lang Code of the language the name of the
- * country must be translated to
- * @return array Array of cleaned object properties
+ * @param string $iso ISO of country (3 characters)
+ * @param string $lang Code of the language the name of the country must be translated to
+ * @return Object Object with cleaned properties
*
* @url GET dictionary/countries/byISO/{iso}
*
@@ -475,9 +472,9 @@ class Setup extends DolibarrApi
/**
* Get state.
*
- * @param int $id ID of state
- * @param string $code Code of state
- * @return array Array of cleaned object properties
+ * @param int $id ID of state
+ * @param string $code Code of state
+ * @return Object Object with cleaned properties
*
* @throws RestException
*/
@@ -498,12 +495,11 @@ class Setup extends DolibarrApi
/**
* Get country.
*
- * @param int $id ID of country
- * @param string $code Code of country (2 characters)
- * @param string $iso ISO of country (3 characters)
- * @param string $lang Code of the language the name of the
- * country must be translated to
- * @return array Array of cleaned object properties
+ * @param int $id ID of country
+ * @param string $code Code of country (2 characters)
+ * @param string $iso ISO of country (3 characters)
+ * @param string $lang Code of the language the name of the country must be translated to
+ * @return Object Object with cleaned properties
*
* @throws RestException
*/
@@ -527,12 +523,12 @@ class Setup extends DolibarrApi
/**
* Get the list of delivery times.
*
- * @param string $sortfield Sort field
- * @param string $sortorder Sort order
- * @param int $limit Number of items per page
- * @param int $page Page number {@min 0}
- * @param int $active Delivery times is active or not {@min 0} {@max 1}
- * @param string $sqlfilters SQL criteria to filter with.
+ * @param string $sortfield Sort field
+ * @param string $sortorder Sort order
+ * @param int $limit Number of items per page
+ * @param int $page Page number {@min 0}
+ * @param int $active Delivery times is active or not {@min 0} {@max 1}
+ * @param string $sqlfilters SQL criteria to filter with.
*
* @url GET dictionary/availability
*
@@ -592,8 +588,8 @@ class Setup extends DolibarrApi
/**
* Clean sensible object datas
*
- * @param Object $object Object to clean
- * @return Object Object with cleaned properties
+ * @param Object $object Object to clean
+ * @return Object Object with cleaned properties
*/
protected function _cleanObjectDatas($object)
{
@@ -1786,8 +1782,8 @@ class Setup extends DolibarrApi
/**
* Get establishment by ID.
*
- * @param int $id ID of establishment
- * @return array Array of cleaned object properties
+ * @param int $id ID of establishment
+ * @return Object Object with cleaned properties
*
* @url GET establishments/{id}
*
@@ -1813,7 +1809,7 @@ class Setup extends DolibarrApi
* Note that conf variables that stores security key or password hashes can't be loaded with API.
*
* @param string $constantname Name of conf variable to get
- * @return array|mixed Data without useless information
+ * @return string Data without useless information
*
* @url GET conf/{constantname}
*
@@ -1825,7 +1821,7 @@ class Setup extends DolibarrApi
global $conf;
if (!DolibarrApiAccess::$user->admin
- && (empty($conf->global->API_LOGINS_ALLOWED_FOR_CONST_READ) || DolibarrApiAccess::$user->login != $conf->global->API_LOGINS_ALLOWED_FOR_CONST_READ)) {
+ && (!getDolGlobalString('API_LOGINS_ALLOWED_FOR_CONST_READ') || DolibarrApiAccess::$user->login != getDolGlobalString('API_LOGINS_ALLOWED_FOR_CONST_READ'))) {
throw new RestException(403, 'Error API open to admin users only or to the users with logins defined into constant API_LOGINS_ALLOWED_FOR_CONST_READ');
}
@@ -1836,7 +1832,7 @@ class Setup extends DolibarrApi
throw new RestException(403, 'Forbidden. This parameter cant be read with APIs');
}
- return $conf->global->$constantname;
+ return getDolGlobalString($constantname);
}
/**
diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php
index e5d9cc82617..79d2b57ebc8 100644
--- a/htdocs/bom/class/bom.class.php
+++ b/htdocs/bom/class/bom.class.php
@@ -1329,7 +1329,7 @@ class BOM extends CommonObject
* BOM costs calculation based on cost_price or pmp of each BOM line.
* Set the property ->total_cost and ->unit_cost of BOM.
*
- * @return void
+ * @return int <0 if KO, >0 if OK
*/
public function calculateCosts()
{
@@ -1414,6 +1414,8 @@ class BOM extends CommonObject
$this->unit_cost = price2num($this->total_cost * $this->qty, 'MU');
}
}
+
+ return 1;
}
/**
diff --git a/htdocs/comm/action/class/ical.class.php b/htdocs/comm/action/class/ical.class.php
index 7ab09e8d891..badd5db5c98 100644
--- a/htdocs/comm/action/class/ical.class.php
+++ b/htdocs/comm/action/class/ical.class.php
@@ -402,7 +402,7 @@ class ICal
public function get_event_list()
{
// phpcs:enable
- return (empty($this->cal['VEVENT']) ? '' : $this->cal['VEVENT']);
+ return (empty($this->cal['VEVENT']) ? array() : $this->cal['VEVENT']);
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
@@ -414,7 +414,7 @@ class ICal
public function get_freebusy_list()
{
// phpcs:enable
- return (empty($this->cal['VFREEBUSY']) ? '' : $this->cal['VFREEBUSY']);
+ return (empty($this->cal['VFREEBUSY']) ? array() : $this->cal['VFREEBUSY']);
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
diff --git a/htdocs/comm/propal/class/api_proposals.class.php b/htdocs/comm/propal/class/api_proposals.class.php
index cf675e01b62..5e0e2c31e19 100644
--- a/htdocs/comm/propal/class/api_proposals.class.php
+++ b/htdocs/comm/propal/class/api_proposals.class.php
@@ -49,7 +49,7 @@ class Proposals extends DolibarrApi
*/
public function __construct()
{
- global $db, $conf;
+ global $db;
$this->db = $db;
$this->propal = new Propal($this->db);
}
@@ -59,9 +59,9 @@ class Proposals extends DolibarrApi
*
* Return an array with commercial proposal informations
*
- * @param int $id ID of commercial proposal
- * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id
- * @return array|mixed data without useless information
+ * @param int $id ID of commercial proposal
+ * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id
+ * @return Object Object with cleaned properties
*
* @throws RestException
*/
@@ -76,8 +76,8 @@ class Proposals extends DolibarrApi
* Return an array with proposal informations
*
* @param string $ref Ref of object
- * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id
- * @return array|mixed data without useless information
+ * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id
+ * @return Object Object with cleaned properties
*
* @url GET ref/{ref}
*
@@ -93,9 +93,9 @@ class Proposals extends DolibarrApi
*
* Return an array with proposal informations
*
- * @param string $ref_ext External reference of object
- * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id
- * @return array|mixed data without useless information
+ * @param string $ref_ext External reference of object
+ * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id
+ * @return Object Object with cleaned properties
*
* @url GET ref_ext/{ref_ext}
*
@@ -111,11 +111,11 @@ class Proposals extends DolibarrApi
*
* Return an array with proposal informations
*
- * @param int $id ID of order
- * @param string $ref Ref of object
- * @param string $ref_ext External reference of object
- * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id
- * @return array|mixed data without useless information
+ * @param int $id ID of order
+ * @param string $ref Ref of object
+ * @param string $ref_ext External reference of object
+ * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id
+ * @return Object Object with cleaned properties
*
* @throws RestException
*/
@@ -289,7 +289,7 @@ class Proposals extends DolibarrApi
*
* @url GET {id}/lines
*
- * @return int
+ * @return array
*/
public function getLines($id, $sqlfilters = '')
{
@@ -461,7 +461,7 @@ class Proposals extends DolibarrApi
}
if (empty($errors)) {
$this->db->commit();
- return count($request_data);
+ return $updateRes;
} else {
$this->db->rollback();
throw new RestException(400, implode(", ", $errors));
@@ -471,13 +471,12 @@ class Proposals extends DolibarrApi
/**
* Update a line of given commercial proposal
*
- * @param int $id Id of commercial proposal to update
- * @param int $lineid Id of line to update
- * @param array $request_data Commercial proposal line data
+ * @param int $id Id of commercial proposal to update
+ * @param int $lineid Id of line to update
+ * @param array $request_data Commercial proposal line data
+ * @return Object|false Object with cleaned properties
*
* @url PUT {id}/lines/{lineid}
- *
- * @return object
*/
public function putLine($id, $lineid, $request_data = null)
{
@@ -548,13 +547,12 @@ class Proposals extends DolibarrApi
* Delete a line of given commercial proposal
*
*
- * @param int $id Id of commercial proposal to update
- * @param int $lineid Id of line to delete
+ * @param int $id Id of commercial proposal to update
+ * @param int $lineid Id of line to delete
+ * @return Object|false Object with cleaned properties
*
* @url DELETE {id}/lines/{lineid}
*
- * @return int
- *
* @throws RestException 401
* @throws RestException 404
*/
@@ -573,9 +571,7 @@ class Proposals extends DolibarrApi
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
}
- // TODO Check the lineid $lineid is a line of ojbect
-
- $updateRes = $this->propal->deleteline($lineid);
+ $updateRes = $this->propal->deleteline($lineid, $id);
if ($updateRes > 0) {
return $this->get($id);
} else {
@@ -589,11 +585,10 @@ class Proposals extends DolibarrApi
* @param int $id Id of commercial proposal to update
* @param int $contactid Id of contact to add
* @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER)
+ * @return array
*
* @url POST {id}/contact/{contactid}/{type}
*
- * @return int
- *
* @throws RestException 401
* @throws RestException 404
*/
@@ -623,20 +618,24 @@ class Proposals extends DolibarrApi
throw new RestException(500, 'Error when added the contact');
}
- return $this->propal;
+ return array(
+ 'success' => array(
+ 'code' => 200,
+ 'message' => 'Contact linked to the proposal'
+ )
+ );
}
/**
* Delete a contact type of given commercial proposal
*
- * @param int $id Id of commercial proposal to update
- * @param int $contactid Row key of the contact in the array contact_ids.
- * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER).
+ * @param int $id Id of commercial proposal to update
+ * @param int $contactid Row key of the contact in the array contact_ids.
+ * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER).
+ * @return Object Object with cleaned properties
*
* @url DELETE {id}/contact/{contactid}/{type}
*
- * @return int
- *
* @throws RestException 401
* @throws RestException 404
* @throws RestException 500 System error
@@ -675,10 +674,9 @@ class Proposals extends DolibarrApi
/**
* Update commercial proposal general fields (won't touch lines of commercial proposal)
*
- * @param int $id Id of commercial proposal to update
- * @param array $request_data Datas
- *
- * @return int
+ * @param int $id Id of commercial proposal to update
+ * @param array $request_data Datas
+ * @return Object Object with cleaned properties
*/
public function put($id, $request_data = null)
{
@@ -722,7 +720,6 @@ class Proposals extends DolibarrApi
* Delete commercial proposal
*
* @param int $id Commercial proposal ID
- *
* @return array
*/
public function delete($id)
@@ -755,10 +752,9 @@ class Proposals extends DolibarrApi
* Set a proposal to draft
*
* @param int $id Order ID
+ * @return Object Object with cleaned properties
*
* @url POST {id}/settodraft
- *
- * @return array
*/
public function settodraft($id)
{
@@ -807,6 +803,7 @@ class Proposals extends DolibarrApi
*
* @param int $id Commercial proposal ID
* @param int $notrigger 1=Does not execute triggers, 0= execute triggers
+ * @return Object Object with cleaned properties
*
* @url POST {id}/validate
*
@@ -814,8 +811,6 @@ class Proposals extends DolibarrApi
* @throws RestException 401
* @throws RestException 404
* @throws RestException 500 System error
- *
- * @return array
*/
public function validate($id, $notrigger = 0)
{
@@ -860,10 +855,9 @@ class Proposals extends DolibarrApi
* @param int $status Must be 2 (accepted) or 3 (refused) {@min 2}{@max 3}
* @param string $note_private Add this mention at end of private note
* @param int $notrigger Disabled triggers
+ * @return Object Object with cleaned properties
*
* @url POST {id}/close
- *
- * @return array
*/
public function close($id, $status, $note_private = '', $notrigger = 0)
{
@@ -905,10 +899,9 @@ class Proposals extends DolibarrApi
* Set a commercial proposal billed. Could be also called setbilled
*
* @param int $id Commercial proposal ID
+ * @return Object Object with cleaned properties
*
* @url POST {id}/setinvoiced
- *
- * @return array
*/
public function setinvoiced($id)
{
@@ -949,6 +942,7 @@ class Proposals extends DolibarrApi
*
* @param array $data Array with data to verify
* @return array
+ *
* @throws RestException
*/
private function _validate($data)
diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php
index 57c066886ba..2b429d0e8d1 100644
--- a/htdocs/comm/propal/class/propal.class.php
+++ b/htdocs/comm/propal/class/propal.class.php
@@ -983,9 +983,10 @@ class Propal extends CommonObject
* Delete detail line
*
* @param int $lineid Id of line to delete
+ * @param int $id Id of object (for a check)
* @return int >0 if OK, <0 if KO
*/
- public function deleteline($lineid)
+ public function deleteline($lineid, $id = 0)
{
global $user;
@@ -994,9 +995,20 @@ class Propal extends CommonObject
$line = new PropaleLigne($this->db);
- // For triggers
+ $line->context = $this->context;
+
+ // Load data
$line->fetch($lineid);
+ if ($id > 0 && $line->fk_propal != $id) {
+ $this->error = 'ErrorLineIDDoesNotMatchWithObjectID';
+ return -1;
+ }
+
+ // Memorize previous line for triggers
+ $staticline = clone $line;
+ $line->oldline = $staticline;
+
if ($line->delete($user) > 0) {
$this->update_price(1);
diff --git a/htdocs/commande/class/api_orders.class.php b/htdocs/commande/class/api_orders.class.php
index 2c916abda9a..8e389d862d3 100644
--- a/htdocs/commande/class/api_orders.class.php
+++ b/htdocs/commande/class/api_orders.class.php
@@ -28,7 +28,6 @@ require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
*/
class Orders extends DolibarrApi
{
-
/**
* @var array $FIELDS Mandatory fields, checked when create and update object
*/
@@ -299,7 +298,7 @@ class Orders extends DolibarrApi
*
* @url GET {id}/lines
*
- * @return int
+ * @return array
*/
public function getLines($id)
{
@@ -393,13 +392,12 @@ class Orders extends DolibarrApi
/**
* Update a line to given order
*
- * @param int $id Id of order to update
- * @param int $lineid Id of line to update
- * @param array $request_data OrderLine data
+ * @param int $id Id of order to update
+ * @param int $lineid Id of line to update
+ * @param array $request_data OrderLine data
+ * @return Object|false Object with cleaned properties
*
* @url PUT {id}/lines/{lineid}
- *
- * @return array|bool
*/
public function putLine($id, $lineid, $request_data = null)
{
@@ -458,16 +456,14 @@ class Orders extends DolibarrApi
}
/**
- * Delete a line to given order
+ * Delete a line of a given order
*
- *
- * @param int $id Id of order to update
- * @param int $lineid Id of line to delete
+ * @param int $id Id of order to update
+ * @param int $lineid Id of line to delete
+ * @return Object Object with cleaned properties
*
* @url DELETE {id}/lines/{lineid}
*
- * @return int
- *
* @throws RestException 401
* @throws RestException 404
*/
@@ -486,9 +482,7 @@ class Orders extends DolibarrApi
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
}
- // TODO Check the lineid $lineid is a line of ojbect
-
- $updateRes = $this->commande->deleteline(DolibarrApiAccess::$user, $lineid);
+ $updateRes = $this->commande->deleteline(DolibarrApiAccess::$user, $lineid, $id);
if ($updateRes > 0) {
return $this->get($id);
} else {
@@ -501,13 +495,12 @@ class Orders extends DolibarrApi
*
* Return an array with contact informations
*
- * @param int $id ID of order
- * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER)
+ * @param int $id ID of order
+ * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER)
+ * @return Object Object with cleaned properties
*
* @url GET {id}/contacts
*
- * @return array data without useless information
- *
* @throws RestException
*/
public function getContacts($id, $type = '')
@@ -536,11 +529,10 @@ class Orders extends DolibarrApi
* @param int $id Id of order to update
* @param int $contactid Id of contact to add
* @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER)
+ * @return array
*
* @url POST {id}/contact/{contactid}/{type}
*
- * @return int
- *
* @throws RestException 401
* @throws RestException 404
*/
@@ -586,7 +578,7 @@ class Orders extends DolibarrApi
*
* @url DELETE {id}/contact/{contactid}/{type}
*
- * @return int
+ * @return array
*
* @throws RestException 401
* @throws RestException 404
@@ -630,10 +622,9 @@ class Orders extends DolibarrApi
/**
* Update order general fields (won't touch lines of order)
*
- * @param int $id Id of order to update
- * @param array $request_data Datas
- *
- * @return int
+ * @param int $id Id of order to update
+ * @param array $request_data Datas
+ * @return Object Object with cleaned properties
*/
public function put($id, $request_data = null)
{
@@ -777,7 +768,6 @@ class Orders extends DolibarrApi
*/
public function reopen($id)
{
-
if (!DolibarrApiAccess::$user->rights->commande->creer) {
throw new RestException(401);
}
@@ -802,12 +792,11 @@ class Orders extends DolibarrApi
/**
* Classify the order as invoiced. Could be also called setbilled
*
- * @param int $id Id of the order
+ * @param int $id Id of the order
+ * @return Object Object with cleaned properties
*
* @url POST {id}/setinvoiced
*
- * @return int
- *
* @throws RestException 400
* @throws RestException 401
* @throws RestException 404
@@ -851,10 +840,9 @@ class Orders extends DolibarrApi
*
* @param int $id Order ID
* @param int $notrigger Disabled triggers
+ * @return Object Object with cleaned properties
*
* @url POST {id}/close
- *
- * @return int
*/
public function close($id, $notrigger = 0)
{
@@ -897,10 +885,9 @@ class Orders extends DolibarrApi
*
* @param int $id Order ID
* @param int $idwarehouse Warehouse ID to use for stock change (Used only if option STOCK_CALCULATE_ON_VALIDATE_ORDER is on)
+ * @return Object Object with cleaned properties
*
* @url POST {id}/settodraft
- *
- * @return array
*/
public function settodraft($id, $idwarehouse = -1)
{
@@ -942,12 +929,11 @@ class Orders extends DolibarrApi
/**
* Create an order using an existing proposal.
*
- *
* @param int $proposalid Id of the proposal
+ * @return Object Object with cleaned properties
*
* @url POST /createfromproposal/{proposalid}
*
- * @return int
* @throws RestException 400
* @throws RestException 401
* @throws RestException 404
diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php
index 2ba281b9cb5..25c234cc66d 100644
--- a/htdocs/commande/class/commande.class.php
+++ b/htdocs/commande/class/commande.class.php
@@ -2379,58 +2379,45 @@ class Commande extends CommonOrder
*
* @param User $user User object
* @param int $lineid Id of line to delete
+ * @param int $id Id of object (for a check)
* @return int >0 if OK, 0 if nothing to do, <0 if KO
*/
- public function deleteline($user = null, $lineid = 0)
+ public function deleteline($user = null, $lineid = 0, $id = 0)
{
if ($this->statut == self::STATUS_DRAFT) {
$this->db->begin();
- $sql = "SELECT fk_product, qty";
- $sql .= " FROM ".MAIN_DB_PREFIX."commandedet";
- $sql .= " WHERE rowid = ".((int) $lineid);
+ // Delete line
+ $line = new OrderLine($this->db);
- $result = $this->db->query($sql);
- if ($result) {
- $obj = $this->db->fetch_object($result);
+ $line->context = $this->context;
- if ($obj) {
- $product = new Product($this->db);
- $product->id = $obj->fk_product;
+ // Load data
+ $line->fetch($lineid);
- // Delete line
- $line = new OrderLine($this->db);
+ if ($id > 0 && $line->fk_commande != $id) {
+ $this->error = 'ErrorLineIDDoesNotMatchWithObjectID';
+ return -1;
+ }
- // For triggers
- $line->fetch($lineid);
+ // Memorize previous line for triggers
+ $staticline = clone $line;
+ $line->oldline = $staticline;
- // Memorize previous line for triggers
- $staticline = clone $line;
- $line->oldline = $staticline;
+ if ($line->delete($user) > 0) {
+ $result = $this->update_price(1);
- if ($line->delete($user) > 0) {
- $result = $this->update_price(1);
-
- if ($result > 0) {
- $this->db->commit();
- return 1;
- } else {
- $this->db->rollback();
- $this->error = $this->db->lasterror();
- return -1;
- }
- } else {
- $this->db->rollback();
- $this->error = $line->error;
- return -1;
- }
+ if ($result > 0) {
+ $this->db->commit();
+ return 1;
} else {
$this->db->rollback();
- return 0;
+ $this->error = $this->db->lasterror();
+ return -1;
}
} else {
$this->db->rollback();
- $this->error = $this->db->lasterror();
+ $this->error = $line->error;
return -1;
}
} else {
diff --git a/htdocs/compta/facture/class/api_invoices.class.php b/htdocs/compta/facture/class/api_invoices.class.php
index 4c1392e28eb..bae53bce6a8 100644
--- a/htdocs/compta/facture/class/api_invoices.class.php
+++ b/htdocs/compta/facture/class/api_invoices.class.php
@@ -65,9 +65,9 @@ class Invoices extends DolibarrApi
*
* Return an array with invoice informations
*
- * @param int $id ID of invoice
- * @param int $contact_list 0:Return array contains all properties, 1:Return array contains just id, -1: Do not return contacts/adddesses
- * @return array|mixed data without useless information
+ * @param int $id ID of invoice
+ * @param int $contact_list 0:Return array contains all properties, 1:Return array contains just id, -1: Do not return contacts/adddesses
+ * @return Object Object with cleaned properties
*
* @throws RestException
*/
@@ -81,9 +81,9 @@ class Invoices extends DolibarrApi
*
* Return an array with invoice informations
*
- * @param string $ref Ref of object
- * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses
- * @return array|mixed data without useless information
+ * @param string $ref Ref of object
+ * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses
+ * @return Object Object with cleaned properties
*
* @url GET ref/{ref}
*
@@ -99,9 +99,9 @@ class Invoices extends DolibarrApi
*
* Return an array with invoice informations
*
- * @param string $ref_ext External reference of object
- * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses
- * @return array|mixed data without useless information
+ * @param string $ref_ext External reference of object
+ * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses
+ * @return Object Object with cleaned properties
*
* @url GET ref_ext/{ref_ext}
*
@@ -117,11 +117,11 @@ class Invoices extends DolibarrApi
*
* Return an array with invoice informations
*
- * @param int $id ID of order
- * @param string $ref Ref of object
- * @param string $ref_ext External reference of object
- * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses
- * @return array|mixed data without useless information
+ * @param int $id ID of order
+ * @param string $ref Ref of object
+ * @param string $ref_ext External reference of object
+ * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses
+ * @return Object Object with cleaned properties
*
* @throws RestException
*/
@@ -325,12 +325,11 @@ class Invoices extends DolibarrApi
/**
* Create an invoice using an existing order.
*
- *
* @param int $orderid Id of the order
+ * @return Object Object with cleaned properties
*
* @url POST /createfromorder/{orderid}
*
- * @return int
* @throws RestException 400
* @throws RestException 401
* @throws RestException 404
@@ -338,7 +337,6 @@ class Invoices extends DolibarrApi
*/
public function createInvoiceFromOrder($orderid)
{
-
require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
if (!DolibarrApiAccess::$user->rights->commande->lire) {
@@ -368,11 +366,10 @@ class Invoices extends DolibarrApi
/**
* Get lines of an invoice
*
- * @param int $id Id of invoice
+ * @param int $id Id of invoice
+ * @return array Array of lines
*
* @url GET {id}/lines
- *
- * @return int
*/
public function getLines($id)
{
@@ -399,14 +396,13 @@ class Invoices extends DolibarrApi
/**
* Update a line to a given invoice
*
- * @param int $id Id of invoice to update
- * @param int $lineid Id of line to update
- * @param array $request_data InvoiceLine data
+ * @param int $id Id of invoice to update
+ * @param int $lineid Id of line to update
+ * @param array $request_data InvoiceLine data
+ * @return Object Object with cleaned properties
*
* @url PUT {id}/lines/{lineid}
*
- * @return array
- *
* @throws RestException 304
* @throws RestException 401
* @throws RestException 404 Invoice not found
@@ -472,14 +468,13 @@ class Invoices extends DolibarrApi
/**
* Add a contact type of given invoice
*
- * @param int $id Id of invoice to update
- * @param int $contactid Id of contact to add
- * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER)
+ * @param int $id Id of invoice to update
+ * @param int $contactid Id of contact to add
+ * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER)
+ * @return array
*
* @url POST {id}/contact/{contactid}/{type}
*
- * @return int
- *
* @throws RestException 401
* @throws RestException 404
*/
@@ -509,20 +504,24 @@ class Invoices extends DolibarrApi
throw new RestException(500, 'Error when added the contact');
}
- return $this->_cleanObjectDatas($this->invoice);
+ return array(
+ 'success' => array(
+ 'code' => 200,
+ 'message' => 'Contact linked to the invoice'
+ )
+ );
}
/**
* Delete a contact type of given invoice
*
- * @param int $id Id of invoice to update
- * @param int $contactid Row key of the contact in the array contact_ids.
- * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER).
+ * @param int $id Id of invoice to update
+ * @param int $contactid Row key of the contact in the array contact_ids.
+ * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER).
+ * @return Object Object with cleaned properties
*
* @url DELETE {id}/contact/{contactid}/{type}
*
- * @return array
- *
* @throws RestException 401
* @throws RestException 404
* @throws RestException 500 System error
@@ -561,13 +560,12 @@ class Invoices extends DolibarrApi
/**
* Deletes a line of a given invoice
*
- * @param int $id Id of invoice
- * @param int $lineid Id of the line to delete
+ * @param int $id Id of invoice
+ * @param int $lineid Id of the line to delete
+ * @return Object Object with cleaned properties
*
* @url DELETE {id}/lines/{lineid}
*
- * @return array
- *
* @throws RestException 400
* @throws RestException 401
* @throws RestException 404
@@ -575,7 +573,6 @@ class Invoices extends DolibarrApi
*/
public function deleteLine($id, $lineid)
{
-
if (!DolibarrApiAccess::$user->rights->facture->creer) {
throw new RestException(401);
}
@@ -592,9 +589,7 @@ class Invoices extends DolibarrApi
throw new RestException(404, 'Invoice not found');
}
- // TODO Check the lineid $lineid is a line of ojbect
-
- $updateRes = $this->invoice->deleteline($lineid);
+ $updateRes = $this->invoice->deleteline($lineid, $id);
if ($updateRes > 0) {
return $this->get($id);
} else {
@@ -605,9 +600,9 @@ class Invoices extends DolibarrApi
/**
* Update invoice
*
- * @param int $id Id of invoice to update
- * @param array $request_data Datas
- * @return int
+ * @param int $id Id of invoice to update
+ * @param array $request_data Datas
+ * @return Object|false Object with cleaned properties
*/
public function put($id, $request_data = null)
{
@@ -648,8 +643,8 @@ class Invoices extends DolibarrApi
/**
* Delete invoice
*
- * @param int $id Invoice ID
- * @return array
+ * @param int $id Invoice ID
+ * @return array
*/
public function delete($id)
{
@@ -829,11 +824,10 @@ class Invoices extends DolibarrApi
*
* @param int $id Order ID
* @param int $idwarehouse Warehouse ID
+ * @return Object Object with cleaned properties
*
* @url POST {id}/settodraft
*
- * @return array
- *
* @throws RestException 304
* @throws RestException 401
* @throws RestException 404
@@ -887,10 +881,9 @@ class Invoices extends DolibarrApi
* @param int $id Invoice ID
* @param int $idwarehouse Warehouse ID
* @param int $notrigger 1=Does not execute triggers, 0= execute triggers
+ * @return Object|false Object with cleaned properties
*
* @url POST {id}/validate
- *
- * @return array
*/
public function validate($id, $idwarehouse = 0, $notrigger = 0)
{
@@ -932,11 +925,10 @@ class Invoices extends DolibarrApi
* @param int $id Order ID
* @param string $close_code Code filled if we classify to 'Paid completely' when payment is not complete (for escompte for example)
* @param string $close_note Comment defined if we classify to 'Paid' when payment is not complete (for escompte for example)
+ * @return Object Object with cleaned properties
*
* @url POST {id}/settopaid
*
- * @return array An invoice object
- *
* @throws RestException 304
* @throws RestException 401
* @throws RestException 404
@@ -981,12 +973,11 @@ class Invoices extends DolibarrApi
/**
* Sets an invoice as unpaid
*
- * @param int $id Order ID
+ * @param int $id Order ID
+ * @return Object Object with cleaned properties
*
* @url POST {id}/settounpaid
*
- * @return array An invoice object
- *
* @throws RestException 304
* @throws RestException 401
* @throws RestException 404
@@ -1031,10 +1022,9 @@ class Invoices extends DolibarrApi
* Get discount from invoice
*
* @param int $id Id of invoice
+ * @return Object Object with cleaned properties
*
* @url GET {id}/discount
- *
- * @return mixed
*/
public function getDiscount($id)
{
@@ -1069,10 +1059,10 @@ class Invoices extends DolibarrApi
/**
* Create a discount (credit available) for a credit note or a deposit.
*
- * @param int $id Invoice ID
- * @url POST {id}/markAsCreditAvailable
+ * @param int $id Invoice ID
+ * @return Object Object with cleaned properties
*
- * @return array An invoice object
+ * @url POST {id}/markAsCreditAvailable
*
* @throws RestException 304
* @throws RestException 401
@@ -1241,11 +1231,10 @@ class Invoices extends DolibarrApi
*
* @param int $id Id of invoice
* @param int $discountid Id of discount
+ * @return int
*
* @url POST {id}/usediscount/{discountid}
*
- * @return int
- *
* @throws RestException 400
* @throws RestException 401
* @throws RestException 404
@@ -1253,7 +1242,6 @@ class Invoices extends DolibarrApi
*/
public function useDiscount($id, $discountid)
{
-
if (!DolibarrApiAccess::$user->rights->facture->creer) {
throw new RestException(401);
}
@@ -1288,11 +1276,10 @@ class Invoices extends DolibarrApi
*
* @param int $id Id of invoice
* @param int $discountid Id of a discount coming from a credit note
+ * @return int
*
* @url POST {id}/usecreditnote/{discountid}
*
- * @return int
- *
* @throws RestException 400
* @throws RestException 401
* @throws RestException 404
@@ -1300,7 +1287,6 @@ class Invoices extends DolibarrApi
*/
public function useCreditNote($id, $discountid)
{
-
require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php';
if (!DolibarrApiAccess::$user->rights->facture->creer) {
@@ -1333,12 +1319,11 @@ class Invoices extends DolibarrApi
/**
* Get list of payments of a given invoice
*
- * @param int $id Id of invoice
+ * @param int $id Id of invoice
+ * @return array
*
* @url GET {id}/payments
*
- * @return array
- *
* @throws RestException 400
* @throws RestException 401
* @throws RestException 404
@@ -1395,8 +1380,6 @@ class Invoices extends DolibarrApi
*/
public function addPayment($id, $datepaye, $paymentid, $closepaidinvoices, $accountid, $num_payment = '', $comment = '', $chqemetteur = '', $chqbank = '')
{
- global $conf;
-
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
if (!DolibarrApiAccess::$user->rights->facture->creer) {
@@ -1509,6 +1492,7 @@ class Invoices extends DolibarrApi
* @url POST /paymentsdistributed
*
* @return int Payment ID
+ *
* @throws RestException 400
* @throws RestException 401
* @throws RestException 403
@@ -1516,8 +1500,6 @@ class Invoices extends DolibarrApi
*/
public function addPaymentDistributed($arrayofamounts, $datepaye, $paymentid, $closepaidinvoices, $accountid, $num_payment = '', $comment = '', $chqemetteur = '', $chqbank = '', $ref_ext = '', $accepthigherpayment = false)
{
- global $conf;
-
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
if (!DolibarrApiAccess::$user->rights->facture->creer) {
@@ -1645,6 +1627,7 @@ class Invoices extends DolibarrApi
* @url PUT payments/{id}
*
* @return array
+ *
* @throws RestException 400 Bad parameters
* @throws RestException 401 Not allowed
* @throws RestException 404 Not found
@@ -1708,8 +1691,8 @@ class Invoices extends DolibarrApi
/**
* Validate fields before create or update object
*
- * @param array|null $data Datas to validate
- * @return array
+ * @param array|null $data Datas to validate
+ * @return array
*
* @throws RestException
*/
@@ -1733,7 +1716,7 @@ class Invoices extends DolibarrApi
*
* @param int $id ID of template invoice
* @param int $contact_list 0:Return array contains all properties, 1:Return array contains just id, -1: Do not return contacts/adddesses
- * @return array|mixed data without useless information
+ * @return Object Object with cleaned properties
*
* @url GET templates/{id}
*
@@ -1749,11 +1732,11 @@ class Invoices extends DolibarrApi
*
* Return an array with invoice informations
*
- * @param int $id ID of order
- * @param string $ref Ref of object
- * @param string $ref_ext External reference of object
- * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses
- * @return array|mixed data without useless information
+ * @param int $id ID of order
+ * @param string $ref Ref of object
+ * @param string $ref_ext External reference of object
+ * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses
+ * @return Object Object with cleaned properties
*
* @throws RestException
*/
diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php
index c8612eafd9c..9af2a06f7d4 100644
--- a/htdocs/compta/facture/class/facture.class.php
+++ b/htdocs/compta/facture/class/facture.class.php
@@ -4148,9 +4148,10 @@ class Facture extends CommonInvoice
* Delete line in database
*
* @param int $rowid Id of line to delete
+ * @param int $id Id of object (for a check)
* @return int <0 if KO, >0 if OK
*/
- public function deleteline($rowid)
+ public function deleteline($rowid, $id = 0)
{
global $user;
@@ -4161,6 +4162,22 @@ class Facture extends CommonInvoice
return -1;
}
+ $line = new FactureLigne($this->db);
+
+ $line->context = $this->context;
+
+ // Load line
+ $result = $line->fetch($rowid);
+ if (!($result > 0)) {
+ dol_print_error($this->db, $line->error, $line->errors);
+ return -1;
+ }
+
+ if ($id > 0 && $line->fk_facture != $id) {
+ $this->error = 'ErrorLineIDDoesNotMatchWithObjectID';
+ return -1;
+ }
+
$this->db->begin();
// Free discount linked to invoice line
@@ -4176,15 +4193,9 @@ class Facture extends CommonInvoice
return -1;
}
- $line = new FactureLigne($this->db);
-
- $line->context = $this->context;
-
- // For triggers
- $result = $line->fetch($rowid);
- if (!($result > 0)) {
- dol_print_error($this->db, $line->error, $line->errors);
- }
+ // Memorize previous line for triggers
+ $staticline = clone $line;
+ $line->oldline = $staticline;
if ($line->delete($user) > 0) {
$result = $this->update_price(1);
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 08a4a636785..c9332a839e7 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -1347,7 +1347,7 @@ class Form
* @param bool $multiple add [] in the name of element and add 'multiple' attribut
* @param array $excludeids Exclude IDs from the select combo
* @param int $showcode Show code in list
- * @return string HTML string with
+ * @return array|string HTML string with
*/
public function select_thirdparty_list($selected = '', $htmlname = 'socid', $filter = '', $showempty = '', $showtype = 0, $forcecombo = 0, $events = array(), $filterkey = '', $outputmode = 0, $limit = 0, $morecss = 'minwidth100', $moreparam = '', $multiple = false, $excludeids = array(), $showcode = 0)
{
@@ -1936,7 +1936,7 @@ class Form
* @param int $outputmode 0=HTML select string, 1=Array
* @param bool $multiple add [] in the name of element and add 'multiple' attribut
* @param int $forcecombo Force the component to be a simple combo box without ajax
- * @return string HTML select string
+ * @return array|string HTML select string
* @see select_dolgroups()
*/
public function select_dolusers($selected = '', $htmlname = 'userid', $show_empty = 0, $exclude = null, $disabled = 0, $include = '', $enableonly = '', $force_entity = '0', $maxlength = 0, $showstatus = 0, $morefilter = '', $show_every = 0, $enableonlytext = '', $morecss = '', $notdisabled = 0, $outputmode = 0, $multiple = false, $forcecombo = 0)
@@ -3791,7 +3791,7 @@ class Form
* @param int $socid Id of company
* @param string $htmlname Name of HTML field
* @param int $showempty Add an empty field
- * @return integer|null
+ * @return integer
*/
public function select_address($selected, $socid, $htmlname = 'address_id', $showempty = 0)
{
@@ -3827,7 +3827,7 @@ class Form
return $num;
} else {
dol_print_error($this->db);
- return;
+ return -1;
}
}
@@ -7139,7 +7139,7 @@ class Form
* @param string $showempty '' to not show empty line. Translation key to show an empty line. '1' show empty line with no text.
* @param int $forcecombo Force to use combo box
* @param string $morecss Add more css on select
- * @return array Array of keys for json
+ * @return array|string Array of keys for json or HTML component
*/
public function selectTicketsList($selected = '', $htmlname = 'ticketid', $filtertype = '', $limit = 20, $filterkey = '', $status = 1, $outputmode = 0, $showempty = '1', $forcecombo = 0, $morecss = '')
{
@@ -7345,7 +7345,7 @@ class Form
* @param string $showempty '' to not show empty line. Translation key to show an empty line. '1' show empty line with no text.
* @param int $forcecombo Force to use combo box
* @param string $morecss Add more css on select
- * @return array Array of keys for json
+ * @return array|string Array of keys for json or HTML component
*/
public function selectProjectsList($selected = '', $htmlname = 'projectid', $filtertype = '', $limit = 20, $filterkey = '', $status = 1, $outputmode = 0, $showempty = '1', $forcecombo = 0, $morecss = '')
{
@@ -7560,7 +7560,7 @@ class Form
* @param string $showempty '' to not show empty line. Translation key to show an empty line. '1' show empty line with no text.
* @param int $forcecombo Force to use combo box
* @param string $morecss Add more css on select
- * @return array Array of keys for json
+ * @return array|string Array of keys for json or HTML string component
*/
public function selectMembersList($selected = '', $htmlname = 'adherentid', $filtertype = '', $limit = 20, $filterkey = '', $status = 1, $outputmode = 0, $showempty = '1', $forcecombo = 0, $morecss = '')
{
diff --git a/htdocs/core/class/ldap.class.php b/htdocs/core/class/ldap.class.php
index 3dc45c753bc..9ad06ba137c 100644
--- a/htdocs/core/class/ldap.class.php
+++ b/htdocs/core/class/ldap.class.php
@@ -982,7 +982,7 @@ class Ldap
*
* @param string $filterrecord Record
* @param string $attribute Attributes
- * @return void
+ * @return array|boolean
*/
public function getAttributeValues($filterrecord, $attribute)
{
@@ -1025,7 +1025,7 @@ class Ldap
* @param array $attributeArray Array of fields required. Note this array must also contains field $useridentifier (Ex: sn,userPassword)
* @param int $activefilter '1' or 'user'=use field this->filter as filter instead of parameter $search, 'group'=use field this->filtergroup as filter, 'member'=use field this->filtermember as filter
* @param array $attributeAsArray Array of fields wanted as an array not a string
- * @return array Array of [id_record][ldap_field]=value
+ * @return array|int Array of [id_record][ldap_field]=value
*/
public function getRecords($search, $userDn, $useridentifier, $attributeArray, $activefilter = 0, $attributeAsArray = array())
{
@@ -1342,7 +1342,7 @@ class Ldap
* UserAccountControl Flgs to more human understandable form...
*
* @param string $uacf UACF
- * @return void
+ * @return array
*/
public function parseUACF($uacf)
{
@@ -1382,7 +1382,7 @@ class Ldap
}
//Return human friendly flags
- return($retval);
+ return $retval;
}
/**
@@ -1414,7 +1414,7 @@ class Ldap
$retval = "UNKNOWN_TYPE_".$samtype;
}
- return($retval);
+ return $retval;
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
diff --git a/htdocs/core/class/rssparser.class.php b/htdocs/core/class/rssparser.class.php
index 66e9241d9f5..da3257b09c9 100644
--- a/htdocs/core/class/rssparser.class.php
+++ b/htdocs/core/class/rssparser.class.php
@@ -175,7 +175,7 @@ class RssParser
/**
* getItems
*
- * @return string
+ * @return array
*/
public function getItems()
{
@@ -801,8 +801,8 @@ class RssParser
/**
* Function to convert an XML object into an array
*
- * @param SimpleXMLElement $xml Xml
- * @return void
+ * @param SimpleXMLElement $xml Xml
+ * @return array|string
*/
function xml2php($xml)
{
diff --git a/htdocs/core/lib/ftp.lib.php b/htdocs/core/lib/ftp.lib.php
index 807bae63b0a..e49972a4a97 100644
--- a/htdocs/core/lib/ftp.lib.php
+++ b/htdocs/core/lib/ftp.lib.php
@@ -35,11 +35,10 @@
* @param string $ftp_password FTP password
* @param string $section Directory
* @param integer $ftp_passive Use a passive mode
- * @return int <0 if OK, >0 if KO
+ * @return array Result of connect
*/
function dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $section, $ftp_passive = 0)
{
-
global $langs, $conf;
$ok = 1;
@@ -127,7 +126,6 @@ function dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $sect
*/
function ftp_isdir($connect_id, $dir)
{
-
if (@ftp_chdir($connect_id, $dir)) {
ftp_cdup($connect_id);
return 1;
@@ -140,11 +138,10 @@ function ftp_isdir($connect_id, $dir)
* Tell if an entry is a FTP directory
*
* @param resource $connect_id Connection handler
- * @return result
+ * @return boolean Result of closing
*/
function dol_ftp_close($connect_id)
{
-
global $conf;
// Close FTP connection
@@ -196,7 +193,7 @@ function dol_ftp_delete($connect_id, $file, $newsection)
* @param string $localfile The local file path
* @param string $file The remote file path
* @param string $newsection $newsection
- * @return result
+ * @return bool|resource
*/
function dol_ftp_get($connect_id, $localfile, $file, $newsection)
{
@@ -226,11 +223,10 @@ function dol_ftp_get($connect_id, $localfile, $file, $newsection)
* @param string $file File name
* @param string $localfile The path to the local file
* @param string $newsection $newsection
- * @return result
+ * @return boolean
*/
function dol_ftp_put($connect_id, $file, $localfile, $newsection)
{
-
global $conf;
if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) {
@@ -255,11 +251,10 @@ function dol_ftp_put($connect_id, $file, $localfile, $newsection)
* @param resource $connect_id Connection handler
* @param string $file File
* @param string $newsection $newsection
- * @return result
+ * @return boolean
*/
function dol_ftp_rmdir($connect_id, $file, $newsection)
{
-
global $conf;
if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) {
@@ -285,11 +280,10 @@ function dol_ftp_rmdir($connect_id, $file, $newsection)
* @param resource $connect_id Connection handler
* @param string $newdir Dir create
* @param string $newsection $newsection
- * @return result
+ * @return boolean|string
*/
function dol_ftp_mkdir($connect_id, $newdir, $newsection)
{
-
global $conf;
if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) {
diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php
index 80fcefc7b68..1305be68bc2 100644
--- a/htdocs/expensereport/class/expensereport.class.php
+++ b/htdocs/expensereport/class/expensereport.class.php
@@ -1734,9 +1734,9 @@ class ExpenseReport extends CommonObject
/**
* Update total of an expense report when you add a line.
*
- * @param string $ligne_total_ht Amount without taxes
+ * @param string $ligne_total_ht Amount without taxes
* @param string $ligne_total_tva Amount of all taxes
- * @return void
+ * @return int
*/
public function update_totaux_add($ligne_total_ht, $ligne_total_tva)
{
@@ -1885,7 +1885,7 @@ class ExpenseReport extends CommonObject
*
* @param int $type Type of line
* @param string $seller Seller, but actually he is unknown
- * @return true or false
+ * @return boolean true or false
*/
public function checkRules($type = 0, $seller = '')
{
diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php
index 89e190f92c1..c9f1eb76b41 100644
--- a/htdocs/install/upgrade2.php
+++ b/htdocs/install/upgrade2.php
@@ -4086,11 +4086,11 @@ function migrate_rename_directories($db, $langs, $conf, $oldname, $newname)
* @param DoliDB $db Database handler
* @param Translate $langs Object langs
* @param Conf $conf Object conf
- * @return void
+ * @return boolean
*/
function migrate_delete_old_files($db, $langs, $conf)
{
- $result = true;
+ $ret = true;
dolibarr_install_syslog("upgrade2::migrate_delete_old_files");
@@ -4155,7 +4155,6 @@ function migrate_delete_old_files($db, $langs, $conf)
foreach ($filetodeletearray as $filetodelete) {
//print ''DOL_DOCUMENT_ROOT.$filetodelete."
\n";
- $result = 1;
if (file_exists(DOL_DOCUMENT_ROOT.$filetodelete)) {
$result = dol_delete_file(DOL_DOCUMENT_ROOT.$filetodelete, 0, 0, 0, null, true, false);
if (!$result) {
@@ -4167,7 +4166,8 @@ function migrate_delete_old_files($db, $langs, $conf)
}
}
}
- return $result;
+
+ return $ret;
}
/**
@@ -4176,11 +4176,11 @@ function migrate_delete_old_files($db, $langs, $conf)
* @param DoliDB $db Database handler
* @param Translate $langs Object langs
* @param Conf $conf Object conf
- * @return void
+ * @return boolean
*/
function migrate_delete_old_dir($db, $langs, $conf)
{
- $result = true;
+ $ret = true;
dolibarr_install_syslog("upgrade2::migrate_delete_old_dir");
@@ -4206,7 +4206,8 @@ function migrate_delete_old_dir($db, $langs, $conf)
print ' '.$langs->trans("RemoveItManuallyAndPressF5ToContinue").'';
}
}
- return $result;
+
+ return $ret;
}
diff --git a/htdocs/mrp/class/mo.class.php b/htdocs/mrp/class/mo.class.php
index 30d6a3660a3..c977a14d9ca 100644
--- a/htdocs/mrp/class/mo.class.php
+++ b/htdocs/mrp/class/mo.class.php
@@ -1487,7 +1487,7 @@ class Mo extends CommonObject
/**
* Function used to return childs of Mo
*
- * @return array if OK, -1 if KO
+ * @return array|int array if OK, -1 if KO
*/
public function getMoChilds()
{
@@ -1525,11 +1525,10 @@ class Mo extends CommonObject
/**
* Function used to return childs of Mo
*
- * @return object Mo if OK, -1 if KO, 0 if not exist
+ * @return Object|int MO object if OK, -1 if KO, 0 if not exist
*/
public function getMoParent()
{
-
$MoParent = new Mo($this->db);
$error = 0;
diff --git a/htdocs/product/class/api_products.class.php b/htdocs/product/class/api_products.class.php
index 7a10293d7e4..a81b342740b 100644
--- a/htdocs/product/class/api_products.class.php
+++ b/htdocs/product/class/api_products.class.php
@@ -1079,8 +1079,8 @@ class Products extends DolibarrApi
/**
* Get attribute by ID.
*
- * @param int $id ID of Attribute
- * @return array
+ * @param int $id ID of Attribute
+ * @return Object Object with cleaned properties
*
* @throws RestException 401
* @throws RestException 404
@@ -1116,7 +1116,7 @@ class Products extends DolibarrApi
$obj = $this->db->fetch_object($resql);
$prodattr->is_used_by_products = (int) $obj->nb;
- return $prodattr;
+ return $this->_cleanObjectDatas($prodattr);
}
/**
@@ -1213,6 +1213,7 @@ class Products extends DolibarrApi
$resql = $this->db->query($sql);
$obj = $this->db->fetch_object($resql);
+
$attr["is_used_by_products"] = (int) $obj->nb;
return $attr;
@@ -1246,15 +1247,16 @@ class Products extends DolibarrApi
if ($resid <= 0) {
throw new RestException(500, "Error creating new attribute");
}
+
return $resid;
}
/**
* Update attributes by id.
*
- * @param int $id ID of Attribute
- * @param array $request_data Datas
- * @return array
+ * @param int $id ID of Attribute
+ * @param array $request_data Datas
+ * @return Object Object with cleaned properties
*
* @throws RestException
* @throws RestException 401
@@ -1291,7 +1293,7 @@ class Products extends DolibarrApi
} elseif ($result < 0) {
throw new RestException(500, "Error fetching attribute");
} else {
- return $prodattr;
+ return $this->_cleanObjectDatas($prodattr);
}
}
throw new RestException(500, "Error updating attribute");
@@ -1560,9 +1562,9 @@ class Products extends DolibarrApi
/**
* Update attribute value.
*
- * @param int $id ID of Attribute
- * @param array $request_data Datas
- * @return array
+ * @param int $id ID of Attribute
+ * @param array $request_data Datas
+ * @return Object Object with cleaned properties
*
* @throws RestException 401
* @throws RestException 500 System error
@@ -1598,7 +1600,7 @@ class Products extends DolibarrApi
} elseif ($result < 0) {
throw new RestException(500, "Error fetching attribute");
} else {
- return $objectval;
+ return $this->_cleanObjectDatas($objectval);
}
}
throw new RestException(500, "Error updating attribute");
@@ -1887,7 +1889,7 @@ class Products extends DolibarrApi
*
* @param int $id ID of Product
* @param int $selected_warehouse_id ID of warehouse
- * @return int
+ * @return array
*
* @throws RestException 500 System error
* @throws RestException 401
@@ -1897,7 +1899,6 @@ class Products extends DolibarrApi
*/
public function getStock($id, $selected_warehouse_id = null)
{
-
if (!DolibarrApiAccess::$user->rights->produit->lire || !DolibarrApiAccess::$user->rights->stock->lire) {
throw new RestException(401);
}
@@ -1923,7 +1924,7 @@ class Products extends DolibarrApi
throw new RestException(404, 'No stock found');
}
- return ['stock_warehouses'=>$stockData];
+ return array('stock_warehouses'=>$stockData);
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
diff --git a/htdocs/projet/class/task.class.php b/htdocs/projet/class/task.class.php
index 458921adfc6..d836c1ef319 100644
--- a/htdocs/projet/class/task.class.php
+++ b/htdocs/projet/class/task.class.php
@@ -812,7 +812,7 @@ class Task extends CommonObjectLine
* @param array $search_array_options Array of search
* @param int $loadextras Fetch all Extrafields on each task
* @param int $loadRoleMode 1= will test Roles on task; 0 used in delete project action
- * @return array Array of tasks
+ * @return array|string Array of tasks
*/
public function getTasksArray($usert = null, $userp = null, $projectid = 0, $socid = 0, $mode = 0, $filteronproj = '', $filteronprojstatus = '-1', $morewherefilter = '', $filteronprojuser = 0, $filterontaskuser = 0, $extrafields = array(), $includebilltime = 0, $search_array_options = array(), $loadextras = 0, $loadRoleMode = 1)
{
@@ -1063,7 +1063,7 @@ class Task extends CommonObjectLine
* @param int $projectid Project id list separated with , to filter on project
* @param int $taskid Task id to filter on a task
* @param integer $filteronprojstatus Filter on project status if userp is set. Not used if userp not defined.
- * @return array Array (projectid => 'list of roles for project' or taskid => 'list of roles for task')
+ * @return array|int Array (projectid => 'list of roles for project' or taskid => 'list of roles for task')
*/
public function getUserRolesForProjectsOrTasks($userp, $usert, $projectid = '', $taskid = 0, $filteronprojstatus = -1)
{
@@ -1398,12 +1398,10 @@ class Task extends CommonObjectLine
*
* @param User|int $userobj Filter on user. null or 0=No filter
* @param string $morewherefilter Add more filter into where SQL request (must start with ' AND ...')
- * @return array Array of info for task array('min_date', 'max_date', 'total_duration', 'total_amount', 'nblines', 'nblinesnull')
+ * @return array|int Array of info for task array('min_date', 'max_date', 'total_duration', 'total_amount', 'nblines', 'nblinesnull')
*/
public function getSummaryOfTimeSpent($userobj = null, $morewherefilter = '')
{
- global $langs;
-
if (is_object($userobj)) {
$userid = $userobj->id;
} else {
@@ -1567,14 +1565,12 @@ class Task extends CommonObjectLine
/**
* Load all records of time spent
*
- * @param User $userobj User object
- * @param string $morewherefilter Add more filter into where SQL request (must start with ' AND ...')
- * @return int <0 if KO, array of time spent if OK
+ * @param User $userobj User object
+ * @param string $morewherefilter Add more filter into where SQL request (must start with ' AND ...')
+ * @return array|int <0 if KO, array of time spent if OK
*/
public function fetchAllTimeSpent(User $userobj, $morewherefilter = '')
{
- global $langs;
-
$arrayres = array();
$sql = "SELECT";
diff --git a/htdocs/ticket/class/ticket.class.php b/htdocs/ticket/class/ticket.class.php
index 85d84767816..cd69b2c6420 100644
--- a/htdocs/ticket/class/ticket.class.php
+++ b/htdocs/ticket/class/ticket.class.php
@@ -1789,11 +1789,11 @@ class Ticket extends CommonObject
/**
* Search and fetch thirparties by email
*
- * @param string $email Email
- * @param int $type Type of thirdparties (0=any, 1=customer, 2=prospect, 3=supplier)
- * @param array $filters Array of couple field name/value to filter the companies with the same name
- * @param string $clause Clause for filters
- * @return array Array of thirdparties object
+ * @param string $email Email
+ * @param int $type Type of thirdparties (0=any, 1=customer, 2=prospect, 3=supplier)
+ * @param array $filters Array of couple field name/value to filter the companies with the same name
+ * @param string $clause Clause for filters
+ * @return array|int Array of thirdparties object
*/
public function searchSocidByEmail($email, $type = '0', $filters = array(), $clause = 'AND')
{
@@ -1854,10 +1854,10 @@ class Ticket extends CommonObject
/**
* Search and fetch contacts by email
*
- * @param string $email Email
- * @param array $socid Limit to a thirdparty
- * @param string $case Respect case
- * @return array Array of contacts object
+ * @param string $email Email
+ * @param array $socid Limit to a thirdparty
+ * @param string $case Respect case
+ * @return array|int Array of contacts object
*/
public function searchContactByEmail($email, $socid = '', $case = '')
{
@@ -1900,8 +1900,8 @@ class Ticket extends CommonObject
/**
* Define parent commany of current ticket
*
- * @param int $id Id of thirdparty to set or '' to remove
- * @return int <0 if KO, >0 if OK
+ * @param int $id Id of thirdparty to set or '' to remove
+ * @return int <0 if KO, >0 if OK
*/
public function setCustomer($id)
{
@@ -2075,7 +2075,7 @@ class Ticket extends CommonObject
* @param string $source Source of contact: external or thirdparty (llx_socpeople) or internal (llx_user)
* @param int $list 0:Return array contains all properties, 1:Return array contains just id
* @param string $code Filter on this code of contact type ('SHIPPING', 'BILLING', ...)
- * @return array Array of contacts
+ * @return array|int Array of contacts
*/
public function listeContact($status = -1, $source = 'external', $list = 0, $code = '')
{
@@ -2364,7 +2364,7 @@ class Ticket extends CommonObject
}
}
- return;
+ return 1;
}
/**
diff --git a/htdocs/variants/class/ProductAttribute.class.php b/htdocs/variants/class/ProductAttribute.class.php
index ae82873d8bd..f89adcce0f8 100644
--- a/htdocs/variants/class/ProductAttribute.class.php
+++ b/htdocs/variants/class/ProductAttribute.class.php
@@ -119,6 +119,11 @@ class ProductAttribute extends CommonObject
*/
public $line;
+ /**
+ * @var int Number of product that use this attribute
+ */
+ public $is_used_by_products;
+
/**
* Constructor