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
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
IF vDayBreak IS NULL THEN
SET vErrorCode = 'INACTIVE_BUSINESS';
@ -105,7 +118,7 @@ BEGIN
END IF;
-- FICHADAS A FUTURO
IF vTimed > util.VN_NOW() + INTERVAL 1 MINUTE THEN
IF vTimed > util.VN_NOW() + INTERVAL 1 MINUTE THEN
SET vErrorCode = 'IS_NOT_ALLOWED_FUTURE';
CALL util.throw(vErrorCode);
END IF;
@ -239,19 +252,14 @@ BEGIN
CALL util.throw(vErrorCode);
END IF;
SELECT EXISTS (
SELECT id FROM campaign
WHERE vTimed BETWEEN dated - INTERVAL scopeDays DAY AND dated
) INTO vIsCampaing;
-- VERIFICA DESCANSO SEMANAL
WITH wtc AS(
(SELECT timed
FROM vn.workerTimeControl
WHERE userFk = vWorkerFk
AND direction IN ('in', 'out')
AND timed BETWEEN vTimed - INTERVAL (vWeekScope * 2) SECOND
AND vTimed + INTERVAL (vWeekScope * 2) SECOND )
AND timed BETWEEN vTimed - INTERVAL vWeekScope SECOND
AND vTimed + INTERVAL vWeekScope SECOND)
UNION
(SELECT vTimed)
), wtcGap AS(
@ -262,7 +270,7 @@ BEGIN
), wtcBreak AS(
SELECT timed,
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
ORDER BY timed
), wtcBreakCounter AS(