FCLT#85890 Orderqueue en notificatiequeue savepoint

svn path=/Database/trunk/; revision=67766
This commit is contained in:
Jos Groot Lipman
2025-01-28 15:59:07 +00:00
parent e4912ec5cd
commit 4ac5450681
7 changed files with 171 additions and 98 deletions

View File

@@ -2235,7 +2235,7 @@ AS
AS
BEGIN
FOR bedrijfrec IN (SELECT b.prs_bedrijf_key,
CASE WHEN b.prs_bedrijf_key = o.prs_bedrijf_key THEN 'B' ELSE 'BOG' END bedrijfadres_type,
CASE WHEN b.prs_bedrijf_key = o.prs_bedrijf_key THEN 'B' ELSE 'G' END bedrijfadres_type,
l.alg_locatie_key,
o.bes_bestelopdr_id
FROM prs_bedrijf b,
@@ -2252,7 +2252,7 @@ AS
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'BOG')))
AND ba.prs_bedrijfadres_type = 'G')))
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,

View File

@@ -261,7 +261,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
AND BITAND(p.cnt_disc_params_opties,1) = 1 -- Dit contracttype mag automatisch verlengd worden
AND BITAND(c.cnt_contract_verlenging,4) = 4 -- Dit contract mag automatisch verlengd worden
AND TRUNC(SYSDATE) > cnt.cnt_getTermijndatum (c.cnt_contract_looptijd_tot, c.cnt_contract_opzegtermijn, -1)
AND NOT EXISTS
AND NOT EXISTS
( SELECT 1
FROM cnt_contract cn
WHERE cn.cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
@@ -706,7 +706,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
FOR bedrijfrec
IN (SELECT b.prs_bedrijf_key,
l.alg_locatie_key,
CASE WHEN b.prs_bedrijf_key = c.cnt_prs_bedrijf_key THEN 'C' ELSE 'CG' END bedrijfadres_type,
CASE WHEN b.prs_bedrijf_key = c.cnt_prs_bedrijf_key THEN 'C' ELSE 'G' END bedrijfadres_type,
cnt_contract_nummer_intern,
COALESCE (l.alg_locatie_email, ins_discipline_email)
FROM prs_bedrijf b,
@@ -762,7 +762,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'CG')))
AND ba.prs_bedrijfadres_type = 'G')))
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,

View File

