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 '
'; - echo ''; + echo ''; + echo ''; echo ''; echo ''; echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; echo ''; echo ''; echo ''; echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; echo ''; echo '
'.$langs->trans('ExpenseReportApplyTo').''.$langs->trans('Type').''.$langs->trans('ExpenseReportLimitOn').''.$langs->trans('ExpenseReportDateStart').''.$langs->trans('ExpenseReportDateEnd').''.$langs->trans('ExpenseReportLimitAmount').''.$langs->trans('ExpenseReportRestrictive').'' . $langs->trans('ExpenseReportApplyTo') . '' . $langs->trans('Type') . '' . $langs->trans('ExpenseReportLimitOn') . '' . $langs->trans('ExpenseReportDateStart') . '' . $langs->trans('ExpenseReportDateEnd') . '' . $langs->trans('ExpenseReportLimitAmount') . '' . $langs->trans('ExpenseReportRestrictive') . ' 
'; - echo '
'.$form->selectarray('apply_to', $tab_apply, '', 0).'
'; - echo '
'.$form->select_dolusers('', 'fk_user').'
'; - echo '
'.$form->select_dolgroups('', 'fk_usergroup').'
'; + echo '
' . $form->selectarray('apply_to', $tab_apply, '', 0) . '
'; + echo '
' . $form->select_dolusers('', 'fk_user') . '
'; + echo '
' . $form->select_dolgroups('', 'fk_usergroup') . '
'; echo '
'.$form->selectExpense('', 'fk_c_type_fees', 0, 1, 1).''.$form->selectarray('code_expense_rules_type', $tab_rules_type, '', 0).''.$form->selectDate(strtotime(date('Y-m-01', dol_now())), 'start', '', '', 0, '', 1, 0).''.$form->selectDate(strtotime(date('Y-m-t', dol_now())), 'end', '', '', 0, '', 1, 0).' '.$conf->currency.''.$form->selectyesno('restrictive', 0, 1).'' . $form->selectExpense('', 'fk_c_type_fees', 0, 1, 1) . '' . $form->selectarray('code_expense_rules_type', $tab_rules_type, '', 0) . '' . $form->selectDate(strtotime(date('Y-m-01', dol_now())), 'start', '', '', 0, '', 1, 0) . '' . $form->selectDate(strtotime(date('Y-m-t', dol_now())), 'end', '', '', 0, '', 1, 0) . ' ' . $conf->currency . '' . $form->selectyesno('restrictive', 0, 1) . '
'; @@ -208,26 +218,26 @@ if ($action != 'edit') { } -echo ''; -echo ''; + echo ''; + echo ''; if ($action == 'edit') { - echo ''; + echo ''; echo ''; } -echo ''; + echo '
'; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; foreach ($rules as $rule) { echo ''; @@ -235,16 +245,16 @@ foreach ($rules as $rule) { echo ''; @@ -257,11 +267,11 @@ foreach ($rules as $rule) { if ($rule->fk_c_type_fees == -1) { echo $langs->trans('AllExpenseReport'); } else { - $key = getDictionaryValue(MAIN_DB_PREFIX.'c_type_fees', 'code', $rule->fk_c_type_fees, false, 'id'); + $key = getDictionaryValue(MAIN_DB_PREFIX . 'c_type_fees', 'code', $rule->fk_c_type_fees, false, 'id'); if ($key && $key != $langs->trans($key)) { echo $langs->trans($key); } else { - $value = getDictionaryValue(MAIN_DB_PREFIX.'c_type_fees', 'label', $rule->fk_c_type_fees, false, 'id'); + $value = getDictionaryValue(MAIN_DB_PREFIX . 'c_type_fees', 'label', $rule->fk_c_type_fees, false, 'id'); echo $langs->trans($value ? $value : 'Undefined'); // TODO check to return trans of 'code' } } @@ -298,7 +308,7 @@ foreach ($rules as $rule) { echo ''; @@ -328,10 +338,10 @@ foreach ($rules as $rule) { } -echo '
'.$langs->trans('ExpenseReportApplyTo').''.$langs->trans('Type').''.$langs->trans('ExpenseReportLimitOn').''.$langs->trans('ExpenseReportDateStart').''.$langs->trans('ExpenseReportDateEnd').''.$langs->trans('ExpenseReportLimitAmount').''.$langs->trans('ExpenseReportRestrictive').' 
' . $langs->trans('ExpenseReportApplyTo') . '' . $langs->trans('Type') . '' . $langs->trans('ExpenseReportLimitOn') . '' . $langs->trans('ExpenseReportDateStart') . '' . $langs->trans('ExpenseReportDateEnd') . '' . $langs->trans('ExpenseReportLimitAmount') . '' . $langs->trans('ExpenseReportRestrictive') . ' 
'; if ($action == 'edit' && $object->id == $rule->id) { $selected = ($object->is_for_all > 0) ? 'A' : ($object->fk_usergroup > 0 ? 'G' : 'U'); - echo '
'.$form->selectarray('apply_to', $tab_apply, $selected, 0).'
'; - echo '
'.$form->select_dolusers($object->fk_user, 'fk_user').'
'; - echo '
'.$form->select_dolgroups($object->fk_usergroup, 'fk_usergroup').'
'; + echo '
' . $form->selectarray('apply_to', $tab_apply, $selected, 0) . '
'; + echo '
' . $form->select_dolusers($object->fk_user, 'fk_user') . '
'; + echo '
' . $form->select_dolgroups($object->fk_usergroup, 'fk_usergroup') . '
'; } else { if ($rule->is_for_all > 0) { echo $tab_apply['A']; } elseif ($rule->fk_usergroup > 0) { - echo $tab_apply['G'].' ('.$rule->getGroupLabel().')'; + echo $tab_apply['G'] . ' (' . $rule->getGroupLabel() . ')'; } elseif ($rule->fk_user > 0) { - echo $tab_apply['U'].' ('.$rule->getUserName().')'; + echo $tab_apply['U'] . ' (' . $rule->getUserName() . ')'; } } echo '
'; if ($action == 'edit' && $object->id == $rule->id) { - echo ''.$conf->currency; + echo '' . $conf->currency; } else { echo price($rule->amount, 0, $langs, 1, -1, -1, $conf->currency); } @@ -316,11 +326,11 @@ foreach ($rules as $rule) { echo ''; if ($object->id != $rule->id) { - echo ''.img_edit().' '; - echo ''.img_delete().''; + echo '' . img_edit() . ' '; + echo '' . img_delete() . ''; } else { - echo ' '; - echo ''.$langs->trans("Cancel").''; + echo ' '; + echo '' . $langs->trans("Cancel") . ''; } echo '
'; -echo '
'; + echo ''; + echo ''; -echo ''; + print dol_get_fiche_end(); // End of page diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index f9672f776e5..a9739989c41 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -7909,7 +7909,6 @@ function dol_htmloutput_events($disabledoutputofmessages = 0) } unset($_SESSION['dol_events']['mesgs']); } - // Show errors if (isset($_SESSION['dol_events']['errors'])) { if (empty($disabledoutputofmessages)) {