';
if ($action == 'edit' && $object->id == $rule->id) {
- echo '' . $conf->currency;
+ echo '';
} else {
echo price($rule->amount, 0, $langs, 1, -1, -1, $conf->currency);
}
diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php
index cdcd26490a3..77aded9c594 100644
--- a/htdocs/compta/bank/class/paymentvarious.class.php
+++ b/htdocs/compta/bank/class/paymentvarious.class.php
@@ -165,7 +165,7 @@ class PaymentVarious extends CommonObject
*
* @param DoliDB $db Database handler
*/
- public function __construct($db)
+ public function __construct(DoliDB $db)
{
$this->db = $db;
$this->element = 'payment_various';
diff --git a/htdocs/compta/deplacement/class/deplacement.class.php b/htdocs/compta/deplacement/class/deplacement.class.php
index e05750918da..c09943540bc 100644
--- a/htdocs/compta/deplacement/class/deplacement.class.php
+++ b/htdocs/compta/deplacement/class/deplacement.class.php
@@ -121,7 +121,7 @@ class Deplacement extends CommonObject
*
* @param DoliDB $db Database handler
*/
- public function __construct($db)
+ public function __construct(DoliDB $db)
{
$this->db = $db;
diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php
index a406a48c7f6..af6d4dc606b 100644
--- a/htdocs/compta/facture/class/facture-rec.class.php
+++ b/htdocs/compta/facture/class/facture-rec.class.php
@@ -222,7 +222,7 @@ class FactureRec extends CommonInvoice
*
* @param DoliDB $db Database handler
*/
- public function __construct($db)
+ public function __construct(DoliDB $db)
{
$this->db = $db;
}
diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php
index a5cb99c2260..e971262208c 100644
--- a/htdocs/compta/facture/class/facture.class.php
+++ b/htdocs/compta/facture/class/facture.class.php
@@ -428,7 +428,7 @@ class Facture extends CommonInvoice
*
* @param DoliDB $db Database handler
*/
- public function __construct($db)
+ public function __construct(DoliDB $db)
{
$this->db = $db;
}
diff --git a/htdocs/compta/facture/class/facturestats.class.php b/htdocs/compta/facture/class/facturestats.class.php
index a54cd1a6668..522fe9aa2e2 100644
--- a/htdocs/compta/facture/class/facturestats.class.php
+++ b/htdocs/compta/facture/class/facturestats.class.php
@@ -57,7 +57,7 @@ class FactureStats extends Stats
* @param int $typentid Id typent of thirdpary for filter
* @param int $categid Id category of thirdpary for filter
*/
- public function __construct($db, $socid, $mode, $userid = 0, $typentid = 0, $categid = 0)
+ public function __construct(DoliDB $db, $socid, $mode, $userid = 0, $typentid = 0, $categid = 0)
{
global $user, $conf;
diff --git a/htdocs/compta/facture/class/paymentterm.class.php b/htdocs/compta/facture/class/paymentterm.class.php
index f94ad573a81..a4441804570 100644
--- a/htdocs/compta/facture/class/paymentterm.class.php
+++ b/htdocs/compta/facture/class/paymentterm.class.php
@@ -68,7 +68,7 @@ class PaymentTerm // extends CommonObject
*
* @param DoliDB $db Database handler
*/
- public function __construct($db)
+ public function __construct(DoliDB $db)
{
$this->db = $db;
}
diff --git a/htdocs/compta/sociales/class/chargesociales.class.php b/htdocs/compta/sociales/class/chargesociales.class.php
index 6996c689922..70d8da4c27b 100644
--- a/htdocs/compta/sociales/class/chargesociales.class.php
+++ b/htdocs/compta/sociales/class/chargesociales.class.php
@@ -123,7 +123,7 @@ class ChargeSociales extends CommonObject
*
* @param DoliDB $db Database handler
*/
- public function __construct($db)
+ public function __construct(DoliDB $db)
{
$this->db = $db;
}
diff --git a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php
index 9a4b50e3474..b6a611a47ee 100644
--- a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php
+++ b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php
@@ -105,7 +105,7 @@ class PaymentSocialContribution extends CommonObject
*
* @param DoliDB $db Database handler
*/
- public function __construct($db)
+ public function __construct(DoliDB $db)
{
$this->db = $db;
}
diff --git a/htdocs/core/class/coreobject.class.php b/htdocs/core/class/coreobject.class.php
deleted file mode 100644
index 1bb4e92a0c9..00000000000
--- a/htdocs/core/class/coreobject.class.php
+++ /dev/null
@@ -1,413 +0,0 @@
-
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-/**
- * \file htdocs/core/class/coreobject.class.php
- * \ingroup core
- * \brief File of class to manage all object. Might be replace or merge into commonobject
- */
-
-require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
-
-// TODO Remove this class (used in Expensereportik and ExpenseReportRule
-/**
- * CoreObject
- */
-class CoreObject extends CommonObject
-{
- public $withChild = true;
-
- /**
- * @var Array $_fields Fields to synchronize with Database
- */
- protected $fields = array();
-
- /**
- * Constructor
- *
- * @param DoliDB $db Database handler
- */
- public function __construct(DoliDB &$db)
- {
- $this->db = $db;
- }
-
- /**
- * Function to init fields
- *
- * @return bool
- */
- protected function init()
- {
- $this->id = 0;
- $this->datec = 0;
- $this->tms = 0;
-
- if (!empty($this->fields)) {
- foreach ($this->fields as $field => $info) {
- if ($this->isDate($info)) {
- $this->{$field} = time();
- } elseif ($this->isArray($info)) {
- $this->{$field} = array();
- } elseif ($this->isInt($info)) {
- $this->{$field} = (int) 0;
- } elseif ($this->isFloat($info)) {
- $this->{$field} = (double) 0;
- } else {
- $this->{$field} = '';
- }
- }
-
- $this->to_delete = false;
- $this->is_clone = false;
-
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * Test type of field
- *
- * @param string $field name of field
- * @param string $type type of field to test
- * @return boolean value of field or false
- */
- private function checkFieldType($field, $type)
- {
- if (isset($this->fields[$field]) && method_exists($this, 'is_'.$type)) {
- return $this->{'is_'.$type}($this->fields[$field]);
- } else {
- return false;
- }
- }
-
- /**
- * Get object and children from database
- *
- * @param int $id Id of object to load
- * @param bool $loadChild used to load children from database
- * @return int >0 if OK, <0 if KO, 0 if not found
- */
- public function fetch($id, $loadChild = true)
- {
- $res = $this->fetchCommon($id);
- if ($res > 0) {
- if ($loadChild) {
- $this->fetchChild();
- }
- }
-
- return $res;
- }
-
-
- /**
- * Function to instantiate a new child
- *
- * @param string $tabName Table name of child
- * @param int $id If id is given, we try to return his key if exist or load if we try_to_load
- * @param string $key Attribute name of the object id
- * @param bool $try_to_load Force the fetch if an id is given
- * @return int
- */
- public function addChild($tabName, $id = 0, $key = 'id', $try_to_load = false)
- {
- if (!empty($id)) {
- foreach ($this->{$tabName} as $k => &$object) {
- if ($object->{$key} === $id) {
- return $k;
- }
- }
- }
-
- $k = count($this->{$tabName});
-
- $className = ucfirst($tabName);
- $this->{$tabName}[$k] = new $className($this->db);
- if ($id > 0 && $key === 'id' && $try_to_load) {
- $this->{$tabName}[$k]->fetch($id);
- }
-
- return $k;
- }
-
-
- /**
- * Function to set a child as to delete
- *
- * @param string $tabName Table name of child
- * @param int $id Id of child to set as to delete
- * @param string $key Attribute name of the object id
- * @return bool
- */
- public function removeChild($tabName, $id, $key = 'id')
- {
- foreach ($this->{$tabName} as &$object) {
- if ($object->{$key} == $id) {
- $object->to_delete = true;
- return true;
- }
- }
- return false;
- }
-
-
- /**
- * Function to fetch children objects
- *
- * @return void
- */
- public function fetchChild()
- {
- if ($this->withChild && !empty($this->childtables) && !empty($this->fk_element)) {
- foreach ($this->childtables as &$childTable) {
- $className = ucfirst($childTable);
-
- $this->{$className} = array();
-
- $sql = "SELECT rowid FROM ".$this->db->prefix().$childTable." WHERE ".$this->fk_element." = ".((int) $this->id);
- $res = $this->db->query($sql);
-
- if ($res) {
- while ($obj = $this->db->fetch_object($res)) {
- $o = new $className($this->db);
- $o->fetch($obj->rowid);
-
- $this->{$className}[] = $o;
- }
- } else {
- $this->errors[] = $this->db->lasterror();
- }
- }
- }
- }
-
- /**
- * Function to update children data
- *
- * @param User $user user object
- * @return void
- */
- public function saveChild(User &$user)
- {
- if ($this->withChild && !empty($this->childtables) && !empty($this->fk_element)) {
- foreach ($this->childtables as &$childTable) {
- $className = ucfirst($childTable);
- if (!empty($this->{$className})) {
- foreach ($this->{$className} as $i => &$object) {
- $object->{$this->fk_element} = $this->id;
-
- $object->update($user);
- if ($this->unsetChildDeleted && isset($object->to_delete) && $object->to_delete == true) {
- unset($this->{$className}[$i]);
- }
- }
- }
- }
- }
- }
-
-
- /**
- * Function to update object or create or delete if needed
- *
- * @param User $user User object
- * @return int < 0 if KO, > 0 if OK
- */
- public function update(User &$user)
- {
- if (empty($this->id)) {
- return $this->create($user); // To test, with that, no need to test on high level object, the core decide it, update just needed
- } elseif (isset($this->to_delete) && $this->to_delete == true) {
- return $this->delete($user);
- }
-
- $error = 0;
- $this->db->begin();
-
- $res = $this->updateCommon($user);
- if ($res) {
- $result = $this->call_trigger(strtoupper($this->element).'_MODIFY', $user);
- if ($result < 0) {
- $error++;
- } else {
- $this->saveChild($user);
- }
- } else {
- $error++;
- $this->error = $this->db->lasterror();
- $this->errors[] = $this->error;
- }
-
- if (empty($error)) {
- $this->db->commit();
- return $this->id;
- } else {
- $this->db->rollback();
- return -1;
- }
- }
-
- /**
- * Function to create object in database
- *
- * @param User $user User object
- * @return int < 0 if KO, > 0 if OK
- */
- public function create(User $user)
- {
- if ($this->id > 0) {
- return $this->update($user);
- }
-
- $error = 0;
- $this->db->begin();
-
- $res = $this->createCommon($user);
- if ($res) {
- $this->id = $this->db->last_insert_id($this->table_element);
-
- $result = $this->call_trigger(strtoupper($this->element).'_CREATE', $user);
- if ($result < 0) {
- $error++;
- } else {
- $this->saveChild($user);
- }
- } else {
- $error++;
- $this->error = $this->db->lasterror();
- $this->errors[] = $this->error;
- }
-
- if (empty($error)) {
- $this->db->commit();
- return $this->id;
- } else {
- $this->db->rollback();
- return -1;
- }
- }
-
- /**
- * Function to delete object in database
- *
- * @param User $user user object
- * @return int < 0 if KO, > 0 if OK
- */
- public function delete(User &$user)
- {
- if ($this->id <= 0) {
- return 0;
- }
-
- $error = 0;
- $this->db->begin();
-
- $result = $this->call_trigger(strtoupper($this->element).'_DELETE', $user);
- if ($result < 0) {
- $error++;
- }
-
- if (!$error) {
- $this->deleteCommon($user);
- if ($this->withChild && !empty($this->childtables)) {
- foreach ($this->childtables as &$childTable) {
- $className = ucfirst($childTable);
- if (!empty($this->{$className})) {
- foreach ($this->{$className} as &$object) {
- $object->delete($user);
- }
- }
- }
- }
- }
-
- if (empty($error)) {
- $this->db->commit();
- return 1;
- } else {
- $this->error = $this->db->lasterror();
- $this->errors[] = $this->error;
- $this->db->rollback();
- return -1;
- }
- }
-
-
- /**
- * Function to get a formatted date
- *
- * @param string $field Attribute to return
- * @param string $format Output date format
- * @return string
- */
- public function getDate($field, $format = '')
- {
- if (empty($this->{$field})) {
- return '';
- } else {
- return dol_print_date($this->{$field}, $format);
- }
- }
-
- /**
- * Function to set date in field
- *
- * @param string $field field to set
- * @param string $date formatted date to convert
- * @return mixed
- */
- public function setDate($field, $date)
- {
- if (empty($date)) {
- $this->{$field} = 0;
- } else {
- require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
- $this->{$field} = dol_stringtotime($date);
- }
-
- return $this->{$field};
- }
-
-
- /**
- * Function to update current object
- *
- * @param array $Tab Array of values
- * @return int
- */
- public function setValues(&$Tab)
- {
- foreach ($Tab as $key => $value) {
- if ($this->checkFieldType($key, 'date')) {
- $this->setDate($key, $value);
- } elseif ($this->checkFieldType($key, 'float')) {
- $this->{$key} = (double) price2num($value);
- } elseif ($this->checkFieldType($key, 'int')) {
- $this->{$key} = (int) price2num($value);
- } else {
- $this->{$key} = dol_string_nohtmltag($value);
- }
- }
-
- return 1;
- }
-}
diff --git a/htdocs/core/customreports.php b/htdocs/core/customreports.php
index ace78c5199a..476b1d5a4da 100644
--- a/htdocs/core/customreports.php
+++ b/htdocs/core/customreports.php
@@ -465,7 +465,7 @@ print '';
$count = 0;
print '
';
print '
';
-print $formother->selectGroupByField($object, $search_groupby, $arrayofgroupby, 'minwidth200 maxwidth250', $langs->trans("GroupBy")); // Fill the array $arrayofgroupby with possible fields
+print $formother->selectGroupByField($object, $search_groupby, $arrayofgroupby, 'minwidth250 maxwidth300', $langs->trans("GroupBy")); // Fill the array $arrayofgroupby with possible fields
print '
';
diff --git a/htdocs/core/db/sqlite3.class.php b/htdocs/core/db/sqlite3.class.php
index 10f9c021c0d..7aabf0eace7 100644
--- a/htdocs/core/db/sqlite3.class.php
+++ b/htdocs/core/db/sqlite3.class.php
@@ -1026,7 +1026,7 @@ class DoliDBSqlite3 extends DoliDB
*
* @param string $table Name of table
* @param string $field Optionnel : Name of field if we want description of field
- * @return SQLite3Result Resource
+ * @return bool|SQLite3Result Resource
*/
public function DDLDescTable($table, $field = "")
{
diff --git a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php
index efc061b9e67..cc2d3f57052 100644
--- a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php
+++ b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php
@@ -120,7 +120,7 @@ class pdf_espadon extends ModelePdfExpedition
*
* @param DoliDB $db Database handler
*/
- public function __construct($db = 0)
+ public function __construct($db)
{
global $conf, $langs, $mysoc;
diff --git a/htdocs/expensereport/class/expensereport_ik.class.php b/htdocs/expensereport/class/expensereport_ik.class.php
index 53cf3695b12..49ac0af9857 100644
--- a/htdocs/expensereport/class/expensereport_ik.class.php
+++ b/htdocs/expensereport/class/expensereport_ik.class.php
@@ -22,12 +22,12 @@
* \brief File of class to manage expense ik
*/
-require_once DOL_DOCUMENT_ROOT.'/core/class/coreobject.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
/**
* Class to manage inventories
*/
-class ExpenseReportIk extends CoreObject
+class ExpenseReportIk extends CommonObject
{
/**
* @var string ID to identify managed object
@@ -68,6 +68,7 @@ class ExpenseReportIk extends CoreObject
*/
public $ikoffset;
+
/**
* Attribute object linked with database
* @var array
@@ -80,17 +81,75 @@ class ExpenseReportIk extends CoreObject
,'ikoffset'=>array('type'=>'double')
);
+
/**
* Constructor
*
* @param DoliDB $db Database handler
*/
- public function __construct(DoliDB &$db)
+ public function __construct(DoliDB $db)
{
- parent::__construct($db);
- parent::init();
+ $this->db = $db;
+ }
- $this->errors = array();
+
+ /**
+ * Create object into database
+ *
+ * @param User $user User that creates
+ * @param bool $notrigger false=launch triggers after, true=disable triggers
+ * @return int <0 if KO, Id of created object if OK
+ */
+ public function create(User $user, $notrigger = false)
+ {
+ $resultcreate = $this->createCommon($user, $notrigger);
+
+ //$resultvalidate = $this->validate($user, $notrigger);
+
+ return $resultcreate;
+ }
+
+
+ /**
+ * Load object in memory from the database
+ *
+ * @param int $id Id object
+ * @param string $ref Ref
+ * @return int <0 if KO, 0 if not found, >0 if OK
+ */
+ public function fetch($id, $ref = null)
+ {
+ $result = $this->fetchCommon($id, $ref);
+ if ($result > 0 && !empty($this->table_element_line)) {
+ $this->fetchLines();
+ }
+ return $result;
+ }
+
+
+ /**
+ * Update object into database
+ *
+ * @param User $user User that modifies
+ * @param bool $notrigger false=launch triggers after, true=disable triggers
+ * @return int <0 if KO, >0 if OK
+ */
+ public function update(User $user, $notrigger = false)
+ {
+ return $this->updateCommon($user, $notrigger);
+ }
+
+ /**
+ * Delete object in database
+ *
+ * @param User $user User that deletes
+ * @param bool $notrigger false=launch triggers after, true=disable triggers
+ * @return int <0 if KO, >0 if OK
+ */
+ public function delete(User $user, $notrigger = false)
+ {
+ return $this->deleteCommon($user, $notrigger);
+ //return $this->deleteCommon($user, $notrigger, 1);
}
diff --git a/htdocs/expensereport/class/expensereport_rule.class.php b/htdocs/expensereport/class/expensereport_rule.class.php
index ae89b4b0f51..02bf8b8ce5c 100644
--- a/htdocs/expensereport/class/expensereport_rule.class.php
+++ b/htdocs/expensereport/class/expensereport_rule.class.php
@@ -22,12 +22,12 @@
* \brief File of class to manage expense ik
*/
-require_once DOL_DOCUMENT_ROOT.'/core/class/coreobject.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
/**
* Class to manage inventories
*/
-class ExpenseReportRule extends CoreObject
+class ExpenseReportRule extends CommonObject
{
/**
* @var string ID to identify managed object
@@ -125,21 +125,78 @@ class ExpenseReportRule extends CoreObject
,'entity'=>array('type'=>'integer')
);
+
/**
* Constructor
*
* @param DoliDB $db Database handler
*/
- public function __construct(DoliDB &$db)
+ public function __construct(DoliDB $db)
{
- global $conf;
-
- parent::__construct($db);
- parent::init();
-
- $this->errors = array();
+ $this->db = $db;
}
+
+ /**
+ * Create object into database
+ *
+ * @param User $user User that creates
+ * @param bool $notrigger false=launch triggers after, true=disable triggers
+ * @return int <0 if KO, Id of created object if OK
+ */
+ public function create(User $user, $notrigger = false)
+ {
+ $resultcreate = $this->createCommon($user, $notrigger);
+
+ //$resultvalidate = $this->validate($user, $notrigger);
+
+ return $resultcreate;
+ }
+
+
+ /**
+ * Load object in memory from the database
+ *
+ * @param int $id Id object
+ * @param string $ref Ref
+ * @return int <0 if KO, 0 if not found, >0 if OK
+ */
+ public function fetch($id, $ref = null)
+ {
+ $result = $this->fetchCommon($id, $ref);
+ if ($result > 0 && !empty($this->table_element_line)) {
+ $this->fetchLines();
+ }
+ return $result;
+ }
+
+
+ /**
+ * Update object into database
+ *
+ * @param User $user User that modifies
+ * @param bool $notrigger false=launch triggers after, true=disable triggers
+ * @return int <0 if KO, >0 if OK
+ */
+ public function update(User $user, $notrigger = false)
+ {
+ return $this->updateCommon($user, $notrigger);
+ }
+
+ /**
+ * Delete object in database
+ *
+ * @param User $user User that deletes
+ * @param bool $notrigger false=launch triggers after, true=disable triggers
+ * @return int <0 if KO, >0 if OK
+ */
+ public function delete(User $user, $notrigger = false)
+ {
+ return $this->deleteCommon($user, $notrigger);
+ //return $this->deleteCommon($user, $notrigger, 1);
+ }
+
+
/**
* Return all rules or filtered by something
*