diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php
index e313c1207cb..8ebdfb37ce0 100644
--- a/htdocs/comm/action/index.php
+++ b/htdocs/comm/action/index.php
@@ -581,8 +581,16 @@ if (!empty($conf->use_javascript_ajax)) { // If javascript on
// Local calendar
$s .= '
'.$langs->trans("LocalAgenda").'
';
- // Holiday calendar
- $s .= '
';
+ if ($user->rights->holiday->read) {
+ // Holiday calendar
+ $s .= '
+
+
+
';
+ }
// External calendars
if (is_array($showextcals) && count($showextcals) > 0) {
@@ -996,76 +1004,78 @@ if ($showbirthday) {
}
}
-// LEAVE CALENDAR
-$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, u.statut, x.rowid, x.date_debut as date_start, x.date_fin as date_end, x.halfday, x.statut as status";
-$sql .= " FROM ".MAIN_DB_PREFIX."holiday as x, ".MAIN_DB_PREFIX."user as u";
-$sql .= " WHERE u.rowid = x.fk_user";
-$sql .= " AND u.statut = '1'"; // Show only active users (0 = inactive user, 1 = active user)
-$sql .= " AND (x.statut = '2' OR x.statut = '3')"; // Show only public leaves (2 = leave wait for approval, 3 = leave approved)
+if ($user->rights->holiday->read) {
+ // LEAVE CALENDAR
+ $sql = "SELECT u.rowid as uid, u.lastname, u.firstname, u.statut, x.rowid, x.date_debut as date_start, x.date_fin as date_end, x.halfday, x.statut as status";
+ $sql .= " FROM ".MAIN_DB_PREFIX."holiday as x, ".MAIN_DB_PREFIX."user as u";
+ $sql .= " WHERE u.rowid = x.fk_user";
+ $sql .= " AND u.statut = '1'"; // Show only active users (0 = inactive user, 1 = active user)
+ $sql .= " AND (x.statut = '2' OR x.statut = '3')"; // Show only public leaves (2 = leave wait for approval, 3 = leave approved)
-if ($mode == 'show_day') {
- // Request only leaves for the current selected day
- $sql .= " AND '".$db->escape($year)."-".$db->escape($month)."-".$db->escape($day)."' BETWEEN x.date_debut AND x.date_fin"; // date_debut and date_fin are date without time
-} elseif ($mode == 'show_week') {
- // TODO: Add filter to reduce database request
-} elseif ($mode == 'show_month') {
- // TODO: Add filter to reduce database request
-}
+ if ($mode == 'show_day') {
+ // Request only leaves for the current selected day
+ $sql .= " AND '".$db->escape($year)."-".$db->escape($month)."-".$db->escape($day)."' BETWEEN x.date_debut AND x.date_fin"; // date_debut and date_fin are date without time
+ } elseif ($mode == 'show_week') {
+ // TODO: Add filter to reduce database request
+ } elseif ($mode == 'show_month') {
+ // TODO: Add filter to reduce database request
+ }
-$resql = $db->query($sql);
-if ($resql) {
- $num = $db->num_rows($resql);
- $i = 0;
+ $resql = $db->query($sql);
+ if ($resql) {
+ $num = $db->num_rows($resql);
+ $i = 0;
- while ($i < $num) {
- $obj = $db->fetch_object($resql);
+ while ($i < $num) {
+ $obj = $db->fetch_object($resql);
- $event = new ActionComm($db);
+ $event = new ActionComm($db);
- // Need the id of the leave object for link to it
- $event->id = $obj->rowid;
- $event->ref = $event->id;
+ // Need the id of the leave object for link to it
+ $event->id = $obj->rowid;
+ $event->ref = $event->id;
- $event->type_code = 'HOLIDAY';
- $event->type_label = '';
- $event->type_color = '';
- $event->type = 'holiday';
- $event->type_picto = 'holiday';
+ $event->type_code = 'HOLIDAY';
+ $event->type_label = '';
+ $event->type_color = '';
+ $event->type = 'holiday';
+ $event->type_picto = 'holiday';
- $event->datep = $db->jdate($obj->date_start) + (empty($halfday) || $halfday == 1 ? 0 : 12 * 60 * 60 - 1);
- $event->datef = $db->jdate($obj->date_end) + (empty($halfday) || $halfday == -1 ? 24 : 12) * 60 * 60 - 1;
- $event->date_start_in_calendar = $event->datep;
- $event->date_end_in_calendar = $event->datef;
+ $event->datep = $db->jdate($obj->date_start) + (empty($halfday) || $halfday == 1 ? 0 : 12 * 60 * 60 - 1);
+ $event->datef = $db->jdate($obj->date_end) + (empty($halfday) || $halfday == -1 ? 24 : 12) * 60 * 60 - 1;
+ $event->date_start_in_calendar = $event->datep;
+ $event->date_end_in_calendar = $event->datef;
- if ($obj->status == 3) {
- // Show no symbol for leave with state "leave approved"
- $event->percentage = -1;
- } elseif ($obj->status == 2) {
- // Show TO-DO symbol for leave with state "leave wait for approval"
- $event->percentage = 0;
+ if ($obj->status == 3) {
+ // Show no symbol for leave with state "leave approved"
+ $event->percentage = -1;
+ } elseif ($obj->status == 2) {
+ // Show TO-DO symbol for leave with state "leave wait for approval"
+ $event->percentage = 0;
+ }
+
+ if ($obj->halfday == 1) {
+ $event->label = $obj->lastname.' ('.$langs->trans("Morning").')';
+ } elseif ($obj->halfday == -1) {
+ $event->label = $obj->lastname.' ('.$langs->trans("Afternoon").')';
+ } else {
+ $event->label = $obj->lastname;
+ }
+
+ $daycursor = $event->date_start_in_calendar;
+ $annee = dol_print_date($daycursor, '%Y', 'tzuserrel');
+ $mois = dol_print_date($daycursor, '%m', 'tzuserrel');
+ $jour = dol_print_date($daycursor, '%d', 'tzuserrel');
+
+ $daykey = dol_mktime(0, 0, 0, $mois, $jour, $annee, 'gmt');
+ do {
+ $eventarray[$daykey][] = $event;
+
+ $daykey += 60 * 60 * 24;
+ } while ($daykey <= $event->date_end_in_calendar);
+
+ $i++;
}
-
- if ($obj->halfday == 1) {
- $event->label = $obj->lastname.' ('.$langs->trans("Morning").')';
- } elseif ($obj->halfday == -1) {
- $event->label = $obj->lastname.' ('.$langs->trans("Afternoon").')';
- } else {
- $event->label = $obj->lastname;
- }
-
- $daycursor = $event->date_start_in_calendar;
- $annee = dol_print_date($daycursor, '%Y', 'tzuserrel');
- $mois = dol_print_date($daycursor, '%m', 'tzuserrel');
- $jour = dol_print_date($daycursor, '%d', 'tzuserrel');
-
- $daykey = dol_mktime(0, 0, 0, $mois, $jour, $annee, 'gmt');
- do {
- $eventarray[$daykey][] = $event;
-
- $daykey += 60 * 60 * 24;
- } while ($daykey <= $event->date_end_in_calendar);
-
- $i++;
}
}
diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php
index e5a7bb4134a..f08e81da95e 100644
--- a/htdocs/projet/tasks.php
+++ b/htdocs/projet/tasks.php
@@ -792,7 +792,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third
print '';
// Other options
- $parameters = array();
+ $parameters = array('arrayfields' => &$arrayfields);
$reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $taskstatic, $action); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
@@ -1066,7 +1066,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third
$j = 0; $level = 0;
$nboftaskshown = projectLinesa($j, 0, $tasksarray, $level, true, 0, $tasksrole, $object->id, 1, $object->id, $filterprogresscalc, ($object->usage_bill_time ? 1 : 0), $arrayfields);
} else {
- $colspan = 10;
+ $colspan = count($arrayfields);
if ($object->usage_bill_time) {
$colspan += 2;
}