Преглед изворни кода

cleaned up code in ACL, ProcesHelper, UserAcl, UsersHelper, TreeListView, testy

Piotr Labudda пре 8 година
родитељ
комит
6fc69933ec
6 измењених фајлова са 174 додато и 347 уклоњено
  1. 28 30
      SE/procesy/testy.php
  2. 29 48
      SE/se-lib/ACL.php
  3. 42 169
      SE/se-lib/ProcesHelper.php
  4. 22 34
      SE/se-lib/TreeListView.php
  5. 15 18
      SE/se-lib/UserAcl.php
  6. 38 48
      SE/se-lib/UsersHelper.php

+ 28 - 30
SE/procesy/testy.php

@@ -550,38 +550,36 @@ function task_CRM_TEST() {
 		return;
 	}
 
-	$test_obj = DB::get_by_id('CRM_TESTY', $test_id);
+	$test_obj = (object)DB::getPDO()->fetchFirst(" select * from CRM_TESTY where ID = :ID ", [ 'ID' => $test_id ]);
 	if (!$test_obj) {
 		echo'<p class="red">'."Wrond ID.".'</p>';
 		return;
 	}
 
-	$stanowisko = DB::get_by_id('CRM_LISTA_ZASOBOW', $test_obj->ID_STANOWISKO);
-	$proces = DB::get_by_id('CRM_PROCES', $test_obj->ID_PROCES_INIT);
+	$stanowisko = (object)DB::getPDO()->fetchFirst(" select * from CRM_LISTA_ZASOBOW where ID = :ID ", [ 'ID' => $test_obj->ID_STANOWISKO ]);
+	$proces = (object)DB::getPDO()->fetchFirst(" select * from CRM_PROCES where ID = :ID ", [ 'ID' => $test_obj->ID_PROCES_INIT ]);
 
 	if (!$proces || !$stanowisko) {
-		?>
-<div class="alert alert-danger">
-	Błędny proces lub stanowisko!
-</div>
-<?php
+		UI::alert('danger', "Błędny proces lub stanowisko!");
 		return;
 	}
