|
|
@@ -505,7 +505,7 @@ SQL;
|
|
|
/**
|
|
|
* Ids List of Proces Init for given tabel (skip filters)
|
|
|
*/
|
|
|
- public function getTableProcesInitIds($idTable) {// TODO: use in TableAjax
|
|
|
+ public function getTableProcesInitIds($idTable) {
|
|
|
$procesInitList = $this->getTableProcesInitList($idTable);
|
|
|
return array_keys($procesInitList);
|
|
|
}
|
|
|
@@ -513,82 +513,28 @@ SQL;
|
|
|
/**
|
|
|
* List of Proces Init for given table (skip filters)
|
|
|
*/
|
|
|
- public function getTableProcesInitList($idTable) {// TODO: use in TableAjax
|
|
|
- $tableProcesInitList = array();
|
|
|
- $sqlIdProcesListSql = <<<SQL
|
|
|
- select tpv.`ID_PROCES`
|
|
|
- from `CRM_PROCES_idx_TABLE_TO_PROCES_VIEW` tpv
|
|
|
- where tpv.`ID_TABLE`='{$idTable}'
|
|
|
-SQL;
|
|
|
- $fetchTableProcesInitListSql = <<<SQL
|
|
|
- -- time ~0.07 -- no goto and return
|
|
|
- select p.`ID`, p.`DESC`
|
|
|
- from `CRM_PROCES` p
|
|
|
- where p.`ID` in(
|
|
|
- select i.`idx_PROCES_INIT_ID`
|
|
|
- from `CRM_PROCES_idx` i
|
|
|
- where i.`ID_PROCES` in({$sqlIdProcesListSql})
|
|
|
- )
|
|
|
- and p.`TYPE`='PROCES_INIT'
|
|
|
- order by p.`SORT_PRIO`
|
|
|
-SQL;
|
|
|
- /*
|
|
|
- SELECT p.`ID` , p.`DESC`
|
|
|
- FROM `CRM_PROCES` p
|
|
|
- WHERE p.`ID`
|
|
|
- IN (
|
|
|
- SELECT i.`idx_PROCES_INIT_ID`
|
|
|
- FROM `CRM_PROCES_idx` i
|
|
|
- WHERE i.`ID_PROCES`
|
|
|
- IN (
|
|
|
- SELECT tpv.`ID_PROCES`
|
|
|
- FROM `CRM_PROCES_idx_TABLE_TO_PROCES_VIEW` tpv
|
|
|
- WHERE tpv.`ID_TABLE` = '13051'
|
|
|
- )
|
|
|
- )
|
|
|
- AND p.`TYPE` = 'PROCES_INIT'
|
|
|
- order by p.`SORT_PRIO`
|
|
|
- */
|
|
|
- $fetchTableProcesInitListSql = <<<SQL
|
|
|
- -- time ~0.15s
|
|
|
- select p.`ID`, p.`DESC`
|
|
|
- from `CRM_PROCES` p
|
|
|
- where p.`ID` in(
|
|
|
- select i.`idx_PROCES_INIT_ID`
|
|
|
- from `CRM_PROCES_idx` i
|
|
|
- where i.`ID_PROCES` in({$sqlIdProcesListSql})
|
|
|
- union
|
|
|
- select ig.`idx_PROCES_INIT_ID`
|
|
|
- from `CRM_PROCES_idx` i
|
|
|
- join `CRM_PROCES_idx` ig on(ig.`ID_PROCES`=i.`idx_PROCES_WITH_GROUPS_ID`)
|
|
|
- where i.`ID_PROCES` in({$sqlIdProcesListSql})
|
|
|
- )
|
|
|
- and p.`TYPE`='PROCES_INIT'
|
|
|
- order by p.`SORT_PRIO`
|
|
|
-SQL;
|
|
|
- $fetchTableProcesInitListSql = <<<SQL
|
|
|
- -- time ~0.14
|
|
|
- select p.`ID`, p.`DESC`
|
|
|
- from `CRM_PROCES` p
|
|
|
- where p.`ID` in(
|
|
|
- select i.`idx_PROCES_INIT_ID`
|
|
|
- from `CRM_PROCES_idx` i
|
|
|
- where i.`ID_PROCES` in({$sqlIdProcesListSql})
|
|
|
- or i.`ID_PROCES` in(
|
|
|
- select ig.`idx_PROCES_WITH_GROUPS_ID`
|
|
|
- from `CRM_PROCES_idx` ig
|
|
|
- where ig.`ID_PROCES` in({$sqlIdProcesListSql})
|
|
|
- )
|
|
|
- )
|
|
|
- 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;
|
|
|
+ public function getTableProcesInitList($idTable) {
|
|
|
+ $tableProcesInitList = ACL::getTableProcesInitList($idTable);
|
|
|
+ if (!empty($tableProcesInitList)) {
|
|
|
+ $filteredTableProcesInitList = array();
|
|
|
+ DBG::_('DBG_MAP', '1', "tableProcesInitList({$idTable})", $tableProcesInitList, __CLASS__, __FUNCTION__, __LINE__);
|
|
|
+ $procesIds = array_keys($tableProcesInitList);
|
|
|
+ $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`
|
|
|
+ ";
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+ $tableProcesInitList = $filteredTableProcesInitList;
|
|
|
+ DBG::_('DBG_MAP', '1', "tableProcesInitList({$idTable}):filteredTableProcesInitList", $filteredTableProcesInitList, __CLASS__, __FUNCTION__, __LINE__);
|
|
|
}
|
|
|
return $tableProcesInitList;
|
|
|
}
|
|
|
@@ -616,58 +562,4 @@ SQL;
|
|
|
return $canExecuteProcesInit;
|
|
|
}
|
|
|
|
|
|
- public function getProcesInitMapTreeOnlyIds($ids) {
|
|
|
- $mapTree = array();
|
|
|
- $map = $this->getProcesInitMapOnlyIds($ids);
|
|
|
- foreach ($map as $r) {
|
|
|
- if ('PROCES_INIT' == $r->TYPE) {
|
|
|
- $mapTree[$r->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 $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;
|
|
|
- }
|
|
|
- }
|
|
|
- return $mapTree;
|
|
|
- }
|
|
|
-
|
|
|
- public function getProcesInitMapOnlyIds($ids) {
|
|
|
- $map = array();
|
|
|
- $sqlIds = V::filter($ids, array('V', 'filterPositiveInteger'));
|
|
|
- $sqlIds = implode(',', $sqlIds);
|
|
|
- if (empty($sqlIds)) return $map;
|
|
|
- $sql = <<<SQL
|
|
|
- select i.`ID_PROCES`
|
|
|
- , i.`PARENT_ID`
|
|
|
- , i.`TYPE`
|
|
|
- , i.`idx_PROCES_INIT_ID`
|
|
|
- , i.`idx_MAIN_PROCES_INIT_ID`
|
|
|
- , i.`idx_PROCES_WITH_GROUPS_ID`
|
|
|
- , IF(i.`TYPE`='GOTO_AND_RETURN_LVL2'
|
|
|
- , (select ig.`idx_PROCES_INIT_ID`
|
|
|
- from `CRM_PROCES_idx` ig
|
|
|
- where ig.`ID_PROCES`=i.`PARENT_ID`
|
|
|
- limit 1)
|
|
|
- , 0
|
|
|
- ) as idx_GOTO_LVL2_INIT_ID
|
|
|
- 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;
|
|
|
- }
|
|
|
-
|
|
|
}
|