MENU_SELECT_PROCES_DATA = V::get('MENU_SELECT_PROCES_DATA', null, $_SESSION);// URL
$this->_user_id = User::getID();
if (User::isAdmin()) {
$this->_user_id = V::get('_user_id', 0, $_POST, 'int');
if (!$this->_user_id) {
$this->_user_id = User::getID();
}
}
$this->_acl = UsersHelper::getUserAcl($this->_user_id);
if (!$this->_acl) {
die('Error Acl');
}
// TODO: TEST
if ('' != V::get('DBG', '', $_GET)) {
echo '
';
//$this->_acl->old();
echo '
';
echo '';
$this->_acl->old_fixed();
echo '
';
}
$this->CRM_PROCES_USERA_UZYTY_MAP = $this->_acl->getUsedProcesMap();
// TODO: run only if needed
$this->_generate_wyniki_testow();
}
static function getInstance() {
static $_instance = null;
if (!$_instance) {
$_instance = new ProcesMenu();
}
return $_instance;
}
function show() {
static $_menu_showed = false;
if (!$_menu_showed) {
$actionName = V::get('_action', 'menu', $_REQUEST);
// podglad testów pracownika
if (User::isAdmin() && $this->_user_id != User::getID()) {
$actionName = 'showMyTests';
}
$actionName .= 'Action';
if (method_exists($this, $actionName)) {
$this->{$actionName}();
}
//$this->show_menu_with_process();
$_menu_showed = true;
}
}
/**
* @return Array
*/
function get_wykonane_testy() {
$testy_arr = array();
if ($this->_user_id > 0) {
$ses_cache_key = 'CRM_PROCES_USERA_WYKONANE_TESTY-' . $this->_user_id;
if ('1' == V::get('_CLEAN_CACHE', '', $_GET)) unset($_SESSION[$ses_cache_key]);// TODO: DBG
if (!isset($_SESSION[$ses_cache_key])) {
$proces_map = $this->_acl->getUsedProcesMap();
if (!empty($proces_map)) {
$testy_arr = ProcesTestyHelper::get_tetsy_stats($this->_user_id, 0, array_keys($proces_map));// 30000000 => 0
// check if tests are actual - proces steps may change
if (!empty($testy_arr)) {
$procesy_steps = array();
foreach ($testy_arr as $v_test) {
$procesy_steps[$v_test->ID_PROCES_INIT] = V::get($v_test->ID_PROCES_INIT, null, $proces_map);
}
foreach ($procesy_steps as $k_proces_id => $v_steps_arr) {
$last_test = null;
foreach ($testy_arr as $k_ind => $v_test) {
if ($v_test->ID_PROCES_INIT == $k_proces_id) {
$last_test = $v_test;
$last_test->test_ind = $k_ind;
break;
}
}
if (!$last_test || $last_test->TEST_END == '0000-00-00') {
continue;
}
$max_update_date = ProcesTestyHelper::get_max_update_date($v_steps_arr);
if ($max_update_date) {
$max_update_date = substr($max_update_date, 0, 10);
$test_end = substr($last_test->TEST_END, 0, 10);
if('1' == V::get('DBG_PM', '', $_GET)){echo''."P_INIT({$k_proces_id}) max_update_date({$max_update_date}) TEST_END({$last_test->TEST_END}) not actual(" . ($max_update_date > $last_test->TEST_END) . ")".' (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($last_test);echo'';}
if ($max_update_date > $test_end) {
$testy_arr[$last_test->test_ind]->unactual = $max_update_date;
$testy_arr[$last_test->test_ind]->unactualId = $last_test->ID;
}
}
}
}
}
$_SESSION[$ses_cache_key] = $testy_arr;
}
return $_SESSION[$ses_cache_key];
}
return $testy_arr;
}
function setError($error) {
$this->error[] = $error;
}
function ifError() {// TODO: RMME
if (!empty($this->error)) {
return true;
}
else {
DEBUG_S(-1,'Wydarzyły się błędy uniemożliwiające kontynuacje pracy modułu',$this->error,__FILE__,__FUNCTION__,__LINE__);
die();
return false;
}
}
function set_current_menu($new_menu) {
$this->MENU_SELECT_PROCES = $new_menu;
}
/**
* Set $_SESSION['MENU_SELECT_PROCES_DATA'] from $this->MENU_SELECT_PROCES_DATA
*/
function set_current_menu_data() {
$_SESSION['MENU_SELECT_PROCES_DATA'] = array();
foreach ($this->MENU_SELECT_PROCES_DATA as $k_ind => $v_arr) {
if (!empty($v_arr)) {
$_SESSION['MENU_SELECT_PROCES_DATA'][$k_ind] = $v_arr;
}
}
}
function showMyTestsAction() {
$this->menuAction();
$userAcl = User::getAcl();
$procesy_init_ids = $this->_acl->getUsedProcesInitList();
if (empty($procesy_init_ids)) {
echo '' . "Brak przypisanych procesów." . '
';
return;
}
?>
_acl->fetchGroups();
$idZasobowUsera = array_keys($userGroups);
$idZasobowUsera = reset($idZasobowUsera);
?>
$proces_desc) : ?>
get_ocena_testu($proces_id, 'TEORETYCZNY');
$wynik_teoretyczny_value = $this->get_ocena_testu_value($proces_id, 'TEORETYCZNY');
if ($wynik_teoretyczny == 'BRAK_PYTAN') {
$wynik_teoretyczny_value = '';
}
$wynik_praktyczny = $this->get_ocena_testu($proces_id, 'PRAKTYCZNY');
$wynik_unactual = $this->isTestUnactual($proces_id, 'TEORETYCZNY');
?>
= 4) : $i = 0; ?>
get_actual_tests_count('TEORETYCZNY');
$testy_praktyczne = $this->get_actual_tests_count('PRAKTYCZNY');
$procesy_init_arr = $this->_acl->getUsedProcesInitIds();
$proces_cnt = count($procesy_init_arr);
$testy_ok = $this->get_actual_tests_count();
$MojeTestyTitle = "Ilość Procesów: {$proces_cnt}, Aktualnych testów: {$testy_ok}, Teoretycznych: {$testy_teoretyczne}, Praktycznych: {$testy_praktyczne}";
$userAcl = User::getAcl();
$tbls = $userAcl->getTablesAcl();
$urls = $userAcl->getUrls();
$outMenus = array();
$outBtnsMenus = array();
if (!empty($tbls)) {
foreach ($tbls as $kZasobID => $vTblAcl) {
$outMenus[$kZasobID] = $vTblAcl->getLongLabel();
if ($userAcl->getPermsProcesId()) {
$outBtnsMenus[$kZasobID] = $vTblAcl->getRawLabel();
}
}
}
asort($outMenus);
if ($userAcl->getPermsProcesId()) {
asort($outBtnsMenus);
}
$outUrls = array();
if (!empty($urls)) {
/**
* [147] => Array(
* [TYPE] => URL
* [DESC] => ?MENU_INIT=DODAJ_REKORDY_MIESZKAN_FUNC
* [OPIS] => Narzedzie do wprowadzania zasobow mieszkan indywidualnych
*/
foreach ($urls as $kZasobID => $vTitle) {
$outUrls[$kZasobID] = $vTitle;
}
}
asort($outUrls);
$active = '';
$script_name = V::get('SCRIPT_NAME', '', $_SERVER);
if (false !== strpos($script_name, 'index.php')) {
$menu_init = V::get('MENU_INIT', '', $_GET);
switch ($menu_init) {
case 'VIEWTABLE_AJAX': $active = 'menu'; break;
case 'VIEWTABLE_KONTAKTY': $active = 'kontakty'; break;
default: {
$fun_init = V::get('FUNCTION_INIT', '', $_GET);
switch ($fun_init) {
case 'MENU_SELECT_PROCES': $active = 'testy_moje'; break;
case 'PRZYPOMNIJ_FUNC': $active = 'przypomnij'; break;
case 'PRZYPOMNIJ': $active = 'przypomnij'; break;
default:
}
}
}
}
else if (false !== strpos($script_name, 'procesy5.php')) {
$task = V::get('task', '', $_GET);
switch ($task) {
case 'CRM_PROCES': $active = 'procesy'; break;
case 'CRM_LISTA_ZASOBOW': $active = 'zasoby'; break;
case 'CRM_WYSWIETL_OBOWIAZKI': $active = 'obowiazki'; break;
case 'CRM_TESTY': $active = 'testy'; break;
case 'CRM_TESTY_WYNIKI': $active = 'testy_wyniki'; break;
case 'CRM_SEARCH': $active = 'search'; break;
default:
// testy_moje ?FUNCTION_INIT=MENU_SELECT_PROCES&MENU_SELECT_PROCES=show_menu_with_process => _action=showMyTests
}
}
/*
* $_SESSION['USER_PROFILE'][section][key] = val;
*/
$userBookmarks = UserBookmarks::getInstance();
$bookmarksJson = array();
$bookmarks = $userBookmarks->getBookmarks();
foreach ($bookmarks as $kZasobID => $vClass) {
if (array_key_exists($kZasobID, $tbls)) {
$bookmarksJson[] = (object)array('id'=>$kZasobID, 'name'=>$tbls[$kZasobID]->getName(), 'label'=>$tbls[$kZasobID]->getRawLabel(), 'opis'=>$tbls[$kZasobID]->getOpis(), 'type'=>'menu', 'class'=>$vClass);
}
else if (array_key_exists($kZasobID, $urls)) {
$bookmarksJson[] = (object)array('id'=>$kZasobID, 'name'=>$urls[$kZasobID], 'type'=>'url', 'class'=>$vClass);
}
}
$userGroupIdsCSV = User::getGroupsIds();
$userGroupIdsCSV = implode(',', $userGroupIdsCSV);
$typeSpecialUserId = null;
if (User::isAdmin()) {
$typeSpecialUserId = TypespecialVariable::getInstance(-1, '__USER_ID');
}
$typeSpecialZasob = TypespecialVariable::getInstance(-1, '__ZASOB');
$treeZasobyFilter = FilterFactory::build('CRM_LISTA_ZASOBOW');
$lastZasobyFiltrIds = $treeZasobyFilter->get_arg('filtr_id');
$userProcesIdsCSV = $this->_acl->getUsedProcesInitIds();
$userProcesIdsCSV = implode(',', $userProcesIdsCSV);
$typeSpecialProces = TypespecialVariable::getInstance(-1, '__PROCES');
$treeProcesyFilter = FilterFactory::build('CRM_PROCES');
$lastProcesyFiltrIds = $treeProcesyFilter->get_arg('filtr_id');
?>
_wynik_testu = array();// WYNIK_TESTU_PROCESU
$this->_wynik_testu_unactual = array();
$this_CRM_PROCES_USERA_WYKONANE_TESTY = $this->get_wykonane_testy();
foreach ($this_CRM_PROCES_USERA_WYKONANE_TESTY as $v_test) {
if (isset($this->_wynik_testu[$v_test->ID_PROCES_INIT][$v_test->TEST_TYPE])) {
continue;// only first
}
$this->_wynik_testu[$v_test->ID_PROCES_INIT][$v_test->TEST_TYPE] = $v_test->OCENA;
if (!empty($v_test->unactual)) {
$x_test = new stdClass();
$x_test->TEST_END = substr($v_test->TEST_END, 0, 10);
$x_test->unactual = substr($v_test->unactual, 0, 10);
$x_test->unactualId = $v_test->unactualId;
$this->_wynik_testu_unactual[$v_test->ID_PROCES_INIT][$v_test->TEST_TYPE] = $x_test;
}
}
}
function get_ocena_testu($proces_id, $typ) {
$ocena = $this->get_ocena_testu_value($proces_id, $typ);
if (!$ocena) {
return 'BRAK_TESTU';
}
else if ($ocena == -1) {
return 'BRAK_PYTAN';
}
else if ($ocena == 3) {
return 'IDEALNY';
}
else if ($ocena < 2) {
return 'NIEDOSTATECZNY';
}
else if($ocena < 2.5) {
return 'DOSTATECZNY';
}
else {
return 'DOBRY';
}
}
function get_ocena_testu_value($proces_id, $typ) {
if (isset($this->_wynik_testu[$proces_id][$typ])) {
return $this->_wynik_testu[$proces_id][$typ];
}
return null;
}
function isTestUnactual($proces_id, $typ) {
if (isset($this->_wynik_testu_unactual[$proces_id][$typ])) {
return $this->_wynik_testu_unactual[$proces_id][$typ];
}
return false;
}
function get_actual_tests_count($type = null) {
$this_CRM_PROCES_USERA_WYKONANE_TESTY = $this->get_wykonane_testy();
if ($type == 'TEORETYCZNY') {
$testy_teoretyczne = 0;
foreach ($this_CRM_PROCES_USERA_WYKONANE_TESTY as $int => $v_test) {
if ($v_test->TEST_TYPE=='TEORETYCZNY') {
if ($v_test->OCENA > 2.5) $testy_teoretyczne++;
}
}
return $testy_teoretyczne;
}
else if ($type == 'PRAKTYCZNY') {
$testy_praktyczne = 0;
foreach ($this_CRM_PROCES_USERA_WYKONANE_TESTY as $int => $v_test) {
if ($v_test->TEST_TYPE=='PRAKTYCZNY') {
if ($v_test->OCENA > 2.5) $testy_praktyczne++;
}
}
return $testy_praktyczne;
}
else if ($type == null) {
return count($this_CRM_PROCES_USERA_WYKONANE_TESTY);
}
return 0;
}
function wylacz_filtr_uprawnien_dla_procesu() {// TODO: RMME => _action=setPermsAll
unset($this->MENU_SELECT_PROCES_DATA['uruchom_filtr_uprawnien_dla_procesu']);// usun tryb jednego procesu
$this->set_current_menu_data();// zapisz do sesji
$this->set_perms_for_process();// domyslnie pusty włącza
}
function uruchom_filtr_uprawnien_dla_procesu() {// TODO: RMME => _action=setPermsByProces
$proces_to_filter = V::get('ID_PROCES', '', $_REQUEST);
$map = $this->_acl->getUsedProcesMap();
if (!in_array($proces_to_filter, $map)) {// TODO: chyba array_key_exists ?
$this->setError(" Nie ma takiego procesu dla usera aby ustawic dla niego filtry");
}
$this->ifError();// ? // TODO: RMME
//szukam tabeli do ustalenia permow
$this->unset_all_perms();
$this->MENU_SELECT_PROCES_DATA['uruchom_filtr_uprawnien_dla_procesu'] = $proces_to_filter;
$this->set_current_menu_data();
$this->set_perms_for_process($proces_to_filter);
$this->set_current_menu_data();
//$this->set_current_menu('show_menu_with_process');
//$this->show_menu_with_process();
}
function unset_all_perms() {
$dbg_czysc_permy = true;// @from USERS_FIELDS_PROFILE_INIT()
foreach ($_SESSION as $ses_col_name => $col_vars) {
if (!is_array($col_vars) || empty($col_vars)) continue;
if ('_COLUMN' != substr($ses_col_name, -1 * strlen('_COLUMN'))) {
continue;
}
if (empty($col_vars['PERMEDIT'])) continue;
if ($dbg_czysc_permy) {
foreach ($col_vars['PERMEDIT'] as $col_perm_ind => $col_perm_value) {
if ($col_perm_ind != 'ID') {
$_SESSION[$ses_col_name]['PERMEDIT'][$col_perm_ind] = "";
}
}
}
}
if (isset($_SESSION['MENU_SELECT_PROCES_DATA']['MENU_COLUMN'])) {
foreach ($_SESSION['MENU_SELECT_PROCES_DATA']['MENU_COLUMN'] as $zasob => $val) {
unset($this->MENU_SELECT_PROCES_DATA['MENU_COLUMN'][$zasob]);
unset($_SESSION['MENU_SELECT_PROCES_DATA']['MENU_COLUMN'][$zasob]);
}
}
}
function set_perms_for_process($proces_to_filter = null) {// => setPermsByProcesAction
if ($proces_to_filter) {
$map = $this->_acl->getUsedProcesMap();
if (array_key_exists($proces_to_filter, $map)) {
$CRM_PROCES_USERA_UZYTY = $map[$proces_to_filter];
} else {
$CRM_PROCES_USERA_UZYTY = array();
}
}
else {
$CRM_PROCES_USERA_UZYTY = $this->_acl->getUsedProcesIds();
}
if (!empty($CRM_PROCES_USERA_UZYTY)) {
return;
}
// ! @2013-02-11 zerzniete z USERS_FIELDS_PROFILE_INIT !
$CRM_WSKAZNIK_PROCES_WSKAZNIK_TREE = array();
$CRM_TREE_WSKAZNIK_NARZEDZIE = array();
$TREE_CRM_WSKAZNIK_CONF = array();
$TREE_CRM_WSKAZNIK_SORT_PRIO = array();
$db = DB::getDB();
//kopiuje tabele ze wskaznikow
$sql = "select t1.`ID_PROCES`
, t1.`ID_ZASOB`
, replace(t2.`FORM_TREAT`, ',', '') as FORM_TREAT
, t3.`DESC` as ZASOB_DESC
, t3.`TYPE`
, t4.`DESC` as PARENT_ZASOB_DESC
, t4.`TYPE` as PARENT_TYPE
, t3.`SORT_PRIO` as z__SORT_PRIO
, t3.`OPIS` as ZASOB_OPIS , t1.`ID` as ID_WSKAZNIK
from `CRM_WSKAZNIK` as t1
left join `CRM_PRZYPADEK` as t2 on (t1.ID_PRZYPADEK=t2.ID)
left join `CRM_LISTA_ZASOBOW` as t3 on (t3.ID=t1.ID_ZASOB)
left join `CRM_LISTA_ZASOBOW` as t4 on (t4.ID=t3.PARENT_ID)
where
(
( t3.`TYPE`='KOMORKA' and t4.`TYPE`='TABELA' )
or (t3.`TYPE`='NARZEDZIE') or (t3.`TYPE`='URL')
)
and t1.`A_STATUS` in('NORMAL', 'WAITING')
and t1.`ID_PROCES` in(" . implode(",", $CRM_PROCES_USERA_UZYTY) . ")
";
$res = $db->query($sql);
if (!$res) {
return;
}
while ($r = $db->fetch($res)) {
if ($r->TYPE == 'NARZEDZIE') {
if (isset($CRM_TREE_WSKAZNIK_NARZEDZIE[$r->ID_ZASOB])) {
$CRM_TREE_WSKAZNIK_NARZEDZIE[$r->ID_ZASOB] .= $r->FORM_TREAT;
}
else {
$CRM_TREE_WSKAZNIK_NARZEDZIE[$r->ID_ZASOB] = $r->FORM_TREAT;
}
$CRM_WSKAZNIK_PROCES_WSKAZNIK_TREE[$r->ID_PROCES][] = $r->ID_WSKAZNIK;//ustawiam wskaznik od procesu, jak user wybierze proces do roboty, to ja poznam co moze mu sie pojawic
}
else if ($r->TYPE == 'URL') {
$CRM_WSKAZNIK_PROCES_WSKAZNIK_TREE[$r->ID_PROCES][] = $r->ID_WSKAZNIK;//ustawiam wskaznik od procesu, jak user wybierze proces do roboty, to ja poznam co moze mu sie pojawic
$_SESSION['MENU_SELECT_PROCES_DATA']['MENU_COLUMN'][$r->ID_ZASOB]['TYPE'] = $r->TYPE;
$_SESSION['MENU_SELECT_PROCES_DATA']['MENU_COLUMN'][$r->ID_ZASOB]['DESC'] = $r->ZASOB_DESC;
$_SESSION['MENU_SELECT_PROCES_DATA']['MENU_COLUMN'][$r->ID_ZASOB]['OPIS'] = $r->ZASOB_OPIS;
}
else {
if ($r->PARENT_TYPE == 'TABELA') {
$CRM_WSKAZNIK_PROCES_WSKAZNIK_TREE[$r->ID_PROCES][] = $r->ID_WSKAZNIK;//ustawiam wskaznik od procesu, jak user wybierze proces do roboty, to ja poznam co moze mu sie pojawic
if (isset($r->FORM_TREAT)) {
if (isset($TREE_CRM_WSKAZNIK_CONF[$r->PARENT_ZASOB_DESC][$r->ZASOB_DESC])) {
$TREE_CRM_WSKAZNIK_CONF[$r->PARENT_ZASOB_DESC][$r->ZASOB_DESC] .= $r->FORM_TREAT;
}
else {
$TREE_CRM_WSKAZNIK_CONF[$r->PARENT_ZASOB_DESC][$r->ZASOB_DESC] = $r->FORM_TREAT;
}
// echo "PARENT_ZASOB_DESC." ".$r->ZASOB_DESC." = ".$r->FORM_TREAT;
}
$TREE_CRM_WSKAZNIK_SORT_PRIO[$r->PARENT_ZASOB_DESC][$r->ZASOB_DESC] = $r->z__SORT_PRIO;
//@2012-10-10 by SQIX : dodajemy opus kolumny z opisu zasobow
if ($r->ZASOB_OPIS) {
$_SESSION[$r->PARENT_ZASOB_DESC."_COLUMN"]['DESC_TO_LANG'][$r->ZASOB_DESC] = $r->ZASOB_OPIS;
}
else if (isset($_SESSION[$r->PARENT_ZASOB_DESC."_COLUMN"]['DESC_TO_LANG'][$r->ZASOB_DESC])
&& strlen($_SESSION[$r->PARENT_ZASOB_DESC."_COLUMN"]['DESC_TO_LANG'][$r->ZASOB_DESC]) > 1
) {
echo "
DODAJ opis dla zasobu ".$r->ID_ZASOB." w postaci ".$_SESSION[$r->PARENT_ZASOB_DESC."_COLUMN"]['DESC_TO_LANG'][$r->ZASOB_DESC]."
";
}
}
}
}
// ! nizej uruchamiamy permy na podstawie wynikow co umozliwialy procesy
foreach ($TREE_CRM_WSKAZNIK_CONF as $ses_column_name => $field_perms_arr) {
foreach ($field_perms_arr as $k_name => $v_perm) {
$v_perm = str_split($v_perm);
$v_perm = array_unique($v_perm);
$v_perm = implode("", $v_perm);
//if(isset($_SESSION[$ses_column_name."_COLUMN"]['PERMEDIT'][$k_name]))
$_SESSION[$ses_column_name."_COLUMN"]['PERMEDIT'][$k_name] = $v_perm;
//else $_SESSION[$ses_column_name."_COLUMN"]['PERMEDIT'][$k_name] = $v_perm."RWX"; //dokladamy permy do istniejacych!!! @2012-10-21- najlepsze na okres przejsciowy do generowania procesow!
$debug_perms[]="_SESSION['".$ses_column_name."_COLUMN']['PERMEDIT'][".$k_name."]']=".$v_perm;
//jezeli jest w kolumnie ID==W , to znaczy, ze mozna dodawac nowy rekord
if ($k_name == 'ID' && strstr($v_perm, 'W')) {
$_SESSION[$ses_column_name."_COLUMN"]['FUNCPERMEDIT']['NEW_RECORD'] = "RWXC";
$_SESSION[$ses_column_name."_COLUMN"]['FUNCPERMEDIT']['TABLE_INSERTDB'] = "RWXC";
}
//jezeli jest funkcja powiazana to uprawnienia dostajemy takie same jak z komorki do tej funkcji!
if (isset($_SESSION[$ses_column_name."_COLUMN"]['TYPESPECIAL'][$k_name])) {
$debug_perms[]="_SESSION['".$ses_column_name."_COLUMN']['FUNCPERMEDIT']['".$_SESSION[$ses_column_name."_COLUMN"]['TYPESPECIAL'][$k_name]."']=".$v_perm;
$_SESSION[$ses_column_name."_COLUMN"]['FUNCPERMEDIT'][$_SESSION[$ses_column_name."_COLUMN"]['TYPESPECIAL'][$k_name]] = $v_perm;
}
}
{// sort DESC by ZASOB.SORT_PRIO
$desc_to_sort = array();
if (!isset($_SESSION[$ses_column_name."_COLUMN"]['DESC'])) {
//echo "
L2375 Brak definicji w systemie opisanej procesami tabeli ".$ses_column_name."";
}
else
foreach ($_SESSION[$ses_column_name."_COLUMN"]['DESC'] as $k_ind => $v_val) {
$desc_to_sort[$v_val] = $k_ind;
}
$TREE_CRM_WSKAZNIK_SORT_PRIO[$ses_column_name];
asort($TREE_CRM_WSKAZNIK_SORT_PRIO[$ses_column_name]);
$new_desc = array();
foreach ($TREE_CRM_WSKAZNIK_SORT_PRIO[$ses_column_name] as $k_name => $v_sort_prio) {
if (!isset($desc_to_sort[$k_name])) {
//echo "
Brak spojnosci definicji dla kolumny : ".$ses_column_name."[".$k_name."] ";
}
else {
$new_desc[$desc_to_sort[$k_name]] = $k_name;
}
}
// add columns
foreach ($desc_to_sort as $k_name => $v_ind) {
$new_desc[$v_ind] = $k_name;
}
$_SESSION[$ses_column_name."_COLUMN"]['DESC'] = $new_desc;
}// sort DESC by ZASOB.SORT_PRIO
}
}
/**
* URL: _action=setPermsAll
*/
function setPermsAllAction() {
$userAcl = User::getAcl();
$userAcl->fetchAllPerms(true);
$this->menuAction();
}
/**
* URL: _action=setPermsByProces
*/
function setPermsByProcesAction() {
$procesID = V::get('id_proces', 0, $_GET, 'int');
if ($procesID <= 0) {
echo '' . "Brak ID Procesu" . '
';
return;
}
$userAcl = User::getAcl();
if ($userAcl->getPermsProcesId() == $procesID) {
$this->menuAction();
echo '' . "Uprawnienia dla ID Procesu {$procesID} już zostały ustawione" . '
';
return;
}
$db = DB::getDB();
$proces = $db->get_by_id('CRM_PROCES', $procesID);
if ($proces->TYPE != 'PROCES_INIT') {
$this->menuAction();
echo '' . "Proces nie jest typu PROCES_INIT" . '
';
return;
}
$userAcl = User::getAcl();
$procesStepList = $userAcl->getUsedProcesIds($procesID);
if (empty($procesStepList)) {
$this->menuAction();
echo '' . "Nie ma takiego procesu dla usera aby ustawic dla niego filtry" . '
';
return;
}
$userAcl->fetchProcesPerms($procesID, true);
$this->menuAction();
}
function show_url_menu() {// TODO: raneme; show all tables and actions by selected proces if in proces perm
if (isset($_SESSION['MENU_SELECT_PROCES_DATA']['MENU_COLUMN'])) {
?>
4680
//$sql='update CRM_TESTY set A_RECORD_CREATE_AUTHOR='smagielm' where A_RECORD_CREATE_AUTHOR='Kandydat.4673';
//$sql='update CRM_TESTY set A_RECORD_UPDATE_AUTHOR='smagielm' where A_RECORD_UPDATE_AUTHOR='Kandydat.4673';
//$sql="update CRM_TESTY set ID_TESTER='4680' where ID_TESTER='4673'";
}
}