Merge 2025.1 DB50a patches

svn path=/Database/trunk/; revision=68306
This commit is contained in:
Jos Groot Lipman
2025-03-06 14:54:32 +00:00
parent 15c176f8b7
commit a400748783
11 changed files with 181 additions and 89 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,
@@ -2298,6 +2299,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
lphone fac_notificatie.fac_notificatie_receiver_phone%TYPE;
llang prs_perslid.prs_perslid_lang%TYPE;
lsysteem prs_perslid.prs_perslid_systeemadres%TYPE;
notbefore fac_notificatie.fac_notificatie_notbefore%TYPE;
delaymode NUMBER;
immediate NUMBER(1);
BEGIN
IF pcode IS NOT NULL
@@ -2421,6 +2424,15 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND basrt.fac_srtnotificatie_key = skey
)
LOOP
notbefore := SYSDATE;
delaymode := fac.safe_to_number(fac.getsetting('noti_delay_mode'));
IF delaymode = 1 -- default uit, naar technische adres zonder vertraging
THEN
notbefore := notbefore + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0);
ELSIF delaymode > 1 -- fixed delay
THEN
notbefore := notbefore + delaymode / 60/ 60/ 24;
END IF;
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
prs_perslid_key_sender,
@@ -2446,7 +2458,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
lsysteem,
pattach,
bedrijfadresrec.prs_bedrijfadres_key, -- enige bijzondere, rest gewoon blind doorgeven,
SYSDATE); -- hier geen delay + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0));
notbefore);
END LOOP;
END IF;
@@ -2616,7 +2628,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
soms,
pref,
pxref,
pprio,
CASE WHEN l_srtnoti_delay = 0 THEN 1 ELSE pprio END, // delay 0 altijd hoge prio en 'voorkruipen'
psender,
llang,
lsysteem,
@@ -4852,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
@@ -4865,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;
@@ -4891,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
@@ -4933,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;
@@ -4943,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?
@@ -4964,6 +4978,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
nn_noti NUMBER (10);
aantal NUMBER (10);
dummy VARCHAR2 (1);
notbefore fac_notificatie.fac_notificatie_notbefore%TYPE;
delaymode NUMBER;
BEGIN
IF ptrackingkey IS NULL
@@ -5098,6 +5114,19 @@ CREATE OR REPLACE PACKAGE BODY fac AS
-- Ok, het technisch adres luistert naar onze notificatie!
-- Geen putnotificationsrtprio. Die is veel te agressief met ontdubbelen
delaymode := fac.safe_to_number(fac.getsetting('noti_delay_mode'));
IF pnotidelay IS NOT NULL
THEN
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 := 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,
fac_notificatie_refkey,
@@ -5115,7 +5144,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
psender,
0,
l_bdradr_key,
SYSDATE); -- nooit delay, we ontdubbelen toch niet? + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0));
notbefore);
END;
-- Levert de (nieuwste) datum op van een getrackt event op key

View File

