VLKC#60657 CUST02-noti+VLKC#61687 Wijzigen RESVER-reserveringen

svn path=/Customer/trunk/; revision=46385
This commit is contained in:
Maarten van der Heide
2020-03-26 14:28:34 +00:00
parent e90aa43f65
commit f64faf4574

View File

@@ -3637,7 +3637,6 @@ AS
-- dienst zoals geregistreerd bij de taak.
CREATE OR REPLACE VIEW vlkc_v_rap_inspectieobjecten
(
--prs_bedrijf_key,
extra_key, -- Moet zo heten!
prs_dienst_key,
alg_locatie_key,
@@ -3768,49 +3767,51 @@ AS
-- deze worden verondersteld te zijn geleverd na 'leverdagen'+'notidagen'!
CURSOR cboi
IS
SELECT DISTINCT bo.bes_bestelopdr_key
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_bestelling b,
bes_srtdeel sd,
bes_srtgroep sg,
bes_disc_params bdp
WHERE bo.bes_bestelopdr_status = 4 -- In bestelling
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
--AND sg.ins_discipline_key = -1
AND sg.ins_discipline_key = bdp.bes_ins_discipline_key
AND bdp.bes_disc_params_noti_dagen IS NOT NULL
AND (b.bes_bestelling_datum IS NULL OR fac.datumtijdplusuitvoertijd (b.bes_bestelling_leverdatum, bdp.bes_disc_params_noti_dagen, 'DAGEN') < SYSDATE);
SELECT DISTINCT bo.bes_bestelopdr_key
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_bestelling b,
bes_srtdeel sd,
bes_srtgroep sg,
bes_disc_params bdp
WHERE bo.bes_bestelopdr_status = 4 -- In bestelling
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
--AND sg.ins_discipline_key = -1
AND sg.ins_discipline_key = bdp.bes_ins_discipline_key
AND bdp.bes_disc_params_noti_dagen IS NOT NULL
AND (b.bes_bestelling_datum IS NULL OR fac.datumtijdplusuitvoertijd (b.bes_bestelling_leverdatum, bdp.bes_disc_params_noti_dagen, 'DAGEN') < SYSDATE)
ORDER BY 1;
-- Cursor loopt over alle bestelling-items met status 'Besteld' waarvan
-- de bijbehorende bestelopdracht-items zijn geleverd; deze worden dan ook
-- gesloten!
CURSOR cbi
IS
SELECT DISTINCT
'[' || TO_CHAR (b.bes_bestelling_key) || '|' || TO_CHAR (ud.fac_usrdata_key) || '] ' aanduiding,
b.bes_bestelling_key, ud.fac_usrdata_key, b.prs_perslid_key_voor
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_srtdeel sd,
bes_srtgroep sg,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 481) ud -- BESOTV catalogi
WHERE b.bes_bestelling_status = 5 -- Besteld
AND b.bes_bestelling_key = bi.bes_bestelling_key
--AND bi.bes_bestelling_item_aantal != COALESCE (bi.bes_bestelling_item_aantalontv, 0)
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_item_aantal = boi.bes_bestelopdr_item_aantalontv
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key(+)
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key(+)
AND sg.ins_discipline_key = fac.safe_to_number (ud.fac_usrdata_code(+));
SELECT DISTINCT
'[' || TO_CHAR (b.bes_bestelling_key) || '|' || TO_CHAR (ud.fac_usrdata_key) || '] ' aanduiding,
b.bes_bestelling_key, ud.fac_usrdata_key, b.prs_perslid_key_voor
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_srtdeel sd,
bes_srtgroep sg,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 481) ud -- BESOTV catalogi
WHERE b.bes_bestelling_status = 5 -- Besteld
AND b.bes_bestelling_key = bi.bes_bestelling_key
--AND bi.bes_bestelling_item_aantal != COALESCE (bi.bes_bestelling_item_aantalontv, 0)
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_item_aantal = boi.bes_bestelopdr_item_aantalontv
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key(+)
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key(+)
AND sg.ins_discipline_key = fac.safe_to_number (ud.fac_usrdata_code(+))
ORDER BY 1;
/*
-- VLKC#60069:
-- Cursor loopt over alle BESOTV-tracking in de voorgaande 24 uur waarvan
@@ -3850,7 +3851,7 @@ AS
rra.res_artikel_key,
TO_CHAR (rra.res_rsv_artikel_levering, 'yyyy') jaar
FROM res_v_aanwezigrsv_artikel rra
WHERE rra.res_status_bo_key < 5 --!= 6
WHERE rra.res_status_bo_key = 2 --!= 6
--AND rra.res_rsv_artikel_levering > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm')
AND rra.res_rsv_artikel_dirtlevel = 0
@@ -3863,7 +3864,7 @@ AS
NULL res_artikel_key,
TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy') jaar
FROM res_v_aanwezigrsv_deel rrd
WHERE rrd.res_status_bo_key < 5 --!= 6
WHERE rrd.res_status_bo_key = 2 --!= 6
--AND rrd.res_rsv_deel_van > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND rrd.res_rsv_deel_tot < TRUNC (SYSDATE, 'mm')
AND rrd.res_rsv_deel_dirtlevel = 0
@@ -3877,7 +3878,7 @@ AS
NULL res_artikel_key,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy') jaar
FROM res_v_aanwezigrsv_ruimte rrr
WHERE rrr.res_status_bo_key < 5 --!= 6/Dit sluit "roomservice" al uit?
WHERE rrr.res_status_bo_key = 2 --!= 6/Dit sluit "roomservice" al uit?
--AND rrr.res_rsv_ruimte_van > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE, 'mm')
AND rrr.res_rsv_ruimte_dirtlevel = 0
@@ -4011,44 +4012,47 @@ AS
*/
CURSOR ccust02
IS
SELECT sn.fac_srtnotificatie_key, v.extra_key,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##SRTDEEL##',
DECODE (
v.objectsoort_min,
v.objectsoort_max, v.objectsoort_min,
v.objectsoort_min || ', ...')),
'##AANTAL##',
v.aantal)
subject,
r.fac_usrrap_key,
TRIM (COALESCE (ba.url1, ba.url2)) receiver
FROM ( SELECT extra_key, MIN (objectsoort) objectsoort_min, MAX (objectsoort) objectsoort_max, COUNT (*) aantal
FROM vlkc_v_rap_inspectieobjecten
GROUP BY extra_key) v,
(SELECT x.prs_bedrijf_key, SUBSTR (ba1.prs_bedrijfadres_url, 8) url1, SUBSTR (ba2.prs_bedrijfadres_url, 8) url2
FROM (SELECT b.prs_bedrijf_key
FROM prs_v_aanwezigbedrijf b
WHERE 1=1) x --b.prs_bedrijf_uitvoerende = 1) x
LEFT JOIN (SELECT DISTINCT prs_bedrijf_key, prs_bedrijfadres_url
FROM prs_bedrijfadres
WHERE prs_bedrijfadres_type = 'N'
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%') ba1
ON x.prs_bedrijf_key = ba1.prs_bedrijf_key
LEFT JOIN (SELECT DISTINCT prs_bedrijf_key, prs_bedrijfadres_url
FROM prs_bedrijfadres
WHERE mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
AND prs_bedrijfadres_type = 'O'
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%') ba2
ON x.prs_bedrijf_key = ba2.prs_bedrijf_key
WHERE ba1.prs_bedrijfadres_url IS NOT NULL OR ba2.prs_bedrijfadres_url IS NOT NULL) ba,
fac_usrrap r,
fac_srtnotificatie sn
WHERE v.extra_key = ba.prs_bedrijf_key
AND UPPER (r.fac_usrrap_view_name) = 'VLKC_V_RAP_INSPECTIEOBJECTEN'
AND sn.fac_srtnotificatie_code = 'CUST02';
SELECT '[' || TRIM (COALESCE (ba.url1, ba.url2)) || '] ' aanduiding,
sn.fac_srtnotificatie_key,
v.extra_key,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##SRTDEEL##',
DECODE (
v.objectsoort_min,
v.objectsoort_max, v.objectsoort_min,
v.objectsoort_min || ', ...')),
'##AANTAL##',
v.aantal)
subject,
r.fac_usrrap_key,
TRIM (COALESCE (ba.url1, ba.url2)) receiver
FROM ( SELECT extra_key, MIN (objectsoort) objectsoort_min, MAX (objectsoort) objectsoort_max, COUNT (*) aantal
FROM vlkc_v_rap_inspectieobjecten
GROUP BY extra_key) v,
(SELECT x.prs_bedrijf_key, SUBSTR (ba1.prs_bedrijfadres_url, 8) url1, SUBSTR (ba2.prs_bedrijfadres_url, 8) url2
FROM (SELECT prs_bedrijf_key
FROM prs_v_aanwezigbedrijf
WHERE 1=1) x --b.prs_bedrijf_uitvoerende = 1) x
LEFT JOIN (SELECT DISTINCT prs_bedrijf_key, prs_bedrijfadres_url
FROM prs_bedrijfadres
WHERE prs_bedrijfadres_type = 'N'
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%') ba1
ON x.prs_bedrijf_key = ba1.prs_bedrijf_key
LEFT JOIN (SELECT DISTINCT prs_bedrijf_key, prs_bedrijfadres_url
FROM prs_bedrijfadres
WHERE mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
AND prs_bedrijfadres_type = 'O'
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%') ba2
ON x.prs_bedrijf_key = ba2.prs_bedrijf_key
WHERE ba1.prs_bedrijfadres_url IS NOT NULL OR ba2.prs_bedrijfadres_url IS NOT NULL) ba,
fac_usrrap r,
fac_srtnotificatie sn
WHERE v.extra_key = ba.prs_bedrijf_key
AND UPPER (r.fac_usrrap_view_name) = 'VLKC_V_RAP_INSPECTIEOBJECTEN'
AND sn.fac_srtnotificatie_code = 'CUST02'
ORDER BY 3;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
@@ -4176,7 +4180,7 @@ BEGIN
IF rec.res_rsv_artikel_key IS NOT NULL
THEN -- Verbruiksartikel-regel
IF rec.res_status_bo_key = 2
IF rec.res_status_bo_key = 2 -- Per VLKC#61687 altijd zo!
THEN
v_errormsg := 'Fout bepalen res_rsv_artikel_prijs';
SELECT res.getartikelprijs (rec.res_rsv_artikel_key)
@@ -4200,7 +4204,7 @@ BEGIN
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering afgemeld');
END IF;
/*
v_errormsg := 'Fout verwerken res_rsv_artikel';
UPDATE res_rsv_artikel
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
@@ -4208,9 +4212,10 @@ BEGIN
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering verwerkt');
*/
ELSIF rec.res_rsv_deel_key IS NOT NULL
THEN -- Voorziening-regel
IF rec.res_status_bo_key = 2
IF rec.res_status_bo_key = 2 -- Per VLKC#61687 altijd zo!
THEN
v_errormsg := 'Fout bepalen res_rsv_artikel_prijs';
SELECT res.getdeelprijs (rec.res_rsv_deel_key)
@@ -4226,7 +4231,7 @@ BEGIN
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) afgemeld');
END IF;
/*
v_errormsg := 'Fout verwerken res_rsv_deel';
UPDATE res_rsv_deel
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
@@ -4234,8 +4239,9 @@ BEGIN
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) verwerkt');
*/
ELSE -- Ruimte-regel
IF rec.res_status_bo_key = 2
IF rec.res_status_bo_key = 2 -- Per VLKC#61687 altijd zo!
THEN
v_errormsg := 'Fout bepalen res_rsv_ruimte_prijs';
SELECT res.getruimteprijs (rec.res_rsv_ruimte_key)
@@ -4251,7 +4257,7 @@ BEGIN
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
/*
v_errormsg := 'Fout verwerken res_rsv_ruimte';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6 -- AV
@@ -4259,6 +4265,7 @@ BEGIN
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
*/
END IF;
EXCEPTION
WHEN OTHERS
@@ -5097,110 +5104,6 @@ AS
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE - 1)
AND sn.fac_srtnotificatie_code = 'CUST01';
/*
-- VLKC#60657: Bundelnotificatie 2 werkdagen na geplande datum via Noti-kanaal
-- (en anders via Geen/Overige opdrachten-kanaal) bij C-relatie
-- met contract waaronder objecten vallen.
CREATE OR REPLACE VIEW vlkc_v_rap_inspectieobjecten
(
--prs_bedrijf_key,
extra_key, -- Moet zo heten!
alg_locatie_key,
ins_srtcontrole_omschrijving,
groep,
objectsoort,
bedrijf,
locatiecode,
ins_deel_key,
identificatie,
beschrijving,
registratiedatum
)
AS
SELECT c.cnt_prs_bedrijf_key,
l.alg_locatie_key,
din.ins_srtcontrole_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_omschrijving,
b.prs_bedrijf_naam,
l.alg_locatie_code,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
d.ins_deel_aanmaak
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
cnt_v_aanwezigcontract_object co,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
alg_locatie l,
(SELECT ins_deel_key, inspectie_next, ins_srtcontrole_omschrijving
FROM (WITH defined_inspect
AS (SELECT d.ins_deel_key, d.ins_deel_aanmaak, sc.*
FROM ins_deel d, ins_srtdeel sd, ins_srtcontrole sc
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND (sc.ins_srtcontrole_niveau = 'S' AND sc.ins_srtinstallatie_key = d.ins_srtdeel_key
OR sc.ins_srtcontrole_niveau = 'G' AND sc.ins_srtinstallatie_key = sd.ins_srtgroep_key
OR sc.ins_srtcontrole_niveau = 'D' AND sc.ins_srtinstallatie_key = d.ins_discipline_key))
SELECT 1 rn, -- NOG GEEN INSPECTIES GEWEEST!
di.ins_deel_key,
fac.nextcyclusdate (
di.ins_deel_aanmaak,
di.ins_srtcontrole_mode,
COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid),
COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode),
COALESCE (xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits),
1)
inspectie_next,
di.ins_srtcontrole_omschrijving
FROM defined_inspect di, ins_srtcontroledl_xcp xcp
WHERE (di.ins_deel_key, di.ins_srtcontrole_key) NOT IN
(SELECT ins_deel_key, ins_srtcontrole_key
FROM ins_deelsrtcontrole
WHERE ins_deelsrtcontrole_status IN (5, 6))
AND di.ins_deel_key = xcp.ins_deel_key(+)
AND di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)
AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC (SYSDATE))
UNION ALL
SELECT RANK ()
OVER (
PARTITION BY di.ins_deel_key, dsc.ins_srtcontrole_key
ORDER BY ins_deelsrtcontrole_datum DESC)
rn,
di.ins_deel_key,
fac.nextcyclusdate (
CASE
WHEN di.ins_srtcontrole_mode = 0
THEN dsc.ins_deelsrtcontrole_datum_org
ELSE dsc.ins_deelsrtcontrole_datum
END,
di.ins_srtcontrole_mode,
COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid),
COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode),
COALESCE (xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits),
1)
inspectie_next,
di.ins_srtcontrole_omschrijving
FROM ins_deelsrtcontrole dsc, defined_inspect di, ins_srtcontroledl_xcp xcp
WHERE dsc.ins_deelsrtcontrole_status IN (5, 6)
AND di.ins_deel_key = dsc.ins_deel_key
AND di.ins_srtcontrole_key = dsc.ins_srtcontrole_key
AND di.ins_deel_key = xcp.ins_deel_key(+)
AND di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)
AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC (SYSDATE))
ORDER BY inspectie_next)
WHERE rn = 1) din
WHERE d.ins_deel_module = 'INS' AND d.ins_deel_parent_key IS NULL
AND (d.ins_deel_vervaldatum IS NULL OR FAC.count_work_days (d.ins_deel_vervaldatum, SYSDATE) > 4) -- Niet vervallen of pas na volgende inspectie!
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sd.ins_srtdeel_key = co.cnt_ins_srtdeel_key(+)
AND co.cnt_contract_key = c.cnt_contract_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND d.ins_alg_locatie_key = l.alg_locatie_key
AND d.ins_deel_key = din.ins_deel_key
AND FAC.count_work_days (din.inspectie_next, SYSDATE) = 4;
CREATE OR REPLACE VIEW vlkc_v_noti_inspectiereminder
(
code,