-	?>
-<div class="panel panel-default">
-  <div class="panel-heading">Test:</div>
-  <div class="panel-body">
-		<ul>
-			<li>
-				Proces: <b class="text-danger">{<?php echo $proces->ID; ?>} <?php echo $proces->DESC; ?></b>
-			</li>
-			<li>
-				Stanowisko: <b class="text-success">[<?php echo $stanowisko->ID; ?>] <?php echo $stanowisko->DESC; ?></b>
-			</li>
-		</ul>
-  </div>
-</div>
-<?php
+	echo UI::h('div', [ 'class' => "container" ], [
+		UI::h('div', [ 'class' => "panel panel-default" ], [
+			UI::h('div', [ 'class' => "panel-heading" ], "Test:"),
+			UI::h('div', [ 'class' => "panel-body" ], [
+				UI::h('ul', [], [
+					UI::h('li', [], [
+						"Proces: ",
+						UI::h('b', [ 'class' => "text-danger" ], "{{$proces->ID}} {$proces->DESC}"),
+					]),
+					UI::h('li', [], [
+						"Stanowisko: ",
+						UI::h('b', [ 'class' => "text-success" ], "[{$stanowisko->ID}] {$stanowisko->DESC}"),
+					]),
+				]),
+			]),
+		]),
+	]);
 
 	$lastTestDate = null;
 	if ($test_obj->ID_TEST_TO_FIX > 0) {
@@ -604,7 +602,7 @@ function task_CRM_TEST() {
 	else if ($test_obj->A_STATUS == 'MONITOR' && $test_obj->TEST_START == '0000-00-00 00:00:00') {// czytanie - test rozpoczety z data TEST_INIT
 		$id_proces = $test_obj->ID_PROCES_INIT;
 
-		$p = DB::get_by_id('CRM_PROCES', $id_proces);
+		$p = (object)DB::getPDO()->fetchFirst(" select * from CRM_PROCES where ID = :ID ", [ 'ID' => $id_proces ]);
 		if (!$p) {
 			echo '<div class="alert alert-danger">' . "Proces {$id_proces} nie istnieje" . '</div>';
 			return;
@@ -629,18 +627,18 @@ function task_CRM_TEST() {
 			}
 		}
 		if (!empty($gotoIds)) {
-			$db = DB::getDB();
 			$sqlIds = implode(",", $gotoIds);
-			$sql = "select p.`ID`, p.`DESC`, p.`OPIS`
+			$sql = "
+				select p.`ID`, p.`DESC`
+					-- , p.`OPIS`
 				from `CRM_PROCES` as p
 				where
 					p.`A_STATUS` in('WAITING', 'NORMAL')
 					and p.`ID` in({$sqlIds})
 			";
-			$res = $db->query($sql);
-			while ($r = $db->fetch($res)) {
-				$gotoLinks[$r->ID] = $r->DESC;
-			}
+			$gotoLinks = array_map(function ($row) {
+				return $row['DESC'];
+			}, DB::getPDO()->fetchAllByKey($sql, 'ID'));
 		}
 
 		foreach ($listFlat as $vItem) {

+ 29 - 48
SE/se-lib/ACL.php

@@ -20,12 +20,12 @@ class ACL {
 	 */
 	public static function getTableProcesInitList($idTable) {
 		$tableProcesInitList = array();
-		$sqlIdProcesListSql = <<<SQL
+		$sqlIdProcesListSql = "
 			select tpv.`ID_PROCES`
 				from `CRM_PROCES_idx_TABLE_TO_PROCES_VIEW` tpv
 				where tpv.`ID_TABLE`='{$idTable}'
-SQL;
-		$fetchTableProcesInitListSql = <<<SQL
+		";
+		$fetchTableProcesInitListSql = "
 			-- time ~0.07 -- no goto and return
 			select p.`ID`, p.`DESC`
 			from `CRM_PROCES` p
@@ -36,7 +36,7 @@ SQL;
 				)
 				and p.`TYPE`='PROCES_INIT'
 			order by p.`SORT_PRIO`
-SQL;
+		";
 		/*
 			SELECT p.`ID` , p.`DESC`
 			FROM `CRM_PROCES` p
@@ -54,7 +54,7 @@ SQL;
 			AND p.`TYPE` = 'PROCES_INIT'
 			order by p.`SORT_PRIO`
 		*/
-		$fetchTableProcesInitListSql = <<<SQL
+		$fetchTableProcesInitListSql = "
 			-- time ~0.15s
 			select p.`ID`, p.`DESC`
 			from `CRM_PROCES` p
@@ -70,8 +70,8 @@ SQL;
 				)
 				and p.`TYPE`='PROCES_INIT'
 			order by p.`SORT_PRIO`
-SQL;
-		$fetchTableProcesInitListSql = <<<SQL
+		";
+		$fetchTableProcesInitListSql = "
 			-- time ~0.14
 			select p.`ID`, p.`DESC`
 			from `CRM_PROCES` p
@@ -87,33 +87,28 @@ SQL;
 				)
 				and p.`TYPE`='PROCES_INIT'
 			order by p.`SORT_PRIO`
-SQL;
-		//echo'<pre>$fetchTableProcesInitListSql('.$idTable.') ';print_r($fetchTableProcesInitListSql);echo'</pre>';
-		$tableProcesInitList = array();
-		$db = DB::getDB();
-		$res = $db->query($fetchTableProcesInitListSql);
-		while ($r = $db->fetch($res)) {
-			$tableProcesInitList[$r->ID] = $r->DESC;
-		}
-		return $tableProcesInitList;
+		";
+		return array_map(function ($row) {
+			return $row['DESC'];
+		}, DB::getPDO()->fetchAllByKey($fetchTableProcesInitListSql, 'ID'));
 	}
 
 	public static function getProcesInitMapTreeOnlyIds($ids) {
 		$mapTree = array();
 		$map = self::getProcesInitMapOnlyIds($ids);
-		foreach ($map as $r) {
-			if ('PROCES_INIT' == $r->TYPE) {
-				$mapTree[$r->ID_PROCES] = array();
+		foreach ($map as $row) {
+			if ('PROCES_INIT' == $row['TYPE']) {
+				$mapTree[ $row['ID_PROCES'] ] = array();
 			}
 		}
-		foreach ($map as $r) {
-			if ('GOTO_AND_RETURN' == $r->TYPE) {
-				$mapTree[$r->idx_MAIN_PROCES_INIT_ID][$r->ID_PROCES] = array();
+		foreach ($map as $row) {
+			if ('GOTO_AND_RETURN' == $row['TYPE']) {
+				$mapTree[ $row['idx_MAIN_PROCES_INIT_ID'] ][ $row['ID_PROCES'] ] = array();
 			}
 		}
-		foreach ($map as $r) {
-			if ('GOTO_AND_RETURN_LVL2' == $r->TYPE) {
-				$mapTree[$r->idx_MAIN_PROCES_INIT_ID][$r->idx_GOTO_LVL2_INIT_ID][$r->ID_PROCES] = true;
+		foreach ($map as $row) {
+			if ('GOTO_AND_RETURN_LVL2' == $row['TYPE']) {
+				$mapTree[ $row['idx_MAIN_PROCES_INIT_ID'] ][ $row['idx_GOTO_LVL2_INIT_ID'] ][ $row['ID_PROCES'] ] = true;
 			}
 		}
 		return $mapTree;
@@ -124,7 +119,7 @@ SQL;
 		$sqlIds = V::filter($ids, array('V', 'filterPositiveInteger'));
 		$sqlIds = implode(',', $sqlIds);
 		if (empty($sqlIds)) return $map;
-		$sql = <<<SQL
+		$sql = "
 			select i.`ID_PROCES`
 				, i.`PARENT_ID`
 				, i.`TYPE`
@@ -141,35 +136,21 @@ SQL;
 			from `CRM_PROCES_idx` i
 			where i.`ID_PROCES` in({$sqlIds})
 				and i.`idx_MAIN_PROCES_INIT_ID` in({$sqlIds})
-SQL;
-		DBG::_('DBG_MAP', '1', "MAP SQL", $sql, __CLASS__, __FUNCTION__, __LINE__);
-		$db = DB::getDB();
-		$res = $db->query($sql);
-		while ($r = $db->fetch($res)) {
-			$map[] = $r;
-		}
-		//DBG::table("MAP", $map, __CLASS__, __FUNCTION__, __LINE__);
-		return $map;
+		";
+		return DB::getPDO()->fetchAll($sql);
 	}
 
 	public static function canGroupViewProces($idGroup, $idProcesInit) {
 		$isAllowed = false;
 		$idProcesInit = (int)$idProcesInit;
 		if (!$idProcesInit) return false;
-		$checkProcesAccessSql = <<<SQL
+		$checkProcesAccessSql = "
 			select count(*) as cnt
-				from `CRM_PROCES_idx_GROUP_to_INIT_VIEW` giv
-				where giv.`ID_GROUP` = '{$idGroup}'
-					and giv.`ID_PROCES_INIT` = '{$idProcesInit}'
-SQL;
-		$db = DB::getDB();
-		$res = $db->query($checkProcesAccessSql);
-		if ($r = $db->fetch($res)) {
-			if ($r->cnt > 0) {
-				$isAllowed = true;
-			}
-		}
-		return $isAllowed;
+			from `CRM_PROCES_idx_GROUP_to_INIT_VIEW` giv
+			where giv.`ID_GROUP` = '{$idGroup}'
+				and giv.`ID_PROCES_INIT` = '{$idProcesInit}'
+		";
+		return ( DB::getPDO()->fetchValue($checkProcesAccessSql) > 0 );
 	}
 
 	public static function getStorageByNamespace($namespace, $forceTblAclInit = false) {

+ 42 - 169
SE/se-lib/ProcesHelper.php

@@ -27,12 +27,9 @@ class ProcesHelper {
 	}
 
 	public static function getWskaznikiByIds($ids, $params = array()) {
-		$wskazniki = array();
-		if (empty($ids)) {
-			return $wskazniki;
-		}
-		$db = DB::getDB();
-		$sql = "select
+		if (empty($ids)) return [];
+		$sql = "
+			select
 				clz.*
 				, w.`ID_PROCES`
 				, w.`ID` as CW_ID, w.`TYP` as CW_TYP, w.`OPIS_ZASOB` as OPIS_ZASOB, w.`SORT_PRIO` as CW_SORT_PRIO, w.`ID_PRZYPADEK` as CW_ID_PRZYPADEK
@@ -46,9 +43,9 @@ class ProcesHelper {
 				and w.`A_STATUS` in('WAITING','NORMAL','MONITOR')
 			order by w.`SORT_PRIO` asc, w.`ID` asc
 		";
-		$res = $db->query($sql);
-		while ($r = $db->fetch($res)) {
-			$wskazniki[$r->ID_PROCES][$r->CW_ID] = $r;
+		$wskazniki = array();
+		foreach (DB::getPDO()->fetchAll($sql) as $row) {
+			$wskazniki[ $row['ID_PROCES'] ][ $row['CW_ID'] ] = (object)$row;
 		}
 
 		if (1 == V::get('group_stanowiska', '', $params)) {
@@ -72,110 +69,6 @@ class ProcesHelper {
 		return $wskazniki;
 	}
 
-	public static function get_list_for_user_count($user_groups, $params = array()) {
-		$ret = array();
-		$db = DB::getDB();
-		$sql = self::_get_list_for_user_sql($user_groups, $params, true);
-		$res = $db->query($sql);
-		if ($r = $db->fetch($res)) {
-			$ret = $r->cnt;
-		}
-		return $ret;
-	}
-
-	public static function get_list_for_user($user_groups, $params = array()) {
-		$ret = array();
-		$db = DB::getDB();
-		$sql = self::_get_list_for_user_sql($user_groups, $params);
-		$res = $db->query($sql);
-		while ($r = $db->fetch($res)) {
-			$ret[] = $r;
-		}
-		return $ret;
-	}
-
-	/**
-	 * TODO: find user proces
-	 */
-	public static function _get_list_for_user_sql($user_groups, $params = array(), $count = false) {
-		$sql_select = array();
-		$sql_limit = "";
-		$sql_where = "";
-
-		if ($count) {
-			$sql_select[] = "count(1) as cnt";
-		} else {
-			$sql_select[] = "t.*";
-			$sql_limit = V::get('limit', '10', $params);
-			$sql_offset = V::get('offset', '0', $params);
-			$sql_limit = "limit {$sql_limit} offset {$sql_offset}";
-		}
-
-		$sql_select = implode(", ", $sql_select);
-		$sql = "select
-				{$sql_select}
-			from `CRM_PROCES_LOG` as t
-	--			left join `` as p on(p.``=t.``)
-			where
-				{$sql_where}
-			{$sql_limit}
-		";
-		return $sql;
-	}
-
-	/**
-	 * Get allowed Stanowiska ID for given proces.
-	 * @param $proces_id - proces ID
-	 * @returns array of Stanowiska ID
-	 * Search recursively up by p.PARENT_ID, stop when find p.PROCES_INIT or find z.STANOWISKO
-	 */
-	public static function get_allowed_stanowiska_by_proces_id($proces_id) {
-		$ret = array();
-		$proces_id = intval($proces_id);
-		if ($proces_id <= 0) return $ret;
-		// TODO: DB::get_by_id('CRM_PROCES', $proces_id);
-		// TODO: check TYPE=PROCES_INIT -> get STANOWISKO and stop
-		// TODO: find wskazniki STANOWISKO
-		// TODO: if !empty return else recursive - TODO: add recursive limit!
-		$db = DB::getDB();
-		$sql = "select
-				p.`TYPE` as p__TYPE
-				, z.`ID` as z__ID
-				, z.`TYPE` as z__TYPE
-			from `CRM_PROCES` as p
-				left join `CRM_WSKAZNIK` as w on(w.`ID_PROCES`=p.`ID`)
-				left join `CRM_LISTA_ZASOBOW` as z on (z.`ID`=w.`ID_ZASOB`)
-			where
-				p.`ID`='{$proces_id}'
-				and w.`A_STATUS` in('WAITING','NORMAL','MONITOR')
-				and z.`TYPE`='STANOWISKO'
-		";
-		$res = $db->query($sql);
-		while ($r = $db->fetch($res)) {
-			$ret[] = $r->z__ID;
-		}
-	//echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">ret: ';print_r($ret);echo'</pre>';
-		return $ret;
-	}
-
-	public static function getProcesByUser($user_name, $groups) {
-		$ret = array();
-		$db = DB::getDB();
-		$sql = "select plog.*
-			from `CRM_PROCES_LOG` as plog
-			where
-				( plog.`A_RECORD_CREATE_AUTHOR`='{$user_name}'
-					or plog.`A_RECORD_UPDATE_AUTHOR`='{$user_name}'
-				)
-			order by plog.ID DESC
-		";
-		$res = $db->query($sql);
-		while ($r = $db->fetch($res)) {
-			$ret[$r->ID] = $r;
-		}
-		return $ret;
-	}
-
 	public static function split_wskazniki_by_table(&$wsk) {
 		$wsk_split = array();
 		echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">wsk: ';print_r($wsk);echo'</pre>';
@@ -198,22 +91,16 @@ class ProcesHelper {
 	 * @param $stanowiska_id - array of integer
 	 */
 	public static function get_procesy_by_stanowiska($stanowiska_id = array()) {
-		$db = DB::getDB();
-		$ret = array();
-		if (empty($stanowiska_id)) {
-			return $ret;
-		}
+		if (empty($stanowiska_id)) return [];
 		$sql_stanowiska_id = array();
 		foreach ($stanowiska_id as $v_id) {
 			$v_id = intval($v_id);
-			if ($v_id > 0) {
-				$sql_stanowiska_id[] = "'{$v_id}'";
-			}
-		}
-		if (empty($sql_stanowiska_id)) {
-			return $ret;
+			if ($v_id > 0) $sql_stanowiska_id[] = "'{$v_id}'";
 		}
-		$sql = "select
+		if (empty($sql_stanowiska_id)) return [];
+		$ret = array();
+		$sql = "
+			select
 				p.`ID`
 				, p.`PARENT_ID`
 				, p.`TYPE`
@@ -235,11 +122,9 @@ class ProcesHelper {
 				and z.`ID` in (" . implode(",", $sql_stanowiska_id) . ")
 			order by p.`TEST_SORT_PRIO` DESC, p.`ID` ASC
 		";
-		$res = $db->query($sql);
-		while ($r = $db->fetch($res)) {
-			$ret[] = $r;
-		}
-		return $ret;
+		return array_map(function ($row) {
+			return (object)$row;
+		}, DB::getPDO()->fetchAll($sql));
 	}
 
 	/**
@@ -247,9 +132,8 @@ class ProcesHelper {
 	 * @return array ID => TEST_SORT_PRIO
 	 */
 	public static function get_procesy_init_list_order() {
-		$ret = array();
-		$db = DB::getDB();
-		$sql = "select
+		$sql = "
+			select
 				p.`ID`
 				, p.`TEST_SORT_PRIO`
 			from `CRM_PROCES` as p
@@ -258,11 +142,9 @@ class ProcesHelper {
 				and p.`A_STATUS` in('WAITING','NORMAL','MONITOR')
 			order by p.`TEST_SORT_PRIO` DESC, p.`ID` ASC
 		";
-		$res = $db->query($sql);
-		while ($r = $db->fetch($res)) {
-			$ret[$r->ID]= $r->TEST_SORT_PRIO;
-		}
-		return $ret;
+		return array_map(function ($row) {
+			return $row['TEST_SORT_PRIO'];
+		}, DB::getPDO()->fetchAllByKey($sql, 'ID'));
 	}
 
 	/**
@@ -270,46 +152,42 @@ class ProcesHelper {
 	 */
 	public static function get_procesy_init_list() {
 		$ret = array();
-		$db = DB::getDB();
-		$sql = "select
+		$sql = "
+			select
 				p.`ID`
 				, p.`PARENT_ID`
 				, p.`TYPE`
 				, p.`DESC`
 				, p.`TEST_SORT_PRIO`
---				, w.`ID` as w__ID
---				, w.`OPIS_ZASOB` as w__OPIS_ZASOB
---				, z.`ID` as z__ID
+		--		, w.`ID` as w__ID
+		--		, w.`OPIS_ZASOB` as w__OPIS_ZASOB
+		--		, z.`ID` as z__ID
 				, cps.`path`
 				, p.`TEST_SORT_PRIO`
 				, p.`SORT_PRIO`
 			from `CRM_PROCES` as p
---				left join `CRM_WSKAZNIK` as w on(w.`ID_PROCES`=p.`ID`)
---				left join `CRM_LISTA_ZASOBOW` as z on(z.`ID`=w.`ID_ZASOB`)
+		--		left join `CRM_WSKAZNIK` as w on(w.`ID_PROCES`=p.`ID`)
+		--		left join `CRM_LISTA_ZASOBOW` as z on(z.`ID`=w.`ID_ZASOB`)
 				left join `_CRM_PROCES_STATS_proc_wiev` as cps on(p.`ID`=cps.`ID`)
 			where
 				p.`TYPE`='PROCES_INIT'
 				and p.`A_STATUS` in('WAITING','NORMAL','MONITOR')
---				and w.`A_STATUS` in('WAITING','NORMAL','MONITOR')
---				and w.`ID_PRZYPADEK`=1
---				and z.`A_STATUS` in('WAITING','NORMAL','MONITOR')
---				and z.`TYPE`='STANOWISKO'
---				and z.`ID` is not null
+		--		and w.`A_STATUS` in('WAITING','NORMAL','MONITOR')
+		--		and w.`ID_PRZYPADEK`=1
+		--		and z.`A_STATUS` in('WAITING','NORMAL','MONITOR')
+		--		and z.`TYPE`='STANOWISKO'
+		--		and z.`ID` is not null
 			order by p.`TEST_SORT_PRIO` DESC, p.`ID` ASC
 		";
-		$res = $db->query($sql);
-		while ($r = $db->fetch($res)) {
-			$ret[] = $r;
-		}
-		return $ret;
+		return array_map(function ($row) {
+			return (object)$row;
+		}, DB::getPDO()->fetchAll($sql));
 	}
 
 	/**
 	 * Przeniesienie procesu w kolejności w testach.
 	 */
 	public static function proces_init_move($proces_id, $sort_prio_dir) {
-		$db = DB::getDB();
-
 		$proces_list = self::get_procesy_init_list();
 		$proces_list = array_reverse($proces_list);
 
@@ -339,6 +217,7 @@ class ProcesHelper {
 			$wsk_order[$wsk[$proces_id] + 1] = $tmp;
 		}
 		if (empty($wsk_order)) return;
+		$db = DB::getDB();
 		foreach ($wsk_order as $k_sort_prio => $v_proces_id) {
 			$sql = "update `CRM_PROCES` set `TEST_SORT_PRIO`='{$k_sort_prio}' where `ID`='{$v_proces_id}'; ";
 			$db->query($sql);
@@ -347,19 +226,12 @@ class ProcesHelper {
 	}
 
 	public static function proces_flag($proces_id, $goto_id, $flag) {
-		$ret = '';
 		switch ($flag) {
-			case 'GOTO':
-				$ret = '<span style="color:#FF0000">' . "&rarr;" . '</span>' . $goto_id;
-				break;
-			case 'GOTO_AND_RETURN':
-				$ret = '<span style="color:#FF0000">' . "&rarr;" . '</span>' . $goto_id . '<span style="color:#FF0000">' . "&crarr;" . '</span>';
-				break;
-			case 'FORK':
-				$ret = '<span style="color:#FF0000">' . "&oplus;&rarr;" . '</span>' . $goto_id;
-				break;
+			case 'GOTO': return '<span style="color:#FF0000">' . "&rarr;" . '</span>' . $goto_id;
+			case 'GOTO_AND_RETURN': return '<span style="color:#FF0000">' . "&rarr;" . '</span>' . $goto_id . '<span style="color:#FF0000">' . "&crarr;" . '</span>';
+			case 'FORK': return '<span style="color:#FF0000">' . "&oplus;&rarr;" . '</span>' . $goto_id;
 		}
-		return $ret;
+		return '';
 	}
 
 	/**
@@ -374,7 +246,8 @@ class ProcesHelper {
 		$ret = array();
 		$return_by = V::get('return_by', '', $params);
 		$db = DB::getDB();
-		$sql = "select
+		$sql = "
+			select
 				p.`ID`
 				, p.`IF_TRUE_GOTO`
 				, p.`IF_TRUE_GOTO_FLAG`

+ 22 - 34
SE/se-lib/TreeListView.php

@@ -1,7 +1,7 @@
 <?php
 
 /**
- * 
+ *
  * DBG: url arg: '&DBG_TF=1'
  */
 class TreeListView {
@@ -26,18 +26,16 @@ class TreeListView {
 		}
 
 		$this->_treeFlat = array();
-		$db = DB::getDB();
-		$sql = "select t.`ID`, t.`{$this->_tblParentField}` as PARENT_ID
+		$sql = "
+			select t.`ID`, t.`{$this->_tblParentField}` as PARENT_ID
 			from `{$this->_tbl}` as t
 			where t.`A_STATUS` in('WAITING','NORMAL')
 			order by t.`{$this->_tblParentField}`, t.`SORT_PRIO`, t.`ID`
 		";
-		if(V::get('DBG_TF', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
-		$res = $db->query($sql);
-		while ($r = $db->fetch($res)) {
-			$this->_treeFlat[$r->PARENT_ID][] = $r->ID;
+		foreach (DB::getPDO()->fetchAll($sql) as $row) {
+			$this->_treeFlat[ $row['PARENT_ID'] ][] = $row['ID'];
 		}
-		if(V::get('DBG_TF', '', $_GET) > 0){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">treeFlatAll (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($this->_treeFlat);echo'</pre>';}
+		DBG::log($this->_treeFlat, 'array', "treeFlat");
 	}
 
 	public function generateListFlat() {
@@ -51,13 +49,13 @@ class TreeListView {
 			2.1						2771 Dodanie nowego klienta Proces mówiący o tym jak dodać nowego k
 			2.1.1						2772 Wprowadź dane klienta Wprowadź wszystkie dane klienta: imię, nazwi
 			2.2						2774 Dodanie numeru telefonu dla istniejącego klienta Proces dodawania nume
-			2.2.1						2773 Wprowadź dane dotyczące nowego numeru telefonu Wypełnij dane z tabeli: 
-			2.2.2						2828 Edytowanie konta klienta Dodawanie dostępu do panelu klienckiego (miejsca  
-		 * 
+			2.2.1						2773 Wprowadź dane dotyczące nowego numeru telefonu Wypełnij dane z tabeli:
+			2.2.2						2828 Edytowanie konta klienta Dodawanie dostępu do panelu klienckiego (miejsca
+		 *
 		 * 1	[2768]	deep:1
 		 * 2	[2770]	deep:1
 		 * 3	[2771]	deep:2
-		 * 
+		 *
 		 */
 
 		$this->_listFlat = array();//  array('ID'=>$id_proces, 'LIST_NRS' => array(1));
@@ -121,42 +119,32 @@ class TreeListView {
 
 	public function fetchData() {
 		$sqlIds = $this->_listIds;
-
-		if (empty($sqlIds)) {
-			return $this->_data;
-		}
-
+		if (empty($sqlIds)) return $this->_data;
 		$sqlGotoIds = array();
-
-		$db = DB::getDB();
-		$sql = "select t.*
+		$sql = "
+			select t.*
 			from `{$this->_tbl}` as t
 			where t.`A_STATUS` in('WAITING','NORMAL')
 				and t.`ID` in(" . implode(",", $sqlIds) . ")
 		";
-		if(V::get('DBG_TF', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
-		$res = $db->query($sql);
-		while ($r = $db->fetch($res)) {
-			if ($r->IF_TRUE_GOTO > 0) {
-				$sqlGotoIds[] = $r->IF_TRUE_GOTO;
+		foreach (DB::getPDO()->fetchAll($sql) as $row) {
+			if ($row['IF_TRUE_GOTO'] > 0) {
+				$sqlGotoIds[] = $row['IF_TRUE_GOTO'];
 			}
-			$this->_data[$r->ID] = $r;
+			$this->_data[ $row['ID'] ] = (object)$row;
 		}
-
 		if (!empty($sqlGotoIds)) {
-			$sql = "select t.*
+			$sql = "
+				select t.*
 				from `{$this->_tbl}` as t
 				where t.`A_STATUS` in('WAITING','NORMAL')
 					and t.`ID` in(" . implode(",", $sqlGotoIds) . ")
 			";
-			if(V::get('DBG_TF', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sqlGoto (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
-			$res = $db->query($sql);
-			while ($r = $db->fetch($res)) {
-				$this->_data[$r->ID] = $r;
+			foreach (DB::getPDO()->fetchAll($sql) as $row) {
+				$this->_data[ $row['ID'] ] = (object)$row;
 			}
 		}
-
-		if(V::get('DBG_TF', '', $_GET) > 0){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">data (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($this->_data);echo'</pre>';}
+		DBG::log($this->_data, 'array', "TreeListView \$data");
 
 		return $this->_data;
 	}

+ 15 - 18
SE/se-lib/UserAcl.php

@@ -468,28 +468,25 @@ class UserAcl {
 	 * List of Proces Init for user (skip filters)
 	 */
 	public function getUserProcesInitList() {// TODO: read from CRM_PROCES_idx_GROUP_to_INIT_VIEW?
-		$userProcesInitList = array();
 		$idUserGroupList = $this->fetchGroups();
+		if (empty($idUserGroupList)) return [];
 		$sqlIdUserGroupList = implode(",", array_keys($idUserGroupList));
-		$sqlIdProcesListSql = <<<SQL
+		$sqlIdProcesListSql = "
 			select gi.`ID_PROCES`
-				from `CRM_PROCES_idx_GROUP_to_PROCES` gi
-				where gi.`ID_GROUP` in({$sqlIdUserGroupList})
-SQL;
-		$fetchUserProcesInitListSql = <<<SQL
+			from `CRM_PROCES_idx_GROUP_to_PROCES` gi
+			where gi.`ID_GROUP` in({$sqlIdUserGroupList})
+		";
+		$sqlFetchUserProcesInitList = "
 			select p.`ID`, p.`DESC`
-				from `CRM_PROCES_idx` i
-					join `CRM_PROCES` p on(p.`ID`=i.`idx_PROCES_INIT_ID`)
-				where i.`ID_PROCES` in({$sqlIdProcesListSql})
-				group by p.`ID`
-				order by p.`SORT_PRIO`
-SQL;
-		$db = DB::getDB();
-		$res = $db->query($fetchUserProcesInitListSql);
-		while ($r = $db->fetch($res)) {
-			$userProcesInitList[$r->ID] = $r->DESC;
-		}
-		return $userProcesInitList;
+			from `CRM_PROCES_idx` i
+				join `CRM_PROCES` p on(p.`ID`=i.`idx_PROCES_INIT_ID`)
+			where i.`ID_PROCES` in({$sqlIdProcesListSql})
+			group by p.`ID`
+			order by p.`SORT_PRIO`
+		";
+		return array_map(function ($row) {
+			return $row['DESC'];
+		}, DB::getPDO()->fetchAllByKey($sqlFetchUserProcesInitList, 'ID'));
 	}
 
 	/**

+ 38 - 48
SE/se-lib/UsersHelper.php

@@ -18,14 +18,14 @@ class UsersHelper {
 			$sql_where_and_arr[] = "a.`ADM_ADMIN_LEVEL`='{$adm_lvl}'";
 		}
 		if (!empty($params['group'])) {
-			$sql_where_and_arr[] = "(select up.`ID` 
-					from `CRM_AUTH_PROFILE` as up 
+			$sql_where_and_arr[] = "(select up.`ID`
+					from `CRM_AUTH_PROFILE` as up
 					where
 						up.`REMOTE_TABLE`='ADMIN_USERS'
 						and up.`A_STATUS` in('WAITING', 'NORMAL')
 						and up.`REMOTE_ID`=a.`ID`
 						and up.`ID_ZASOB`='{$params['group']}'
-					limit 1 
+					limit 1
 				)>0";
 		}
 		$sql_where = implode(" and ", $sql_where_and_arr);
@@ -269,13 +269,13 @@ class UsersHelper {
 		}
 		return $_groups;
 	}
-	
+
 	public static function get_localisation_list() {
 		static $_groups;
 		if (!$_groups) {
 			$_groups = array();
 			$db = DB::getDB();
-			$sql = "select tx.`ID`, tx.`T_TELBOX_NAME`, tx.`T_TELBOX_TYPE` 
+			$sql = "select tx.`ID`, tx.`T_TELBOX_NAME`, tx.`T_TELBOX_TYPE`
 				from `TELBOXES` as tx
 				where
 					tx.`A_STATUS`!='DELETED'
@@ -337,53 +337,43 @@ class UsersHelper {
 	}
 
 	public static function getGroupByUser($userID, $params = array()) {
-		//static $_groups;// TODO: whould be $_groups[$user_id] - array of stanowiska
-		//if (!$_groups) {
-			$_groups = array();
-
-			$db = DB::getDB();
-			$sql_select = array();
-			$sql_left_join = "";
-
-			$sql_select[] = "z.`ID`";
-			$sql_select[] = "z.`DESC`";
-			$sql_select[] = "z.`OPIS`";
-			$sql_select[] = "z.`A_LDAP_GID`";
-
-			$telbox = V::get('T_TELBOX_NAME', 0, $params, 'int');
-			$SHOW_IN_PERIOD_MARK = V::get('SHOW_IN_PERIOD_MARK', 0, $params, 'string');
-
+		$sql_select = array();
+		$sql_left_join = "";
 
+		$sql_select[] = "z.`ID`";
+		$sql_select[] = "z.`DESC`";
+		$sql_select[] = "z.`OPIS`";
+		$sql_select[] = "z.`A_LDAP_GID`";
 
-			if ($telbox > 0) {
-				$sql_left_join = "left join `TELBOXES` as tx on(tx.`ID`=up.`T_TELBOX_NEIGHBOUR_IN_ID`)";
-				$sql_select[] = "tx.`T_TELBOX_NAME`";
-			}
-			$sql_select_where_and="";
-			if (!empty($SHOW_IN_PERIOD_MARK)) {
-				$sql_select_where_and.= " and up.`SHOW_IN_PERIOD_MARK`='{$SHOW_IN_PERIOD_MARK}' ";
-			}
+		$telbox = V::get('T_TELBOX_NAME', 0, $params, 'int');
+		$SHOW_IN_PERIOD_MARK = V::get('SHOW_IN_PERIOD_MARK', 0, $params, 'string');
 
-			$sql_select = implode(', ', $sql_select);
-			$sql = "select {$sql_select}
-				from `CRM_AUTH_PROFILE` as up
-					left join `CRM_LISTA_ZASOBOW` as z on(z.`ID`=up.`ID_ZASOB`)
-					{$sql_left_join}
-				where
-					up.`REMOTE_ID`='{$userID}'
-					and up.`A_STATUS` in('WAITING', 'NORMAL')
-					and up.`REMOTE_TABLE`='ADMIN_USERS'
-					and z.`ID` is not null
-					and z.`TYPE` in('STANOWISKO','PODMIOT')
-					{$sql_select_where_and}
-			";
+		if ($telbox > 0) {
+			$sql_left_join = "left join `TELBOXES` as tx on(tx.`ID`=up.`T_TELBOX_NEIGHBOUR_IN_ID`)";
+			$sql_select[] = "tx.`T_TELBOX_NAME`";
+		}
+		$sql_select_where_and = "";
+		if (!empty($SHOW_IN_PERIOD_MARK)) {
+			$sql_select_where_and .= " and up.`SHOW_IN_PERIOD_MARK`='{$SHOW_IN_PERIOD_MARK}' ";
+		}
 
-			$res = $db->query($sql);
-			while ($r = $db->fetch($res)) {
-				$_groups[$r->ID] = $r;
-			}
-		//}
-		return $_groups;
+		$sql_select = implode(', ', $sql_select);
+		$sql = "
+			select {$sql_select}
+			from `CRM_AUTH_PROFILE` as up
+				left join `CRM_LISTA_ZASOBOW` as z on(z.`ID`=up.`ID_ZASOB`)
+				{$sql_left_join}
+			where
+				up.`REMOTE_ID`='{$userID}'
+				and up.`A_STATUS` in('WAITING', 'NORMAL')
+				and up.`REMOTE_TABLE`='ADMIN_USERS'
+				and z.`ID` is not null
+				and z.`TYPE` in('STANOWISKO','PODMIOT')
+				{$sql_select_where_and}
+		";
+		return array_map(function ($row) {
+			return (object)$row;
+		}, DB::getPDO()->fetchAllByKey($sql, 'ID'));
 	}
 
 	public static function getLDAPGroupByUserName($userName) {