';
print price($sous_total_debit - $sous_total_credit);
diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php
index 0313798eb09..505c51d27fe 100644
--- a/htdocs/accountancy/class/bookkeeping.class.php
+++ b/htdocs/accountancy/class/bookkeeping.class.php
@@ -837,12 +837,12 @@ class BookKeeping extends CommonObject
$sql .= ' AND '.implode(' '.$filtermode.' ', $sqlwhere);
}
// Affichage par compte comptable
- if (!empty($option)) {
- $sql .= ' AND t.subledger_account IS NOT NULL';
- $sql .= ' ORDER BY t.subledger_account ASC';
- } else {
- $sql .= ' ORDER BY t.numero_compte ASC';
- }
+ if (!empty($option)) {
+ $sql .= ' AND t.subledger_account IS NOT NULL';
+ $sql .= ' ORDER BY t.subledger_account ASC';
+ } else {
+ $sql .= ' ORDER BY t.numero_compte ASC';
+ }
if (!empty($sortfield)) {
$sql .= ', '.$sortfield.' '.$sortorder;
diff --git a/htdocs/adherents/class/api_members.class.php b/htdocs/adherents/class/api_members.class.php
index bf57d723589..321d789e03a 100644
--- a/htdocs/adherents/class/api_members.class.php
+++ b/htdocs/adherents/class/api_members.class.php
@@ -32,477 +32,477 @@ require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
*/
class Members extends DolibarrApi
{
- /**
- * @var array $FIELDS Mandatory fields, checked when create and update object
- */
- static $FIELDS = array(
- 'morphy',
- 'typeid'
- );
+ /**
+ * @var array $FIELDS Mandatory fields, checked when create and update object
+ */
+ static $FIELDS = array(
+ 'morphy',
+ 'typeid'
+ );
- /**
- * Constructor
- */
- public function __construct()
- {
- global $db, $conf;
- $this->db = $db;
- }
+ /**
+ * Constructor
+ */
+ public function __construct()
+ {
+ global $db, $conf;
+ $this->db = $db;
+ }
- /**
- * Get properties of a member object
- *
- * Return an array with member informations
- *
- * @param int $id ID of member
- * @return array|mixed data without useless information
- *
- * @throws RestException
- */
- public function get($id)
- {
- if (!DolibarrApiAccess::$user->rights->adherent->lire) {
- throw new RestException(401);
- }
+ /**
+ * Get properties of a member object
+ *
+ * Return an array with member informations
+ *
+ * @param int $id ID of member
+ * @return array|mixed data without useless information
+ *
+ * @throws RestException
+ */
+ public function get($id)
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->lire) {
+ throw new RestException(401);
+ }
- $member = new Adherent($this->db);
- $result = $member->fetch($id);
- if (!$result) {
- throw new RestException(404, 'member not found');
- }
+ $member = new Adherent($this->db);
+ $result = $member->fetch($id);
+ if (!$result) {
+ throw new RestException(404, 'member not found');
+ }
- if (!DolibarrApi::_checkAccessToResource('adherent', $member->id)) {
- throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
- }
+ if (!DolibarrApi::_checkAccessToResource('adherent', $member->id)) {
+ throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
+ }
- return $this->_cleanObjectDatas($member);
- }
+ return $this->_cleanObjectDatas($member);
+ }
- /**
- * Get properties of a member object by linked thirdparty
- *
- * Return an array with member informations
- *
- * @param int $thirdparty ID of third party
- *
- * @return array|mixed Data without useless information
- *
- * @url GET thirdparty/{thirdparty}
- *
- * @throws RestException 401
- * @throws RestException 404
- */
- public function getByThirdparty($thirdparty)
- {
- if (!DolibarrApiAccess::$user->rights->adherent->lire) {
- throw new RestException(401);
- }
+ /**
+ * Get properties of a member object by linked thirdparty
+ *
+ * Return an array with member informations
+ *
+ * @param int $thirdparty ID of third party
+ *
+ * @return array|mixed Data without useless information
+ *
+ * @url GET thirdparty/{thirdparty}
+ *
+ * @throws RestException 401
+ * @throws RestException 404
+ */
+ public function getByThirdparty($thirdparty)
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->lire) {
+ throw new RestException(401);
+ }
- $member = new Adherent($this->db);
- $result = $member->fetch('', '', $thirdparty);
- if (!$result) {
- throw new RestException(404, 'member not found');
- }
+ $member = new Adherent($this->db);
+ $result = $member->fetch('', '', $thirdparty);
+ if (!$result) {
+ throw new RestException(404, 'member not found');
+ }
- if (!DolibarrApi::_checkAccessToResource('adherent', $member->id)) {
- throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
- }
+ if (!DolibarrApi::_checkAccessToResource('adherent', $member->id)) {
+ throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
+ }
- return $this->_cleanObjectDatas($member);
- }
+ return $this->_cleanObjectDatas($member);
+ }
- /**
- * Get properties of a member object by linked thirdparty email
- *
- * Return an array with member informations
- *
- * @param string $email Email of third party
- *
- * @return array|mixed Data without useless information
- *
- * @url GET thirdparty/email/{email}
- *
- * @throws RestException 401
- * @throws RestException 404
- */
- public function getByThirdpartyEmail($email)
- {
- if (!DolibarrApiAccess::$user->rights->adherent->lire) {
- throw new RestException(401);
- }
+ /**
+ * Get properties of a member object by linked thirdparty email
+ *
+ * Return an array with member informations
+ *
+ * @param string $email Email of third party
+ *
+ * @return array|mixed Data without useless information
+ *
+ * @url GET thirdparty/email/{email}
+ *
+ * @throws RestException 401
+ * @throws RestException 404
+ */
+ public function getByThirdpartyEmail($email)
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->lire) {
+ throw new RestException(401);
+ }
- $thirdparty = new Societe($this->db);
- $result = $thirdparty->fetch('', '', '', '', '', '', '', '', '', '', $email);
- if (!$result) {
- throw new RestException(404, 'thirdparty not found');
- }
+ $thirdparty = new Societe($this->db);
+ $result = $thirdparty->fetch('', '', '', '', '', '', '', '', '', '', $email);
+ if (!$result) {
+ throw new RestException(404, 'thirdparty not found');
+ }
- $member = new Adherent($this->db);
- $result = $member->fetch('', '', $thirdparty->id);
- if (!$result) {
- throw new RestException(404, 'member not found');
- }
+ $member = new Adherent($this->db);
+ $result = $member->fetch('', '', $thirdparty->id);
+ if (!$result) {
+ throw new RestException(404, 'member not found');
+ }
- if (!DolibarrApi::_checkAccessToResource('adherent', $member->id)) {
- throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
- }
+ if (!DolibarrApi::_checkAccessToResource('adherent', $member->id)) {
+ throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
+ }
- return $this->_cleanObjectDatas($member);
- }
+ return $this->_cleanObjectDatas($member);
+ }
- /**
- * Get properties of a member object by linked thirdparty barcode
- *
- * Return an array with member informations
- *
- * @param string $barcode Barcode of third party
- *
- * @return array|mixed Data without useless information
- *
- * @url GET thirdparty/barcode/{barcode}
- *
- * @throws RestException 401
- * @throws RestException 404
- */
- public function getByThirdpartyBarcode($barcode)
- {
- if (!DolibarrApiAccess::$user->rights->adherent->lire) {
- throw new RestException(401);
- }
+ /**
+ * Get properties of a member object by linked thirdparty barcode
+ *
+ * Return an array with member informations
+ *
+ * @param string $barcode Barcode of third party
+ *
+ * @return array|mixed Data without useless information
+ *
+ * @url GET thirdparty/barcode/{barcode}
+ *
+ * @throws RestException 401
+ * @throws RestException 404
+ */
+ public function getByThirdpartyBarcode($barcode)
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->lire) {
+ throw new RestException(401);
+ }
- $thirdparty = new Societe($this->db);
- $result = $thirdparty->fetch('', '', '', $barcode);
- if (!$result) {
- throw new RestException(404, 'thirdparty not found');
- }
+ $thirdparty = new Societe($this->db);
+ $result = $thirdparty->fetch('', '', '', $barcode);
+ if (!$result) {
+ throw new RestException(404, 'thirdparty not found');
+ }
- $member = new Adherent($this->db);
- $result = $member->fetch('', '', $thirdparty->id);
- if (!$result) {
- throw new RestException(404, 'member not found');
- }
+ $member = new Adherent($this->db);
+ $result = $member->fetch('', '', $thirdparty->id);
+ if (!$result) {
+ throw new RestException(404, 'member not found');
+ }
- if (!DolibarrApi::_checkAccessToResource('adherent', $member->id)) {
- throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
- }
+ if (!DolibarrApi::_checkAccessToResource('adherent', $member->id)) {
+ throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
+ }
- return $this->_cleanObjectDatas($member);
- }
+ return $this->_cleanObjectDatas($member);
+ }
- /**
- * List members
- *
- * Get a list of members
- *
- * @param string $sortfield Sort field
- * @param string $sortorder Sort order
- * @param int $limit Limit for list
- * @param int $page Page number
- * @param string $typeid ID of the type of member
+ /**
+ * List members
+ *
+ * Get a list of members
+ *
+ * @param string $sortfield Sort field
+ * @param string $sortorder Sort order
+ * @param int $limit Limit for list
+ * @param int $page Page number
+ * @param string $typeid ID of the type of member
* @param int $category Use this param to filter list by category
- * @param string $sqlfilters Other criteria to filter answers separated by a comma.
- * Example: "(t.ref:like:'SO-%') and ((t.date_creation:<:'20160101') or (t.nature:is:NULL))"
- * @return array Array of member objects
- *
- * @throws RestException
- */
- public function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $typeid = '', $category = 0, $sqlfilters = '')
- {
- global $db, $conf;
+ * @param string $sqlfilters Other criteria to filter answers separated by a comma.
+ * Example: "(t.ref:like:'SO-%') and ((t.date_creation:<:'20160101') or (t.nature:is:NULL))"
+ * @return array Array of member objects
+ *
+ * @throws RestException
+ */
+ public function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $typeid = '', $category = 0, $sqlfilters = '')
+ {
+ global $db, $conf;
- $obj_ret = array();
+ $obj_ret = array();
- if (!DolibarrApiAccess::$user->rights->adherent->lire) {
- throw new RestException(401);
- }
+ if (!DolibarrApiAccess::$user->rights->adherent->lire) {
+ throw new RestException(401);
+ }
- $sql = "SELECT t.rowid";
- $sql .= " FROM ".MAIN_DB_PREFIX."adherent as t";
- if ($category > 0) {
+ $sql = "SELECT t.rowid";
+ $sql .= " FROM ".MAIN_DB_PREFIX."adherent as t";
+ if ($category > 0) {
$sql .= ", ".MAIN_DB_PREFIX."categorie_member as c";
- }
- $sql .= ' WHERE t.entity IN ('.getEntity('adherent').')';
- if (!empty($typeid)) {
- $sql .= ' AND t.fk_adherent_type='.$typeid;
- }
- // Select members of given category
- if ($category > 0) {
+ }
+ $sql .= ' WHERE t.entity IN ('.getEntity('adherent').')';
+ if (!empty($typeid)) {
+ $sql .= ' AND t.fk_adherent_type='.$typeid;
+ }
+ // Select members of given category
+ if ($category > 0) {
$sql .= " AND c.fk_categorie = ".$this->db->escape($category);
$sql .= " AND c.fk_member = t.rowid ";
- }
- // Add sql filters
- if ($sqlfilters) {
- if (!DolibarrApi::_checkFilters($sqlfilters)) {
- throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
- }
- $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
- $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
- }
+ }
+ // Add sql filters
+ if ($sqlfilters) {
+ if (!DolibarrApi::_checkFilters($sqlfilters)) {
+ throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
+ }
+ $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
+ $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
+ }
- $sql .= $this->db->order($sortfield, $sortorder);
- if ($limit) {
- if ($page < 0) {
- $page = 0;
- }
- $offset = $limit * $page;
+ $sql .= $this->db->order($sortfield, $sortorder);
+ if ($limit) {
+ if ($page < 0) {
+ $page = 0;
+ }
+ $offset = $limit * $page;
- $sql .= $this->db->plimit($limit + 1, $offset);
- }
+ $sql .= $this->db->plimit($limit + 1, $offset);
+ }
- $result = $this->db->query($sql);
- if ($result) {
- $i = 0;
- $num = $this->db->num_rows($result);
- $min = min($num, ($limit <= 0 ? $num : $limit));
- while ($i < $min) {
- $obj = $this->db->fetch_object($result);
- $member = new Adherent($this->db);
- if ($member->fetch($obj->rowid)) {
- $obj_ret[] = $this->_cleanObjectDatas($member);
- }
- $i++;
- }
- } else {
- throw new RestException(503, 'Error when retrieve member list : '.$this->db->lasterror());
- }
- if (!count($obj_ret)) {
- throw new RestException(404, 'No member found');
- }
+ $result = $this->db->query($sql);
+ if ($result) {
+ $i = 0;
+ $num = $this->db->num_rows($result);
+ $min = min($num, ($limit <= 0 ? $num : $limit));
+ while ($i < $min) {
+ $obj = $this->db->fetch_object($result);
+ $member = new Adherent($this->db);
+ if ($member->fetch($obj->rowid)) {
+ $obj_ret[] = $this->_cleanObjectDatas($member);
+ }
+ $i++;
+ }
+ } else {
+ throw new RestException(503, 'Error when retrieve member list : '.$this->db->lasterror());
+ }
+ if (!count($obj_ret)) {
+ throw new RestException(404, 'No member found');
+ }
- return $obj_ret;
- }
+ return $obj_ret;
+ }
- /**
- * Create member object
- *
- * @param array $request_data Request data
- * @return int ID of member
- */
- public function post($request_data = null)
- {
- if (!DolibarrApiAccess::$user->rights->adherent->creer) {
- throw new RestException(401);
- }
- // Check mandatory fields
- $result = $this->_validate($request_data);
+ /**
+ * Create member object
+ *
+ * @param array $request_data Request data
+ * @return int ID of member
+ */
+ public function post($request_data = null)
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->creer) {
+ throw new RestException(401);
+ }
+ // Check mandatory fields
+ $result = $this->_validate($request_data);
- $member = new Adherent($this->db);
- foreach ($request_data as $field => $value) {
- $member->$field = $value;
- }
- if ($member->create(DolibarrApiAccess::$user) < 0) {
- throw new RestException(500, 'Error creating member', array_merge(array($member->error), $member->errors));
- }
- return $member->id;
- }
+ $member = new Adherent($this->db);
+ foreach ($request_data as $field => $value) {
+ $member->$field = $value;
+ }
+ if ($member->create(DolibarrApiAccess::$user) < 0) {
+ throw new RestException(500, 'Error creating member', array_merge(array($member->error), $member->errors));
+ }
+ return $member->id;
+ }
- /**
- * Update member
- *
- * @param int $id ID of member to update
- * @param array $request_data Datas
- * @return int
- */
- public function put($id, $request_data = null)
- {
- if (!DolibarrApiAccess::$user->rights->adherent->creer) {
- throw new RestException(401);
- }
+ /**
+ * Update member
+ *
+ * @param int $id ID of member to update
+ * @param array $request_data Datas
+ * @return int
+ */
+ public function put($id, $request_data = null)
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->creer) {
+ throw new RestException(401);
+ }
- $member = new Adherent($this->db);
- $result = $member->fetch($id);
- if (!$result) {
- throw new RestException(404, 'member not found');
- }
+ $member = new Adherent($this->db);
+ $result = $member->fetch($id);
+ if (!$result) {
+ throw new RestException(404, 'member not found');
+ }
- if (!DolibarrApi::_checkAccessToResource('member', $member->id)) {
- throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
- }
+ if (!DolibarrApi::_checkAccessToResource('member', $member->id)) {
+ throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
+ }
- foreach ($request_data as $field => $value) {
- if ($field == 'id') continue;
- // Process the status separately because it must be updated using
- // the validate() and resiliate() methods of the class Adherent.
- if ($field == 'statut') {
- if ($value == '0') {
- $result = $member->resiliate(DolibarrApiAccess::$user);
- if ($result < 0) {
- throw new RestException(500, 'Error when resiliating member: '.$member->error);
- }
- } elseif ($value == '1') {
- $result = $member->validate(DolibarrApiAccess::$user);
- if ($result < 0) {
- throw new RestException(500, 'Error when validating member: '.$member->error);
- }
- }
- } else {
- $member->$field = $value;
- }
- }
+ foreach ($request_data as $field => $value) {
+ if ($field == 'id') continue;
+ // Process the status separately because it must be updated using
+ // the validate() and resiliate() methods of the class Adherent.
+ if ($field == 'statut') {
+ if ($value == '0') {
+ $result = $member->resiliate(DolibarrApiAccess::$user);
+ if ($result < 0) {
+ throw new RestException(500, 'Error when resiliating member: '.$member->error);
+ }
+ } elseif ($value == '1') {
+ $result = $member->validate(DolibarrApiAccess::$user);
+ if ($result < 0) {
+ throw new RestException(500, 'Error when validating member: '.$member->error);
+ }
+ }
+ } else {
+ $member->$field = $value;
+ }
+ }
- // If there is no error, update() returns the number of affected rows
- // so if the update is a no op, the return value is zero.
- if ($member->update(DolibarrApiAccess::$user) >= 0) {
- return $this->get($id);
- } else {
- throw new RestException(500, $member->error);
- }
- }
+ // If there is no error, update() returns the number of affected rows
+ // so if the update is a no op, the return value is zero.
+ if ($member->update(DolibarrApiAccess::$user) >= 0) {
+ return $this->get($id);
+ } else {
+ throw new RestException(500, $member->error);
+ }
+ }
- /**
- * Delete member
- *
- * @param int $id member ID
- * @return array
- */
- public function delete($id)
- {
- if (!DolibarrApiAccess::$user->rights->adherent->supprimer) {
- throw new RestException(401);
- }
- $member = new Adherent($this->db);
- $result = $member->fetch($id);
- if (!$result) {
- throw new RestException(404, 'member not found');
- }
+ /**
+ * Delete member
+ *
+ * @param int $id member ID
+ * @return array
+ */
+ public function delete($id)
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->supprimer) {
+ throw new RestException(401);
+ }
+ $member = new Adherent($this->db);
+ $result = $member->fetch($id);
+ if (!$result) {
+ throw new RestException(404, 'member not found');
+ }
- if (!DolibarrApi::_checkAccessToResource('member', $member->id)) {
- throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
- }
+ if (!DolibarrApi::_checkAccessToResource('member', $member->id)) {
+ throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
+ }
- if (!$member->delete($member->id, DolibarrApiAccess::$user)) {
- throw new RestException(401, 'error when deleting member');
- }
+ if (!$member->delete($member->id, DolibarrApiAccess::$user)) {
+ throw new RestException(401, 'error when deleting member');
+ }
- return array(
- 'success' => array(
- 'code' => 200,
- 'message' => 'member deleted'
- )
- );
- }
+ return array(
+ 'success' => array(
+ 'code' => 200,
+ 'message' => 'member deleted'
+ )
+ );
+ }
- /**
- * Validate fields before creating an object
- *
- * @param array|null $data Data to validate
- * @return array
- *
- * @throws RestException
- */
- private function _validate($data)
- {
- $member = array();
- foreach (Members::$FIELDS as $field) {
- if (!isset($data[$field]))
- throw new RestException(400, "$field field missing");
- $member[$field] = $data[$field];
- }
- return $member;
- }
+ /**
+ * Validate fields before creating an object
+ *
+ * @param array|null $data Data to validate
+ * @return array
+ *
+ * @throws RestException
+ */
+ private function _validate($data)
+ {
+ $member = array();
+ foreach (Members::$FIELDS as $field) {
+ if (!isset($data[$field]))
+ throw new RestException(400, "$field field missing");
+ $member[$field] = $data[$field];
+ }
+ return $member;
+ }
- // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
- /**
- * Clean sensible object datas
- *
- * @param Object $object Object to clean
- * @return Object Object with cleaned properties
- */
- protected function _cleanObjectDatas($object)
- {
- // phpcs:enable
- $object = parent::_cleanObjectDatas($object);
+ // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
+ /**
+ * Clean sensible object datas
+ *
+ * @param Object $object Object to clean
+ * @return Object Object with cleaned properties
+ */
+ protected function _cleanObjectDatas($object)
+ {
+ // phpcs:enable
+ $object = parent::_cleanObjectDatas($object);
- // Remove the subscriptions because they are handled as a subresource.
- unset($object->subscriptions);
- unset($object->fk_incoterms);
- unset($object->label_incoterms);
- unset($object->location_incoterms);
- unset($object->fk_delivery_address);
- unset($object->shipping_method_id);
+ // Remove the subscriptions because they are handled as a subresource.
+ unset($object->subscriptions);
+ unset($object->fk_incoterms);
+ unset($object->label_incoterms);
+ unset($object->location_incoterms);
+ unset($object->fk_delivery_address);
+ unset($object->shipping_method_id);
- unset($object->total_ht);
- unset($object->total_ttc);
- unset($object->total_tva);
- unset($object->total_localtax1);
- unset($object->total_localtax2);
+ unset($object->total_ht);
+ unset($object->total_ttc);
+ unset($object->total_tva);
+ unset($object->total_localtax1);
+ unset($object->total_localtax2);
- return $object;
- }
+ return $object;
+ }
- /**
- * List subscriptions of a member
- *
- * Get a list of subscriptions
- *
- * @param int $id ID of member
- * @return array Array of subscription objects
- *
- * @throws RestException
- *
- * @url GET {id}/subscriptions
- */
- public function getSubscriptions($id)
- {
- $obj_ret = array();
+ /**
+ * List subscriptions of a member
+ *
+ * Get a list of subscriptions
+ *
+ * @param int $id ID of member
+ * @return array Array of subscription objects
+ *
+ * @throws RestException
+ *
+ * @url GET {id}/subscriptions
+ */
+ public function getSubscriptions($id)
+ {
+ $obj_ret = array();
- if (!DolibarrApiAccess::$user->rights->adherent->cotisation->lire) {
- throw new RestException(401);
- }
+ if (!DolibarrApiAccess::$user->rights->adherent->cotisation->lire) {
+ throw new RestException(401);
+ }
- $member = new Adherent($this->db);
- $result = $member->fetch($id);
- if (!$result) {
- throw new RestException(404, 'member not found');
- }
+ $member = new Adherent($this->db);
+ $result = $member->fetch($id);
+ if (!$result) {
+ throw new RestException(404, 'member not found');
+ }
- $obj_ret = array();
- foreach ($member->subscriptions as $subscription) {
- $obj_ret[] = $this->_cleanObjectDatas($subscription);
- }
- return $obj_ret;
- }
+ $obj_ret = array();
+ foreach ($member->subscriptions as $subscription) {
+ $obj_ret[] = $this->_cleanObjectDatas($subscription);
+ }
+ return $obj_ret;
+ }
- /**
- * Add a subscription for a member
- *
- * @param int $id ID of member
- * @param int $start_date Start date {@from body} {@type timestamp}
- * @param int $end_date End date {@from body} {@type timestamp}
- * @param float $amount Amount (may be 0) {@from body}
- * @param string $label Label {@from body}
- * @return int ID of subscription
- *
- * @url POST {id}/subscriptions
- */
- public function createSubscription($id, $start_date, $end_date, $amount, $label = '')
- {
- if (!DolibarrApiAccess::$user->rights->adherent->cotisation->creer) {
- throw new RestException(401);
- }
+ /**
+ * Add a subscription for a member
+ *
+ * @param int $id ID of member
+ * @param int $start_date Start date {@from body} {@type timestamp}
+ * @param int $end_date End date {@from body} {@type timestamp}
+ * @param float $amount Amount (may be 0) {@from body}
+ * @param string $label Label {@from body}
+ * @return int ID of subscription
+ *
+ * @url POST {id}/subscriptions
+ */
+ public function createSubscription($id, $start_date, $end_date, $amount, $label = '')
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->cotisation->creer) {
+ throw new RestException(401);
+ }
- $member = new Adherent($this->db);
- $result = $member->fetch($id);
- if (!$result) {
- throw new RestException(404, 'member not found');
- }
+ $member = new Adherent($this->db);
+ $result = $member->fetch($id);
+ if (!$result) {
+ throw new RestException(404, 'member not found');
+ }
- return $member->subscription($start_date, $amount, 0, '', $label, '', '', '', $end_date);
- }
+ return $member->subscription($start_date, $amount, 0, '', $label, '', '', '', $end_date);
+ }
- /**
- * Get categories for a member
- *
- * @param int $id ID of member
- * @param string $sortfield Sort field
- * @param string $sortorder Sort order
- * @param int $limit Limit for list
- * @param int $page Page number
- *
- * @return mixed
- *
- * @url GET {id}/categories
- */
+ /**
+ * Get categories for a member
+ *
+ * @param int $id ID of member
+ * @param string $sortfield Sort field
+ * @param string $sortorder Sort order
+ * @param int $limit Limit for list
+ * @param int $page Page number
+ *
+ * @return mixed
+ *
+ * @url GET {id}/categories
+ */
public function getCategories($id, $sortfield = "s.rowid", $sortorder = 'ASC', $limit = 0, $page = 0)
{
if (!DolibarrApiAccess::$user->rights->categorie->lire) {
diff --git a/htdocs/adherents/class/api_memberstypes.class.php b/htdocs/adherents/class/api_memberstypes.class.php
index 0e65a25c551..f9f410f34aa 100644
--- a/htdocs/adherents/class/api_memberstypes.class.php
+++ b/htdocs/adherents/class/api_memberstypes.class.php
@@ -27,289 +27,289 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
*/
class MembersTypes extends DolibarrApi
{
- /**
- * @var array $FIELDS Mandatory fields, checked when create and update object
- */
- static $FIELDS = array(
- 'label',
- );
+ /**
+ * @var array $FIELDS Mandatory fields, checked when create and update object
+ */
+ static $FIELDS = array(
+ 'label',
+ );
- /**
- * Constructor
- */
- public function __construct()
- {
- global $db, $conf;
- $this->db = $db;
- }
+ /**
+ * Constructor
+ */
+ public function __construct()
+ {
+ global $db, $conf;
+ $this->db = $db;
+ }
- /**
- * Get properties of a member type object
- *
- * Return an array with member type informations
- *
- * @param int $id ID of member type
- * @return array|mixed data without useless information
- *
- * @throws RestException
- */
- public function get($id)
- {
- if (!DolibarrApiAccess::$user->rights->adherent->lire) {
- throw new RestException(401);
- }
+ /**
+ * Get properties of a member type object
+ *
+ * Return an array with member type informations
+ *
+ * @param int $id ID of member type
+ * @return array|mixed data without useless information
+ *
+ * @throws RestException
+ */
+ public function get($id)
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->lire) {
+ throw new RestException(401);
+ }
- $membertype = new AdherentType($this->db);
- $result = $membertype->fetch($id);
- if (!$result) {
- throw new RestException(404, 'member type not found');
- }
+ $membertype = new AdherentType($this->db);
+ $result = $membertype->fetch($id);
+ if (!$result) {
+ throw new RestException(404, 'member type not found');
+ }
- if (!DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) {
- throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
- }
+ if (!DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) {
+ throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
+ }
- return $this->_cleanObjectDatas($membertype);
- }
+ return $this->_cleanObjectDatas($membertype);
+ }
- /**
- * List members types
- *
- * Get a list of members types
- *
- * @param string $sortfield Sort field
- * @param string $sortorder Sort order
- * @param int $limit Limit for list
- * @param int $page Page number
- * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.libelle:like:'SO-%') and (t.subscription:=:'1')"
- * @return array Array of member type objects
- *
- * @throws RestException
- */
- public function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '')
- {
- global $db, $conf;
+ /**
+ * List members types
+ *
+ * Get a list of members types
+ *
+ * @param string $sortfield Sort field
+ * @param string $sortorder Sort order
+ * @param int $limit Limit for list
+ * @param int $page Page number
+ * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.libelle:like:'SO-%') and (t.subscription:=:'1')"
+ * @return array Array of member type objects
+ *
+ * @throws RestException
+ */
+ public function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '')
+ {
+ global $db, $conf;
- $obj_ret = array();
+ $obj_ret = array();
- if (!DolibarrApiAccess::$user->rights->adherent->lire) {
- throw new RestException(401);
- }
+ if (!DolibarrApiAccess::$user->rights->adherent->lire) {
+ throw new RestException(401);
+ }
- $sql = "SELECT t.rowid";
- $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as t";
- $sql .= ' WHERE t.entity IN ('.getEntity('member_type').')';
+ $sql = "SELECT t.rowid";
+ $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as t";
+ $sql .= ' WHERE t.entity IN ('.getEntity('member_type').')';
- // Add sql filters
- if ($sqlfilters) {
- if (!DolibarrApi::_checkFilters($sqlfilters)) {
- throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
- }
- $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
- $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
- }
+ // Add sql filters
+ if ($sqlfilters) {
+ if (!DolibarrApi::_checkFilters($sqlfilters)) {
+ throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
+ }
+ $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
+ $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
+ }
- $sql .= $this->db->order($sortfield, $sortorder);
- if ($limit) {
- if ($page < 0) {
- $page = 0;
- }
- $offset = $limit * $page;
+ $sql .= $this->db->order($sortfield, $sortorder);
+ if ($limit) {
+ if ($page < 0) {
+ $page = 0;
+ }
+ $offset = $limit * $page;
- $sql .= $this->db->plimit($limit + 1, $offset);
- }
+ $sql .= $this->db->plimit($limit + 1, $offset);
+ }
- $result = $this->db->query($sql);
- if ($result) {
- $i = 0;
- $num = $this->db->num_rows($result);
- $min = min($num, ($limit <= 0 ? $num : $limit));
- while ($i < $min) {
- $obj = $this->db->fetch_object($result);
- $membertype = new AdherentType($this->db);
- if ($membertype->fetch($obj->rowid)) {
- $obj_ret[] = $this->_cleanObjectDatas($membertype);
- }
- $i++;
- }
- } else {
- throw new RestException(503, 'Error when retrieve member type list : '.$this->db->lasterror());
- }
- if (!count($obj_ret)) {
- throw new RestException(404, 'No member type found');
- }
+ $result = $this->db->query($sql);
+ if ($result) {
+ $i = 0;
+ $num = $this->db->num_rows($result);
+ $min = min($num, ($limit <= 0 ? $num : $limit));
+ while ($i < $min) {
+ $obj = $this->db->fetch_object($result);
+ $membertype = new AdherentType($this->db);
+ if ($membertype->fetch($obj->rowid)) {
+ $obj_ret[] = $this->_cleanObjectDatas($membertype);
+ }
+ $i++;
+ }
+ } else {
+ throw new RestException(503, 'Error when retrieve member type list : '.$this->db->lasterror());
+ }
+ if (!count($obj_ret)) {
+ throw new RestException(404, 'No member type found');
+ }
- return $obj_ret;
- }
+ return $obj_ret;
+ }
- /**
- * Create member type object
- *
- * @param array $request_data Request data
- * @return int ID of member type
- */
- public function post($request_data = null)
- {
- if (!DolibarrApiAccess::$user->rights->adherent->configurer) {
- throw new RestException(401);
- }
- // Check mandatory fields
- $result = $this->_validate($request_data);
+ /**
+ * Create member type object
+ *
+ * @param array $request_data Request data
+ * @return int ID of member type
+ */
+ public function post($request_data = null)
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->configurer) {
+ throw new RestException(401);
+ }
+ // Check mandatory fields
+ $result = $this->_validate($request_data);
- $membertype = new AdherentType($this->db);
- foreach ($request_data as $field => $value) {
- $membertype->$field = $value;
- }
- if ($membertype->create(DolibarrApiAccess::$user) < 0) {
- throw new RestException(500, 'Error creating member type', array_merge(array($membertype->error), $membertype->errors));
- }
- return $membertype->id;
- }
+ $membertype = new AdherentType($this->db);
+ foreach ($request_data as $field => $value) {
+ $membertype->$field = $value;
+ }
+ if ($membertype->create(DolibarrApiAccess::$user) < 0) {
+ throw new RestException(500, 'Error creating member type', array_merge(array($membertype->error), $membertype->errors));
+ }
+ return $membertype->id;
+ }
- /**
- * Update member type
- *
- * @param int $id ID of member type to update
- * @param array $request_data Datas
- * @return int
- */
- public function put($id, $request_data = null)
- {
- if (!DolibarrApiAccess::$user->rights->adherent->configurer) {
- throw new RestException(401);
- }
+ /**
+ * Update member type
+ *
+ * @param int $id ID of member type to update
+ * @param array $request_data Datas
+ * @return int
+ */
+ public function put($id, $request_data = null)
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->configurer) {
+ throw new RestException(401);
+ }
- $membertype = new AdherentType($this->db);
- $result = $membertype->fetch($id);
- if (!$result) {
- throw new RestException(404, 'member type not found');
- }
+ $membertype = new AdherentType($this->db);
+ $result = $membertype->fetch($id);
+ if (!$result) {
+ throw new RestException(404, 'member type not found');
+ }
- if (!DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) {
- throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
- }
+ if (!DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) {
+ throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
+ }
- foreach ($request_data as $field => $value) {
- if ($field == 'id') continue;
- // Process the status separately because it must be updated using
- // the validate() and resiliate() methods of the class AdherentType.
- $membertype->$field = $value;
- }
+ foreach ($request_data as $field => $value) {
+ if ($field == 'id') continue;
+ // Process the status separately because it must be updated using
+ // the validate() and resiliate() methods of the class AdherentType.
+ $membertype->$field = $value;
+ }
- // If there is no error, update() returns the number of affected rows
- // so if the update is a no op, the return value is zero.
- if ($membertype->update(DolibarrApiAccess::$user) >= 0) {
- return $this->get($id);
- } else {
- throw new RestException(500, $membertype->error);
- }
- }
+ // If there is no error, update() returns the number of affected rows
+ // so if the update is a no op, the return value is zero.
+ if ($membertype->update(DolibarrApiAccess::$user) >= 0) {
+ return $this->get($id);
+ } else {
+ throw new RestException(500, $membertype->error);
+ }
+ }
- /**
- * Delete member type
- *
- * @param int $id member type ID
- * @return array
- */
- public function delete($id)
- {
- if (!DolibarrApiAccess::$user->rights->adherent->configurer) {
- throw new RestException(401);
- }
- $membertype = new AdherentType($this->db);
- $result = $membertype->fetch($id);
- if (!$result) {
- throw new RestException(404, 'member type not found');
- }
+ /**
+ * Delete member type
+ *
+ * @param int $id member type ID
+ * @return array
+ */
+ public function delete($id)
+ {
+ if (!DolibarrApiAccess::$user->rights->adherent->configurer) {
+ throw new RestException(401);
+ }
+ $membertype = new AdherentType($this->db);
+ $result = $membertype->fetch($id);
+ if (!$result) {
+ throw new RestException(404, 'member type not found');
+ }
- if (!DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) {
- throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
- }
+ if (!DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) {
+ throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
+ }
- if (!$membertype->delete()) {
- throw new RestException(401, 'error when deleting member type');
- }
+ if (!$membertype->delete()) {
+ throw new RestException(401, 'error when deleting member type');
+ }
- return array(
- 'success' => array(
- 'code' => 200,
- 'message' => 'member type deleted'
- )
- );
- }
+ return array(
+ 'success' => array(
+ 'code' => 200,
+ 'message' => 'member type deleted'
+ )
+ );
+ }
- /**
- * Validate fields before creating an object
- *
- * @param array|null $data Data to validate
- * @return array
- *
- * @throws RestException
- */
- private function _validate($data)
- {
- $membertype = array();
- foreach (MembersTypes::$FIELDS as $field) {
- if (!isset($data[$field]))
- throw new RestException(400, "$field field missing");
- $membertype[$field] = $data[$field];
- }
- return $membertype;
- }
+ /**
+ * Validate fields before creating an object
+ *
+ * @param array|null $data Data to validate
+ * @return array
+ *
+ * @throws RestException
+ */
+ private function _validate($data)
+ {
+ $membertype = array();
+ foreach (MembersTypes::$FIELDS as $field) {
+ if (!isset($data[$field]))
+ throw new RestException(400, "$field field missing");
+ $membertype[$field] = $data[$field];
+ }
+ return $membertype;
+ }
- // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
- /**
- * Clean sensible object datas
- *
- * @param Object $object Object to clean
- * @return Object Object with cleaned properties
- */
- protected function _cleanObjectDatas($object)
- {
- // phpcs:enable
- $object = parent::_cleanObjectDatas($object);
+ // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
+ /**
+ * Clean sensible object datas
+ *
+ * @param Object $object Object to clean
+ * @return Object Object with cleaned properties
+ */
+ protected function _cleanObjectDatas($object)
+ {
+ // phpcs:enable
+ $object = parent::_cleanObjectDatas($object);
- unset($object->array_options);
- unset($object->linkedObjectsIds);
- unset($object->context);
- unset($object->canvas);
- unset($object->fk_project);
- unset($object->contact);
- unset($object->contact_id);
- unset($object->thirdparty);
- unset($object->user);
- unset($object->origin);
- unset($object->origin_id);
- unset($object->ref_ext);
- unset($object->country);
- unset($object->country_id);
- unset($object->country_code);
- unset($object->barcode_type);
- unset($object->barcode_type_code);
- unset($object->barcode_type_label);
- unset($object->barcode_type_coder);
- unset($object->mode_reglement_id);
- unset($object->cond_reglement_id);
- unset($object->cond_reglement);
- unset($object->fk_delivery_address);
- unset($object->shipping_method_id);
- unset($object->model_pdf);
- unset($object->fk_account);
- unset($object->note_public);
- unset($object->note_private);
- unset($object->fk_incoterms);
- unset($object->label_incoterms);
- unset($object->location_incoterms);
- unset($object->name);
- unset($object->lastname);
- unset($object->firstname);
- unset($object->civility_id);
- unset($object->total_ht);
- unset($object->total_tva);
- unset($object->total_localtax1);
- unset($object->total_localtax2);
- unset($object->total_ttc);
+ unset($object->array_options);
+ unset($object->linkedObjectsIds);
+ unset($object->context);
+ unset($object->canvas);
+ unset($object->fk_project);
+ unset($object->contact);
+ unset($object->contact_id);
+ unset($object->thirdparty);
+ unset($object->user);
+ unset($object->origin);
+ unset($object->origin_id);
+ unset($object->ref_ext);
+ unset($object->country);
+ unset($object->country_id);
+ unset($object->country_code);
+ unset($object->barcode_type);
+ unset($object->barcode_type_code);
+ unset($object->barcode_type_label);
+ unset($object->barcode_type_coder);
+ unset($object->mode_reglement_id);
+ unset($object->cond_reglement_id);
+ unset($object->cond_reglement);
+ unset($object->fk_delivery_address);
+ unset($object->shipping_method_id);
+ unset($object->model_pdf);
+ unset($object->fk_account);
+ unset($object->note_public);
+ unset($object->note_private);
+ unset($object->fk_incoterms);
+ unset($object->label_incoterms);
+ unset($object->location_incoterms);
+ unset($object->name);
+ unset($object->lastname);
+ unset($object->firstname);
+ unset($object->civility_id);
+ unset($object->total_ht);
+ unset($object->total_tva);
+ unset($object->total_localtax1);
+ unset($object->total_localtax2);
+ unset($object->total_ttc);
- return $object;
- }
+ return $object;
+ }
}
diff --git a/htdocs/admin/fckeditor.php b/htdocs/admin/fckeditor.php
index b01cc5dd19c..8f4ea7ec9c4 100644
--- a/htdocs/admin/fckeditor.php
+++ b/htdocs/admin/fckeditor.php
@@ -145,79 +145,79 @@ if (empty($conf->use_javascript_ajax))
{
setEventMessages(array($langs->trans("NotAvailable"), $langs->trans("JavascriptDisabled")), null, 'errors');
} else {
- print '
';
- print '
';
- print '
'.$langs->trans("ActivateFCKeditor").'
';
- print '
'.$langs->trans("Action").'
';
- print "
\n";
+ print '
';
+ print '
';
+ print '
'.$langs->trans("ActivateFCKeditor").'
';
+ print '
'.$langs->trans("Action").'
';
+ print "
\n";
- // Modules
- foreach ($modules as $const => $desc)
- {
- // Si condition non remplie, on ne propose pas l'option
- if (!$conditions[$const]) continue;
+ // Modules
+ foreach ($modules as $const => $desc)
+ {
+ // Si condition non remplie, on ne propose pas l'option
+ if (!$conditions[$const]) continue;
- print '
\n";
+ }
+ }
+ }
+ }
+ }
+ }
- /*
+ /*
* Load sql files
*/
- if ($ok)
- {
- $dir = "mysql/migration/"; // We use mysql migration scripts whatever is database driver
+ if ($ok)
+ {
+ $dir = "mysql/migration/"; // We use mysql migration scripts whatever is database driver
if (!empty($dirmodule)) $dir = dol_buildpath('/'.$dirmodule.'/sql/', 0);
dolibarr_install_syslog("Scan sql files for migration files in ".$dir);
// Clean last part to exclude minor version x.y.z -> x.y
- $newversionfrom = preg_replace('/(\.[0-9]+)$/i', '.0', $versionfrom);
- $newversionto = preg_replace('/(\.[0-9]+)$/i', '.0', $versionto);
+ $newversionfrom = preg_replace('/(\.[0-9]+)$/i', '.0', $versionfrom);
+ $newversionto = preg_replace('/(\.[0-9]+)$/i', '.0', $versionto);
- $filelist = array();
- $i = 0;
- $ok = 0;
- $from = '^'.$newversionfrom;
- $to = $newversionto.'\.sql$';
+ $filelist = array();
+ $i = 0;
+ $ok = 0;
+ $from = '^'.$newversionfrom;
+ $to = $newversionto.'\.sql$';
- // Get files list
- $filesindir = array();
- $handle = opendir($dir);
- if (is_resource($handle))
- {
- while (($file = readdir($handle)) !== false)
- {
- if (preg_match('/\.sql$/i', $file)) $filesindir[] = $file;
- }
- sort($filesindir);
- } else {
- print '
'.$langs->trans("ErrorCanNotReadDir", $dir).'
';
- }
+ // Get files list
+ $filesindir = array();
+ $handle = opendir($dir);
+ if (is_resource($handle))
+ {
+ while (($file = readdir($handle)) !== false)
+ {
+ if (preg_match('/\.sql$/i', $file)) $filesindir[] = $file;
+ }
+ sort($filesindir);
+ } else {
+ print '
'.$langs->trans("ErrorCanNotReadDir", $dir).'
';
+ }
- // Define which file to run
- foreach ($filesindir as $file)
- {
- if (preg_match('/'.$from.'/i', $file))
- {
- $filelist[] = $file;
- } elseif (preg_match('/'.$to.'/i', $file)) // First test may be false if we migrate from x.y.* to x.y.*
- {
- $filelist[] = $file;
- }
- }
+ // Define which file to run
+ foreach ($filesindir as $file)
+ {
+ if (preg_match('/'.$from.'/i', $file))
+ {
+ $filelist[] = $file;
+ } elseif (preg_match('/'.$to.'/i', $file)) // First test may be false if we migrate from x.y.* to x.y.*
+ {
+ $filelist[] = $file;
+ }
+ }
- if (count($filelist) == 0)
- {
- print '
';
+ } else {
$listoffileprocessed = array(); // Protection to avoid to process twice the same file
- // Loop on each migrate files
- foreach ($filelist as $file)
- {
- if (in_array($dir.$file, $listoffileprocessed)) continue;
+ // Loop on each migrate files
+ foreach ($filelist as $file)
+ {
+ if (in_array($dir.$file, $listoffileprocessed)) continue;
- print '
';
- print '
'.$langs->trans("ChoosedMigrateScript").'
'.$file.'
'."\n";
+ print '
';
+ print '
'.$langs->trans("ChoosedMigrateScript").'
'.$file.'
'."\n";
- // Run sql script
- $ok = run_sql($dir.$file, 0, '', 1);
- $listoffileprocessed[$dir.$file] = $dir.$file;
+ // Run sql script
+ $ok = run_sql($dir.$file, 0, '', 1);
+ $listoffileprocessed[$dir.$file] = $dir.$file;
- // Scan if there is migration scripts that depends of Dolibarr version
- // for modules htdocs/module/sql or htdocs/custom/module/sql (files called "dolibarr_x.y.z-a.b.c.sql")
- $modulesfile = array();
- foreach ($conf->file->dol_document_root as $type => $dirroot)
- {
- $handlemodule = @opendir($dirroot); // $dirroot may be '..'
- if (is_resource($handlemodule))
- {
- while (($filemodule = readdir($handlemodule)) !== false)
- {
- if (!preg_match('/\./', $filemodule) && is_dir($dirroot.'/'.$filemodule.'/sql')) // We exclude filemodule that contains . (are not directories) and are not directories.
- {
- //print "Scan for ".$dirroot . '/' . $filemodule . '/sql/'.$file;
- if (is_file($dirroot.'/'.$filemodule.'/sql/dolibarr_'.$file))
- {
- $modulesfile[$dirroot.'/'.$filemodule.'/sql/dolibarr_'.$file] = '/'.$filemodule.'/sql/dolibarr_'.$file;
- }
- }
- }
- closedir($handlemodule);
- }
- }
+ // Scan if there is migration scripts that depends of Dolibarr version
+ // for modules htdocs/module/sql or htdocs/custom/module/sql (files called "dolibarr_x.y.z-a.b.c.sql")
+ $modulesfile = array();
+ foreach ($conf->file->dol_document_root as $type => $dirroot)
+ {
+ $handlemodule = @opendir($dirroot); // $dirroot may be '..'
+ if (is_resource($handlemodule))
+ {
+ while (($filemodule = readdir($handlemodule)) !== false)
+ {
+ if (!preg_match('/\./', $filemodule) && is_dir($dirroot.'/'.$filemodule.'/sql')) // We exclude filemodule that contains . (are not directories) and are not directories.
+ {
+ //print "Scan for ".$dirroot . '/' . $filemodule . '/sql/'.$file;
+ if (is_file($dirroot.'/'.$filemodule.'/sql/dolibarr_'.$file))
+ {
+ $modulesfile[$dirroot.'/'.$filemodule.'/sql/dolibarr_'.$file] = '/'.$filemodule.'/sql/dolibarr_'.$file;
+ }
+ }
+ }
+ closedir($handlemodule);
+ }
+ }
- foreach ($modulesfile as $modulefilelong => $modulefileshort)
- {
- if (in_array($modulefilelong, $listoffileprocessed)) continue;
+ foreach ($modulesfile as $modulefilelong => $modulefileshort)
+ {
+ if (in_array($modulefilelong, $listoffileprocessed)) continue;
- print '
'."\n";
- // Run sql script
- $okmodule = run_sql($modulefilelong, 0, '', 1); // Note: Result of migration of external module should not decide if we continue migration of Dolibarr or not.
- $listoffileprocessed[$modulefilelong] = $modulefilelong;
- }
- }
+ // Run sql script
+ $okmodule = run_sql($modulefilelong, 0, '', 1); // Note: Result of migration of external module should not decide if we continue migration of Dolibarr or not.
+ $listoffileprocessed[$modulefilelong] = $modulefilelong;
+ }
+ }
}
- }
+ }
- print '
';
+ print '
';
- if ($db->connected) $db->close();
+ if ($db->connected) $db->close();
}
if (empty($actiondone))
{
- print '