* Copyright (C) 2004-2015 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2015 Jean-François Ferry * * 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 . */ /** * \file settlements/settlementsindex.php * \ingroup settlements * \brief Home page of settlements top menu */ // Load Dolibarr environment $res = 0; // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) { $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"] . "/main.inc.php"; } // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME $tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; } if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1)) . "/main.inc.php")) { $res = @include substr($tmp, 0, ($i + 1)) . "/main.inc.php"; } if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1))) . "/main.inc.php")) { $res = @include dirname(substr($tmp, 0, ($i + 1))) . "/main.inc.php"; } // Try main.inc.php using relative path if (!$res && file_exists("../main.inc.php")) { $res = @include "../main.inc.php"; } if (!$res && file_exists("../../main.inc.php")) { $res = @include "../../main.inc.php"; } if (!$res && file_exists("../../../main.inc.php")) { $res = @include "../../../main.inc.php"; } if (!$res) { die("Include of main fails"); } use Luracast\Restler\RestException; require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT . '/user/class/usergroup.class.php'; require_once DOL_DOCUMENT_ROOT . '/custom/settlements/class/groupusers.class.php'; require_once DOL_DOCUMENT_ROOT . '/custom/settlements/class/helper.class.php'; $helper = new Helper($db); function getAllUsers($db) { $sql = "SELECT * FROM llx_user as u WHERE rowid NOT IN (SELECT fk_user FROM llx_settlements_groupusers) ORDER BY u.lastname"; $data = $db->query($sql); if (!$data) { dol_syslog("No group found.", LOG_DEBUG | LOG_INFO | LOG_WARNING | LOG_ERR); } while ($row = pg_fetch_assoc($data)) { $allUsers[] = $row; } return $allUsers; } // Load translation files required by the page $langs->loadLangs(array("settlements@settlements")); $action = GETPOST('action', 'aZ09'); $id = GETPOST('id', 'int'); $idmenu = GETPOST('idmenu', 'int'); $daterange = GETPOST('daterange', 'alpha'); $datepicker = GETPOST('datepicker', 'alpha'); $interval = GETPOST('interval', 'alpha'); if($interval == 'on'){ $_SESSION['interval'] = $interval; } // Security check // if (! $user->rights->settlements->myobject->read) { // accessforbidden(); // } $socid = GETPOST('socid', 'int'); if (isset($user->socid) && $user->socid > 0) { $action = ''; $socid = $user->socid; } $form = new Form($db); $formfile = new FormFile($db); $groups = $helper->getAllGroupsFromGroupClass($db); if (empty($id)) { $keys = array_keys($groups); $id = $keys[0]; }else{ $daterange = isset($_SESSION['daterange']) ? $_SESSION['daterange'] : ''; $datepicker = isset($_SESSION['datepicker']) ? $_SESSION['datepicker'] : ''; } $bigRedDiv = ''; $sumsHUFArray = []; $sumsEURArray = []; $dateforHiddenField = $datepicker != '' ? $datepicker : $daterange; if($datepicker != ''){ $_SESSION['datepicker'] = $datepicker; unset($_SESSION['daterange']); //unset($_SESSION['interval']); $datesOfRange = $helper->createArray($datepicker); foreach ($datesOfRange as $date) { $usersOfGroups = $helper->getUsersByIdWithDate($db, $id, $date); $deletedUsersArray = $helper->getDeletedUsers($db, $id, $date); if (!empty($usersOfGroups)) { $sumsHUFArray[$date] = $helper->getSum($db, 'HUF', $id, $usersOfGroups, $date); $sumsEURArray[$date] = $helper->getSum($db, 'EUR', $id, $usersOfGroups, $date); } } $bigRedDiv = '
' . $langs->trans('onedayfilter') . ' ' . $datepicker . '
'; } if($daterange != ''){ $_SESSION['daterange'] = $daterange; unset($_SESSION['datepicker']); $datesOfRange = $helper->createArray($daterange); foreach ($datesOfRange as $date) { $usersOfGroups = $helper->getUsersByIdWithDate($db, $id, $date); $deletedUsersArray = $helper->getDeletedUsers($db, $id, $date); if (!empty($usersOfGroups)) { $sumsHUFArray[$date] = $helper->getSum($db, 'HUF', $id, $usersOfGroups, $date); $sumsEURArray[$date] = $helper->getSum($db, 'EUR', $id, $usersOfGroups, $date); } } $bigRedDiv = '
' . $langs->trans('moredayfilter') . ' ' . $daterange . '
'; }else{ unset($_SESSION['interval']); } llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'classforhorizontalscrolloftabs'); //print_r($_REQUEST); $url = $_SERVER["PHP_SELF"] . '?idmenu=' . $idmenu . '&mainmenu=settlements&leftmenu='; if (isset($massaction) || isset($massactionadd)) { $url .= "&id={$id}"; } print '
' . "\n"; print ''; print ''; print ''; print ''; print ''; print ''; print ''; //print ''; print ''; //print ''; print ''; print load_fiche_titre($langs->trans("SettlementsRangeArea"), '', 'settlements.png@settlements'); print $bigRedDiv; print '' . $langs->trans('intervall') . ''; print '
'; print ''; print ''; print '
'; print ''; if ($daterange != '' || $datepicker != '') { # 1 print '
'; print ''; print ''; foreach ($groups as $key => $val) { $coloredLine = $id == $key ? ' background-color: #b0c4de' : ''; print ''; } print '
' . $langs->trans("nameofgroup") . '
' . $val . '
'; print '
'; # 2 print '
'; print ''; print ''; if (!empty($usersOfGroups)) { foreach ($usersOfGroups as $user) { print ''; } } else { print ''; } print '
'.$langs->trans("usersofgroup",$group[$id]).'
' . $user['lastname'] . ' ' . $user['firstname'] . ' (' . $user['login'] . ') ' . $deletedUsersArray[$user['user_id']] . '
' . $langs->trans('nouser') . '
'; print '
'; # 3 print '
'; print ''; print ''; foreach ($datesOfRange as $date) { print ''; print ''; /* print ' '; */ /* print ' '; */ print ' '; print ''; print ''; /* print ' '; print ' '; */ print ' '; print ''; } print '
' . $langs->trans("settlements") . '
' . $date . '
Alap
' . $helper->correctNumber($sumsHUFArray[$date][0]['total_ht']) . '
Adó
' . $helper->correctNumber($sumsHUFArray[$date][0]['total_tva']) . '
' . $helper->correctNumber($sumsHUFArray[$date][0]['total_ttc']) . ' HUF
Alap
' . $helper->correctNumber($sumsEURArray[$date][0]['total_ht']) . ' EUR
Adó
' . $helper->correctNumber($sumsEURArray[$date][0]['total_tva']) . ' EUR
' . $helper->correctNumber($sumsEURArray[$date][0]['total_ttc']) . ' EUR
'; }else{ print '
' . $langs->trans('selectdate') . '
'; } print '
'; print '
' . "\n"; // End of page llxFooter(); $db->close(); ?>