From a8758fa5b75c3440f7270c516463d4f667c27bf8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@destailleur.fr> Date: Sat, 9 Jan 2016 01:54:10 +0100 Subject: [PATCH] Bug war week-end: Fix a duplicate page on holiday, fix missing badge on some documents tabs. --- htdocs/core/lib/holiday.lib.php | 13 +- htdocs/core/lib/member.lib.php | 9 +- htdocs/core/menus/init_menu_auguria.sql | 1 - htdocs/core/menus/standard/eldy.lib.php | 1 - htdocs/holiday/class/holiday.class.php | 8 +- htdocs/holiday/define_holiday.php | 12 +- htdocs/holiday/list.php | 8 +- htdocs/holiday/month_report.php | 156 ------------------------ htdocs/langs/en_US/holiday.lang | 2 +- 9 files changed, 40 insertions(+), 170 deletions(-) delete mode 100644 htdocs/holiday/month_report.php diff --git a/htdocs/core/lib/holiday.lib.php b/htdocs/core/lib/holiday.lib.php index 42551601524..ed4c6d874a3 100644 --- a/htdocs/core/lib/holiday.lib.php +++ b/htdocs/core/lib/holiday.lib.php @@ -39,10 +39,15 @@ function holiday_prepare_head($object) $head[$h][2] = 'card'; $h++; - $head[$h][0] = DOL_URL_ROOT.'/holiday/document.php?id='.$object->id; - $head[$h][1] = $langs->trans('Document'); - $head[$h][2] = 'documents'; - $h++; + // Attachments + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $upload_dir = $conf->holiday->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref); + $nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$')); + $head[$h][0] = DOL_URL_ROOT.'/holiday/document.php?id='.$object->id; + $head[$h][1] = $langs->trans('Documents'); + if($nbFiles > 0) $head[$h][1].= ' <span class="badge">'.$nbFiles.'</span>'; + $head[$h][2] = 'documents'; + $h++; // Show more tabs from modules // Entries must be declared in modules descriptor with line diff --git a/htdocs/core/lib/member.lib.php b/htdocs/core/lib/member.lib.php index 513a16a71f6..a295d433b6f 100644 --- a/htdocs/core/lib/member.lib.php +++ b/htdocs/core/lib/member.lib.php @@ -84,9 +84,14 @@ function member_prepare_head(Adherent $object) if ($nbNote > 0) $head[$h][1].= ' <span class="badge">'.$nbNote.'</span>'; $h++; + // Attachments + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $upload_dir = $conf->adherent->multidir_output[$object->entity].'/'.get_exdir($object->id,2,0,1,$object,'member').'/'.dol_sanitizeFileName($object->ref); + $nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$')); $head[$h][0] = DOL_URL_ROOT.'/adherents/document.php?id='.$object->id; - $head[$h][1] = $langs->trans("Documents"); - $head[$h][2] = 'document'; + $head[$h][1] = $langs->trans('Documents'); + if($nbFiles > 0) $head[$h][1].= ' <span class="badge">'.$nbFiles.'</span>'; + $head[$h][2] = 'documents'; $h++; $head[$h][0] = DOL_URL_ROOT.'/adherents/info.php?id='.$object->id; diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql index 9f583ed4c04..a1ae52859de 100644 --- a/htdocs/core/menus/init_menu_auguria.sql +++ b/htdocs/core/menus/init_menu_auguria.sql @@ -310,7 +310,6 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5003__+MAX_llx_menu__, 'hrm', '', 5002__+MAX_llx_menu__, '/holiday/list.php?select_statut=2&leftmenu=hrm', 'ListToApprove', 2, 'trips', '$user->rights->holiday->read', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5004__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/define_holiday.php?&action=request', 'MenuConfCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5005__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/view_log.php?&action=request', 'MenuLogCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 3, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5006__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/month_report.php?&action=request', 'MenuReportMonth', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 4, __ENTITY__); -- HRM - Expense reports insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2100__+MAX_llx_menu__, 'accountancy', 'tripsandexpenses', 15__+MAX_llx_menu__, '/compta/deplacement/index.php?leftmenu=tripsandexpenses', 'TripsAndExpenses', 0, 'trips', '$user->rights->deplacement->lire', '', 0, 5, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2101__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/card.php?action=create&leftmenu=tripsandexpenses', 'New', 1, 'trips', '$user->rights->deplacement->creer', '', 0, 1, __ENTITY__); diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index b22d9256c12..fedb49dcbd2 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1252,7 +1252,6 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu $newmenu->add("/holiday/list.php?select_statut=2&leftmenu=hrm", $langs->trans("ListToApprove"), 2, $user->rights->holiday->read); $newmenu->add("/holiday/define_holiday.php?&action=request", $langs->trans("MenuConfCP"), 1, $user->rights->holiday->define_holiday); $newmenu->add("/holiday/view_log.php?&action=request", $langs->trans("MenuLogCP"), 1, $user->rights->holiday->define_holiday); - $newmenu->add("/holiday/month_report.php?&action=request", $langs->trans("MenuReportMonth"), 1, $user->rights->holiday->define_holiday); } // Trips and expenses (old module) diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php index f9156ba284c..eb558e1c37f 100644 --- a/htdocs/holiday/class/holiday.class.php +++ b/htdocs/holiday/class/holiday.class.php @@ -33,7 +33,9 @@ class Holiday extends CommonObject { public $element='holiday'; public $table_element='holiday'; - + protected $isnolinkedbythird = 1; // No field fk_soc + protected $ismultientitymanaged = 0; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe + /** * @deprecated * @see id @@ -211,7 +213,8 @@ class Holiday extends CommonObject $sql.= " cp.note_private,"; $sql.= " cp.note_public,"; $sql.= " cp.fk_user_create,"; - $sql.= " cp.fk_type"; + $sql.= " cp.fk_type,"; + $sql.= " cp.entity"; $sql.= " FROM ".MAIN_DB_PREFIX."holiday as cp"; $sql.= " WHERE cp.rowid = ".$id; @@ -247,6 +250,7 @@ class Holiday extends CommonObject $this->note_public = $obj->note_public; $this->fk_user_create = $obj->fk_user_create; $this->fk_type = $obj->fk_type; + $this->entity = $obj->entity; } $this->db->free($resql); diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php index caea927c202..eb7fea3598c 100644 --- a/htdocs/holiday/define_holiday.php +++ b/htdocs/holiday/define_holiday.php @@ -159,8 +159,18 @@ llxHeader(array(),$langs->trans('CPTitreMenu')); print load_fiche_titre($langs->trans('MenuConfCP'), '', 'title_hrm.png'); print '<div class="info">'.$langs->trans('LastUpdateCP').': '."\n"; -if ($holiday->getConfCP('lastUpdate')) print '<strong>'.dol_print_date($db->jdate($holiday->getConfCP('lastUpdate')),'dayhour','tzuser').'</strong>'; +$lastUpdate = $holiday->getConfCP('lastUpdate', 0); +if ($lastUpdate) +{ + $monthLastUpdate = $lastUpdate[4].$lastUpdate[5]; + $yearLastUpdate = $lastUpdate[0].$lastUpdate[1].$lastUpdate[2].$lastUpdate[3]; + print '<strong>'.dol_print_date($db->jdate($holiday->getConfCP('lastUpdate')),'dayhour','tzuser').'</strong>'; + print '<br>'.$langs->trans("MonthOfLastMonthlyUpdate").': <strong>'.$yearLastUpdate.'-'.$monthLastUpdate.'</strong>'."\n"; +} else print $langs->trans('None'); + + + print "</div><br>\n"; $result = $holiday->updateBalance(); // Create users into table holiday if they don't exists. TODO Remove this whif we use field into table user. diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 79347c24c4e..2a673333430 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -253,6 +253,7 @@ else dol_fiche_head(''); } +$alltypeleaves=$holiday->getTypes(1,-1); // To have labels $out=''; $typeleaves=$holiday->getTypes(1,1); @@ -291,7 +292,7 @@ print_liste_field_titre($langs->trans("DateCreateCP"),$_SERVER["PHP_SELF"],"cp.d print_liste_field_titre($langs->trans("Employe"),$_SERVER["PHP_SELF"],"cp.fk_user","",'','',$sortfield,$sortorder); print_liste_field_titre($langs->trans("ValidatorCP"),$_SERVER["PHP_SELF"],"cp.fk_validator","",'','',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],'','','','',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],'','','','align="center"',$sortfield,$sortorder); +print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],'','','','align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateDebCP"),$_SERVER["PHP_SELF"],"cp.date_debut","",'','align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateFinCP"),$_SERVER["PHP_SELF"],"cp.date_fin","",'','align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"cp.statut","",'','align="center"',$sortfield,$sortorder); @@ -407,7 +408,10 @@ if (! empty($holiday->holiday)) print '<td style="text-align: center;">'.dol_print_date($date,'day').'</td>'; print '<td>'.$userstatic->getNomUrl('1').'</td>'; print '<td>'.$approbatorstatic->getNomUrl('1').'</td>'; - print '<td>'.$infos_CP['fk_type'].'</td>'; + print '<td>'; + $label=$alltypeleaves[$infos_CP['fk_type']]['label']; + print $label?$label:$infos_CP['fk_type']; + print '</td>'; print '<td align="right">'; $nbopenedday=num_open_day($infos_CP['date_debut_gmt'], $infos_CP['date_fin_gmt'], 0, 1, $infos_CP['halfday']); print $nbopenedday.' '.$langs->trans('DurationDays'); diff --git a/htdocs/holiday/month_report.php b/htdocs/holiday/month_report.php deleted file mode 100644 index 55b4e05942a..00000000000 --- a/htdocs/holiday/month_report.php +++ /dev/null @@ -1,156 +0,0 @@ -<?php -/* Copyright (C) 2007-2015 Laurent Destailleur <eldy@users.sourceforge.net> - * Copyright (C) 2011 François Legastelois <flegastelois@teclib.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -/** - * \file htdocs/holiday/month_report.php - * \ingroup holiday - * \brief Monthly report of paid holiday. - */ - -require('../main.inc.php'); -require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php'; - -// Protection if external user -if ($user->societe_id > 0) accessforbidden(); - - -// Si l'utilisateur n'a pas le droit de lire cette page -if(!$user->rights->holiday->read_all) accessforbidden(); - -$langs->load('hrm'); - - -/* - * View - */ - -$html = new Form($db); -$htmlother = new FormOther($db); -$holidaystatic = new Holiday($db); - -llxHeader(array(),$langs->trans('CPTitreMenu')); - -$cp = new Holiday($db); - -$month = GETPOST('month_start'); -$year = GETPOST('year_start'); - -if(empty($month)) { - $month = date('n'); -} -if(empty($year)) { - $year = date('Y'); -} - -$sql = "SELECT cp.rowid, cp.fk_user, cp.date_debut, cp.date_fin, cp.halfday"; -$sql.= " FROM " . MAIN_DB_PREFIX . "holiday cp"; -$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "user u ON cp.fk_user = u.rowid"; -$sql.= " WHERE cp.statut = 3"; // Approved -// TODO Use BETWEEN instead of date_format -$sql.= " AND (date_format(cp.date_debut, '%Y-%c') = '$year-$month' OR date_format(cp.date_fin, '%Y-%c') = '$year-$month')"; -$sql.= " ORDER BY u.lastname,cp.date_debut"; - -$result = $db->query($sql); -$num = $db->num_rows($result); - -print load_fiche_titre($langs->trans('MenuReportMonth'), '', 'title_hrm.png'); - -// Get month of last update -$lastUpdate = $cp->getConfCP('lastUpdate', 0); -$monthLastUpdate = $lastUpdate[4].$lastUpdate[5]; -$yearLastUpdate = $lastUpdate[0].$lastUpdate[1].$lastUpdate[2].$lastUpdate[3]; -print $langs->trans("MonthOfLastMonthlyUpdate").': <strong>'.$yearLastUpdate.'-'.$monthLastUpdate.'</strong><br><br>'."\n"; - - -print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n"; - -dol_fiche_head(); - -print $langs->trans('Month').': '; -print $htmlother->select_month($month, 'month_start').' '; -print $htmlother->select_year($year,'year_start',1,10,3); - -print '<input type="submit" value="'.$langs->trans("Refresh").'" class="button" />'; - -print '<br>'; -print '<br>'; - -$var=true; -print '<table class="noborder" width="40%;">'; - -print '<tr class="liste_titre">'; -print '<td>'.$langs->trans('Ref').'</td>'; -print '<td>'.$langs->trans('Employee').'</td>'; -print '<td>'.$langs->trans('DateDebCP').'</td>'; -print '<td>'.$langs->trans('DateFinCP').'</td>'; -print '<td align="right">'.$langs->trans('nbJours').'</td>'; -print '</tr>'; - -if($num == '0') { - - print '<tr class="pair">'; - print '<td colspan="5">'.$langs->trans('None').'</td>'; - print '</tr>'; - -} else { - - $langs->load('users'); - - while ($holiday = $db->fetch_array($result)) - { - $user = new User($db); - $user->fetch($holiday['fk_user']); - $var=!$var; - - $holidaystatic->id=$holiday['rowid']; - $holidaystatic->ref=$holiday['rowid']; - - $start_date=$db->jdate($holiday['date_debut']); - $end_date=$db->jdate($holiday['date_fin']); - $start_date_gmt=$db->jdate($holiday['date_debut'],1); - $end_date_gmt=$db->jdate($holiday['date_fin'],1); - - print '<tr '.$bc[$var].'>'; - print '<td>'.$holidaystatic->getNomUrl(1).'</td>'; - print '<td>'.$user->getNomUrl(1).'</td>'; - print '<td>'.dol_print_date($start_date,'day'); - print '</td>'; - print '<td>'.dol_print_date($end_date,'day'); - print '</td>'; - print '<td align="right">'; - $nbopenedday=num_open_day($start_date_gmt, $end_date_gmt, 0, 1, $holiday['halfday']); - print $nbopenedday; - print '</td>'; - print '</tr>'; - } -} -print '</table>'; - -dol_fiche_end(); - -print '</form>'; - - -// Fin de page -llxFooter(); - -$db->close(); diff --git a/htdocs/langs/en_US/holiday.lang b/htdocs/langs/en_US/holiday.lang index 680b802869f..f26fdc73cd2 100644 --- a/htdocs/langs/en_US/holiday.lang +++ b/htdocs/langs/en_US/holiday.lang @@ -22,7 +22,7 @@ ReviewedByCP=Will be reviewed by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them. -MenuConfCP=Edit balance of leaves +MenuConfCP=Balance of leaves UpdateAllCP=Update the leaves SoldeCPUser=Leaves balance is <b>%s</b> days. ErrorEndDateCP=You must select an end date greater than the start date. -- GitLab