diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index c1166811a..3a4519d32 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -4865,6 +4865,8 @@ + + @@ -4912,6 +4914,8 @@ + + diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index ea9ce4980..fe2d7763d 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -2715,6 +2715,8 @@ CREATE TABLE `USR_REPORTING` `CONFIGURED_TASK_TIME` DECIMAL(7,2) default 0, `TOTAL_CASES_OVERDUE` DECIMAL(7,2) default 0, `TOTAL_CASES_ON_TIME` DECIMAL(7,2) default 0, + `PRO_COST` DECIMAL(7,2) default 0, + `PRO_UNIT_COST` VARCHAR(50) default '', PRIMARY KEY (`USR_UID`, `TAS_UID`,`MONTH`,`YEAR`), KEY `indexReporting`(`USR_UID`, `TAS_UID`, `PRO_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Data calculated users by task'; @@ -2739,6 +2741,8 @@ CREATE TABLE `PRO_REPORTING` `TOTAL_CASES_OPEN` DECIMAL(7,2) default 0, `TOTAL_CASES_OVERDUE` DECIMAL(7,2) default 0, `TOTAL_CASES_ON_TIME` DECIMAL(7,2) default 0, + `PRO_COST` DECIMAL(7,2) default 0, + `PRO_UNIT_COST` VARCHAR(50) default '', PRIMARY KEY (`PRO_UID`,`MONTH`,`YEAR`) )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Data calculated by process'; #----------------------------------------------------------------------------- diff --git a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql index bfb22baf7..6ff6ad621 100644 --- a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql @@ -18,7 +18,9 @@ INSERT INTO PRO_REPORTING ( CONFIGURED_PROCESS_COST, TOTAL_CASES_OPEN, TOTAL_CASES_OVERDUE, - TOTAL_CASES_ON_TIME + TOTAL_CASES_ON_TIME, + PRO_COST, + PRO_UNIT_COST ) SELECT APPLICATION.PRO_UID, @@ -32,13 +34,22 @@ SELECT NULL, count(if(APPLICATION.APP_FINISH_DATE != null, NULL, 1)) AS TOTAL_CASES_OPEN, count(if(APPLICATION.APP_DELAY_DURATION > 0, 1, NULL)) AS TOTAL_CASES_OVERDUE, - count(if(APPLICATION.APP_DELAY_DURATION <= 0, 1, NULL)) AS TOTAL_CASES_ON_TIME + count(if(APPLICATION.APP_DELAY_DURATION <= 0, 1, NULL)) AS TOTAL_CASES_ON_TIME, + 0, + NULL FROM APPLICATION FORCE INDEX (PRIMARY) WHERE APPLICATION.APP_INIT_DATE BETWEEN CAST(@INIT_DATE AS DATETIME) AND CAST(@FINISH_DATE AS DATETIME) GROUP BY APPLICATION.PRO_UID; +UPDATE USR_REPORTING +INNER JOIN +PROCESS +ON USR_REPORTING.PRO_UID = PROCESS.PRO_UID +SET USR_REPORTING.PRO_COST = PROCESS.PRO_COST, +USR_REPORTING.PRO_UNIT_COST = PROCESS.PRO_UNIT_COST; + #TODO task duration should be calculated with the calendar UPDATE PRO_REPORTING SET PRO_REPORTING.CONFIGURED_PROCESS_TIME = ( diff --git a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql index 44305b1e9..dc468398f 100644 --- a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql @@ -20,7 +20,9 @@ INSERT INTO USR_REPORTING ( SDV_TIME, CONFIGURED_TASK_TIME, TOTAL_CASES_OVERDUE, - TOTAL_CASES_ON_TIME + TOTAL_CASES_ON_TIME, + PRO_COST, + PRO_UNIT_COST ) SELECT @@ -37,7 +39,9 @@ SELECT STD(DEL_DURATION*24) AS `STD_TIME`, NULL, count(if(ACV.DEL_DELAY_DURATION > 0, 1, NULL)) AS TOTAL_CASES_OVERDUE, - count(if(ACV.DEL_DELAY_DURATION <= 0, 1, NULL)) AS TOTAL_CASES_ON_TIME + count(if(ACV.DEL_DELAY_DURATION <= 0, 1, NULL)) AS TOTAL_CASES_ON_TIME, + 0, + NULL FROM APP_CACHE_VIEW AS ACV WHERE @@ -56,6 +60,13 @@ USERS ON USR_REPORTING.USR_UID = USERS.USR_UID SET USR_REPORTING.USER_HOUR_COST = USERS.USR_COST_BY_HOUR; +UPDATE USR_REPORTING +INNER JOIN +PROCESS +ON USR_REPORTING.PRO_UID = PROCESS.PRO_UID +SET USR_REPORTING.PRO_COST = PROCESS.PRO_COST, +USR_REPORTING.PRO_UNIT_COST = PROCESS.PRO_UNIT_COST; + UPDATE USR_REPORTING INNER JOIN TASK ON USR_REPORTING.TAS_UID = TASK.TAS_UID SET USR_REPORTING.CONFIGURED_TASK_TIME =