Przeglądaj źródła

Move code from triggers for CRM_PROCES to event

Piotr Labudda 10 lat temu
rodzic
commit
8a050e97c6
1 zmienionych plików z 39 dodań i 78 usunięć
  1. 39 78
      SE/superedit-DB_PROCEDURES_CREATE.php

+ 39 - 78
SE/superedit-DB_PROCEDURES_CREATE.php

@@ -341,88 +341,10 @@ $sql['alter__CRM_PROCES_STATS_proc_wiev_modify_treeitem']="alter table _CRM_PROC
 
 
 
 
 //!_CRM_PROCES_STATS_proc_wiev_UPDATE
 //!_CRM_PROCES_STATS_proc_wiev_UPDATE
-
 $sql['drop__CRM_PROCES_STATS_proc_wiev_UPDATE']="DROP TRIGGER IF EXISTS  `_CRM_PROCES_STATS_proc_wiev_UPDATE`";
 $sql['drop__CRM_PROCES_STATS_proc_wiev_UPDATE']="DROP TRIGGER IF EXISTS  `_CRM_PROCES_STATS_proc_wiev_UPDATE`";
 
 
-$sql['create__CRM_PROCES_STATS_proc_wiev_UPDATE']="CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_PROCES_STATS_proc_wiev_UPDATE` AFTER UPDATE ON `CRM_PROCES` FOR EACH ROW BEGIN
-
-IF NEW.PARENT_ID<>OLD.PARENT_ID THEN 
-SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
-replace into  _CRM_PROCES_STATS_proc_wiev
-SELECT  hi.ID,CRM_PROCES_tree_detect_init(hi.ID) as ID_PROCES_INIT,CONCAT(REPEAT('    ', lvl - 1), hi.id) AS treeitem,
-        hierarchy_sys_connect_by_path('/', hi.id) AS path,
-        PARENT_ID, lvl,
-        CASE
-            WHEN lvl >= @maxlevel THEN 1
-            ELSE COALESCE(
-            (
-            SELECT  0
-            FROM    CRM_PROCES hl
-            WHERE   hl.PARENT_ID = ho.id
-                    AND hl.id <> @start_with
-            LIMIT 1
-            ), 1)
-        END AS is_leaf,
-        hierarchy_connect_by_iscycle(hi.id) AS is_cycle
-FROM    (
-        SELECT  hierarchy_connect_by_parent_eq_prior_id_with_level_and_loop(id, @maxlevel) AS id,
-                CAST(@level AS SIGNED) AS lvl
-        FROM    (
-                SELECT  @start_with := 0,
-                        @id := @start_with,
-                        @level := 0,
-                        @maxlevel := 1000
-                ) vars, CRM_PROCES
-        WHERE   @id IS NOT NULL
-        ) ho
-JOIN    CRM_PROCES hi
-ON      hi.id = ho.id ;
-
-
-END IF;
-END
-";
-
 //!_CRM_PROCES_STATS_proc_wiev_INSERT
 //!_CRM_PROCES_STATS_proc_wiev_INSERT
 $sql['_drop__CRM_PROCES_STATS_proc_wiev_INSERT']="DROP TRIGGER IF EXISTS  `_CRM_PROCES_STATS_proc_wiev_INSERT`;";
 $sql['_drop__CRM_PROCES_STATS_proc_wiev_INSERT']="DROP TRIGGER IF EXISTS  `_CRM_PROCES_STATS_proc_wiev_INSERT`;";
