| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- <?php
- $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");
- }
- require_once DOL_DOCUMENT_ROOT . '/custom/settlements/class/helper.class.php';
- $helper = new Helper($db);
- function getFilteredUsers($db, $string)
- {
- $filteredUsers = [];
- $sql = "SELECT u.rowid, u.login, u.firstname, u.lastname, ue.nickname, ue.user_category FROM llx_user as u
- INNER JOIN llx_user_extrafields AS ue ON ue.fk_object = u.rowid
- WHERE ue.user_category = '1' AND u.rowid NOT IN (SELECT fk_user FROM llx_settlements_groupusers) AND (u.lastname LIKE '%{$string}%' OR u.firstname LIKE '%{$string}%' OR ue.nickname LIKE '%{$string}%' OR u.login LIKE '%{$string}%')
- ORDER BY u.lastname";
- //print $sql;
- $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)) {
- $row['openDailyClosing'] = 0;
- $dailyclosingSql = "SELECT * FROM llx_rollerstorage_packagehistory WHERE user_id = {$row['rowid']} AND status = 0 ORDER BY rowid DESC LIMIT 1";
- $dailyclosingData = $db->query($dailyclosingSql);
- if($db->num_rows($dailyclosingData) > 0){
- $dCRow = $db->fetch_object($dailyclosingData);
- $row['openDailyClosing'] = $dCRow->rowid;
- }
- $filteredUsers['freeUsers'][] = $row;
- }
- $sqlAddedUsers = "SELECT gu.fk_user, u.firstname, u.lastname, u.login, ue.nickname, sg.ref as groupref, sg.rowid as groupid
- FROM llx_settlements_groupusers as gu
- INNER JOIN llx_user as u ON u.rowid = gu.fk_user
- INNER JOIN llx_user_extrafields as ue ON gu.fk_user = ue.fk_object
- AND (u.lastname LIKE '%{$string}%' OR u.firstname LIKE '%{$string}%' OR ue.nickname LIKE '%{$string}%' OR u.login LIKE '%{$string}%')
- INNER JOIN llx_settlements_group as sg ON sg.rowid = gu.fk_settlements_group
- ORDER BY ue.nickname";
- $dataAddedUsers = $db->query($sqlAddedUsers);
- if (!$data) {
- dol_syslog("No group found.", LOG_DEBUG | LOG_INFO | LOG_WARNING | LOG_ERR);
- }
- while ($rowAddedUsers = pg_fetch_assoc($dataAddedUsers)) {
- $filteredUsers['addedUsers'][] = $rowAddedUsers;
- }
- return $filteredUsers;
- }
- $search_title = GETPOST('search_title', 'alpha');
- $toselectnewuser = GETPOST('toselectnewuser', 'alpha');
- $reduction = GETPOST('reduction', 'alpha');
- if ($search_title) {
- if (!isset ($_SESSION['usersArray'])) {
- if ($toselectnewuser) {
- $selectedArray = explode(',', $toselectnewuser);
- $_SESSION['usersArray'] = $selectedArray;
- $selectedArray = $_SESSION['usersArray'];
- } elseif ($reduction) {
- $selectedArray = explode(',', $reduction);
- $_SESSION['usersArray'] = $selectedArray;
- $selectedArray = $_SESSION['usersArray'];
- } else {
- //print '1';
- //unset($_SESSION['usersArray']);
- }
- } else {
- //$selectedArray = $_SESSION['usersArray'];
- if ($toselectnewuser) {
- $selectedArray = explode(',', $toselectnewuser);
- $_SESSION['usersArray'] = array_unique(array_merge($_SESSION['usersArray'], $selectedArray));
- $selectedArray = $_SESSION['usersArray'];
- } elseif ($reduction) {
- $reduction_id = explode(',', $reduction);
- $_SESSION['usersArray'] = array_diff($_SESSION['usersArray'], $reduction_id);
- $selectedArray = $_SESSION['usersArray'];
- if (empty ($_SESSION['usersArray'])) {
- unset($_SESSION['usersArray']);
- }
- } else {
- //print '2';
- }
- }
- } else {
- if (!isset ($_SESSION['usersArray'])) {
- if ($toselectnewuser) {
- $selectedArray = explode(',', $toselectnewuser);
- $_SESSION['usersArray'] = $selectedArray;
- $selectedArray = $_SESSION['usersArray'];
- } elseif ($reduction) {
- $selectedArray = explode(',', $reduction);
- $_SESSION['usersArray'] = $selectedArray;
- $selectedArray = $_SESSION['usersArray'];
- } else {
- //print '3';
- //unset($_SESSION['usersArray']);
- }
- } else {
- //$selectedArray = $_SESSION['usersArray'];
- if ($toselectnewuser) {
- $selectedArray = explode(',', $toselectnewuser);
- $_SESSION['usersArray'] = array_unique(array_merge($_SESSION['usersArray'], $selectedArray));
- $selectedArray = $_SESSION['usersArray'];
- } elseif ($reduction) {
- $reduction_id = explode(',', $reduction);
- $_SESSION['usersArray'] = array_diff($_SESSION['usersArray'], $reduction_id);
- //$_SESSION['usersArray'] = $selectedArray;
- $selectedArray = $_SESSION['usersArray'];
- if (empty ($_SESSION['usersArray'])) {
- unset($_SESSION['usersArray']);
- }
- } else {
- //print '4';
- $selectedArray = $_SESSION['usersArray'];
- }
- }
- }
- $allUsers = $search_title !== '' ? getFilteredUsers($db, $search_title) : $helper->getAllUsers($db);
- $form = new Form($db);
- print $isConfirmedTheGroup;
- $searchedString = '<table style="width:100%;">';
- if (is_array($allUsers['freeUsers'])) {
- print '<form method="POST" id="searchFormList" action="' . $url . '" onkeyup="submitFormAjaxUser()">' . "\n";
- foreach ($allUsers['freeUsers'] as $freeUser) {
- if (!empty ($selectedArray)) {
- $selected = in_array($freeUser['rowid'], $selectedArray) ? 'checked' : '';
- }
- $linkToDailyclosing = $freeUser['openDailyClosing'] > 0 ? '<div style="color: red;">' . $langs->trans('HasAnOpenDailyClosing') . '<a href="/custom/rollerstorage/packagehistory_card.php?id=' . $freeUser['openDailyClosing'] . '&idmenu=1594&fk_group_id=' . $id . '&changeback=1">Link</a></div>' : '';
- $dCDisabled = $freeUser['openDailyClosing'] > 0 ? 'disabled' : '';
- $nickname = isset ($freeUser['nickname']) ? '<b>' . $freeUser['nickname'] . '</b> - ' : '';
- $searchedString .= '<tr style="height:30px;">
- <td class="nowrap center"><input id="cb912" class="flat checkforselectadd" type="checkbox" onclick="submitFormAjaxAddUser(event)" name="toselectnewuser[]" value="' . $freeUser['rowid'] . '" ' . $dCDisabled . ' ' . $selected . '></td>
- <td><span class="fa fa-user pictofixedwidth"></span>' . $nickname . $freeUser['lastname'] . ' ' . $freeUser['firstname'] . ' (' . $freeUser['login'] . ') ' . $linkToDailyclosing . '</td>
- </tr>';
- }
- }
- $searchedString .= '</table><table style="width:100%; color: red;">';
- if (is_array($allUsers['addedUsers'])) {
- foreach ($allUsers['addedUsers'] as $addedUser) {
- $nickname = isset ($addedUser['nickname']) ? '<b>' . $addedUser['nickname'] . '</b> - ' : '';
- $searchedString .= '
- <tr style="height:30px;">
- <td rowspan="2"><span class="fa fa-user pictofixedwidth"></span></td><td>' . $nickname . $addedUser['lastname'] . ' ' . $addedUser['firstname'] . ' (' . $addedUser['login'] . ')</td></tr>
- <tr><td class="nowrap"><span class="fa fa-link pictofixedwidth"></span><a href="/custom/settlements/settlementsindex.php?idmenu=1587&mainmenu=settlements&leftmenu=&id=' . $addedUser['groupid'] . '">' . $addedUser['groupref'] . '</a></td></tr>';
- }
- }
- $searchedString .= '</table>';
- print $searchedString;
- ?>
- <script>
- $(document).ready(function () {
- var checkboxes = document.querySelectorAll('.checkforselectadd:checked');
- var values = Array.from(checkboxes).map(function (checkbox) {
- return checkbox.value;
- });
- if (values.length > 0) {
- $('#divAdd').css('display', 'inline-block');
- $('#massactionadd').css('display', 'inline-block');
- $('.massactionaddselect ').css('display', '');
- $('.massactionaddconfirmed ').css('display', '');
- }
- });
- $('.checkforselectadd').click(function () {
- if ($(this).is(':checked')) {
- $('#divAdd').css('display', 'inline-block');
- $('#massactionadd').css('display', 'inline-block');
- $('.massactionaddselect ').css('display', '');
- $('.massactionaddconfirmed ').css('display', '');
- } else {
- var checkboxes = document.querySelectorAll('.checkforselectadd:checked');
- var values = Array.from(checkboxes).map(function (checkbox) {
- return checkbox.value;
- });
- if (values.length === 0) {
- $('#divAdd').css('display', 'none');
- $('#massactionadd').css('display', 'none');
- $('.massactionaddselect ').css('display', 'none');
- $('.massactionaddconfirmed ').css('display', 'none');
- }
- }
- })
- function submitFormAjaxAddUser(event) {
- var checkbox = event.target;
- if (checkbox.checked) {
- var input = document.getElementById("name_search");
- var checkboxes = document.querySelectorAll('.checkforselectadd:checked');
- var values = Array.from(checkboxes).map(function (checkbox1) {
- return checkbox1.value;
- });
- var xhr = new XMLHttpRequest();
- xhr.open("GET", "ajaxUser.php?search_title=" + input.value + "&toselectnewuser=" + values, true);
- xhr.onreadystatechange = function () {
- if (xhr.readyState === 4 && xhr.status === 200) {
- $("#searchedUsersDiv").html(xhr.responseText);
- }
- };
- xhr.send();
- } else {
- //alert(checkbox.value);
- var input = document.getElementById("name_search");
- /* var checkboxes = document.querySelectorAll('.checkforselectadd:checked');
- var values = Array.from(checkboxes).map(function (checkbox1) {
- return checkbox1.value;
- }); */
- var xhr = new XMLHttpRequest();
- xhr.open("GET", "ajaxUser.php?search_title=" + input.value + "&reduction=" + checkbox.value, true);
- xhr.onreadystatechange = function () {
- if (xhr.readyState === 4 && xhr.status === 200) {
- $("#searchedUsersDiv").html(xhr.responseText);
- }
- };
- xhr.send();
- }
- }
- </script>
|