Просмотр исходного кода

eventy i triggery do PROJEKTOW i PROBLEMOW

a.binder 11 лет назад
Родитель
Сommit
a3b511b662
1 измененных файлов с 68 добавлено и 1 удалено
  1. 68 1
      SE/superedit-DB_PROCEDURES_CREATE.php

+ 68 - 1
SE/superedit-DB_PROCEDURES_CREATE.php

@@ -220,6 +220,7 @@ $sql['create__IN7_MK_BAZA_DYSTRYBUCJI_tree_UPDATE']="CREATE DEFINER=`root`@`loca
 IF NEW.P_ID<>OLD.P_ID THEN 
 	SET NEW.path = IN7_MK_BAZA_DYSTRYBUCJI_hierarchy_sys_connect_by_path('-', NEW.P_ID);
 	update IN7_DZIENNIK_KORESP ik set ik.path=IN7_MK_BAZA_DYSTRYBUCJI_hierarchy_sys_connect_by_path('-', NEW.ID) where path like concat('%',NEW.ID,'%');
+	update PROBLEMS ik set ik.ID_PROJET_path=IN7_MK_BAZA_DYSTRYBUCJI_hierarchy_sys_connect_by_path('-', NEW.ID) where ID_PROJET_path like concat('%',NEW.ID,'%');
 
 END IF;
 END
@@ -268,6 +269,38 @@ END
 
 
 
+
+//!_PROBLEMS_tree_INSERT
+$sql['drop__PROBLEMS_tree_INSERT']="DROP TRIGGER IF EXISTS  `_PROBLEMS_tree_INSERT`";
+$sql['create__PROBLEMS_tree_INSERT']="CREATE DEFINER=`root`@`localhost` TRIGGER `_PROBLEMS_tree_INSERT` BEFORE INSERT ON `PROBLEMS` FOR EACH ROW BEGIN
+
+IF NEW.ID_PROJECT IS NOT NULL THEN
+	SET NEW.ID_PROJECT_path = IN7_MK_BAZA_DYSTRYBUCJI_hierarchy_sys_connect_by_path('-', NEW.ID_PROJECT);
+END IF;
+
+END
+";
+
+//!_PROBLEMS_tree_UPDATE
+$sql['drop__PROBLEMS_tree_UPDATE']="DROP TRIGGER IF EXISTS  `_PROBLEMS_tree_UPDATE`";
+$sql['create__PROBLEMS_tree_UPDATE']="CREATE DEFINER=`root`@`localhost` TRIGGER `_PROBLEMS_tree_UPDATE` BEFORE UPDATE ON `PROBLEMS` FOR EACH ROW BEGIN
+
+IF NEW.ID_PROJECT is null THEN
+	SET NEW.ID_PROJECT_path = '';
+ELSEIF OLD.ID_PROJECT IS NULL or NEW.ID_PROJECT<>OLD.ID_PROJECT THEN 
+	SET NEW.ID_PROJECT_path = IN7_MK_BAZA_DYSTRYBUCJI_hierarchy_sys_connect_by_path('-', NEW.ID_PROJECT);
+
+END IF;
+
+END
+";
+
+
+
+
+
+
+
 //! event do aktualizacji PROJEKTOW - raz dziennie wszystkie przemapowac TODO trigger powinien aktualizowac pozostale powiazane rekordy, ktore zmienily strukture po zmianie struktury projektow
 
 
@@ -1014,8 +1047,42 @@ CREATE DEFINER=root@localhost EVENT _CRM_PROCES_STATS_event
 
 
 
-$sql['view__budget_project_to_realization_main_event_drop']="DROP EVENT if exists view__budget_project_to_realization_main_event";
 
+$sql['view__TASKS_INFO_trigger']="
+CREATE or replace ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `TASKS_INFO_trigger` AS 
+SELECT CONCAT(  'W:', SUM( IF( t.A_STATUS =  'WAITING', 1, 0 ) ) ,  '/N:', SUM( IF( t.A_STATUS =  'NORMAL', 1, 0 ) ) , '/Z:', SUM( IF( t.A_STATUS =  'OFF_HARD', 1, 0 ) ) ) AS TASKS_INFO_trigger,
+SUM( IF( t.A_STATUS =  'WAITING', 1, 0 ) ) as WAITING, 
+SUM( IF( t.A_STATUS =  'NORMAL', 1, 0 ) ) as NORMAL, 
+SUM( IF( t.A_STATUS =  'OFF_SOFT', 1, 0 ) ) as OFF_SOFT, 
+SUM( IF( t.A_STATUS =  'OFF_HARD', 1, 0 ) ) as OFF_HARD, 
+ t.ID_PROJECT
+FROM PROBLEMS AS t
+GROUP BY ID_PROJECT";
+
+
+$sql['drop__PROBLEMS_TASKS_INFO_trigger_INSERT']="DROP TRIGGER IF EXISTS  `_PROBLEMS_TASKS_INFO_trigger_INSERT`";
+$sql['create__PROBLEMS_TASKS_INFO_trigger_INSERT']="CREATE DEFINER=`root`@`localhost` TRIGGER `_PROBLEMS_TASKS_INFO_trigger_INSERT` 
+AFTER INSERT ON `PROBLEMS` FOR EACH ROW BEGIN
+
+	UPDATE IN7_MK_BAZA_DYSTRYBUCJI , TASKS_INFO_trigger
+	set IN7_MK_BAZA_DYSTRYBUCJI.TASKS_INFO_trigger = TASKS_INFO_trigger.TASKS_INFO_trigger  where IN7_MK_BAZA_DYSTRYBUCJI.ID=NEW.ID_PROJECT and TASKS_INFO_trigger.ID_PROJECT=NEW.ID_PROJECT;
+END
+";
+
+$sql['drop__PROBLEMS_TASKS_INFO_trigger_UPDATE']="DROP TRIGGER IF EXISTS  `_PROBLEMS_TASKS_INFO_trigger_UPDATE`";
+$sql['create__PROBLEMS_TASKS_INFO_trigger_UPDATE']="CREATE DEFINER=`root`@`localhost` TRIGGER `_PROBLEMS_TASKS_INFO_trigger_UPDATE` AFTER UPDATE ON `PROBLEMS` FOR EACH ROW BEGIN
+
+	UPDATE IN7_MK_BAZA_DYSTRYBUCJI , TASKS_INFO_trigger
+	set IN7_MK_BAZA_DYSTRYBUCJI.TASKS_INFO_trigger = TASKS_INFO_trigger.TASKS_INFO_trigger  where IN7_MK_BAZA_DYSTRYBUCJI.ID=NEW.ID_PROJECT and TASKS_INFO_trigger.ID_PROJECT=NEW.ID_PROJECT;
+END
+";
+
+
+
+
+
+
+$sql['view__budget_project_to_realization_main_event_drop']="DROP EVENT if exists view__budget_project_to_realization_main_event";
 
 
 $sql['view__budget_project_to_realization_main_event']="CREATE EVENT `view__budget_project_to_realization_main_event` ON SCHEDULE EVERY1 DAY STARTS '2015-05-12 00:04:30' ON COMPLETION NOT PRESERVE ENABLE DO INSERT IGNORE INTO `projects_budget_year_month` ( `ID_PROJECT` , `M_DIST_DESC` , `YEAR` ,`A_RECORD_CREATE_AUTHOR` , `A_RECORD_CREATE_DATE` )