@@ -17,6 +17,8 @@ AS
PROCEDURE starttask (p_taskcode VARCHAR2,
p_nextrun DATE DEFAULT SYSDATE,
p_customerid VARCHAR2 DEFAULT NULL);
PROCEDURE waittask (pinterval NUMBER DEFAULT 5,
ptimeout NUMBER DEFAULT 300);
END tsk;
/
@@ -28,7 +30,8 @@ AS
tsk_master_schema VARCHAR(32);
custid fac_version.fac_version_cust%TYPE;
selfid fac_version.fac_version_cust%TYPE;
selfschema fac_version.fac_version_schema%TYPE;
fac_schema fac_version.fac_version_schema%TYPE;
currentdb_schema VARCHAR2 (64);
tsksql VARCHAR2 (4000);
cursor_name INTEGER;
rows_processed INTEGER;
@@ -36,16 +39,17 @@ AS
SELECT fac_version_cust,
fac_version_schema
INTO selfid,
selfschema
fac_schema
FROM fac_version;
custid := COALESCE(p_customerid, selfid);
tsk_master_schema := fac.getsetting ('tsk_master_schema');
currentdb_schema := SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA');
IF tsk_master_schema IS NULL OR tsk_master_schema = USER
IF tsk_master_schema IS NULL OR tsk_master_schema = '*SELF*' OR tsk_master_schema = currentdb_schema
THEN -- zelf oplossen
BEGIN
INSERT INTO fac_cust(fac_cust_customerid, fac_cust_schema)
VALUES(custid, COALESCE(p_schema, selfschema));
VALUES(custid, COALESCE(p_schema, fac_schema));
EXCEPTION
WHEN DUP_VAL_ON_INDEX
THEN
@@ -53,7 +57,7 @@ AS
END;
-- Schema bijwerken
UPDATE fac_cust
SET fac_cust_schema = COALESCE(p_schema, selfschema)
SET fac_cust_schema = COALESCE(p_schema, fac_schema)
WHERE fac_cust_customerid = custid;
ELSE -- Remote register
tsksql := 'BEGIN ' || tsk_master_schema || '.tsk.registercust(:custid, :schema); END;';
@@ -61,7 +65,7 @@ AS
cursor_name := DBMS_SQL.open_cursor;
DBMS_SQL.PARSE (cursor_name, tsksql, DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':custid', selfid);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':schema', selfschema);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':schema', fac_schema);
rows_processed := DBMS_SQL.EXECUTE (cursor_name);
DBMS_SQL.CLOSE_CURSOR (cursor_name);
END IF;
@@ -73,13 +77,15 @@ AS
tsk_master_schema VARCHAR(32);
selfid fac_version.fac_version_cust%TYPE;
tsksql VARCHAR2 (4000);
currentdb_schema VARCHAR2 (64);
cursor_name INTEGER;
rows_processed INTEGER;
BEGIN
SELECT fac_version_cust INTO selfid FROM fac_version;
tsk_master_schema := fac.getsetting ('tsk_master_schema');
currentdb_schema := SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA');
IF tsk_master_schema IS NULL OR tsk_master_schema = USER
IF tsk_master_schema IS NULL OR tsk_master_schema = '*SELF*' OR tsk_master_schema = currentdb_schema
THEN -- zelf oplossen
BEGIN
INSERT INTO fac_task(fac_cust_key, fac_task_code)
@@ -111,13 +117,15 @@ AS
tsk_master_schema VARCHAR(32);
selfid fac_version.fac_version_cust%TYPE;
tsksql VARCHAR2 (4000);
currentdb_schema VARCHAR2 (64);
cursor_name INTEGER;
rows_processed INTEGER;
BEGIN
SELECT fac_version_cust INTO selfid FROM fac_version;
tsk_master_schema := fac.getsetting ('tsk_master_schema');
currentdb_schema := SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA');
IF tsk_master_schema IS NULL OR tsk_master_schema = USER
IF tsk_master_schema IS NULL OR tsk_master_schema = '*SELF*' OR tsk_master_schema = currentdb_schema
THEN -- zelf oplossen
UPDATE fac_task
SET fac_task_nextrun = fac.safe_LEAST (p_nextrun, fac_task_nextrun)
@@ -137,6 +145,34 @@ AS
DBMS_SQL.CLOSE_CURSOR (cursor_name);
END IF;
END;
-- Keert terug als er iets interessants in fac_task staat
-- of als timeout is verstreken
PROCEDURE waittask (pinterval NUMBER DEFAULT 5,
ptimeout NUMBER DEFAULT 300)
AS
timeend DATE;
firsttask DATE;
BEGIN
timeend := SYSDATE + ptimeout / 60/60/24;
WHILE timeend > SYSDATE
LOOP
SELECT MIN (fac_task_nextrun)
INTO firsttask
FROM fac_task tt, fac_cust tsko
WHERE tt.fac_cust_key = tsko.fac_cust_key
AND fac_cust_enabled > 0
AND fac_task_nextrun <= SYSDATE
AND BITAND (fac_task_flags, 1) = 1;
IF firsttask <= SYSDATE
THEN
RETURN;
END IF;
DBMS_SESSION.SLEEP(pinterval);
END LOOP;
END;
END tsk;
/
-- tsk_master_schema needs:

View File