@@ -1513,6 +1513,7 @@ FAC_LCL('lcl_mjb_original', 'Oorspronkelijk {0}', 'Original {0}')
FAC_LCL('lcl_mjb_prompt_move', 'Opmerking bij aanpassen planning', 'Note for modification of plan')
FAC_LCL('lcl_mjb_plan_opmerking', 'Motivatie', 'Reason')
FAC_LCL('lcl_mjb_datum_org', 'Oorspronkelijke plandatum', 'Original plan date')
FAC_LCL('lcl_mjb_start_date', 'Startdatum', 'Start date')
FAC_LCL('lcl_mjb_call_history', 'Melding historie', 'Call history')
FAC_LCL('lcl_mjb_scenario', 'Scenario', 'Scenario')
FAC_LCL('lcl_mjb_scenarios', 'Scenario''s', 'Scenarios')
@@ -3474,21 +3475,19 @@ FAC_LCL('lcl_prs_bedrijfadres_srtnoti_frame', 'Gebeurtenis', 'Event')
FAC_LCL('lcl_prs_bedrijfadres_srtnoti_title', 'Gebeurtenissen', 'Events')
FAC_LCL('lcl_prs_bedrijfadres_frame', 'Technisch adres', 'Technical address')
FAC_LCL('lcl_prs_bedrijfadres_omschrijving', 'Omschrijving', 'Description')
FAC_LCL('lcl_prs_bedrijfadres_type', 'Kanaal', 'Channel')
FAC_LCL('lcl_prs_bedrijfadres_type_b', 'Bestellingen', 'Purchase orders')
FAC_LCL('lcl_prs_bedrijfadres_type_o', 'Opdrachten uitvoerende', 'Orders contractor')
FAC_LCL('lcl_prs_bedrijfadres_type_og', 'Opdrachten generiek', 'Orders generic')
FAC_LCL('lcl_prs_bedrijfadres_type_b', 'Bestelopdrachten', 'Purchase orders')
FAC_LCL('lcl_prs_bedrijfadres_type_o', 'Opdrachtverstrekking', 'Orders contractor')
FAC_LCL('lcl_prs_bedrijfadres_type_o_other', 'Geen/Overige opdrachten', 'No/Misc. Orders')
FAC_LCL('lcl_prs_bedrijfadres_type_c', 'Contracten', 'Contracts')
FAC_LCL('lcl_prs_bedrijfadres_type_v', 'Voorraad info', 'Stock info')
FAC_LCL('lcl_prs_bedrijfadres_type_v', 'Bestelvoorraad info', 'Stock info')
FAC_LCL('lcl_prs_bedrijfadres_type_n', 'Notificaties', 'Notifications')
FAC_LCL('lcl_prs_bedrijfadres_type_i', 'Service (IOT)', 'Service (IOT)')
FAC_LCL('lcl_prs_bedrijfadres_type_r', 'Catering', 'Catering')
FAC_LCL('lcl_prs_bedrijfadres_type_c1', 'Custom 1', 'Custom 1')
FAC_LCL('lcl_prs_bedrijfadres_type_c2', 'Custom 2', 'Custom 2')
FAC_LCL('lcl_prs_bedrijfadres_type_rg', 'Catering generiek', 'Catering generic')
FAC_LCL('lcl_prs_bedrijfadres_type_mg', 'Meldingen generiek', 'Calls generic')
FAC_LCL('lcl_prs_bedrijfadres_type_g', 'Generiek kanaal', 'Generic channel')
FAC_LCL('lcl_prs_bedrijfadres_type_e_intern', 'ERP synchronisatie', 'ERP synchronisation')
FAC_LCL('lcl_prs_bedrijfadres_authmethod', 'Authenticatie mode', 'Authenticatie mode')
FAC_LCL('lcl_prs_bedrijfadres_authmethodLOV', '0;Automatisch;1;Geforceerd Basic;2;Eigen HTTP header;3;Aan xml toevoegen;4;oAuth basic;5;Google Auth',
'0;Automatic;1;Forced Basic;2;Custom HTTP header;3;Add to xml;4;oAuth basic;5;Google Auth')
@@ -5938,11 +5937,12 @@ FAC_LCL('lcl_rap_expression', 'SQL-expressie', 'SQL-expression')
FAC_LCL('lcl_usrrap_report', 'Rapport', 'Report')
FAC_LCL('lcl_usrrap_gegevens', 'Brongegevens', 'Datasource')
FAC_LCL('lcl_usrrap_meta', 'Beschikbaarheid', 'Availability')
FAC_LCL('lcl_usrrap_usage', 'Gebruik', 'Usage')
FAC_LCL('lcl_usrrap_presentatie', 'Presentatie', 'Presentation')
FAC_LCL('lcl_usrrap_style', 'Uiterlijk', 'Styling')
FAC_LCL('lcl_usrrap_uitvoeren', 'Uitvoeren', 'Run')
FAC_LCL('lcl_usrrap_beware', 'Verander dit filter van tekst/wildcard in lijst of multi-lijst en terug. NB: Voor een intensieve rapportage kan dit lang duren!', 'Toggle wildcard/list/multilist. Note: this might take a long time!')
FAC_LCL('lcl_usrrap_viewname', 'Viewname', 'View name')
FAC_LCL('lcl_usrrap_viewname', 'Viewnaam', 'View name')
FAC_LCL('lcl_usrrap_code', 'Unieke rapportcode' , 'Unique reportcode')
FAC_LCL('lcl_usrrap_info', 'Toelichting' , 'Explanation')
FAC_LCL('lcl_usrrap_functie', 'Autorisatie als', 'Authorisation like')
@@ -5972,7 +5972,8 @@ FAC_LCL('lcl_usrrap_showgraphLOV', '0;Lijst;2;Vaste standaardpresentatie;1;Naar
FAC_LCL('lcl_usrrap_showconditionLOV', '0;En;2;Of;1;Naar keuze, standaard En;3;Naar keuze, standaard Of', '0;And;2;Or;1;Optional, default And;3;Optional, default Or')
FAC_LCL('lcl_usrrap_showcondition', 'Filterconditie', 'Filter condition')
FAC_LCL('lcl_usrrap_graphoptions', 'Grafiekparameters', 'Graph parameters')
FAC_LCL('lcl_usrrap_lastrefresh', 'Kolommen ververst op', 'Columns last refreshed')
FAC_LCL('lcl_usrrap_aanmaak', 'Aangemaakt', 'Created')
FAC_LCL('lcl_usrrap_lastrefresh', 'Kolommen ververst', 'Columns last refreshed')
FAC_LCL('lcl_usrrap_parameters', 'Parameterlijst', 'Parameter list')
FAC_LCL('lcl_usrrap_graphtype', 'Standaardpresentatie', 'Default presentation')
FAC_LCL('lcl_usrrap_graphtypeLOV', '0;Lijst;1;Staafgrafiek;3;Taartgrafiek;4;Lijngrafiek;2;Dashboard;5;Blokgrafiek;6;Kaart;7;Kalender'
@@ -6804,6 +6805,7 @@ FAC_LCL('mld_discipline', 'Vakgroep',
FAC_LCL('mld_discipline_m', 'Vakgroepen', 'Categories')
FAC_LCL('mld_discipline_discipline', 'Behandelteam', 'Processing team')
FAC_LCL('mld_discipline_discipline_m', 'Behandelteams', 'Processing teams')
FAC_LCL('mld_discipline_discipline_m2', 'Behandelt teams', 'Processes teams')
FAC_LCL('mld_discipline_srtgroep', 'Soort vakgroep', 'Type of category')
FAC_LCL('mld_discipline_srtgroepLOV',
'1;Primaire vakgroep zonder behandelteams;5;Primaire vakgroep met behandelteams;2;Behandelteam;3;Zowel primaire vakgroep zonder teams als behandelteam;7;Zowel primaire vakgroep met teams als behandelteam',

View File

@@ -148,12 +148,13 @@ CREATE OR REPLACE PACKAGE fac
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 notifygeneriekbedrijven(prefkey NUMBER, ptrackingkey NUMBER);
PROCEDURE notifybedrijf(pbedrijf_key NUMBER,
pbedrijfadres_type VARCHAR2,
prefkey NUMBER,
ptrackingkey NUMBER,
ptrackingkey NUMBER DEFAULT NULL,
psrtnoti_key NUMBER DEFAULT NULL, -- als geen trackingkey
ptracking_oms VARCHAR2 DEFAULT NULL,
pperslid_key NUMBER DEFAULT NULL,
pxrefkey NUMBER DEFAULT NULL,
preference VARCHAR2 DEFAULT NULL,
psender VARCHAR2 DEFAULT NULL,
@@ -4818,43 +4819,54 @@ CREATE OR REPLACE PACKAGE BODY fac AS
WHEN lxmlnode = 'bestelopdr'
THEN
bes.notifybestelopdrbedrijven(l_refkey, ptrackingkey);
WHEN lxmlnode = 'afspraak' OR lxmlnode = 'bezoeker'
THEN
NULL; -- let op dat je bij bezoeker de afspraak_key moet zoeken?
WHEN lxmlnode = 'deel'
THEN
NULL;
WHEN lxmlnode = 'controle'
THEN
NULL;
WHEN lxmlnode = 'contract'
THEN
cnt.notifycontractbedrijven(l_refkey, ptrackingkey);
WHEN lxmlnode = 'perslid'
THEN
NULL;
WHEN lxmlnode = 'message'
THEN
NULL; -- kan nog niet via tracking worden veroorzaakt (later: ontvangstbericht?)
ELSE
NULL; -- force error?
fac.notifygeneriekbedrijven(l_refkey, ptrackingkey);
END CASE;
END;
-- Notificeer genrieke bedrijven die luisteren naar onze notificatie
PROCEDURE notifygeneriekbedrijven (prefkey NUMBER, ptrackingkey NUMBER)
AS
BEGIN
FOR bedrijfrec
IN (SELECT b.prs_bedrijf_key, 'G' bedrijfadres_type, fac_tracking_oms
FROM prs_bedrijf b, fac_tracking ft
WHERE ft.fac_tracking_key = ptrackingkey
AND EXISTS
(SELECT 1
FROM prs_bedrijfadres ba, prs_bedrijfadres_srtnoti basrt
WHERE b.prs_bedrijf_key = ba.prs_bedrijf_key
AND ba.prs_bedrijfadres_key = basrt.prs_bedrijfadres_key
AND basrt.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'G'))
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
prefkey => prefkey,
ptrackingkey => ptrackingkey,
ptracking_oms => bedrijfrec.fac_tracking_oms);
END LOOP;
END;
-- Notificeren tracking naar een specifiek bedrijf via een technisch adres
PROCEDURE notifybedrijf (pbedrijf_key NUMBER,
pbedrijfadres_type VARCHAR2,
prefkey NUMBER,
ptrackingkey NUMBER,
ptrackingkey NUMBER DEFAULT NULL,
psrtnoti_key NUMBER DEFAULT NULL, -- als geen trackingkey
ptracking_oms VARCHAR2 DEFAULT NULL,
pperslid_key NUMBER DEFAULT NULL,
pxrefkey NUMBER DEFAULT NULL,
preference VARCHAR2 DEFAULT NULL,
psender VARCHAR2 DEFAULT NULL, // alleen bij opdrachten alg_locatie_email?
psender VARCHAR2 DEFAULT NULL, -- alleen bij opdrachten alg_locatie_email?
plocatie_key NUMBER DEFAULT NULL,
pdiscipline_key NUMBER DEFAULT NULL,
ptypeopdr_key NUMBER DEFAULT NULL,
pdisc_key NUMBER DEFAULT NULL) // future use
pdisc_key NUMBER DEFAULT NULL) -- future use
AS
l_bdradr_key prs_bedrijfadres.prs_bedrijfadres_key%TYPE;
l_basrt_key prs_bedrijfadres_srtnoti.prs_bedrijfadres_srtnoti_key%TYPE;
@@ -4906,61 +4918,74 @@ CREATE OR REPLACE PACKAGE BODY fac AS
RETURN;
END;
/* TODO
als de tracking.prs_perslid_key een contactpersoon is van prs_bedrijf
*en* die persoon heeft een speciaal vinkje 'geen notificaties terugsturen'
dan geen notificatie terugsturen (Arai/van Dorp case)
*/
DBMS_OUTPUT.Put_line ('Gevonden technisch adres key ' || l_bdradr_key);
-- Nu de srtnotificatie zoeken
SELECT basrt.prs_bedrijfadres_srtnoti_key,
srtnoti.fac_srtnotificatie_code,
srtnoti.fac_srtnotificatie_delay,
srtnoti.fac_srtnotificatie_key,
srtnoti.fac_srtnotificatie_xmlnode
INTO l_basrt_key,
l_srtnoti_code,
l_srtnoti_delay,
l_srtnoti_key,
l_srtnoti_xmlnode
FROM prs_bedrijfadres_srtnoti basrt, fac_srtnotificatie srtnoti, fac_tracking ft
WHERE basrt.prs_bedrijfadres_key(+) = l_bdradr_key
AND basrt.fac_srtnotificatie_key(+) = srtnoti.fac_srtnotificatie_key
AND srtnoti.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
AND ft.fac_tracking_key = ptrackingkey;
IF (l_basrt_key IS NULL)
IF ptrackingkey IS NULL
THEN
IF (pbedrijfadres_type = 'O' AND l_srtnoti_code = 'ORDNEW')
OR (pbedrijfadres_type = 'B' AND l_srtnoti_code = 'BES2NE') -- bestelopdracht aangemaakt
OR (pbedrijfadres_type = 'C' AND l_srtnoti_code = 'CNTNEW')
-- RESNEW nooit automatisch OR (pbedrijfadres_type = 'R' AND l_srtnoti_code = 'RESNEW')
l_srtnoti_key := psrtnoti_key;
ELSE IF ptrackingkey IS NOT NULL -- Specifieke fac_srtnotificatie onderzoeken
THEN
-- Nu de srtnotificatie zoeken
SELECT basrt.prs_bedrijfadres_srtnoti_key,
srtnoti.fac_srtnotificatie_code,
srtnoti.fac_srtnotificatie_delay,
srtnoti.fac_srtnotificatie_key,
srtnoti.fac_srtnotificatie_xmlnode
INTO l_basrt_key,
l_srtnoti_code,
l_srtnoti_delay,
l_srtnoti_key,
l_srtnoti_xmlnode
FROM prs_bedrijfadres_srtnoti basrt, fac_srtnotificatie srtnoti, fac_tracking ft
WHERE basrt.prs_bedrijfadres_key(+) = l_bdradr_key
AND basrt.fac_srtnotificatie_key(+) = srtnoti.fac_srtnotificatie_key
AND srtnoti.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
AND ft.fac_tracking_key = ptrackingkey;
IF (l_basrt_key IS NULL)
THEN
NULL; -- backwards compatible: als geen enkel prs_bedrijfadres_srtnoti is dan is er default een xxxNEW
ELSE
DBMS_OUTPUT.Put_line ('Technisch adres onder bedrijf ' || pbedrijf_key || ' luistert niet naar notificatie ' || l_srtnoti_code);
RETURN;
END IF;
END IF;
-- ORDUPD of wat dan ook sturen we niet als er nog geen ORDNEW tracking (en naar we aannamen notificatie) is geweest
-- (DECODE mag alleen binnen een SELECT, domme Oracle)
SELECT DECODE(l_srtnoti_xmlnode, 'opdracht', 'ORDNEW',
'bestelopdr', 'BES2NE',
'contract', 'CNTNEW',
'reservering', 'RESSND') -- RESNEW gaat niet vaak naar externen
INTO l_srtnoti_chkcode
FROM DUAL;
IF (l_srtnoti_chkcode IS NOT NULL)
THEN
BEGIN
SELECT MIN(NULL) INTO dummy -- Dubbele is nooit logisch maar is h<><68>l sporadisch wel aanwezig. Dan geen ORA- error nodig dus de MIN
FROM fac_tracking ft, fac_srtnotificatie fsn
WHERE ft.fac_srtnotificatie_key = fsn.fac_srtnotificatie_key
AND ft.fac_tracking_refkey = prefkey
AND fac_srtnotificatie_code = l_srtnoti_chkcode;
EXCEPTION
WHEN NO_DATA_FOUND
IF (pbedrijfadres_type = 'O' AND l_srtnoti_code = 'ORDNEW')
OR (pbedrijfadres_type = 'B' AND l_srtnoti_code = 'BES2NE') -- bestelopdracht aangemaakt
OR (pbedrijfadres_type = 'C' AND l_srtnoti_code = 'CNTNEW')
-- RESNEW nooit automatisch OR (pbedrijfadres_type = 'R' AND l_srtnoti_code = 'RESNEW')
THEN
DBMS_OUTPUT.Put_line ('Nog geen tracking van ' || l_srtnoti_chkcode || ' dus stuur ik ' || l_srtnoti_code || ' nog maar niet');
RETURN;
END;
NULL; -- backwards compatible: als geen enkel prs_bedrijfadres_srtnoti is dan is er default een xxxNEW
ELSE
DBMS_OUTPUT.Put_line ('Technisch adres onder bedrijf ' || pbedrijf_key || ' luistert niet naar notificatie ' || l_srtnoti_code);
RETURN;
END IF;
END IF;
-- ORDUPD of wat dan ook sturen we niet als er nog geen ORDNEW tracking (en naar we aannamen notificatie) is geweest
-- (DECODE mag alleen binnen een SELECT, domme Oracle)
SELECT DECODE(l_srtnoti_xmlnode, 'opdracht', 'ORDNEW',
'bestelopdr', 'BES2NE',
'contract', 'CNTNEW',
'reservering', 'RESSND') -- RESNEW gaat niet vaak naar externen
INTO l_srtnoti_chkcode
FROM DUAL;
IF (l_srtnoti_chkcode IS NOT NULL)
THEN
BEGIN
SELECT MIN(NULL) INTO dummy -- Dubbele is nooit logisch maar is h<><68>l sporadisch wel aanwezig. Dan geen ORA error nodig dus de MIN
FROM fac_tracking ft, fac_srtnotificatie fsn
WHERE ft.fac_srtnotificatie_key = fsn.fac_srtnotificatie_key
AND ft.fac_tracking_refkey = prefkey
AND fac_srtnotificatie_code = l_srtnoti_chkcode;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.Put_line ('Nog geen tracking van ' || l_srtnoti_chkcode || ' dus stuur ik ' || l_srtnoti_code || ' nog maar niet');
RETURN;
END;
END IF;
END IF;
-- Ok, het technisch adres luistert naar onze notificatie!
@@ -4983,6 +5008,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
0,
l_bdradr_key,
SYSDATE); -- nooit delay, we ontdubbelen toch niet? + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0));
END IF;
END;
-- Levert de (nieuwste) datum op van een getrackt event op key

