* 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/usernaplo.class.php'; require_once DOL_DOCUMENT_ROOT . '/custom/settlements/class/clearallusernaplo.class.php'; require_once DOL_DOCUMENT_ROOT . '/custom/settlements/class/helper.class.php'; //print_r($_REQUEST); // Load translation files required by the page $langs->loadLangs(array("settlements@settlements")); $massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) $massactionadd = GETPOST('massactionadd', 'alpha'); // The bulk action (combo box choice into lists) $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'int'); $id = GETPOST('id', 'int'); $idmenu = GETPOST('idmenu', 'int'); $toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list $toselectnewuser = GETPOST('toselectnewuser', 'array'); // Array of ids of elements selected into a list $search_title = GETPOST('search_title', 'alpha'); $confirmbutton = GETPOST('confirmbutton', 'int'); $userclearall = GETPOST('userclearall', 'int'); $deleteall = GETPOST('deleteall', 'int'); // Security check // if (! $user->rights->settlements->myobject->read) { // accessforbidden(); // } if ($deleteall) { unset($_SESSION['usersArray']); } $socid = GETPOST('socid', 'int'); if (isset($user->socid) && $user->socid > 0) { $action = ''; $socid = $user->socid; } $max = 5; $now = dol_now(); $form = new Form($db); $formfile = new FormFile($db); $userNaplo = new UserNaplo($db); $clearAllUserNaplo = new ClearAllUserNaplo($db); $groupUsers = new GroupUsers($db); $helper = new Helper($db); $entities = $helper->getAllEntities(); $entitiesArray = []; $selectedEntities = ''; $entitiesArrayIsEmpty = true; foreach ($entities as $key => $value) { $val = GETPOST('entity_' . $key, 'int'); $entitiesArray[$key] = $val; if ($val != '') { $entitiesArrayIsEmpty = false; } } $selectedEntities = $helper->getEntities($entitiesArrayIsEmpty, $entities, $entitiesArray); $groups = $helper->getHotelGroupsFromGroupClass($db, $selectedEntities); if (empty($id) || $id == 0) { foreach ($groups as $key => $val) { $keys[] = $key; } unset($_SESSION['usersArray']); $id = $keys[0]; } if ($massaction == 'delete') { $groupusers = new GroupUsers($db); foreach ($toselect as $userId) { $moredata = explode('_', $userId); $groupusers->deleteLine($user, $moredata[0]); $data = $helper->createDataArray($id, $massaction, $moredata[1]); $userNaplo->createUserNaplo($user, $data); dol_syslog("A {$userId} szamu felhasznalo torlesre kerult.", LOG_DEBUG | LOG_INFO | LOG_WARNING | LOG_ERR); } setEventMessage($langs->trans("usersdeleted"), 'errors'); unset($_SESSION['usersArray']); } if ($massactionadd == 'add') { $usersOfGroups = $helper->getUsersById($db, $id); $usersOfGroupsFromNaploToday = $helper->getUsersOfGroupsFromNaploToday($db, $id); $confirmed = !empty($usersOfGroupsFromNaploToday) && !empty($usersOfGroups); $db->begin(); $error = 0; $userObj = new User($db); $groupObj = new Group($db); $groupResult = $groupObj->fetch($id); $groupEntity = $groupObj->fk_entity; foreach ($_SESSION['usersArray'] as $newuser) { //print $newuser . '
'; $createResult = $groupUsers->createGroupUsers($id, $newuser); if ($createResult < 0) { $error++; } $data = $helper->createDataArray($id, $massactionadd, $newuser); $naploResult = $userNaplo->createUserNaplo($user, $data); if ($naploResult < 0) { $error++; } $userUpdateResult = $helper->updateUserEntityInUser($newuser, $groupEntity); if ($userUpdateResult < 0) { $error++; } } if ($error) { $db->rollback(); unset($_SESSION['usersArray']); setEventMessage($langs->trans("PackageUserFailed", 'error')); } else { $db->commit(); unset($_SESSION['usersArray']); $helper->returnWindowLocation($_SERVER["PHP_SELF"], $id, $idmenu); //setEventMessage($langs->trans("useradded")); } unset($_SESSION['usersArray']); } /* if ($confirmbutton) { $db->begin(); $error = 0; $groupusers = new GroupUsers($db); $groupObj = new Group($db); $groupResult = $groupObj->fetch($id); $groupEntity = $groupObj->fk_entity; foreach ($toselect as $selected) { $moredata = explode('_', $selected); $deleteResult = $groupusers->deleteLine($user, $moredata[0]); if ($deleteResult < 0) { $error++; } $createResult = $groupUsers->createGroupUsers($confirmbutton, $moredata[1]); if ($createResult < 0) { $error++; } $dataAdd = $helper->createDataArray($confirmbutton, 'add', $moredata[1]); $naploResult = $userNaplo->createUserNaplo($user, $dataAdd); if ($naploResult < 0) { $error++; } $userUpdateResult = $helper->updateUserEntityInUser($moredata[1], $groupEntity); if ($userUpdateResult < 0) { $error++; } } if ($error) { $db->rollback(); unset($toselect); setEventMessage($langs->trans("PackageUserFailed", 'error')); } else { $confirmbutton = null; $db->commit(); $helper->returnWindowLocation($_SERVER["PHP_SELF"], $id, $idmenu); //setEventMessage($langs->trans("usersconfirmed")); } } */ $allUsers = $helper->getAllUsers($db); $usersOfGroups = $helper->getUsersById($db, $id); $confirmButtonDisplay = empty($helper->getUsersOfGroupsFromNaploToday($db, $id)) && !empty($usersOfGroups) ? "display:block;" : "display:none;"; $permissiontoclearall = $user->hasRight('settlements', 'settlementsgroup', 'clearall'); $title = ''; $help_url = ''; $morejs = ''; $morecss = ''; llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'classforhorizontalscrolloftabs'); include DOL_DOCUMENT_ROOT . '/custom/settlements/core/actions_addupdatedelete.inc.php'; $url = $_SERVER["PHP_SELF"] . '?idmenu=' . $idmenu . '&mainmenu=settlements&leftmenu=&id=' . $id; /* if ($massaction!=0 || $massactionadd != 0) { $url .= "&id={$id}"; } */ print '
' . "\n"; print ''; print ''; print ''; /*print ''; print ''; print ''; print '';*/ print load_fiche_titre($langs->trans("HotelGroups"), '', 'settlements.png@settlements'); include DOL_DOCUMENT_ROOT . '/custom/settlements/core/tpl/usercheckboxes.tpl.php'; /* if ($permissiontoclearall) { if ($helper->userGroupsAreEmpty()) { print '
' . $langs->trans('EmptyUsersGroup') . '
'; } else { include DOL_DOCUMENT_ROOT . '/custom/settlements/core/tpl/userclearall.tpl.php'; } } */ print '
'; $columnWidth = 100 / count($entities); foreach ($entities as $key => $value) { if (!$entitiesArrayIsEmpty) { $checked = $entitiesArray[$key] == $key ? 'checked' : ''; } else { $checked = 'checked'; } print '
'; } print '
'; print '
'; print ''; print ''; foreach ($groups as $key => $val) { $coloredLine = $id == $key ? ' background-color: #b0c4de;' : ''; print ''; } print '
' . $langs->trans("groupname") . '
'; //--------------------------------------------- # 2 //--------------------------------------------- print '
'; print ''; print ''; print ''; //print ''; if (!empty($usersOfGroups)) { print ''; foreach ($usersOfGroups as $user) { print ''; } } else { print ''; } print '
' . $langs->trans("usersofgroup") . '
' . $groups[$id] . '
' . $langs->trans("selectall") . '
' . $user['lastname'] . ' ' . $user['firstname'] . ' (' . $user['login'] . ')
' . $langs->trans('nouser') . '
'; //--------------------------------------------- # 3 //--------------------------------------------- print '
'; print ''; print ''; print ''; if (is_array($allUsers['freeUsers'])) { print ''; print ''; print '' . "\n"; // End of page llxFooter(); $db->close(); ?>
' . $langs->trans("freeusers") . '
'; foreach ($allUsers['freeUsers'] as $freeUser) { $nickname = isset($freeUser['nickname']) ? '' . $freeUser['nickname'] . ' - ' : ''; print ''; } } else { print ''; } print '
' . $nickname . $freeUser['lastname'] . ' ' . $freeUser['firstname'] . ' (' . $freeUser['login'] . ')
' . $langs->trans('pleaseConfirm') . '
'; if (is_array($allUsers['addedUsers'])) { foreach ($allUsers['addedUsers'] as $addedUser) { $nickname = isset($addedUser['nickname']) ? '' . $addedUser['nickname'] . ' - ' : ''; print ''; print ''; } } print '
' . $nickname . $addedUser['lastname'] . ' ' . $addedUser['firstname'] . ' (' . $addedUser['login'] . ')
' . $addedUser['groupref'] . '
'; print '