From 524b28d8c380baa099f5daa16600bedaedf889d1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 4 Feb 2021 12:15:31 +0100 Subject: [PATCH] Fix missing tab info on holiday --- htdocs/core/lib/holiday.lib.php | 5 ++ htdocs/holiday/class/holiday.class.php | 75 +++++++++++++++++ htdocs/holiday/info.php | 106 +++++++++++++++++++++++++ 3 files changed, 186 insertions(+) create mode 100644 htdocs/holiday/info.php diff --git a/htdocs/core/lib/holiday.lib.php b/htdocs/core/lib/holiday.lib.php index f5297f6fd89..7b9c5d46da2 100644 --- a/htdocs/core/lib/holiday.lib.php +++ b/htdocs/core/lib/holiday.lib.php @@ -51,6 +51,11 @@ function holiday_prepare_head($object) $head[$h][2] = 'documents'; $h++; + $head[$h][0] = DOL_URL_ROOT.'/holiday/info.php?id='.$object->id; + $head[$h][1] = $langs->trans("Info"); + $head[$h][2] = 'info'; + $h++; + // Show more tabs from modules // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php index 2030ab1d636..f61c0a66ca8 100644 --- a/htdocs/holiday/class/holiday.class.php +++ b/htdocs/holiday/class/holiday.class.php @@ -2073,6 +2073,81 @@ class Holiday extends CommonObject } + /** + * Load information on object + * + * @param int $id Id of object + * @return void + */ + public function info($id) + { + global $conf; + + $sql = "SELECT f.rowid,"; + $sql .= " f.date_create as datec,"; + $sql .= " f.tms as date_modification,"; + $sql .= " f.date_valid as datev,"; + //$sql .= " f.date_approve as datea,"; + $sql .= " f.date_refuse as dater,"; + $sql .= " f.fk_user_create as fk_user_creation,"; + $sql .= " f.fk_user_modif as fk_user_modification,"; + $sql .= " f.fk_user_valid,"; + $sql .= " f.fk_validator as fk_user_approve,"; + $sql .= " f.fk_user_refuse as fk_user_refuse"; + $sql .= " FROM ".MAIN_DB_PREFIX."holiday as f"; + $sql .= " WHERE f.rowid = ".$id; + $sql .= " AND f.entity = ".$conf->entity; + + $resql = $this->db->query($sql); + if ($resql) + { + if ($this->db->num_rows($resql)) + { + $obj = $this->db->fetch_object($resql); + + $this->id = $obj->rowid; + + $this->date_creation = $this->db->jdate($obj->datec); + $this->date_modification = $this->db->jdate($obj->date_modification); + $this->date_validation = $this->db->jdate($obj->datev); + $this->date_approbation = $this->db->jdate($obj->datea); + + $cuser = new User($this->db); + $cuser->fetch($obj->fk_user_author); + $this->user_creation = $cuser; + + if ($obj->fk_user_creation) + { + $cuser = new User($this->db); + $cuser->fetch($obj->fk_user_creation); + $this->user_creation = $cuser; + } + if ($obj->fk_user_valid) + { + $vuser = new User($this->db); + $vuser->fetch($obj->fk_user_valid); + $this->user_validation = $vuser; + } + if ($obj->fk_user_modification) + { + $muser = new User($this->db); + $muser->fetch($obj->fk_user_modification); + $this->user_modification = $muser; + } + if ($obj->fk_user_approve) + { + $auser = new User($this->db); + $auser->fetch($obj->fk_user_approve); + $this->user_approve = $auser; + } + } + $this->db->free($resql); + } else { + dol_print_error($this->db); + } + } + + /** * Initialise an instance with random values. * Used to build previews or test instances. diff --git a/htdocs/holiday/info.php b/htdocs/holiday/info.php new file mode 100644 index 00000000000..2209143001c --- /dev/null +++ b/htdocs/holiday/info.php @@ -0,0 +1,106 @@ + + * Copyright (C) 2004-2015 Laurent Destailleur + * + * 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 . + * or see https://www.gnu.org/ + */ + +/** + * \file htdocs/holiday/info.php + * \ingroup holiday + * \brief Page to show a leave information + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/holiday.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php'; + +// Load translation files required by the page +$langs->load("holiday"); + +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); + +$childids = $user->getAllChildIds(1); + +// Security check +if ($user->socid) $socid = $user->socid; +$result = restrictedArea($user, 'holiday', $id, 'holiday'); + +$object = new Holiday($db); +if (!$object->fetch($id, $ref) > 0) +{ + dol_print_error($db); +} + +if ($object->id > 0) +{ + // Check current user can read this expense report + $canread = 0; + if (!empty($user->rights->holiday->readall)) $canread = 1; + if (!empty($user->rights->holiday->lire) && in_array($object->fk_user_author, $childids)) $canread = 1; + if (!$canread) + { + accessforbidden(); + } +} + + +/* + * View + */ + +$form = new Form($db); + +$title = $langs->trans("Holiday")." - ".$langs->trans("Info"); +$helpurl = ""; +llxHeader("", $title, $helpurl); + +if ($id > 0 || !empty($ref)) +{ + $object = new Holiday($db); + $object->fetch($id, $ref); + $object->info($object->id); + + $head = holiday_prepare_head($object); + + print dol_get_fiche_head($head, 'info', $langs->trans("Holiday"), -1, 'holiday'); + + $linkback = ''.$langs->trans("BackToList").''; + + $morehtmlref = '
'; + $morehtmlref .= '
'; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + print '
'; + print '
'; + + print '
'; + + print '
'; + dol_print_object_info($object); + print '
'; + + print '
'; + + print dol_get_fiche_end(); +} + +// End of page +llxFooter(); +$db->close();