From a40074878373cf79d1b2bb0d98c7b2c80c728e0b Mon Sep 17 00:00:00 2001 From: Jos Groot Lipman Date: Thu, 6 Mar 2025 14:54:32 +0000 Subject: [PATCH] Merge 2025.1 DB50a patches svn path=/Database/trunk/; revision=68306 --- BES/BES_PAC.SRC | 15 ++++++--- CNT/CNT_PAC.SRC | 9 +++-- FAC/FAC_PAC.SRC | 65 +++++++++++++++++++++++++---------- FAC/FAC_PACTSK.SRC | 52 +++++++++++++++++++++++----- FAC/FAC_SET.SRC | 11 +++--- FAC/FAC_TRI.SRC | 3 ++ FCLT.NMK | 2 +- INS/INS_VIE.SRC | 84 ++++++++++++++++++++++++---------------------- MLD/MLD_PAC.SRC | 18 ++++++---- RES/RES_PAC.SRC | 8 +++-- _UP/DB49to50.src | 3 ++ 11 files changed, 181 insertions(+), 89 deletions(-) diff --git a/BES/BES_PAC.SRC b/BES/BES_PAC.SRC index eceffb24..a066c748 100644 --- a/BES/BES_PAC.SRC +++ b/BES/BES_PAC.SRC @@ -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; diff --git a/CNT/CNT_PAC.SRC b/CNT/CNT_PAC.SRC index a55d11b4..91a783ba 100644 --- a/CNT/CNT_PAC.SRC +++ b/CNT/CNT_PAC.SRC @@ -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; diff --git a/FAC/FAC_PAC.SRC b/FAC/FAC_PAC.SRC index 415c740a..dd8a5eb6 100644 --- a/FAC/FAC_PAC.SRC +++ b/FAC/FAC_PAC.SRC @@ -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 diff --git a/FAC/FAC_PACTSK.SRC b/FAC/FAC_PACTSK.SRC index e06d8604..b9001e88 100644 --- a/FAC/FAC_PACTSK.SRC +++ b/FAC/FAC_PACTSK.SRC @@ -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: diff --git a/FAC/FAC_SET.SRC b/FAC/FAC_SET.SRC index 01b675d4..7a1183af 100644 --- a/FAC/FAC_SET.SRC +++ b/FAC/FAC_SET.SRC @@ -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') diff --git a/FAC/FAC_TRI.SRC b/FAC/FAC_TRI.SRC index 9234bb51..9af1572e 100644 --- a/FAC/FAC_TRI.SRC +++ b/FAC/FAC_TRI.SRC @@ -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; diff --git a/FCLT.NMK b/FCLT.NMK index e8b48e0e..351e06e0 100644 --- a/FCLT.NMK +++ b/FCLT.NMK @@ -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) diff --git a/INS/INS_VIE.SRC b/INS/INS_VIE.SRC index 2c1807ee..88c68532 100644 --- a/INS/INS_VIE.SRC +++ b/INS/INS_VIE.SRC @@ -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, diff --git a/MLD/MLD_PAC.SRC b/MLD/MLD_PAC.SRC index c584a7e1..241e9ada 100644 --- a/MLD/MLD_PAC.SRC +++ b/MLD/MLD_PAC.SRC @@ -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; diff --git a/RES/RES_PAC.SRC b/RES/RES_PAC.SRC index 5964c095..e98d7bcd 100644 --- a/RES/RES_PAC.SRC +++ b/RES/RES_PAC.SRC @@ -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; diff --git a/_UP/DB49to50.src b/_UP/DB49to50.src index 9a43727e..5f31655d 100644 --- a/_UP/DB49to50.src +++ b/_UP/DB49to50.src @@ -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');