|
@@ -511,10 +511,156 @@ BEGIN
|
|
|
|
|
|
|
|
replace into `CRM_CONFIG` (`conf_key`, `conf_val`) values (@conf_last_exec_lock_key, ''), (@conf_last_exec_end_key, NOW());
|
|
replace into `CRM_CONFIG` (`conf_key`, `conf_val`) values (@conf_last_exec_lock_key, ''), (@conf_last_exec_end_key, NOW());
|
|
|
|
|
|
|
|
|
|
+ -- clear msg 'Update perms' from Msgs system
|
|
|
|
|
+ update `CRM_UI_MSGS`
|
|
|
|
|
+ set `A_STATUS`='OFF_HARD'
|
|
|
|
|
+ , `actionExecutedTime`=NOW()
|
|
|
|
|
+ , `A_RECORD_UPDATE_DATE`=NOW()
|
|
|
|
|
+ , `A_RECORD_UPDATE_AUTHOR`='update_proces_init_idx_rec'
|
|
|
|
|
+ where `A_STATUS`='WAITING'
|
|
|
|
|
+ and `app_className`='FixCrmProcesInitIdx'
|
|
|
|
|
+ and `msg`='Update perms'
|
|
|
|
|
+ and `uiTargetType`='default_db_table'
|
|
|
|
|
+ and `uiTargetName`='CRM_PROCES';
|
|
|
|
|
+
|
|
|
END ; END IF ;
|
|
END ; END IF ;
|
|
|
END ;
|
|
END ;
|
|
|
|
|
|
|
|
SQL;
|
|
SQL;
|
|
|
|
|
+ $sqlList['RemoveTrigger_AfterInsertProces'] = "DROP TRIGGER IF EXISTS `FixCrmProcesInitIdx_CRM_PROCES_AFTER_INSERT`";
|
|
|
|
|
+ $sqlList['CreateTrigger_AfterInsertProces'] = "
|
|
|
|
|
+ CREATE TRIGGER `FixCrmProcesInitIdx_CRM_PROCES_AFTER_INSERT` AFTER INSERT ON `CRM_PROCES`
|
|
|
|
|
+ FOR EACH ROW BEGIN
|
|
|
|
|
+ -- only when PARENT_ID changes and PARENT_ID exists in `CRM_PROCES_idx`
|
|
|
|
|
+ IF NEW.`PARENT_ID` IS NOT NULL AND NEW.`PARENT_ID`>0 AND (select count(*) from `CRM_PROCES_idx` where `ID`=NEW.`PARENT_ID` limit 1)>0 THEN
|
|
|
|
|
+ -- throw warning to update perms
|
|
|
|
|
+ IF (select count(1) from `CRM_UI_MSGS` where `app_className`='FixCrmProcesInitIdx'
|
|
|
|
|
+ and `msg`='Update perms'
|
|
|
|
|
+ and `uiTargetType`='default_db_table'
|
|
|
|
|
+ and `uiTargetName`='CRM_PROCES'
|
|
|
|
|
+ and `A_STATUS`='WAITING'
|
|
|
|
|
+ ) = 0 THEN
|
|
|
|
|
+ INSERT INTO `CRM_UI_MSGS` (`ID`
|
|
|
|
|
+ , `app_className`, `msg`, `msgType`
|
|
|
|
|
+ , `uiTargetType`, `uiTargetName`
|
|
|
|
|
+ , `userTargetType`
|
|
|
|
|
+ , `A_RECORD_CREATE_DATE`, `A_RECORD_CREATE_AUTHOR`)
|
|
|
|
|
+ VALUES (NULL
|
|
|
|
|
+ , 'FixCrmProcesInitIdx', 'Update perms', 'danger'
|
|
|
|
|
+ , 'default_db_table', 'CRM_PROCES'
|
|
|
|
|
+ , 'everyone'
|
|
|
|
|
+ , NOW(), coalesce(NEW.A_RECORD_UPDATE_AUTHOR,'trigger:FixCrmProcesInitIdx_CRM_PROCES_AFTER_INSERT')
|
|
|
|
|
+ );
|
|
|
|
|
+ END IF;
|
|
|
|
|
+ UPDATE `P5-MSG:Route_FixCrmProcesInitIdx:ERROR: Update perms` SET x=1;
|
|
|
|
|
+ END IF;
|
|
|
|
|
+ END
|
|
|
|
|
+ ";
|
|
|
|
|
+ $sqlList['RemoveTrigger_AfterUpdateProces'] = "DROP TRIGGER IF EXISTS `FixCrmProcesInitIdx_CRM_PROCES_AFTER_UPDATE`";
|
|
|
|
|
+ $sqlList['CreateTrigger_AfterUpdateProces'] = "
|
|
|
|
|
+ CREATE TRIGGER `FixCrmProcesInitIdx_CRM_PROCES_AFTER_UPDATE` AFTER UPDATE ON `CRM_PROCES`
|
|
|
|
|
+ FOR EACH ROW BEGIN
|
|
|
|
|
+ -- only when PARENT_ID changes and ID exists in `CRM_PROCES_idx`
|
|
|
|
|
+ IF NEW.`PARENT_ID`!=OLD.`PARENT_ID` AND (select count(*) from `CRM_PROCES_idx` where `ID` in(NEW.`ID`, NEW.`PARENT_ID`, OLD.`PARENT_ID`) limit 1)>0 THEN
|
|
|
|
|
+ -- throw warning to update perms
|
|
|
|
|
+ IF (select count(1) from `CRM_UI_MSGS` where `app_className`='FixCrmProcesInitIdx'
|
|
|
|
|
+ and `msg`='Update perms'
|
|
|
|
|
+ and `uiTargetType`='default_db_table'
|
|
|
|
|
+ and `uiTargetName`='CRM_PROCES'
|
|
|
|
|
+ and `A_STATUS`='WAITING'
|
|
|
|
|
+ ) = 0 THEN
|
|
|
|
|
+ INSERT INTO `CRM_UI_MSGS` (`ID`
|
|
|
|
|
+ , `app_className`, `msg`, `msgType`
|
|
|
|
|
+ , `uiTargetType`, `uiTargetName`
|
|
|
|
|
+ , `userTargetType`
|
|
|
|
|
+ , `A_RECORD_CREATE_DATE`, `A_RECORD_CREATE_AUTHOR`)
|
|
|
|
|
+ VALUES (NULL
|
|
|
|
|
+ , 'FixCrmProcesInitIdx', 'Update perms', 'danger'
|
|
|
|
|
+ , 'default_db_table', 'CRM_PROCES'
|
|
|
|
|
+ , 'everyone'
|
|
|
|
|
+ , NOW(), coalesce(NEW.A_RECORD_UPDATE_AUTHOR,'trigger:FixCrmProcesInitIdx_CRM_PROCES_AFTER_UPDATE')
|
|
|
|
|
+ );
|
|
|
|
|
+ END IF;
|
|
|
|
|
+ UPDATE `P5-MSG:Route_FixCrmProcesInitIdx:ERROR: Update perms` SET x=1;
|
|
|
|
|
+ END IF;
|
|
|
|
|
+ END
|
|
|
|
|
+ ";
|
|
|
|
|
+ $sqlList__TODO__['__TODO__CreateTrigger_AfterUpdateWskaznik'] = "";// if add/remove group to proces (STANOWISKO, ...)
|
|
|
|
|
+ $sqlList['RemoveTrigger_AfterInsertWskaznik'] = "DROP TRIGGER IF EXISTS `FixCrmProcesInitIdx_CRM_WSKAZNIK_AFTER_INSERT`";
|
|
|
|
|
+ $sqlList['CreateTrigger_AfterInsertWskaznik'] = "
|
|
|
|
|
+ CREATE TRIGGER `FixCrmProcesInitIdx_CRM_WSKAZNIK_AFTER_INSERT` AFTER INSERT ON `CRM_WSKAZNIK`
|
|
|
|
|
+ FOR EACH ROW BEGIN
|
|
|
|
|
+ -- only when ID_PROCES exists in `CRM_PROCES_idx`
|
|
|
|
|
+ -- only when ID_ZASOB is group
|
|
|
|
|
+ -- only when ID_PRZYPADEK has perm 'X'
|
|
|
|
|
+ IF NEW.`ID_PROCES`>0
|
|
|
|
|
+ AND NEW.`ID_ZASOB`>0
|
|
|
|
|
+ AND NEW.`ID_PRZYPADEK`>0
|
|
|
|
|
+ AND (select count(*) from `CRM_PROCES_idx` where `ID`=NEW.`ID_PROCES` limit 1)>0
|
|
|
|
|
+ AND (select count(*) from `CRM_LISTA_ZASOBOW` z where z.`ID`=NEW.`ID_ZASOB` and z.`TYPE` in('STANOWISKO','DZIAL','PODMIOT') limit 1)>0
|
|
|
|
|
+ AND (select count(*) from `CRM_PRZYPADEK` przyp where przyp.`ID`=NEW.`ID_PRZYPADEK` and przyp.`FORM_TREAT` & 8 limit 1)>0
|
|
|
|
|
+ THEN
|
|
|
|
|
+ -- throw warning to update perms
|
|
|
|
|
+ IF (select count(1) from `CRM_UI_MSGS` where `app_className`='FixCrmProcesInitIdx'
|
|
|
|
|
+ and `msg`='Update perms'
|
|
|
|
|
+ and `uiTargetType`='default_db_table'
|
|
|
|
|
+ and `uiTargetName`='CRM_PROCES'
|
|
|
|
|
+ and `A_STATUS`='WAITING'
|
|
|
|
|
+ ) = 0 THEN
|
|
|
|
|
+ INSERT INTO `CRM_UI_MSGS` (`ID`
|
|
|
|
|
+ , `app_className`, `msg`, `msgType`
|
|
|
|
|
+ , `uiTargetType`, `uiTargetName`
|
|
|
|
|
+ , `userTargetType`
|
|
|
|
|
+ , `A_RECORD_CREATE_DATE`, `A_RECORD_CREATE_AUTHOR`)
|
|
|
|
|
+ VALUES (NULL
|
|
|
|
|
+ , 'FixCrmProcesInitIdx', 'Update perms', 'danger'
|
|
|
|
|
+ , 'default_db_table', 'CRM_PROCES'
|
|
|
|
|
+ , 'everyone'
|
|
|
|
|
+ , NOW(), coalesce(NEW.A_RECORD_UPDATE_AUTHOR,'trigger:FixCrmProcesInitIdx_CRM_WSKAZNIK_AFTER_INSERT')
|
|
|
|
|
+ );
|
|
|
|
|
+ END IF;
|
|
|
|
|
+ UPDATE `P5-MSG:Route_FixCrmProcesInitIdx:ERROR: Update perms` SET x=1;
|
|
|
|
|
+ END IF;
|
|
|
|
|
+ END
|
|
|
|
|
+ ";
|
|
|
|
|
+ $sqlList['RemoveTrigger_AfterUpdateWskaznik'] = "DROP TRIGGER IF EXISTS `FixCrmProcesInitIdx_CRM_WSKAZNIK_AFTER_UPDATE`";
|
|
|
|
|
+ $sqlList['CreateTrigger_AfterUpdateWskaznik'] = "
|
|
|
|
|
+ CREATE TRIGGER `FixCrmProcesInitIdx_CRM_WSKAZNIK_AFTER_UPDATE` AFTER UPDATE ON `CRM_WSKAZNIK`
|
|
|
|
|
+ FOR EACH ROW BEGIN
|
|
|
|
|
+ -- only when old or new ID_PROCES exists in `CRM_PROCES_idx`
|
|
|
|
|
+ -- only when old or new ID_ZASOB is group
|
|
|
|
|
+ -- only when old or new ID_PRZYPADEK has perm 'X'
|
|
|
|
|
+ IF (NEW.`ID_PROCES`!=OLD.`ID_PROCES` or NEW.`ID_ZASOB`!=OLD.`ID_ZASOB` or NEW.`ID_PRZYPADEK`!=OLD.`ID_PRZYPADEK`)
|
|
|
|
|
+ AND (NEW.`ID_PROCES`>0 or OLD.`ID_PROCES`>0)
|
|
|
|
|
+ AND (NEW.`ID_ZASOB`>0 or OLD.`ID_ZASOB`>0)
|
|
|
|
|
+ AND (NEW.`ID_PRZYPADEK`>0 or OLD.`ID_PRZYPADEK`>0)
|
|
|
|
|
+ -- AND (select count(*) from `CRM_PROCES_idx` where `ID` in(NEW.`ID_PROCES`,OLD.`ID_PROCES`) limit 1)>0
|
|
|
|
|
+ AND (select count(*) from `CRM_LISTA_ZASOBOW` z where z.`ID` in(NEW.`ID_ZASOB`,OLD.`ID_ZASOB`) and z.`TYPE` in('STANOWISKO','DZIAL','PODMIOT') limit 1)>0
|
|
|
|
|
+ AND (select count(*) from `CRM_PRZYPADEK` przyp where przyp.`ID` in(NEW.`ID_PRZYPADEK`,OLD.`ID_PRZYPADEK`) and przyp.`FORM_TREAT` & 8 limit 1)>0
|
|
|
|
|
+ THEN
|
|
|
|
|
+ -- throw warning to update perms
|
|
|
|
|
+ IF (select count(1) from `CRM_UI_MSGS` where `app_className`='FixCrmProcesInitIdx'
|
|
|
|
|
+ and `msg`='Update perms'
|
|
|
|
|
+ and `uiTargetType`='default_db_table'
|
|
|
|
|
+ and `uiTargetName`='CRM_PROCES'
|
|
|
|
|
+ and `A_STATUS`='WAITING'
|
|
|
|
|
+ ) = 0 THEN
|
|
|
|
|
+ INSERT INTO `CRM_UI_MSGS` (`ID`
|
|
|
|
|
+ , `app_className`, `msg`, `msgType`
|
|
|
|
|
+ , `uiTargetType`, `uiTargetName`
|
|
|
|
|
+ , `userTargetType`
|
|
|
|
|
+ , `A_RECORD_CREATE_DATE`, `A_RECORD_CREATE_AUTHOR`)
|
|
|
|
|
+ VALUES (NULL
|
|
|
|
|
+ , 'FixCrmProcesInitIdx', 'Update perms', 'danger'
|
|
|
|
|
+ , 'default_db_table', 'CRM_PROCES'
|
|
|
|
|
+ , 'everyone'
|
|
|
|
|
+ , NOW(), coalesce(NEW.A_RECORD_UPDATE_AUTHOR,'trigger:FixCrmProcesInitIdx_CRM_WSKAZNIK_AFTER_UPDATE')
|
|
|
|
|
+ );
|
|
|
|
|
+ END IF;
|
|
|
|
|
+ UPDATE `P5-MSG:Route_FixCrmProcesInitIdx:ERROR: Update perms` SET x=1;
|
|
|
|
|
+ END IF;
|
|
|
|
|
+ END
|
|
|
|
|
+ ";
|
|
|
$db = DB::getDB();
|
|
$db = DB::getDB();
|
|
|
if ($db->has_errors()) {
|
|
if ($db->has_errors()) {
|
|
|
throw new Exception("DB Errors: " . implode("\n<br>", $db->get_errors()));
|
|
throw new Exception("DB Errors: " . implode("\n<br>", $db->get_errors()));
|
|
@@ -536,8 +682,33 @@ SQL;
|
|
|
$msg = "Aktualizacja uprawnień została już uruchomiona przez inną osobę";
|
|
$msg = "Aktualizacja uprawnień została już uruchomiona przez inną osobę";
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
|
|
+ case 'ERROR: Update perms': {
|
|
|
|
|
+ $msg = "Wymagana aktualizacja uprawnień";
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return $msg;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public function parseMessageFromMsgsSystem($msg) {
|
|
|
|
|
+ switch ($msg) {
|
|
|
|
|
+ case 'Update perms': {
|
|
|
|
|
+ $msg = "Wymagana aktualizacja uprawnień";
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
return $msg;
|
|
return $msg;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public function runByMessageFromMsgsSystem($msg, &$execNotes) {
|
|
|
|
|
+ switch ($msg) {
|
|
|
|
|
+ case 'Update perms': {
|
|
|
|
|
+ $execNotes .= 'Wymagana aktualizacja uprawnień';
|
|
|
|
|
+ $this->_callProcedure();
|
|
|
|
|
+ $execNotes .= ' done';
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|