FCLT#85890 Orderqueue en notificatiequeue savepoint
svn path=/Database/trunk/; revision=67045
This commit is contained in:
@@ -20,6 +20,9 @@ CREATE OR REPLACE PACKAGE cnt AS
|
||||
FUNCTION sprintf (ps IN VARCHAR2 , p_contract_key IN NUMBER) RETURN VARCHAR2;
|
||||
PROCEDURE remove(p_contract_key IN NUMBER);
|
||||
|
||||
PROCEDURE notifycontractbedrijven (pcntkey NUMBER,
|
||||
ptrackingkey NUMBER);
|
||||
|
||||
PRAGMA RESTRICT_REFERENCES (cnt_contract_status, WNDS, WNPS);
|
||||
END cnt;
|
||||
/
|
||||
@@ -652,6 +655,78 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
|
||||
-- In geen enkele omgeving is cnt_contract_key in deze tabel ingevuld.
|
||||
END;
|
||||
|
||||
PROCEDURE notifycontractbedrijven (pcntkey NUMBER,
|
||||
ptrackingkey NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
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,
|
||||
cnt_contract_nummer_intern,
|
||||
COALESCE (l.alg_locatie_email, ins_discipline_email)
|
||||
FROM prs_bedrijf b,
|
||||
cnt_contract c,
|
||||
ins_tab_discipline d,
|
||||
alg_locatie l,
|
||||
( SELECT cnt_contract_key,
|
||||
DECODE (MIN (cp1.cnt_alg_plaats_code),
|
||||
'L', MIN (cp1.cnt_alg_plaats_key),
|
||||
MIN (alg_boom.alg_locatie_key))
|
||||
cnt_locatie_key
|
||||
FROM cnt_contract_plaats cp1,
|
||||
(SELECT alg_r.alg_ruimte_key,
|
||||
alg_r.alg_verdieping_key,
|
||||
alg_v.alg_gebouw_key,
|
||||
alg_g.alg_locatie_key,
|
||||
'R' alg_type
|
||||
FROM alg_ruimte alg_r, alg_verdieping alg_v, alg_gebouw alg_g
|
||||
WHERE alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
|
||||
AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
|
||||
UNION
|
||||
SELECT TO_NUMBER (NULL),
|
||||
alg_v.alg_verdieping_key,
|
||||
alg_v.alg_gebouw_key,
|
||||
alg_g.alg_locatie_key,
|
||||
'V' alg_type
|
||||
FROM alg_verdieping alg_v, alg_gebouw alg_g
|
||||
WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
|
||||
UNION
|
||||
SELECT TO_NUMBER (NULL),
|
||||
TO_NUMBER (NULL),
|
||||
alg_g.alg_gebouw_key,
|
||||
alg_g.alg_locatie_key,
|
||||
'G' alg_type
|
||||
FROM alg_gebouw alg_g) alg_boom
|
||||
WHERE cp1.cnt_alg_plaats_key =
|
||||
CASE cp1.cnt_alg_plaats_code
|
||||
WHEN 'G' THEN alg_boom.alg_gebouw_key(+)
|
||||
WHEN 'V' THEN alg_boom.alg_verdieping_key(+)
|
||||
WHEN 'R' THEN alg_boom.alg_ruimte_key(+)
|
||||
END
|
||||
AND cp1.cnt_alg_plaats_code = alg_boom.alg_type(+)
|
||||
AND cp1.cnt_contract_plaats_verwijder IS NULL
|
||||
GROUP BY cnt_contract_key
|
||||
HAVING COUNT (1) = 1) cp
|
||||
WHERE c.cnt_contract_key = pcntkey
|
||||
AND d.ins_discipline_key = c.ins_discipline_key
|
||||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||||
AND cp.cnt_locatie_key = l.alg_locatie_key(+)
|
||||
AND ( b.prs_bedrijf_key = c.cnt_prs_bedrijf_key -- type 'C'
|
||||
OR EXISTS
|
||||
(SELECT 1
|
||||
FROM prs_bedrijfadres ba
|
||||
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key AND ba.prs_bedrijfadres_type = 'CG')))
|
||||
LOOP
|
||||
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
|
||||
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
|
||||
prefkey => pcntkey,
|
||||
ptrackingkey => ptrackingkey,
|
||||
preference => bedrijfrec.cnt_contract_nummer_intern,
|
||||
plocatie_key => bedrijfrec.alg_locatie_key);
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
END cnt;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user