From eca010937f101c908aefab9d21951bf5711424c7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 4 Feb 2021 11:56:53 +0100 Subject: [PATCH] FIX Trigger on expense report was not fired FIX Bad dates on info tabs --- htdocs/admin/delais.php | 6 +++ htdocs/core/lib/functions2.lib.php | 12 ++--- htdocs/core/menus/standard/empty.php | 8 ++-- htdocs/expensereport/card.php | 44 ++++--------------- .../class/expensereport.class.php | 7 +-- htdocs/holiday/card.php | 8 ++-- .../mysql/data/llx_c_action_trigger.sql | 2 +- .../install/mysql/migration/12.0.0-13.0.0.sql | 9 +++- htdocs/langs/en_US/agenda.lang | 1 + 9 files changed, 42 insertions(+), 55 deletions(-) diff --git a/htdocs/admin/delais.php b/htdocs/admin/delais.php index d605f75c511..d214a585ab2 100644 --- a/htdocs/admin/delais.php +++ b/htdocs/admin/delais.php @@ -33,7 +33,9 @@ $langs->load("admin"); if (!$user->admin) accessforbidden(); $action = GETPOST('action', 'aZ09'); +if (empty($action)) $action = 'edit'; +// Define list of managed delays $modules = array( 'agenda' => array( array( @@ -190,6 +192,10 @@ if ($action == 'update') for ($i = 0; $i < 4; $i++) { if (GETPOSTISSET('MAIN_METEO'.$plus.'_LEVEL'.$i)) dolibarr_set_const($db, 'MAIN_METEO'.$plus.'_LEVEL'.$i, GETPOST('MAIN_METEO'.$plus.'_LEVEL'.$i, 'int'), 'chaine', 0, '', $conf->entity); } + + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); + + $action = 'edit'; } diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index ffc79b8f4b4..fcac069183e 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -315,7 +315,7 @@ function dol_print_object_info($object, $usetable = 0) if ($usetable) print ''; else print ': '; print dol_print_date($object->date_validation, 'dayhour', 'tzserver'); - if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_validation, "dayhour", 'tzserver').'  '.$langs->trans("ClientHour"); + if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_validation, "dayhour", 'tzuserrel').'  '.$langs->trans("ClientHour"); if ($usetable) print ''; else print '
'; } @@ -349,7 +349,7 @@ function dol_print_object_info($object, $usetable = 0) if ($usetable) print ''; else print ': '; print dol_print_date($object->date_approve, 'dayhour', 'tzserver'); - if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_approve, "dayhour", 'tzserver').'  '.$langs->trans("ClientHour"); + if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_approve, "dayhour", 'tzuserrel').'  '.$langs->trans("ClientHour"); if ($usetable) print ''; else print '
'; } @@ -377,7 +377,7 @@ function dol_print_object_info($object, $usetable = 0) if ($usetable) print ''; else print ': '; print dol_print_date($object->date_approve2, 'dayhour', 'tzserver'); - if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_approve2, "dayhour", 'tzserver').'  '.$langs->trans("ClientHour"); + if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_approve2, "dayhour", 'tzuserrel').'  '.$langs->trans("ClientHour"); if ($usetable) print ''; else print '
'; } @@ -413,7 +413,7 @@ function dol_print_object_info($object, $usetable = 0) if ($usetable) print ''; else print ': '; print dol_print_date($object->date_closing, 'dayhour', 'tzserver'); - if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_closing, "dayhour", 'tzserver').'  '.$langs->trans("ClientHour"); + if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_closing, "dayhour", 'tzuserrel').'  '.$langs->trans("ClientHour"); if ($usetable) print ''; else print '
'; } @@ -447,7 +447,7 @@ function dol_print_object_info($object, $usetable = 0) if ($usetable) print ''; else print ': '; print dol_print_date($object->date_rappro, 'dayhour', 'tzserver'); - if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_rappro, "dayhour", 'tzserver').'  '.$langs->trans("ClientHour"); + if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_rappro, "dayhour", 'tzuserrel').'  '.$langs->trans("ClientHour"); if ($usetable) print ''; else print '
'; } @@ -460,7 +460,7 @@ function dol_print_object_info($object, $usetable = 0) if ($usetable) print ''; else print ': '; print dol_print_date($object->date_envoi, 'dayhour', 'tzserver'); - if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_envoi, "dayhour", 'tzserver').'  '.$langs->trans("ClientHour"); + if ($deltadateforuser) print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_envoi, "dayhour", 'tzuserrel').'  '.$langs->trans("ClientHour"); if ($usetable) print ''; else print '
'; } diff --git a/htdocs/core/menus/standard/empty.php b/htdocs/core/menus/standard/empty.php index 1ab7778bb01..5ab8ff24f9f 100644 --- a/htdocs/core/menus/standard/empty.php +++ b/htdocs/core/menus/standard/empty.php @@ -198,8 +198,8 @@ class MenuManager $submenu->add("/admin/translation.php?mainmenu=home", $langs->trans("Translation"), 1); $submenu->add("/admin/defaultvalues.php?mainmenu=home", $langs->trans("DefaultValues"), 1); - $submenu->add("/admin/boxes.php", $langs->trans("Boxes"), 1); - $submenu->add("/admin/delais.php", $langs->trans("Alerts"), 1); + $submenu->add("/admin/boxes.php?mainmenu=home", $langs->trans("Boxes"), 1); + $submenu->add("/admin/delais.php?mainmenu=home", $langs->trans("Alerts"), 1); $submenu->add("/admin/proxy.php?mainmenu=home", $langs->trans("Security"), 1); $submenu->add("/admin/limits.php?mainmenu=home", $langs->trans("MenuLimits"), 1); $submenu->add("/admin/pdf.php?mainmenu=home", $langs->trans("PDF"), 1); @@ -340,8 +340,8 @@ class MenuManager $this->menu->add("/admin/translation.php?mainmenu=home", $langs->trans("Translation"), 1); $this->menu->add("/admin/defaultvalues.php?mainmenu=home", $langs->trans("DefaultValues"), 1); - $this->menu->add("/admin/boxes.php", $langs->trans("Boxes"), 1); - $this->menu->add("/admin/delais.php", $langs->trans("Alerts"), 1); + $this->menu->add("/admin/boxes.php?mainmenu=home", $langs->trans("Boxes"), 1); + $this->menu->add("/admin/delais.php?mainmenu=home", $langs->trans("Alerts"), 1); $this->menu->add("/admin/proxy.php?mainmenu=home", $langs->trans("Security"), 1); $this->menu->add("/admin/limits.php?mainmenu=home", $langs->trans("MenuLimits"), 1); $this->menu->add("/admin/pdf.php?mainmenu=home", $langs->trans("PDF"), 1); diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 83e1173fcb4..c7efc735051 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -976,34 +976,6 @@ if (empty($reshook)) } } - if ($action == 'set_unpaid' && $id > 0 && $user->rights->expensereport->to_paid) - { - $object = new ExpenseReport($db); - $object->fetch($id); - - $result = $object->set_unpaid($user); - - if ($result > 0) - { - // Define output language - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - $outputlangs = $langs; - $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (!empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - } - $model = $object->model_pdf; - $ret = $object->fetch($id); // Reload to get new records - - $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - } - } - if ($action == 'set_paid' && $id > 0 && $user->rights->expensereport->to_paid) { $object = new ExpenseReport($db); @@ -1492,8 +1464,7 @@ if ($action == 'create') print ''; } else { - if ($id > 0 || $ref) - { + if ($id > 0 || $ref) { $result = $object->fetch($id, $ref); $res = $object->fetch_optionals(); @@ -1755,6 +1726,7 @@ if ($action == 'create') } print ''; + // Period print ''; print ''.$langs->trans("Period").''; print ''; @@ -1772,9 +1744,9 @@ if ($action == 'create') // Validation date print ''; print ''.$langs->trans("DATE_SAVE").''; - print ''.dol_print_date($object->date_valid, 'dayhour'); - if ($object->status == 2 && $object->hasDelay('toapprove')) print ' '.img_warning($langs->trans("Late")); - if ($object->status == 5 && $object->hasDelay('topay')) print ' '.img_warning($langs->trans("Late")); + print ''.dol_print_date($object->date_valid, 'dayhour', 'tzuser'); + if ($object->status == 2 && $object->hasDelay('toapprove')) print ' '.img_warning($langs->trans("Late").' - '.$langs->trans("ToApprove")); + if ($object->status == 5 && $object->hasDelay('topay')) print ' '.img_warning($langs->trans("Late").' - '.$langs->trans("ToPay")); print ''; print ''; @@ -1815,7 +1787,7 @@ if ($action == 'create') print ''; print ''; print ''.$langs->trans("DATE_CANCEL").''; - print ''.dol_print_date($object->date_cancel, 'dayhour').''; + print ''.dol_print_date($object->date_cancel, 'dayhour', 'tzuser').''; print ''; } else { print ''; @@ -1831,7 +1803,7 @@ if ($action == 'create') print ''; print ''.$langs->trans("DateApprove").''; - print ''.dol_print_date($object->date_approve, 'dayhour').''; + print ''.dol_print_date($object->date_approve, 'dayhour', 'tzuser').''; print ''; } @@ -1847,7 +1819,7 @@ if ($action == 'create') print ''; print ''.$langs->trans("DATE_REFUS").''; - print ''.dol_print_date($object->date_refuse, 'dayhour'); + print ''.dol_print_date($object->date_refuse, 'dayhour', 'tzuser'); if ($object->detail_refuse) print ' - '.$object->detail_refuse; print ''; print ''; diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index ad55ec4b537..31c48d790f4 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -2454,10 +2454,11 @@ class ExpenseReport extends CommonObject if ($option == 'topay' && $this->status != 5) return false; $now = dol_now(); - if ($option == 'toapprove') - { + if ($option == 'toapprove') { return ($this->datevalid ? $this->datevalid : $this->date_valid) < ($now - $conf->expensereport->approve->warning_delay); - } else return ($this->datevalid ? $this->datevalid : $this->date_valid) < ($now - $conf->expensereport->payment->warning_delay); + } else { + return ($this->datevalid ? $this->datevalid : $this->date_valid) < ($now - $conf->expensereport->payment->warning_delay); + } } /** diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index 09165ee89d1..bbd5a1ac9d4 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -1369,24 +1369,24 @@ if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') print ''; print ''.$langs->trans('DateCreation').''; - print ''.dol_print_date($object->date_create, 'dayhour').''; + print ''.dol_print_date($object->date_create, 'dayhour', 'tzuser').''; print ''; if ($object->statut == Holiday::STATUS_APPROVED || $object->statut == Holiday::STATUS_CANCELED) { print ''; print ''.$langs->trans('DateValidCP').''; - print ''.dol_print_date($object->date_valid, 'dayhour').''; // warning: date_valid is approval date on holiday module + print ''.dol_print_date($object->date_valid, 'dayhour', 'tzuser').''; // warning: date_valid is approval date on holiday module print ''; } if ($object->statut == Holiday::STATUS_CANCELED) { print ''; print ''.$langs->trans('DateCancelCP').''; - print ''.dol_print_date($object->date_cancel, 'dayhour').''; + print ''.dol_print_date($object->date_cancel, 'dayhour', 'tzuser').''; print ''; } if ($object->statut == Holiday::STATUS_REFUSED) { print ''; print ''.$langs->trans('DateRefusCP').''; - print ''.dol_print_date($object->date_refuse, 'dayhour').''; + print ''.dol_print_date($object->date_refuse, 'dayhour', 'tzuser').''; print ''; } print ''; diff --git a/htdocs/install/mysql/data/llx_c_action_trigger.sql b/htdocs/install/mysql/data/llx_c_action_trigger.sql index 7390c3234a5..05e52c85e4b 100644 --- a/htdocs/install/mysql/data/llx_c_action_trigger.sql +++ b/htdocs/install/mysql/data/llx_c_action_trigger.sql @@ -102,7 +102,7 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_PAID','Expense report billed','Executed when an expense report is set as billed','expensereport',204); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',205); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',205); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',211); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',212); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_VALIDATE','Project validation','Executed when a project is validated','project',141); diff --git a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql index cc484477ab6..f75ef8adee6 100644 --- a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql +++ b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql @@ -565,5 +565,12 @@ ALTER TABLE llx_product_fournisseur_price ADD COLUMN packaging varchar(64); ALTER TABLE llx_projet ADD COLUMN fk_opp_status_end integer DEFAULT NULL; - +UPDATE llx_c_action_trigger SET elementtype = 'expensereport' where elementtype = 'expense_report' AND code like 'EXPENSE_%'; UPDATE llx_c_action_trigger SET code = 'EXPENSE_REPORT_PAID' where code = 'EXPENSE_REPORT_PAYED'; +UPDATE llx_c_action_trigger SET code = 'EXPENSE_REPORT_DELETE' where code = 'EXPENSE_DELETE'; +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expensereport',201); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_PAID','Expense report billed','Executed when an expense report is set as billed','expensereport',204); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',205); + diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 8971e80a8f8..33e0c01aad6 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -119,6 +119,7 @@ MRP_MO_UNVALIDATEInDolibarr=MO set to draft status MRP_MO_PRODUCEDInDolibarr=MO produced MRP_MO_DELETEInDolibarr=MO deleted MRP_MO_CANCELInDolibarr=MO canceled +PAIDInDolibarr=%s paid ##### End agenda events ##### AgendaModelModule=Document templates for event DateActionStart=Start date