|
|
@@ -539,24 +539,37 @@ SQL;
|
|
|
$tableProcesInitList = ACL::getTableProcesInitList($idTable);
|
|
|
if (!empty($tableProcesInitList)) {
|
|
|
$filteredTableProcesInitList = array();
|
|
|
- DBG::_('DBG_MAP', '1', "tableProcesInitList({$idTable})", $tableProcesInitList, __CLASS__, __FUNCTION__, __LINE__);
|
|
|
$procesIds = array_keys($tableProcesInitList);
|
|
|
+ if (empty($procesIds)) {
|
|
|
+ DBG::log("BUG empty \$procesIds for table {$idTable}");
|
|
|
+ return [];
|
|
|
+ }
|
|
|
$sqlProcesIds = implode(",", $procesIds);
|
|
|
$userLogin = User::getLogin();
|
|
|
- $sql = "select uiv.`ID_PROCES_INIT`, uiv.`DESC`
|
|
|
- from `CRM_PROCES_idx_USER_to_INIT_VIEW` uiv
|
|
|
- where uiv.`ADM_ACCOUNT`='{$userLogin}'
|
|
|
- and uiv.`ID_PROCES_INIT` in({$sqlProcesIds})
|
|
|
- group by uiv.`ID_PROCES_INIT`
|
|
|
+ $groupIds = User::getGroupsIds();
|
|
|
+ if (empty($procesIds)) {
|
|
|
+ DBG::log("BUG empty User Group Ids");
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+ $sqlGroupIds = implode(",", $groupIds);
|
|
|
+ // $sql = " -- slow
|
|
|
+ // select uiv.`ID_PROCES_INIT`, uiv.`DESC`
|
|
|
+ // from `CRM_PROCES_idx_USER_to_INIT_VIEW` uiv
|
|
|
+ // where uiv.`ADM_ACCOUNT`='{$userLogin}'
|
|
|
+ // and uiv.`ID_PROCES_INIT` in({$sqlProcesIds})
|
|
|
+ // group by uiv.`ID_PROCES_INIT`
|
|
|
+ // ";
|
|
|
+ $sql = "
|
|
|
+ select ugiv.`ID_PROCES_INIT`, ugiv.`DESC`
|
|
|
+ from `CRM_PROCES_idx_GROUP_to_INIT_VIEW` ugiv
|
|
|
+ where ugiv.`ID_GROUP` in({$sqlGroupIds})
|
|
|
+ and ugiv.`ID_PROCES_INIT` in({$sqlProcesIds})
|
|
|
";
|
|
|
- DBG::_('DBG_MAP', '1', "tableProcesInitList({$idTable}):sql", $sql, __CLASS__, __FUNCTION__, __LINE__);
|
|
|
- $db = DB::getDB();
|
|
|
- $res = $db->query($sql);
|
|
|
- while ($r = $db->fetch($res)) {
|
|
|
- $filteredTableProcesInitList[$r->ID_PROCES_INIT] = $r->DESC;
|
|
|
+ foreach (DB::getPDO()->fetchAll($sql) as $row) {
|
|
|
+ $filteredTableProcesInitList[$row['ID_PROCES_INIT']] = $row['DESC'];
|
|
|
}
|
|
|
$tableProcesInitList = $filteredTableProcesInitList;
|
|
|
- DBG::_('DBG_MAP', '1', "tableProcesInitList({$idTable}):filteredTableProcesInitList", $filteredTableProcesInitList, __CLASS__, __FUNCTION__, __LINE__);
|
|
|
+ DBG::log($filteredTableProcesInitList, 'array', "tableProcesInitList({$idTable}):filteredTableProcesInitList");
|
|
|
}
|
|
|
return $tableProcesInitList;
|
|
|
}
|