@@ -65,7 +65,9 @@ DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'sys_ip_restrict_internal'
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_imagecharts_account_id' , 'string' , '' , 'Image-charts account_id (future use)')
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_imagecharts_secret_key' , 'string' , '' , 'Image-charts secret_key (future use)')
DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_master_schema' , 'string' , '' , 'Task master schema name (not necessarily customerId)')
DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_master_schema' , 'string' , '' , 'Tasker master schema name (not necessarily customerId)')
DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_extra_folders' , 'array' , '' , 'Tasker extra folders to start CUST tasks (future use))')
DEFINE_SETTING('FAC', 0000, 'WEB_FACTAB', 'noti_delay_mode' , 'number' , '0' , '0=Notification to bedrijfadres always zero delay, 1=honor fac_srtnotificatie_delay, >1=fixed delay in seconds (eg. 5)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_api2_compatibility' , 'number' , '0' , '0=latest and greatest, bit 1=backwards compatible')
@@ -211,9 +213,9 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flexAllowedExt'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'imgAllowedExt' , 'string' , 'jpg|jpeg|png|gif|bmp' , 'Allowed image extensions')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flexPreviewExt' , 'string' , '.*\.(jpg|jpeg|png|gif|bmp)$' , 'Extentions of attachments to preview in show_mld')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_mimetypes' , 'json' , '{ "jpg": "image/jpeg", "jpeg": "image/jpeg" , "png": "image/png", "bmp": "image/bmp", "gif": "image/gif", "pdf": "application/pdf", "html": "text/html", "eml": "message/rfc822" }', 'Supported streaming mimetypes')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_min_size' , 'number' , '64' , 'E-mail attachments smaller (in bytes) than this are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_min_imgsize' , 'number' , '64' , 'Future use. E-mail image attachments smaller (in bytes) than this are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_min_imgsize_ext' , 'string' , '.*\.(jpg|jpeg|png|gif|bmp)$' , 'Future use. Small (flex_min_imgsize) E-mail attachments are ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flex_min_size' , 'number' , '64' , 'E-mail attachments smaller (in bytes) than this are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flex_min_imgsize' , 'number' , '64' , 'E-mail image attachments smaller (in bytes) than this are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flex_min_imgsize_ext' , 'string' , '.*\.(jpg|jpeg|png|gif|bmp)$' , 'Small (flex_min_imgsize) E-mail attachments are ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'mail_subject_undeliverable' , 'string' , '^(Undeliverable:|Message undeliverable:|Onbestelbaar:|Bericht onbestelbaar:)', 'Undeliverable E-mails with bounced this subject are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'mail_subject_ignore' , 'string' , '^(Automatic reply:|Automatisch antwoord:)', 'E-mails with this subject are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'mld_instemmer_self' , 'number' , '0' , 'Fallback option for approving a concept if no consenter is defined or if you are the consenter { 0=No consent needed | 1=Budgetholder | 2=Objectmanager | 4=Departmentmanager | 8=Manager | 16=Buildingmanager}')
@@ -845,6 +847,7 @@ DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_pda_room_times'
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_adhoc_threshold' , 'number' , '10' , 'The amount of time (in minutes) before the end of a reservation before an adhoc reservation can be made')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'msgraph_sync_level' , 'number' , '0' , 'Level of synchronization (Sufficient rights required); { 0: No sync, +1: Facilitor reads from Exchange, +2: Facilitor writes only to Exchange rooms, +4: Facilitor writes to all Exchange users }')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'exchange_internal_email_regexp' , 'string' , '*' , 'Regular expression to match internal visitors by; internal visitors are not registered in Facilitor (All visitors are internal by default)')
DEFINE_SETTING('RES', 0001, 'WEB_FACTAB', 'exchange_max_concurrent_notifications' , 'number' , '50' , 'The maximum number of concurrent notifications in progress')
DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'cil_ins_srt_groep_key' , 'number' , '-1' , 'INS_SRTDEEL_KEY of object type Cylinders')
DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'sle_cil_koppelen' , 'number' , '1' , 'Sleutels en cilinders zijn door bo handmatig te koppelen {0=nee, 1=ja(default)}')
DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'sle_ins_srt_groep_key' , 'number' , '-1' , 'INS_SRTDEEL_KEY of object type Keys')

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=50
NEXTVERSION=51
FILEVERSION=
FILEVERSION=a
NEXTROOT=DB$(NEXTVERSION)$(FILEVERSION)
CURRENTUPDATE=DB$(CURRENTVERSION)to$(NEXTVERSION)

View File

