FCLT#85890 Orderqueue en notificatiequeue savepoint
svn path=/Database/trunk/; revision=67766
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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',
|
||||
|
||||
170
FAC/FAC_PAC.SRC
170
FAC/FAC_PAC.SRC
@@ -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
|
||||
|
||||
@@ -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(+)
|
||||
|
||||
@@ -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;
|
||||
/
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user