DLLG#82309 Rekening houden met meerdere opeenvolgende vrije dagen
svn path=/Database/trunk/; revision=68441
This commit is contained in:
@@ -674,28 +674,29 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
AND pEindWerkUur BETWEEN 0 AND 24
|
||||
AND pEindWerkUur > pBeginWerkUur
|
||||
THEN
|
||||
-- Verschuif begindatum als deze valt [a] buiten de meegegeven uren of [b] op
|
||||
-- een vrije dag. Dit geldt Kantoortijden- of Openingstijden-regime!
|
||||
SELECT COUNT ( * )
|
||||
INTO vrijedag
|
||||
FROM mld_vrije_dagen
|
||||
WHERE mld_vrije_dagen_datum = TRUNC (begindatum)
|
||||
AND mld_vrije_dagen_id = pCalendarId;
|
||||
datumbegin := begindatum;
|
||||
WHILE vrijedag IS NULL OR vrijedag = 1
|
||||
LOOP
|
||||
-- Verschuif datumbegin als deze valt [a] buiten de meegegeven uren of [b] op
|
||||
-- een vrije dag. Dit geldt Kantoortijden- of Openingstijden-regime!
|
||||
SELECT COUNT ( * )
|
||||
INTO vrijedag
|
||||
FROM mld_vrije_dagen
|
||||
WHERE mld_vrije_dagen_datum = TRUNC (datumbegin)
|
||||
AND mld_vrije_dagen_id = pCalendarId;
|
||||
|
||||
IF (begindatum > TRUNC (begindatum) + (pEindWerkUur / 24) OR vrijedag = 1)
|
||||
THEN
|
||||
-- Als begintijd na 'pEindWerkUur', dan naar 'pBeginWerkUur' volgende dag;
|
||||
-- hetzelfde als begindag is een vrije dag.
|
||||
-- En als deze volgende dag is een vrije dag, dan volgt vanzelf compensatie!
|
||||
datumbegin := TRUNC (begindatum + 1) + (pBeginWerkUur / 24);
|
||||
ELSIF (begindatum < TRUNC (begindatum) + (pBeginWerkUur / 24))
|
||||
THEN
|
||||
-- Als begintijd voor 'pBeginWerkUur', dan naar 'pBeginWerkUur' huidige dag.
|
||||
datumbegin := TRUNC (begindatum) + (pBeginWerkUur / 24);
|
||||
ELSE
|
||||
-- Anders 1-op-1 overnemen.
|
||||
datumbegin := begindatum;
|
||||
END IF;
|
||||
IF (datumbegin > TRUNC (datumbegin) + (pEindWerkUur / 24) OR vrijedag = 1)
|
||||
THEN
|
||||
-- Als begintijd na 'pEindWerkUur', dan naar 'pBeginWerkUur' volgende dag;
|
||||
-- hetzelfde als begindag is een vrije dag.
|
||||
-- En als deze volgende dag is een vrije dag, dan volgt vanzelf compensatie!
|
||||
datumbegin := TRUNC (datumbegin + 1) + (pBeginWerkUur / 24);
|
||||
ELSIF (datumbegin < TRUNC (datumbegin) + (pBeginWerkUur / 24))
|
||||
THEN
|
||||
-- Als begintijd voor 'pBeginWerkUur', dan naar 'pBeginWerkUur' huidige dag.
|
||||
datumbegin := TRUNC (datumbegin) + (pBeginWerkUur / 24);
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
IF pMode = 0
|
||||
THEN
|
||||
|
||||
Reference in New Issue
Block a user