Files
luos/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql
2015-04-13 11:48:14 -04:00

62 lines
1.6 KiB
SQL

SET @INIT_DATE = '{init_date}';
SET @FINISH_DATE = '{finish_date}';
DELETE FROM USR_REPORTING WHERE `YEAR` >= DATE_FORMAT(CAST(@INIT_DATE AS DATE), '%Y')
AND `MONTH` >= DATE_FORMAT(CAST(@INIT_DATE AS DATE), '%m')
AND `YEAR` <= DATE_FORMAT(CAST(@FINISH_DATE AS DATE), '%Y')
AND `MONTH` <= DATE_FORMAT(CAST(@FINISH_DATE AS DATE), '%m');
INSERT INTO USR_REPORTING (
USR_UID,
TAS_UID,
PRO_UID,
MONTH,
YEAR,
TOTAL_TIME_BY_TASK,
TOTAL_CASES_IN,
TOTAL_CASES_OUT,
USER_HOUR_COST,
AVG_TIME,
SDV_TIME,
CONFIGURED_TASK_TIME,
TOTAL_CASES_OVERDUE,
TOTAL_CASES_ON_TIME
)
SELECT
ACV.USR_UID,
ACV.TAS_UID,
ACV.PRO_UID,
DATE_FORMAT(ACV.DEL_INIT_DATE, '%m') AS `MONTH`,
DATE_FORMAT(ACV.DEL_INIT_DATE, '%Y') AS `YEAR`,
SUM(ACV.DEL_DURATION) AS TOT_TIME_BY_TASK,
COUNT(ACV.DEL_INIT_DATE) AS TOT_CASES_IN,
COUNT(ACV.DEL_FINISH_DATE) AS TOT_CASES_OUT,
NULL,
AVG(DEL_DURATION) AS `AVG_TIME`,
STD(DEL_DURATION) 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
FROM
APP_CACHE_VIEW AS ACV
WHERE
ACV.DEL_INIT_DATE BETWEEN CAST(@INIT_DATE AS DATETIME) AND CAST(@FINISH_DATE AS DATETIME)
GROUP BY ACV.USR_UID , ACV.TAS_UID , ACV.PRO_UID;
UPDATE USR_REPORTING
INNER JOIN
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
TASK
ON USR_REPORTING.TAS_UID = TASK.TAS_UID
SET USR_REPORTING.CONFIGURED_TASK_TIME = if (TASK.TAS_TIMEUNIT = "DAYS", (TASK.TAS_DURATION*24), TASK.TAS_DURATION)