25 require_once DOL_DOCUMENT_ROOT.
'/core/class/coreobject.class.php';
35 public $element=
'expenserule';
40 public $table_element=
'expensereport_rules';
45 public $fk_element=
'fk_expense_rule';
87 public $fk_c_type_fees;
93 public $code_expense_rules_type;
114 protected $fields=array(
115 'rowid'=>array(
'type'=>
'integer',
'index'=>
true)
116 ,
'dates'=>array(
'type'=>
'date')
117 ,
'datee'=>array(
'type'=>
'date')
118 ,
'amount'=>array(
'type'=>
'double')
119 ,
'restrictive'=>array(
'type'=>
'integer')
120 ,
'fk_user'=>array(
'type'=>
'integer')
121 ,
'fk_usergroup'=>array(
'type'=>
'integer')
122 ,
'fk_c_type_fees'=>array(
'type'=>
'integer')
123 ,
'code_expense_rules_type'=>array(
'type'=>
'string')
124 ,
'is_for_all'=>array(
'type'=>
'integer')
125 ,
'entity'=>array(
'type'=>
'integer')
137 parent::__construct($db);
140 $this->errors = array();
151 public static function getAllRule($fk_c_type_fees=
'', $date=
'', $fk_user=
'')
156 $sql =
'SELECT er.rowid';
157 $sql.=
' FROM '.MAIN_DB_PREFIX.
'expensereport_rules er';
158 $sql.=
' WHERE er.entity IN (0,'.
getEntity(
'').
')';
159 if (!empty($fk_c_type_fees))
161 $sql.=
' AND er.fk_c_type_fees IN (-1, '.$fk_c_type_fees.
')';
166 $sql.=
' AND er.dates <= \''.$date.
'\'';
167 $sql.=
' AND er.datee >= \''.$date.
'\'';
171 $sql.=
' AND (er.is_for_all = 1';
172 $sql.=
' OR er.fk_user = '.$fk_user;
173 $sql.=
' OR er.fk_usergroup IN (SELECT ugu.fk_usergroup FROM '.MAIN_DB_PREFIX.
'usergroup_user ugu WHERE ugu.fk_user = '.$fk_user.
') )';
175 $sql.=
' ORDER BY er.is_for_all, er.fk_usergroup, er.fk_user';
177 dol_syslog(
"ExpenseReportRule::getAllRule sql=".$sql);
179 $resql = $db->query($sql);
182 while ($obj = $db->fetch_object(
$resql))
185 if ($rule->fetch($obj->rowid) > 0) $rules[$rule->id] = $rule;
204 include_once DOL_DOCUMENT_ROOT.
'/user/class/usergroup.class.php';
206 if ($this->fk_usergroup > 0)
209 if ($group->fetch($this->fk_usergroup) > 0)
215 $this->error = $group->error;
216 $this->errors[] = $this->error;
230 include_once DOL_DOCUMENT_ROOT.
'/user/class/user.class.php';
232 if ($this->fk_user > 0)
234 $u =
new User($this->db);
235 if ($u->fetch($this->fk_user) > 0)
241 $this->error = $u->error;
242 $this->errors[] = $this->error;
if(! empty($conf->facture->enabled) && $user->rights->facture->lire) if(! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture->lire) if(! empty($conf->don->enabled) && $user->rights->societe->lire) if(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) if(! empty($conf->facture->enabled) &&! empty($conf->commande->enabled) && $user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) if(! empty($conf->facture->enabled) && $user->rights->facture->lire) if(! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture->lire) $resql
Social contributions to pay.
Class to manage inventories.
Class to manage Dolibarr users.
Class to manage Dolibarr database access.
Class to manage user groups.
dol_print_error($db='', $error='', $errors=null)
Affiche message erreur system avec toutes les informations pour faciliter le diagnostic et la remonte...
getGroupLabel()
Return the label of group for the current object.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='')
Write log message into outputs.
getEntity($element, $shared=1, $currentobject=null)
Get list of entity id to use.
__construct(DoliDB &$db)
Constructor.
dol_print_date($time, $format='', $tzoutput='tzserver', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
static getAllRule($fk_c_type_fees='', $date='', $fk_user='')
Return all rules or filtered by something.
getUserName()
Return the name of user for the current object.
dolGetFirstLastname($firstname, $lastname, $nameorder=-1)
Return firstname and lastname in correct order.