diff --git a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql index aa15dde4d..12d88da66 100755 --- a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql @@ -12,6 +12,7 @@ BEGIN DECLARE PREVIOUS_USR_UID VARCHAR(32); DECLARE APP_DEL_PREVIOUS_USER VARCHAR(255); DECLARE APP_THREAD_STATUS VARCHAR(32); + DECLARE TAS_TYPE VARCHAR(20); SET @DEFAULT_LANG = '{lang}'; SELECT APPLICATION.APP_NUMBER into @APP_NUMBER FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1; SELECT APPLICATION.APP_STATUS into @APP_STATUS FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1; @@ -41,70 +42,76 @@ BEGIN SET @APP_THREAD_STATUS = 'OPEN'; END IF; - INSERT INTO `APP_CACHE_VIEW` ( - APP_UID, - DEL_INDEX, - APP_NUMBER, - APP_STATUS, - USR_UID, - PREVIOUS_USR_UID, - TAS_UID, - PRO_UID, - DEL_DELEGATE_DATE, - DEL_INIT_DATE, - DEL_TASK_DUE_DATE, - DEL_FINISH_DATE, - DEL_THREAD_STATUS, - APP_THREAD_STATUS, - APP_TITLE, - APP_PRO_TITLE, - APP_TAS_TITLE, - APP_CURRENT_USER, - APP_DEL_PREVIOUS_USER, - DEL_PRIORITY, - DEL_DURATION, - DEL_QUEUE_DURATION, - DEL_DELAY_DURATION, - DEL_STARTED, - DEL_FINISHED, - DEL_DELAYED, - APP_CREATE_DATE, - APP_FINISH_DATE, - APP_UPDATE_DATE, - APP_OVERDUE_PERCENTAGE - -) -VALUES ( - NEW.APP_UID, - NEW.DEL_INDEX, - @APP_NUMBER, - @APP_STATUS, - NEW.USR_UID, - @PREVIOUS_USR_UID, - NEW.TAS_UID, - NEW.PRO_UID, - substring(NEW.DEL_DELEGATE_DATE,1,10), - substring(NEW.DEL_INIT_DATE, 1,10), - substring(NEW.DEL_TASK_DUE_DATE,1,19), - substring(NEW.DEL_FINISH_DATE, 1,10), - NEW.DEL_THREAD_STATUS, - @APP_THREAD_STATUS, - @APP_TITLE, - @APP_PRO_TITLE, - @APP_TAS_TITLE, - @APP_CURRENT_USER, - @APP_DEL_PREVIOUS_USER, - NEW.DEL_PRIORITY, - NEW.DEL_DURATION, - NEW.DEL_QUEUE_DURATION, - NEW.DEL_DELAY_DURATION, - NEW.DEL_STARTED, - NEW.DEL_FINISHED, - NEW.DEL_DELAYED, - @APP_CREATE_DATE, - NULL, - NOW(), - NEW.APP_OVERDUE_PERCENTAGE -); + SELECT TASK.TAS_TYPE INTO @TAS_TYPE FROM APP_DELEGATION LEFT JOIN TASK ON ( APP_DELEGATION.TAS_UID = TASK.TAS_UID ) WHERE APP_DELEGATION.TAS_UID = NEW.TAS_UID LIMIT 1; + + IF ( @TAS_TYPE IS NULL ) THEN + SET @TAS_TYPE = 'NORMAL'; + END IF; + IF( @TAS_TYPE != 'SUBPROCESS') THEN + INSERT INTO `APP_CACHE_VIEW` ( + APP_UID, + DEL_INDEX, + APP_NUMBER, + APP_STATUS, + USR_UID, + PREVIOUS_USR_UID, + TAS_UID, + PRO_UID, + DEL_DELEGATE_DATE, + DEL_INIT_DATE, + DEL_TASK_DUE_DATE, + DEL_FINISH_DATE, + DEL_THREAD_STATUS, + APP_THREAD_STATUS, + APP_TITLE, + APP_PRO_TITLE, + APP_TAS_TITLE, + APP_CURRENT_USER, + APP_DEL_PREVIOUS_USER, + DEL_PRIORITY, + DEL_DURATION, + DEL_QUEUE_DURATION, + DEL_DELAY_DURATION, + DEL_STARTED, + DEL_FINISHED, + DEL_DELAYED, + APP_CREATE_DATE, + APP_FINISH_DATE, + APP_UPDATE_DATE, + APP_OVERDUE_PERCENTAGE + ) + VALUES ( + NEW.APP_UID, + NEW.DEL_INDEX, + @APP_NUMBER, + @APP_STATUS, + NEW.USR_UID, + @PREVIOUS_USR_UID, + NEW.TAS_UID, + NEW.PRO_UID, + substring(NEW.DEL_DELEGATE_DATE,1,10), + substring(NEW.DEL_INIT_DATE, 1,10), + substring(NEW.DEL_TASK_DUE_DATE,1,10), + substring(NEW.DEL_FINISH_DATE, 1,10), + NEW.DEL_THREAD_STATUS, + @APP_THREAD_STATUS, + @APP_TITLE, + @APP_PRO_TITLE, + @APP_TAS_TITLE, + @APP_CURRENT_USER, + @APP_DEL_PREVIOUS_USER, + NEW.DEL_PRIORITY, + NEW.DEL_DURATION, + NEW.DEL_QUEUE_DURATION, + NEW.DEL_DELAY_DURATION, + NEW.DEL_STARTED, + NEW.DEL_FINISHED, + NEW.DEL_DELAYED, + @APP_CREATE_DATE, + NULL, + NOW(), + NEW.APP_OVERDUE_PERCENTAGE + ); + END IF; END diff --git a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql index a0a2fb48b..85093fdc0 100755 --- a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql @@ -12,6 +12,7 @@ BEGIN DECLARE PREVIOUS_USR_UID VARCHAR(32); DECLARE APP_DEL_PREVIOUS_USER VARCHAR(255); DECLARE APP_THREAD_STATUS VARCHAR(32); + DECLARE TAS_TYPE VARCHAR(20); SET @DEFAULT_LANG = '{lang}'; SELECT APPLICATION.APP_NUMBER into @APP_NUMBER FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1; SELECT APPLICATION.APP_STATUS into @APP_STATUS FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1; @@ -40,36 +41,42 @@ BEGIN IF ( @APP_THREAD_STATUS IS NULL ) THEN SET @APP_THREAD_STATUS = 'OPEN'; END IF; - UPDATE `APP_CACHE_VIEW` - SET - APP_NUMBER = @APP_NUMBER, - APP_STATUS = @APP_STATUS, - USR_UID = NEW.USR_UID, - PREVIOUS_USR_UID = @PREVIOUS_USR_UID, - TAS_UID = NEW.TAS_UID, - PRO_UID = NEW.PRO_UID, - DEL_DELEGATE_DATE = substring(NEW.DEL_DELEGATE_DATE,1,10), - DEL_INIT_DATE = substring(NEW.DEL_INIT_DATE,1,10), - DEL_TASK_DUE_DATE = substring(NEW.DEL_TASK_DUE_DATE,1,19), - DEL_FINISH_DATE = substring(NEW.DEL_FINISH_DATE,1,10), - DEL_THREAD_STATUS = NEW.DEL_THREAD_STATUS, - APP_THREAD_STATUS = @APP_THREAD_STATUS, - APP_TITLE = @APP_TITLE, - APP_PRO_TITLE = @APP_PRO_TITLE, - APP_TAS_TITLE = @APP_TAS_TITLE, - APP_CURRENT_USER = @APP_CURRENT_USER, - APP_DEL_PREVIOUS_USER = @APP_DEL_PREVIOUS_USER, - DEL_PRIORITY = NEW.DEL_PRIORITY, - DEL_DURATION = NEW.DEL_DURATION, - DEL_QUEUE_DURATION = NEW.DEL_QUEUE_DURATION, - DEL_DELAY_DURATION = NEW.DEL_DELAY_DURATION, - DEL_STARTED = NEW.DEL_STARTED, - DEL_FINISHED = NEW.DEL_FINISHED, - DEL_DELAYED = NEW.DEL_DELAYED, - APP_FINISH_DATE = NULL, - APP_UPDATE_DATE = NOW(), - APP_OVERDUE_PERCENTAGE = NEW.APP_OVERDUE_PERCENTAGE -WHERE - APP_UID = NEW.APP_UID - AND DEL_INDEX = NEW.DEL_INDEX; + SELECT TASK.TAS_TYPE INTO @TAS_TYPE FROM APP_DELEGATION LEFT JOIN TASK ON ( APP_DELEGATION.TAS_UID = TASK.TAS_UID ) WHERE APP_DELEGATION.TAS_UID = NEW.TAS_UID LIMIT 1; + IF ( @TAS_TYPE IS NULL ) THEN + SET @TAS_TYPE = 'NORMAL'; + END IF; + IF( @TAS_TYPE != 'SUBPROCESS') THEN + UPDATE `APP_CACHE_VIEW` + SET + APP_NUMBER = @APP_NUMBER, + APP_STATUS = @APP_STATUS, + USR_UID = NEW.USR_UID, + PREVIOUS_USR_UID = @PREVIOUS_USR_UID, + TAS_UID = NEW.TAS_UID, + PRO_UID = NEW.PRO_UID, + DEL_DELEGATE_DATE = substring(NEW.DEL_DELEGATE_DATE,1,10), + DEL_INIT_DATE = substring(NEW.DEL_INIT_DATE,1,10), + DEL_TASK_DUE_DATE = substring(NEW.DEL_TASK_DUE_DATE,1,10), + DEL_FINISH_DATE = substring(NEW.DEL_FINISH_DATE,1,10), + DEL_THREAD_STATUS = NEW.DEL_THREAD_STATUS, + APP_THREAD_STATUS = @APP_THREAD_STATUS, + APP_TITLE = @APP_TITLE, + APP_PRO_TITLE = @APP_PRO_TITLE, + APP_TAS_TITLE = @APP_TAS_TITLE, + APP_CURRENT_USER = @APP_CURRENT_USER, + APP_DEL_PREVIOUS_USER = @APP_DEL_PREVIOUS_USER, + DEL_PRIORITY = NEW.DEL_PRIORITY, + DEL_DURATION = NEW.DEL_DURATION, + DEL_QUEUE_DURATION = NEW.DEL_QUEUE_DURATION, + DEL_DELAY_DURATION = NEW.DEL_DELAY_DURATION, + DEL_STARTED = NEW.DEL_STARTED, + DEL_FINISHED = NEW.DEL_FINISHED, + DEL_DELAYED = NEW.DEL_DELAYED, + APP_FINISH_DATE = NULL, + APP_UPDATE_DATE = NOW(), + APP_OVERDUE_PERCENTAGE = NEW.APP_OVERDUE_PERCENTAGE + WHERE + APP_UID = NEW.APP_UID + AND DEL_INDEX = NEW.DEL_INDEX; + END IF; END