-$sql['create__CRM_PROCES_STATS_proc_wiev_INSERT']="CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_PROCES_STATS_proc_wiev_INSERT` AFTER INSERT ON `CRM_PROCES` FOR EACH ROW BEGIN
-
-IF NEW.PARENT_ID>0 THEN 
-SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
-replace into  _CRM_PROCES_STATS_proc_wiev
-SELECT  hi.ID,CRM_PROCES_tree_detect_init(hi.ID) as ID_PROCES_INIT,CONCAT(REPEAT('    ', lvl - 1), hi.id) AS treeitem,
-        hierarchy_sys_connect_by_path('/', hi.id) AS path,
-        PARENT_ID, lvl,
-        CASE
-            WHEN lvl >= @maxlevel THEN 1
-            ELSE COALESCE(
-            (
-            SELECT  0
-            FROM    CRM_PROCES hl
-            WHERE   hl.PARENT_ID = ho.id
-                    AND hl.id <> @start_with
-            LIMIT 1
-            ), 1)
-        END AS is_leaf,
-        hierarchy_connect_by_iscycle(hi.id) AS is_cycle
-FROM    (
-        SELECT  hierarchy_connect_by_parent_eq_prior_id_with_level_and_loop(id, @maxlevel) AS id,
-                CAST(@level AS SIGNED) AS lvl
-        FROM    (
-                SELECT  @start_with := 0,
-                        @id := @start_with,
-                        @level := 0,
-                        @maxlevel := 1000
-                ) vars, CRM_PROCES
-        WHERE   @id IS NOT NULL
-        ) ho
-JOIN    CRM_PROCES hi
-ON      hi.id = ho.id ;
-
-
-END IF;
-END";
-
 
 
 $sql['drop__CRM_PROCES_GOTO_CACHE']="drop table if exists _CRM_PROCES_GOTO_CACHE;";
 $sql['drop__CRM_PROCES_GOTO_CACHE']="drop table if exists _CRM_PROCES_GOTO_CACHE;";
 $sql_tmp['select_CRM_PROCES_GOTO_CACHE']="select t1.ID,t1.ID_PROCES_INIT,t2.IF_TRUE_GOTO , t2.IF_TRUE_GOTO_FLAG, now() as TIMESTAMP
 $sql_tmp['select_CRM_PROCES_GOTO_CACHE']="select t1.ID,t1.ID_PROCES_INIT,t2.IF_TRUE_GOTO , t2.IF_TRUE_GOTO_FLAG, now() as TIMESTAMP
@@ -603,6 +525,45 @@ $sql['event_create_CRM_PROCES_STATS']="CREATE DEFINER=root@localhost EVENT _CRM_
     
     
      ";
      ";
 
 
+$sql['event_delete_CRM_PROCES_STATS_proc_view']="drop event if exists `_CRM_PROCES_STATS_proc_wiev_event`";
+$sql['event_create_CRM_PROCES_STATS_proc_view']="CREATE DEFINER=root@localhost EVENT `_CRM_PROCES_STATS_proc_wiev_event`
+    ON SCHEDULE EVERY 1 DAY
+    STARTS str_to_date( date_format(now(), '%Y%m%d 0500'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
+    DO
+     BEGIN
+
+replace into `_CRM_PROCES_STATS_proc_wiev`
+SELECT  hi.ID,CRM_PROCES_tree_detect_init(hi.ID) as ID_PROCES_INIT,CONCAT(REPEAT('    ', lvl - 1), hi.id) AS treeitem,
+        hierarchy_sys_connect_by_path('/', hi.id) AS path,
+        PARENT_ID, lvl,
+        CASE
+            WHEN lvl >= @maxlevel THEN 1
+            ELSE COALESCE(
+            (
+            SELECT  0
+            FROM    `CRM_PROCES` hl
+            WHERE   hl.PARENT_ID = ho.id
+                    AND hl.id <> @start_with
+            LIMIT 1
+            ), 1)
+        END AS is_leaf,
+        hierarchy_connect_by_iscycle(hi.id) AS is_cycle
+FROM    (
+        SELECT  hierarchy_connect_by_parent_eq_prior_id_with_level_and_loop(id, @maxlevel) AS id,
+                CAST(@level AS SIGNED) AS lvl
+        FROM    (
+                SELECT  @start_with := 0,
+                        @id := @start_with,
+                        @level := 0,
+                        @maxlevel := 1000
+                ) vars, CRM_PROCES
+        WHERE   @id IS NOT NULL
+        ) ho
+JOIN    `CRM_PROCES` hi
+ON      hi.id = ho.id ;
+
+     END
+     ";
 
 
 /*
 /*