FCLT#85890 fac.notifytrackingbedrijven kan nu ook met delay (voor Mareon)

svn path=/Database/branches/DB50/; revision=68269
This commit is contained in:
Jos Groot Lipman
2025-03-03 15:45:51 +00:00
parent 49452ff6bc
commit 05388b80a4
7 changed files with 63 additions and 37 deletions

View File

@@ -66,10 +66,12 @@ AS
RETURN NUMBER;
PROCEDURE notifybestellingbedrijven (pbestelkey NUMBER,
ptrackingkey NUMBER);
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifybestelopdrbedrijven (pbestelopdrkey NUMBER,
ptrackingkey NUMBER);
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE autodeliver;
@@ -2226,14 +2228,16 @@ AS
END;
PROCEDURE notifybestellingbedrijven (pbestelkey NUMBER,
ptrackingkey NUMBER)
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
NULL; -- TODO?
END;
PROCEDURE notifybestelopdrbedrijven (pbestelopdrkey NUMBER,
ptrackingkey NUMBER)
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec IN (SELECT b.prs_bedrijf_key,
@@ -2261,7 +2265,8 @@ AS
prefkey => pbestelopdrkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.bes_bestelopdr_id,
plocatie_key => bedrijfrec.alg_locatie_key);
plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP;
END;

View File

@@ -22,7 +22,8 @@ CREATE OR REPLACE PACKAGE cnt AS
PROCEDURE remove(p_contract_key IN NUMBER);
PROCEDURE notifycontractbedrijven (pcntkey NUMBER,
ptrackingkey NUMBER);
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PRAGMA RESTRICT_REFERENCES (cnt_contract_status, WNDS, WNPS);
END cnt;
@@ -704,7 +705,8 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
END;
PROCEDURE notifycontractbedrijven (pcntkey NUMBER,
ptrackingkey NUMBER)
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec
@@ -773,7 +775,8 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
prefkey => pcntkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.cnt_contract_nummer_intern,
plocatie_key => bedrijfrec.alg_locatie_key);
plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP;
END;

View File