View File

@@ -1403,7 +1403,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
-- Stuur notificatie psrtnotificatiekey naar diverse bedrijven
-- in het bijzonder de uitvoerende maar het mag ook een
-- ander 'subscribed' bedrijf zijn (bedrijfadres_type 'OG').
-- ander 'subscribed' bedrijf zijn (bedrijfadres_type 'G').
PROCEDURE notifyopdrbedrijven (popdrkey NUMBER,
ptrackingkey NUMBER)
AS
@@ -1412,11 +1412,11 @@ CREATE OR REPLACE PACKAGE BODY mld AS
IN (SELECT o.mld_typeopdr_key,
o.mld_opdr_discipline_key,
b.prs_bedrijf_key,
CASE WHEN b.prs_bedrijf_key = o.mld_uitvoerende_keys THEN 'O' ELSE 'OG' END bedrijfadres_type,
COALESCE (l1.alg_locatie_key, l2.alg_locatie_key) alg_locatie_key,
COALESCE (l1.alg_locatie_email, l2.alg_locatie_email) alg_locatie_email,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr reference,
d.prs_bedrijf_key persoon_bedrijf_key -- van de melder, niet de uitvoerende
CASE WHEN b.prs_bedrijf_key = o.mld_uitvoerende_keys THEN 'O' ELSE 'G' END bedrijfadres_type,
COALESCE (l1.alg_locatie_key, l2.alg_locatie_key) alg_locatie_key,
COALESCE (l1.alg_locatie_email, l2.alg_locatie_email) alg_locatie_email,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr reference,
d.prs_bedrijf_key persoon_bedrijf_key -- van de melder, niet de uitvoerende
FROM mld_opdr o,
mld_melding m,
mld_adres ma,
@@ -1432,7 +1432,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'OG'))
AND ba.prs_bedrijfadres_type = 'G'))
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_adres_key = ma.mld_adres_key(+)
AND ma.alg_locatie_key = l1.alg_locatie_key(+)
@@ -1458,7 +1458,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
BEGIN
FOR bedrijfrec
IN (SELECT b.prs_bedrijf_key,
'MG' bedrijfadres_type, -- Meldingen generiek
'G' bedrijfadres_type, -- Meldingen generiek
COALESCE (l1.alg_locatie_key, l2.alg_locatie_key) alg_locatie_key,
COALESCE (l1.alg_locatie_email, l2.alg_locatie_email) alg_locatie_email,
m.mld_melding_key reference,
@@ -1477,7 +1477,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'MG')
AND ba.prs_bedrijfadres_type = 'G')
AND m.mld_adres_key = ma.mld_adres_key(+)
AND ma.alg_locatie_key = l1.alg_locatie_key(+)
AND m.mld_alg_locatie_key = l2.alg_locatie_key(+)

