KFNS#34161 Notificatie achtervang
svn path=/Database/trunk/; revision=28786
This commit is contained in:
@@ -60,6 +60,8 @@ CREATE OR REPLACE PACKAGE fac
|
||||
FUNCTION getdomeinwaarde (dkey IN NUMBER, waarde IN VARCHAR2, ignorewhenxmlnode IN NUMBER DEFAULT 0) RETURN VARCHAR2;
|
||||
FUNCTION count_Work_Days ( pdate1 IN DATE , pdate2 IN DATE ) RETURN NUMBER;
|
||||
FUNCTION count_Work_Days_InclTime ( pdate1 IN DATE , pdate2 IN DATE ) RETURN NUMBER;
|
||||
FUNCTION iswerkdag (begindatum IN DATE) RETURN NUMBER;
|
||||
FUNCTION iswerktijd RETURN NUMBER;
|
||||
FUNCTION datumtijdplusuitvoertijd (begindatum IN DATE, uitvoertijd IN NUMBER, uitvoertijdtype IN VARCHAR2) RETURN DATE;
|
||||
FUNCTION datumtijdplusuitvoertijd (begindatum IN DATE, uitvoertijd IN NUMBER, uitvoertijdtype IN VARCHAR2,
|
||||
pBeginWerkUur IN NUMBER, pEindWerkUur IN NUMBER, pMode IN NUMBER) RETURN DATE;
|
||||
@@ -388,6 +390,23 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
END IF;
|
||||
END;
|
||||
|
||||
FUNCTION iswerktijd
|
||||
RETURN NUMBER
|
||||
AS
|
||||
lBeginWerkUur NUMBER;
|
||||
lEindWerkUur NUMBER;
|
||||
BEGIN
|
||||
lBeginWerkUur := fac.safe_to_number(fac.getsetting('fac_t_startofworkday'));
|
||||
lEindWerkUur := fac.safe_to_number(fac.getsetting('fac_t_endofworkday'));
|
||||
IF SYSDATE BETWEEN TRUNC(SYSDATE) + (lBeginWerkUur / 24)
|
||||
AND TRUNC(SYSDATE) + (lEindWerkUur / 24)
|
||||
THEN
|
||||
RETURN 1;
|
||||
ELSE
|
||||
RETURN 0;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
-- Return number of workdays between two dates, not including the startdate, weekends and holidays
|
||||
FUNCTION count_Work_Days0( pdate1 IN DATE , pdate2 IN DATE, pInclTime IN BOOLEAN ) RETURN NUMBER IS
|
||||
eikdag NUMBER;
|
||||
|
||||
@@ -521,9 +521,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
lreceivers fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
lreceivers1 fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
ltracking VARCHAR2(4000); -- moet tijdelijk groter dan fac_srtnotificatie.fac_srtnotificatie_oms%TYPE kunnen zijn
|
||||
lOutsideOfficeHours NUMBER;
|
||||
lBeginWerkUur NUMBER;
|
||||
lEindWerkUur NUMBER;
|
||||
lnotifyooh mld_disc_params.mld_disc_params_offhours%TYPE;
|
||||
BEGIN
|
||||
BEGIN
|
||||
@@ -615,27 +612,32 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
-- Bepalen Outside Office Hours.
|
||||
lBeginWerkUur := fac.safe_to_number(fac.getsetting('fac_t_startofworkday'));
|
||||
lEindWerkUur := fac.safe_to_number(fac.getsetting('fac_t_endofworkday'));
|
||||
SELECT MAX(t.ooh)
|
||||
INTO lOutsideOfficeHours
|
||||
FROM (SELECT DISTINCT 1 ooh
|
||||
FROM mld_vrije_dagen
|
||||
WHERE lnotifyooh = 1 -- deze discipline buiten kantooruren melden
|
||||
AND (mld_vrije_dagen_datum = TRUNC(SYSDATE) -- vrije dagen
|
||||
OR TO_CHAR(TRUNC(SYSDATE), 'd') IN ('7','1') -- weekend
|
||||
OR ( SYSDATE NOT BETWEEN TRUNC(SYSDATE) + (lBeginWerkUur / 24) -- buiten kantooruren
|
||||
AND TRUNC(SYSDATE) + (lEindWerkUur / 24)
|
||||
)
|
||||
)
|
||||
UNION
|
||||
SELECT 0 FROM DUAL -- altijd minimaal 1 rij opleveren
|
||||
) t;
|
||||
|
||||
|
||||
lnrreceivers := 0;
|
||||
lreceivers := '';
|
||||
-- Buiten kantooruren naar de achterwacht melden.
|
||||
IF lnotifyooh = 1
|
||||
THEN
|
||||
IF ( (fac.iswerkdag(SYSDATE) = 0) -- weekend of vrije dag
|
||||
OR (fac.iswerktijd = 0) -- buiten kantoortijd
|
||||
)
|
||||
THEN
|
||||
lreceivers := fac.getsetting('nightly_mld2bo_emailaddress');
|
||||
lnrreceivers := lnrreceivers+1;
|
||||
fac.putnotificationsrtprio (NULL,
|
||||
NULL,
|
||||
lsrtnoticode,
|
||||
pmeldingkey,
|
||||
bericht,
|
||||
NULL,
|
||||
lreceivers,
|
||||
NULL,
|
||||
NULL,
|
||||
lspoed, -- 1,2,3,4
|
||||
NULL
|
||||
);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
FOR boer
|
||||
IN (SELECT g.prs_perslid_key
|
||||
FROM fac_v_webgebruiker g, fac_functie f, prs_perslid p, prs_v_afdeling d
|
||||
@@ -679,21 +681,17 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
lspoed, -- 1,2,3,4
|
||||
NULL
|
||||
);
|
||||
IF lOutsideOfficeHours = 1 THEN
|
||||
lreceivers := fac.getsetting('nightly_mld2bo_emailaddress');
|
||||
IF lnrreceivers = 0 THEN
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
ELSE
|
||||
IF lnrreceivers = 0 THEN
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
ELSE
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers1
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
lreceivers := lreceivers||', '||lreceivers1;
|
||||
END IF;
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers1
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
lreceivers := lreceivers||', '||lreceivers1;
|
||||
END IF;
|
||||
lnrreceivers := lnrreceivers+1;
|
||||
END LOOP;
|
||||
|
||||
@@ -68,7 +68,8 @@ CREATE_TABLE(mld_disc_params, 0)
|
||||
DEFAULT 0,
|
||||
mld_disc_params_fenotes
|
||||
NUMBER(2) -- bitwise valid are 0, 1, 2 and 3 (0,1 = (default) niet/wel + 0,2 = vast/keuze)
|
||||
DEFAULT 0,
|
||||
DEFAULT 0
|
||||
NOT NULL,
|
||||
mld_disc_params_eigen_kp
|
||||
NUMBER(1) -- valid are 0, 1
|
||||
DEFAULT 0,
|
||||
|
||||
Reference in New Issue
Block a user