@@ -42,47 +42,49 @@ AS
/* Voor onderdelen de plaats/eigenaar van de parent. */
CREATE_VIEW(ins_v_deelenonderdeel, 0)
AS
SELECT ins_deel_key,
ins_deel_module,
ins_srtdeel_key,
(COALESCE(dl.ins_alg_ruimte_key, (SELECT d2.ins_alg_ruimte_key FROM ins_deel d2 WHERE d2.ins_deel_key = dl.ins_deel_parent_key))) ins_alg_ruimte_key,
(COALESCE(dl.ins_alg_ruimte_type, (SELECT d2.ins_alg_ruimte_type FROM ins_deel d2 WHERE d2.ins_deel_key = dl.ins_deel_parent_key))) ins_alg_ruimte_type,
ins_deel_aantal,
ins_deel_omschrijving,
ins_deel_opmerking,
ins_deel_upper,
ins_deel_aanmaak,
ins_deel_vervaldatum,
ins_deel_verwijder,
ins_deel_getekend,
ins_discipline_key,
ins_alg_locatie_key,
ins_deel_parent_key,
ins_deel_omtrek,
ins_deel_oppervlak,
ins_deel_dwgx,
ins_deel_dwgy,
ins_deel_dwgz,
ins_deel_dwgrotatie,
ins_deel_dwgschaal,
ins_deel_x,
ins_deel_y,
ins_alg_ruimte_key_org,
ins_alg_ruimte_type_org,
ins_deel_state,
ins_deel_statedate,
ins_deel_t_uitvoertijd,
ins_deel_actief,
ins_deel_image,
ins_deel_mjb_score1,
ins_deel_mjb_score2,
ins_deel_externnr,
ins_deel_externsyncdate,
ins_deel_flag,
prs_perslid_key_beh,
res_rsv_deel_key,
bes_bestelopdr_key
FROM ins_deel dl;
SELECT dl.ins_deel_key,
dl.ins_deel_module,
dl.ins_srtdeel_key,
COALESCE(dl.ins_alg_ruimte_key, parent_deel.ins_alg_ruimte_key) ins_alg_ruimte_key,
COALESCE(dl.ins_alg_ruimte_type, parent_deel.ins_alg_ruimte_type) ins_alg_ruimte_type,
dl.ins_deel_aantal,
dl.ins_deel_omschrijving,
dl.ins_deel_opmerking,
dl.ins_deel_upper,
dl.ins_deel_aanmaak,
dl.ins_deel_vervaldatum,
dl.ins_deel_verwijder,
dl.ins_deel_getekend,
dl.ins_discipline_key,
dl.ins_alg_locatie_key,
dl.ins_deel_parent_key,
dl.ins_deel_omtrek,
dl.ins_deel_oppervlak,
dl.ins_deel_dwgx,
dl.ins_deel_dwgy,
dl.ins_deel_dwgz,
dl.ins_deel_dwgrotatie,
dl.ins_deel_dwgschaal,
dl.ins_deel_x,
dl.ins_deel_y,
dl.ins_alg_ruimte_key_org,
dl.ins_alg_ruimte_type_org,
dl.ins_deel_state,
dl.ins_deel_statedate,
dl.ins_deel_t_uitvoertijd,
dl.ins_deel_actief,
dl.ins_deel_image,
dl.ins_deel_mjb_score1,
dl.ins_deel_mjb_score2,
dl.ins_deel_externnr,
dl.ins_deel_externsyncdate,
dl.ins_deel_flag,
dl.prs_perslid_key_beh,
dl.res_rsv_deel_key,
dl.bes_bestelopdr_key
FROM ins_deel dl
LEFT OUTER JOIN ins_deel parent_deel
ON parent_deel.ins_deel_key = dl.ins_deel_parent_key;
/* Views met ins_deel moeten voorwaarde : "AND ins_deel_parent_key IS NULL" bevatten... */
DEFINIEER_VIEW_AANWEZIG(ins_deel, ins_deel_verwijder,

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;

View File

@@ -328,6 +328,9 @@ ALTER TABLE mld_typeopdr
NUMBER(1)
DEFAULT 0;
ALTER PACKAGE fac COMPILE; // anders (mogelijk nog) invalid en lukt het volgende niet
ALTER PACKAGE fac COMPILE BODY;
UPDATE mld_typeopdr
SET mld_typeopdr_confirm_for_send = fac.getsetting('mld_opdr_confirm_for_send');