View File

@@ -423,6 +423,51 @@ BEGIN
THEN
fac.clrnotifications ('MLDAP1', :new.mld_opdr_key);
END IF;
// Nog tijdelijk backwards compatible met cust-code die mld_opdr_teverzenden op 2 zet
IF :OLD.mld_opdr_teverzenden = 2 AND :OLD.mld_opdr_verzonden IS NULL
THEN
NULL; -- stond hij al in de queue
ELSIF :NEW.mld_opdr_teverzenden = 2 AND :NEW.mld_opdr_verzonden IS NULL
THEN -- Zou hij vroeger in de fac_v_orderqueue herverschijnen
-- ORDUPD tracking/notificatie
--mld.notifyopdrbedrijven (:new.mld_opdr_key, ptrackingkey => NULL); geeft trigger mutating
FOR bedrijfrec
IN (SELECT b.prs_bedrijf_key,
COALESCE (l1.alg_locatie_key, l2.alg_locatie_key) alg_locatie_key,
COALESCE (l1.alg_locatie_email, l2.alg_locatie_email) alg_locatie_email,
:NEW.mld_melding_key || '/' || :NEW.mld_opdr_bedrijfopdr_volgnr reference,
d.prs_bedrijf_key persoon_bedrijf_key, -- van de melder, niet de uitvoerende
fac_srtnotificatie_key
FROM mld_melding m,
mld_adres ma,
alg_locatie l1,
alg_locatie l2,
prs_perslid p,
prs_v_afdeling d,
prs_bedrijf b,
fac_srtnotificatie fsn
WHERE b.prs_bedrijf_key = :NEW.mld_uitvoerende_keys
AND :NEW.mld_melding_key = m.mld_melding_key
AND m.mld_adres_key = ma.mld_adres_key(+)
AND ma.alg_locatie_key = l1.alg_locatie_key(+)
AND m.mld_alg_locatie_key = l2.alg_locatie_key(+)
AND d.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = m.prs_perslid_key
AND fac_srtnotificatie_code = 'ORDUPD') -- hardcoded ORDUPD, het gaat uiteindelijk vooral om de XMLnode 'opdracht' in putorders
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => 'O',
prefkey => :NEW.mld_opdr_key,
ptrackingkey => NULL,
psrtnoti_key => bedrijfrec.fac_srtnotificatie_key,
preference => bedrijfrec.reference,
ptypeopdr_key => :NEW.mld_typeopdr_key,
plocatie_key => bedrijfrec.alg_locatie_key,
pdisc_key => :NEW.mld_opdr_discipline_key,
psender => bedrijfrec.alg_locatie_email);
END LOOP;
END IF;
END;
/

View File

@@ -2558,7 +2558,7 @@ AS
FOR bedrijfrec
IN (SELECT b.prs_bedrijf_key,
l.alg_locatie_key,
CASE WHEN b.prs_bedrijf_key = resbedrijf.prs_bedrijf_key THEN 'R' ELSE 'GR' END bedrijfadres_type,
CASE WHEN b.prs_bedrijf_key = resbedrijf.prs_bedrijf_key THEN 'R' ELSE 'G' END bedrijfadres_type,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reference
FROM prs_bedrijf b,
res_rsv_ruimte rrr,
@@ -2588,7 +2588,7 @@ AS
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'RG')))
AND ba.prs_bedrijfadres_type = 'G')))
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,