@@ -148,14 +148,15 @@ CREATE OR REPLACE PACKAGE fac
PROCEDURE trackaction_withkey (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE, poms VARCHAR2, psubjectkey NUMBER, new_fac_tracking_key OUT NUMBER);
PROCEDURE backtrackaction (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE);
PROCEDURE notifytracking(psrtnotificatiekey NUMBER, pperslid_key NUMBER, ptracking_oms VARCHAR2, prefkey NUMBER, ptrackingkey NUMBER DEFAULT NULL);
PROCEDURE notifytrackingbedrijven(ptrackingkey NUMBER);
PROCEDURE notifytrackingbedrijven(peventcode IN VARCHAR2, prefkey IN NUMBER);
PROCEDURE notifygeneriekbedrijven(prefkey NUMBER, ptrackingkey NUMBER);
PROCEDURE notifytrackingbedrijven(ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifytrackingbedrijven(peventcode IN VARCHAR2, prefkey IN NUMBER, pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifygeneriekbedrijven(prefkey NUMBER, ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifybedrijf(pbedrijf_key NUMBER,
pbedrijfadres_type VARCHAR2,
prefkey NUMBER,
ptrackingkey NUMBER DEFAULT NULL,
psrtnoti_key NUMBER DEFAULT NULL, -- als geen trackingkey
pnotidelay NUMBER DEFAULT NULL,
pxrefkey NUMBER DEFAULT NULL,
preference VARCHAR2 DEFAULT NULL,
psender VARCHAR2 DEFAULT NULL,
@@ -4863,7 +4864,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
END;
-- Zoek de nieuwste 'peventcode' tracking van prefkey en notificeer daarvan de bedrijven
PROCEDURE notifytrackingbedrijven(peventcode IN VARCHAR2, prefkey IN NUMBER)
PROCEDURE notifytrackingbedrijven(peventcode IN VARCHAR2, prefkey IN NUMBER, pnotidelay NUMBER DEFAULT NULL)
AS
l_trackingkey fac_tracking.fac_tracking_key%TYPE;
BEGIN
@@ -4876,12 +4877,12 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND fsn.fac_srtnotificatie_code = peventcode;
IF l_trackingkey IS NOT NULL
THEN
fac.notifytrackingbedrijven (l_trackingkey);
fac.notifytrackingbedrijven (l_trackingkey, pnotidelay);
END IF;
END;
-- Notificeren via een technisch adres
PROCEDURE notifytrackingbedrijven (ptrackingkey NUMBER)
PROCEDURE notifytrackingbedrijven (ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL)
AS
lxmlnode fac_srtnotificatie.fac_srtnotificatie_xmlnode%TYPE;
lcode fac_srtnotificatie.fac_srtnotificatie_code%TYPE;
@@ -4902,30 +4903,30 @@ CREATE OR REPLACE PACKAGE BODY fac AS
CASE
WHEN lxmlnode = 'melding'
THEN
mld.notifymeldingbedrijven(l_refkey, ptrackingkey);
mld.notifymeldingbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'opdracht'
THEN
mld.notifyopdrbedrijven(l_refkey, ptrackingkey);
mld.notifyopdrbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'reservering' OR lxmlnode = 'xreservering'
THEN
res.notifyreserveringbedrijven(l_refkey, ptrackingkey);
res.notifyreserveringbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'bestelling'
THEN
bes.notifybestellingbedrijven(l_refkey, ptrackingkey);
bes.notifybestellingbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'bestelopdr'
THEN
bes.notifybestelopdrbedrijven(l_refkey, ptrackingkey);
bes.notifybestelopdrbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'contract'
THEN
cnt.notifycontractbedrijven(l_refkey, ptrackingkey);
cnt.notifycontractbedrijven(l_refkey, ptrackingkey, pnotidelay);
ELSE
fac.notifygeneriekbedrijven(l_refkey, ptrackingkey);
fac.notifygeneriekbedrijven(l_refkey, ptrackingkey, pnotidelay);
END CASE;
END;
-- Notificeer genrieke bedrijven die luisteren naar onze notificatie
PROCEDURE notifygeneriekbedrijven (prefkey NUMBER, ptrackingkey NUMBER)
PROCEDURE notifygeneriekbedrijven (prefkey NUMBER, ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec
@@ -4944,7 +4945,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
prefkey => prefkey,
ptrackingkey => ptrackingkey);
ptrackingkey => ptrackingkey,
pnotidelay => pnotidelay);
END LOOP;
END;
@@ -4954,6 +4956,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
prefkey NUMBER,
ptrackingkey NUMBER DEFAULT NULL,
psrtnoti_key NUMBER DEFAULT NULL, -- als geen trackingkey, bijvoorbeeld vanuit mld_t_mld_opdr_B_IU als teverzenden op 2 wordt gezet
pnotidelay NUMBER DEFAULT NULL,
pxrefkey NUMBER DEFAULT NULL,
preference VARCHAR2 DEFAULT NULL,
psender VARCHAR2 DEFAULT NULL, -- alleen bij opdrachten alg_locatie_email?
@@ -5111,14 +5114,18 @@ CREATE OR REPLACE PACKAGE BODY fac AS
-- Ok, het technisch adres luistert naar onze notificatie!
-- Geen putnotificationsrtprio. Die is veel te agressief met ontdubbelen
notbefore := SYSDATE;
delaymode := fac.safe_to_number(fac.getsetting('noti_delay_mode'));
IF delaymode = 1 -- default uit, naar technische adres zonder vertraging
IF pnotidelay IS NOT NULL
THEN
notbefore := notbefore + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0);
notbefore := SYSDATE + pnotidelay / 60/ 60/ 24;
ELSIF delaymode = 1
THEN
notbefore := SYSDATE + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0);
ELSIF delaymode > 1 -- fixed delay
THEN
notbefore := notbefore + delaymode / 60/ 60/ 24;
notbefore := SYSDATE + delaymode / 60/ 60/ 24;
ELSE -- delaymode = 0 -- default uit, naar technische adres zonder vertraging
notbefore := SYSDATE;
END IF;
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_oms,

View File

@@ -412,6 +412,9 @@ BEGIN
OR :NEW.fac_notificatie_systeemadres IS NOT NULL
THEN
tsk.starttask(p_taskcode => 'PUTORDERS', p_nextrun => :NEW.fac_notificatie_notbefore);
ELSIF :NEW.fac_notificatie_queue = 'EXCHANGE' -- future use
THEN
tsk.starttask(p_taskcode => 'EXCHANGE', p_nextrun => :NEW.fac_notificatie_notbefore);
END IF;
END IF;
END;

View File

@@ -62,7 +62,7 @@ PROJEXE=z:\Project\FACILITOR\BUILD
##
CURRENTVERSION=49
NEXTVERSION=50
FILEVERSION=
FILEVERSION=a
NEXTROOT=DB$(NEXTVERSION)$(FILEVERSION)
CURRENTUPDATE=DB$(CURRENTVERSION)to$(NEXTVERSION)

View File

@@ -25,9 +25,11 @@ CREATE OR REPLACE PACKAGE mld AS
PROCEDURE notifyprio (pmeldingkey IN NUMBER, prio IN NUMBER, pperslid_key IN NUMBER, pdisc_level IN NUMBER DEFAULT 1);
PROCEDURE notifyopdrgoedkeurders (popdrkey IN NUMBER);
PROCEDURE notifyopdrbedrijven (popdrkey NUMBER,
ptrackingkey NUMBER);
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifymeldingbedrijven (pmldkey NUMBER,
ptrackingkey NUMBER);
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
FUNCTION getinstemmer (pmldkey IN NUMBER) RETURN NUMBER;
PROCEDURE notifyinstemmer (pmldkey IN NUMBER);
FUNCTION mld_besteed_budget_pgb (p_prs_key IN NUMBER, p_disc_key IN NUMBER)
@@ -1426,7 +1428,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
-- in het bijzonder de uitvoerende maar het mag ook een
-- ander 'subscribed' bedrijf zijn (bedrijfadres_type 'G').
PROCEDURE notifyopdrbedrijven (popdrkey NUMBER,
ptrackingkey NUMBER)
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec
@@ -1469,12 +1472,14 @@ CREATE OR REPLACE PACKAGE BODY mld AS
ptypeopdr_key => bedrijfrec.mld_typeopdr_key,
plocatie_key => bedrijfrec.alg_locatie_key,
pdisc_key => bedrijfrec.mld_opdr_discipline_key,
psender => bedrijfrec.alg_locatie_email);
psender => bedrijfrec.alg_locatie_email,
pnotidelay => pnotidelay);
END LOOP;
END;
PROCEDURE notifymeldingbedrijven (pmldkey NUMBER,
ptrackingkey NUMBER)
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec
@@ -1513,7 +1518,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
preference => bedrijfrec.reference,
plocatie_key => bedrijfrec.alg_locatie_key,
pdisc_key => bedrijfrec.mld_ins_discipline_key,
psender => bedrijfrec.alg_locatie_email);
psender => bedrijfrec.alg_locatie_email,
pnotidelay => pnotidelay);
END LOOP;
END;

View File

@@ -42,7 +42,7 @@ CREATE OR REPLACE PACKAGE res AS
FUNCTION notifypool (pbez_bezoeker_key IN NUMBER, pcode IN VARCHAR2) RETURN NUMBER;
PROCEDURE notifybackoffice (prsvkey IN NUMBER, pcode IN VARCHAR2, ptype IN VARCHAR2 DEFAULT NULL, pkey IN NUMBER DEFAULT NULL);
PROCEDURE remove(p_rsv_ruimte_key IN NUMBER);
PROCEDURE notifyreserveringbedrijven (prsvkey NUMBER, ptrackingkey NUMBER);
PROCEDURE notifyreserveringbedrijven (prsvkey NUMBER, ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL);
END res;
/
@@ -2552,7 +2552,8 @@ AS
END;
PROCEDURE notifyreserveringbedrijven (prsvkey NUMBER,
ptrackingkey NUMBER)
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec
@@ -2595,7 +2596,8 @@ AS
prefkey => prsvkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.reference,
plocatie_key => bedrijfrec.alg_locatie_key);
plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP;
END;
END res;