diff --git a/htdocs/admin/expensereport_rules.php b/htdocs/admin/expensereport_rules.php
index 77fb8f24f82..ce88700ad81 100644
--- a/htdocs/admin/expensereport_rules.php
+++ b/htdocs/admin/expensereport_rules.php
@@ -38,169 +38,179 @@ if (!$user->admin) {
accessforbidden();
}
-//Init error
-$error = false;
-$message = false;
+// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
+$hookmanager->initHooks(array('admin', 'dictionaryadmin','expensereport_rules'));
-$action = GETPOST('action', 'aZ09');
-$id = GETPOST('id', 'int');
-$apply_to = GETPOST('apply_to');
-$fk_user = GETPOST('fk_user', 'int');
-$fk_usergroup = GETPOST('fk_usergroup', 'int');
-
-$fk_c_type_fees = GETPOST('fk_c_type_fees');
-$code_expense_rules_type = GETPOST('code_expense_rules_type');
-$dates = dol_mktime(12, 0, 0, GETPOST('startmonth'), GETPOST('startday'), GETPOST('startyear'));
-$datee = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear'));
-$amount = GETPOST('amount');
-
-$object = new ExpenseReportRule($db);
-if (!empty($id)) {
- $result = $object->fetch($id);
- if ($result < 0) {
- dol_print_error('', $object->error, $object->errors);
- }
+$parameters = array();
+$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
+if ($reshook < 0) {
+ setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
}
-// TODO do action
-if ($action == 'save') {
- $error = 0;
+if (empty($reshook)) {
+ //Init error
+ $error = false;
+ $message = false;
- // check parameters
- if (empty($apply_to)) {
- $error++;
- setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportApplyTo")), null, 'errors');
- }
- if (empty($fk_c_type_fees)) {
- $error++;
- setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportDomain")), null, 'errors');
- }
- if (empty($code_expense_rules_type)) {
- $error++;
- setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportLimitOn")), null, 'errors');
- }
- if (empty($dates)) {
- $error++;
- setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportDateStart")), null, 'errors');
- }
- if (empty($datee)) {
- $error++;
- setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportDateEnd")), null, 'errors');
- }
- if (empty($amount)) {
- $error++;
- setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportLimitAmount")), null, 'errors');
- }
+ $action = GETPOST('action', 'aZ09');
+ $id = GETPOST('id', 'int');
- if (empty($error)) {
- $object->setValues($_POST);
+ $apply_to = GETPOST('apply_to');
+ $fk_user = GETPOST('fk_user', 'int');
+ $fk_usergroup = GETPOST('fk_usergroup', 'int');
- if ($apply_to == 'U') {
- $object->fk_user = (int) $fk_user;
- $object->fk_usergroup = 0;
- $object->is_for_all = 0;
- } elseif ($apply_to == 'G') {
- $object->fk_usergroup = (int) $fk_usergroup;
- $object->fk_user = 0;
- $object->is_for_all = 0;
- } elseif ($apply_to == 'A') {
- $object->is_for_all = 1;
- $object->fk_user = 0;
- $object->fk_usergroup = 0;
+ $fk_c_type_fees = GETPOST('fk_c_type_fees');
+ $code_expense_rules_type = GETPOST('code_expense_rules_type');
+ $dates = dol_mktime(12, 0, 0, GETPOST('startmonth'), GETPOST('startday'), GETPOST('startyear'));
+ $datee = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear'));
+ $amount = GETPOST('amount');
+
+ $object = new ExpenseReportRule($db);
+ if (!empty($id)) {
+ $result = $object->fetch($id);
+ if ($result < 0) {
+ dol_print_error('', $object->error, $object->errors);
+ }
+ }
+ // TODO do action
+ if ($action == 'save') {
+ $error = 0;
+
+ // check parameters
+ if (empty($apply_to)) {
+ $error++;
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportApplyTo")), null, 'errors');
+ }
+ if (empty($fk_c_type_fees)) {
+ $error++;
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportDomain")), null, 'errors');
+ }
+ if (empty($code_expense_rules_type)) {
+ $error++;
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportLimitOn")), null, 'errors');
+ }
+ if (empty($dates)) {
+ $error++;
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportDateStart")), null, 'errors');
+ }
+ if (empty($datee)) {
+ $error++;
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportDateEnd")), null, 'errors');
+ }
+ if (empty($amount)) {
+ $error++;
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportLimitAmount")), null, 'errors');
}
- $object->dates = $dates;
- $object->datee = $datee;
+ if (empty($error)) {
+ $object->setValues($_POST);
- $object->entity = $conf->entity;
+ if ($apply_to == 'U') {
+ $object->fk_user = (int) $fk_user;
+ $object->fk_usergroup = 0;
+ $object->is_for_all = 0;
+ } elseif ($apply_to == 'G') {
+ $object->fk_usergroup = (int) $fk_usergroup;
+ $object->fk_user = 0;
+ $object->is_for_all = 0;
+ } elseif ($apply_to == 'A') {
+ $object->is_for_all = 1;
+ $object->fk_user = 0;
+ $object->fk_usergroup = 0;
+ }
- $res = $object->create($user);
- if ($res > 0) {
- setEventMessages($langs->trans('ExpenseReportRuleSave'), null);
- } else {
+ $object->dates = $dates;
+ $object->datee = $datee;
+
+ $object->entity = $conf->entity;
+
+ $res = $object->create($user);
+ if ($res > 0) {
+ setEventMessages($langs->trans('ExpenseReportRuleSave'), null);
+ } else {
+ dol_print_error($object->db);
+ }
+
+ header('Location: ' . $_SERVER['PHP_SELF']);
+ exit;
+ }
+ } elseif ($action == 'delete') {
+ // TODO add confirm
+ $res = $object->delete($user);
+
+ if ($res < 0) {
dol_print_error($object->db);
}
- header('Location: '.$_SERVER['PHP_SELF']);
+ header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
-} elseif ($action == 'delete') {
- // TODO add confirm
- $res = $object->delete($user);
- if ($res < 0) {
- dol_print_error($object->db);
- }
+ $rules = $object->getAllRule();
+
+ $tab_apply = array(
+ 'A' => $langs->trans('All'),
+ 'G' => $langs->trans('Group'),
+ 'U' => $langs->trans('User')
+ );
+ $tab_rules_type = array(
+ 'EX_DAY' => $langs->trans('Day'),
+ 'EX_MON' => $langs->trans('Month'),
+ 'EX_YEA' => $langs->trans('Year'),
+ 'EX_EXP' => $langs->trans('OnExpense')
+ );
- header('Location: '.$_SERVER['PHP_SELF']);
- exit;
}
+ /*
+ * View
+ */
-$rules = $object->getAllRule();
+ llxHeader('', $langs->trans("ExpenseReportsSetup"));
-$tab_apply = array(
- 'A' => $langs->trans('All'),
- 'G' => $langs->trans('Group'),
- 'U' => $langs->trans('User')
-);
-$tab_rules_type = array(
- 'EX_DAY' => $langs->trans('Day'),
- 'EX_MON' => $langs->trans('Month'),
- 'EX_YEA' => $langs->trans('Year'),
- 'EX_EXP' => $langs->trans('OnExpense')
-);
+ $form = new Form($db);
+ $linkback = '' . $langs->trans("BackToModuleList") . '';
+ print load_fiche_titre($langs->trans("ExpenseReportsSetup"), $linkback, 'title_setup');
-/*
- * View
- */
+ $head = expensereport_admin_prepare_head();
+ print dol_get_fiche_head($head, 'expenserules', $langs->trans("ExpenseReportsRules"), -1, 'trip');
-llxHeader('', $langs->trans("ExpenseReportsSetup"));
-
-$form = new Form($db);
-
-$linkback = ''.$langs->trans("BackToModuleList").'';
-print load_fiche_titre($langs->trans("ExpenseReportsSetup"), $linkback, 'title_setup');
-
-$head = expensereport_admin_prepare_head();
-print dol_get_fiche_head($head, 'expenserules', $langs->trans("ExpenseReportsRules"), -1, 'trip');
-
-echo ''.$langs->trans('ExpenseReportRulesDesc').'';
-print '
';
+ echo '' . $langs->trans('ExpenseReportRulesDesc') . '';
+ print '
';
if ($action != 'edit') {
- echo '