feat: refs #8139 Added if is campaign
gitea/salix/pipeline/pr-dev There was a failure building this commit Details

This commit is contained in:
Carlos Andrés 2024-12-19 19:23:16 +01:00
parent 6f47d04598
commit 93f5b0ea54
1 changed files with 31 additions and 23 deletions

View File

@ -98,6 +98,19 @@ BEGIN
WHERE b.workerFk = vWorkerFk WHERE b.workerFk = vWorkerFk
AND vDated BETWEEN b.started AND IFNULL(b.ended, vDated); AND vDated BETWEEN b.started AND IFNULL(b.ended, vDated);
SELECT EXISTS (
SELECT id FROM campaign
WHERE vTimed BETWEEN dated - INTERVAL scopeDays DAY
AND dated + INTERVAL vLongWeekBreak SECOND
) INTO vIsCampaing;
IF vIsCampaing THEN
SET vWeekScope = vWeekScope * 2;
ELSE
SET vLongWeekBreak = vShortWeekBreak,
vMaxWorkLongCycle = vMaxWorkShortCycle;
END IF;
-- CONTRATO EN VIGOR -- CONTRATO EN VIGOR
IF vDayBreak IS NULL THEN IF vDayBreak IS NULL THEN
SET vErrorCode = 'INACTIVE_BUSINESS'; SET vErrorCode = 'INACTIVE_BUSINESS';
@ -239,19 +252,14 @@ BEGIN
CALL util.throw(vErrorCode); CALL util.throw(vErrorCode);
END IF; END IF;
SELECT EXISTS (
SELECT id FROM campaign
WHERE vTimed BETWEEN dated - INTERVAL scopeDays DAY AND dated
) INTO vIsCampaing;
-- VERIFICA DESCANSO SEMANAL -- VERIFICA DESCANSO SEMANAL
WITH wtc AS( WITH wtc AS(
(SELECT timed (SELECT timed
FROM vn.workerTimeControl FROM vn.workerTimeControl
WHERE userFk = vWorkerFk WHERE userFk = vWorkerFk
AND direction IN ('in', 'out') AND direction IN ('in', 'out')
AND timed BETWEEN vTimed - INTERVAL (vWeekScope * 2) SECOND AND timed BETWEEN vTimed - INTERVAL vWeekScope SECOND
AND vTimed + INTERVAL (vWeekScope * 2) SECOND ) AND vTimed + INTERVAL vWeekScope SECOND)
UNION UNION
(SELECT vTimed) (SELECT vTimed)
), wtcGap AS( ), wtcGap AS(
@ -262,7 +270,7 @@ BEGIN
), wtcBreak AS( ), wtcBreak AS(
SELECT timed, SELECT timed,
IF(IFNULL(gap, 0) > vShortWeekBreak, TRUE, FALSE) hasShortBreak, IF(IFNULL(gap, 0) > vShortWeekBreak, TRUE, FALSE) hasShortBreak,
IF(IFNULL(gap, 0) > vLongWeekBreak AND NOT vIsCampaing, TRUE, FALSE) hasLongBreak IF(IFNULL(gap, 0) > vLongWeekBreak, TRUE, FALSE) hasLongBreak
FROM wtcGap FROM wtcGap
ORDER BY timed ORDER BY timed
), wtcBreakCounter AS( ), wtcBreakCounter AS(