PCHW#37813 -- Implementatie Gemeente Westland

svn path=/Customer/trunk/; revision=35861
This commit is contained in:
Arthur Egberink
2017-10-31 11:20:21 +00:00
parent 7be71a6f05
commit ffc5838fc9

View File

@@ -27,8 +27,8 @@ AS
p_alg_key IN NUMBER, -- Altijd gebouw of hoger, locatie niet ondersteund
p_ins_key IN NUMBER)
RETURN NUMBER;
FUNCTION get_index_value (p_date IN DATE, p_categorie IN VARCHAR2)
FUNCTION get_index_value (p_date IN DATE, p_categorie IN VARCHAR2)
RETURN NUMBER;
FUNCTION klant_melding (p_melding_key IN NUMBER)
@@ -57,34 +57,34 @@ AS
AND NOT EXISTS (SELECT 1
FROM pchx_monitoring
WHERE melding_key = m2.mld_melding_key)
AND m2.mld_stdmelding_key = std2.mld_stdmelding_key
AND (
AND m2.mld_stdmelding_key = std2.mld_stdmelding_key
AND (
(
pchx.get_user = 'PCHW'
AND std2.mld_stdmelding_malus IS NOT NULL -- alleen meldingen waarvoor een malus geldt
AND std1.mld_Stdmeldinggroep_key = std2.mld_stdmeldinggroep_key -- voor stdmeldinggroep
AND (
AND std1.mld_Stdmeldinggroep_key = std2.mld_stdmeldinggroep_key -- voor stdmeldinggroep
AND (
( std1.mld_stdmeldinggroep_key = 181 -- Prestatiekortingen
AND std1.mld_ins_discipline_key = std2.mld_ins_discipline_key)
OR
( std1.mld_stdmeldinggroep_key <> 181 -- Prestatiekortingen
( std1.mld_stdmeldinggroep_key <> 181 -- Prestatiekortingen
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
)
)
OR
( pchx.get_user = 'PCHA'
AND std1.mld_ins_discipline_key NOT IN (232,220) -- V-G en W-R koppelen we nooit
AND std1.mld_stdmeldinggroep_key = std2.mld_stdmeldinggroep_key -- voor stdmeldinggroep
AND (
AND std1.mld_stdmeldinggroep_key = std2.mld_stdmeldinggroep_key -- voor stdmeldinggroep
AND (
( std1.mld_stdmeldinggroep_key = 161 -- FTRC
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
OR
( std1.mld_stdmeldinggroep_key <> 161 -- FTRC
( std1.mld_stdmeldinggroep_key <> 161 -- FTRC
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
AND std1.mld_ins_discipline_key = std2.mld_ins_discipline_key -- zelfde vakgroep.
)
)
)
)
AND m1.mld_melding_key <> m2.mld_melding_key
AND m2.mld_melding_indult <> 1
AND m2.mld_melding_status <> 1 -- Afgewezen
@@ -103,7 +103,7 @@ AS
IF pchx_mon.klant_melding (p_melding_key) = 0 THEN
RETURN p_melding_key;
END IF;
SELECT mld_melding_datum
INTO v_datum_begin
FROM mld_melding
@@ -116,18 +116,18 @@ AS
-- door de sortering op de cursor hoeven we alleen het eerste record te gebruiken tenzij deze niet door de klant is ingediend.
IF p_index < 10 AND v_loop_index = 1
THEN
-- DBMS_OUTPUT.put_line(p_melding_key || '-' || rec.mld_melding_key || '-' || p_index);
-- DBMS_OUTPUT.put_line('Klant melding: ' || '-' || pchx_mon.klant_melding (rec.mld_melding_key));
IF pchx_mon.klant_melding (rec.mld_melding_key) = 1
THEN
THEN
BEGIN
l_melding_key :=
PCHX_MON.get_first_melding (rec.mld_melding_key, p_index + 1);
END;
--- DBMS_OUTPUT.put_line('Resultaat: ' || rec.mld_melding_key || '-' || l_melding_key);
SELECT mld_melding_datum
INTO l_datum_begin
FROM mld_melding
@@ -140,13 +140,13 @@ AS
END IF;
v_loop_index := v_loop_index + 1;
END IF;
END IF;
END IF;
END LOOP;
IF pchx_mon.klant_melding (v_melding_key) = 1
THEN
RETURN v_melding_key;
ELSE
ELSE
RETURN p_melding_key;
END IF;
END;
@@ -219,7 +219,7 @@ AS
FUNCTION get_index_value (p_date IN DATE, p_categorie IN VARCHAR2)
RETURN NUMBER
AS
v_index_1_key NUMBER;
v_index_4_key NUMBER;
@@ -233,8 +233,8 @@ AS
v_index_25_key NUMBER;
v_index_28_key NUMBER;
v_index_1_value NUMBER;
v_index_4_value NUMBER;
v_index_5_value NUMBER;
@@ -246,7 +246,7 @@ AS
v_index_24_value NUMBER;
v_index_25_value NUMBER;
v_index_28_value NUMBER;
v_result NUMBER;
BEGIN
IF PCHX.get_user = 'PCHA'
@@ -275,9 +275,9 @@ AS
v_index_19_value := get_index_value (p_date, v_index_19_key);
v_index_20_value := get_index_value (p_date, v_index_20_key);
v_index_24_value := get_index_value (p_date, v_index_24_key);
v_index_25_value := get_index_value (p_date, v_index_25_key);
v_index_25_value := get_index_value (p_date, v_index_25_key);
v_index_28_value := get_index_value (p_date, v_index_28_key);
CASE p_categorie
WHEN 'MON'
THEN v_result := v_index_1_value;
@@ -316,7 +316,7 @@ AS
WHEN 'SVD13'
THEN v_result := 0.2 * v_index_10_value + 0.8 * v_index_19_value;
ELSE v_result := 1;
END CASE;
END CASE;
RETURN v_result;
END;
@@ -335,14 +335,14 @@ AS
AND m.mld_melding_key = p_melding_key;
RETURN v_klant_melding;
EXCEPTION WHEN OTHERS
THEN
THEN
RETURN 0;
END;
END;
/
-- Monitoring
CREATE OR REPLACE VIEW pchx_v_startmelding_geg
(
@@ -533,7 +533,7 @@ AS
mld_stdmeldinggroep_naam groep,
bk basiskorting,
vk variabelekorting,
DECODE (telaat, 1, ROUND (g.uitloop.tijdsduur, 2)) wht_tht,
DECODE (telaat, 1, ROUND (g.uitloop.tijdsduur, 2)) wht_tht,
DECODE (
telaat,
1, -- Westland rond de breuk af op 1 decimaal en HGH rond af op gehele getallen.
@@ -555,7 +555,7 @@ AS
WHERE prs_dienst_key = g.prs_dienst_key),
mld_stdmelding_key,
mld_ins_discipline_key,
DECODE(overlappend, NULL, NULL, overlappend || ',') ||
DECODE(overlappend, NULL, NULL, overlappend || ',') ||
(SELECT listagg (m2.mld_melding_key, ',') WITHIN GROUP (ORDER BY m2.mld_melding_key)
AS overlappend
FROM mld_melding m2
@@ -773,9 +773,9 @@ AS
FROM pchx_monitoring
WHERE melding_key = m.mld_melding_key)
AND m.mld_stdmelding_key = std.mld_stdmelding_key -- alleen meldingen waarvoor een malus geldt
AND (std.mld_stdmelding_malus IS NOT NULL OR EXISTS (SELECT mld_stdmsrtruimte_key FROM mld_stdmsrtruimte stdsr WHERE stdsr.mld_stdmelding_key = std.mld_stdmelding_key));
AND (std.mld_stdmelding_malus IS NOT NULL OR EXISTS (SELECT mld_stdmsrtruimte_key FROM mld_stdmsrtruimte stdsr WHERE stdsr.mld_stdmelding_key = std.mld_stdmelding_key));
-- Het rapport monitoring totaal bevat alle kortingen van de afgelopen maand als deze nog niet
-- Het rapport monitoring totaal bevat alle kortingen van de afgelopen maand als deze nog niet
-- bevroren zijn. Als dit wel zo is dan bevat het rapport de gegevens van de huidige maand.
CREATE OR REPLACE VIEW pchx_v_monitoring_tot
(
@@ -848,9 +848,10 @@ AS
bedrijf_malus,
prefix
FROM pchx_v_monitoring
WHERE totaal IS NOT NULL AND ( (status = 'Afgemeld' AND afw IS NULL) OR (status = 'Historie'))
AND (gereed < TRUNC (SYSDATE, 'MONTH')
OR TRUNC (SYSDATE, 'MONTH') =
WHERE totaal IS NOT NULL
AND ( (status = 'Afgemeld' AND afw IS NULL) OR (status = 'Historie'))
AND (gereed < TRUNC (SYSDATE, 'MONTH') -- Vorige maand afgemeld als we al over de maandgrens zitten.
OR TRUNC (SYSDATE, 'MONTH') = -- Huidige maand. Dan is de huidige maand gelijk aan de maand van de laatste export
(SELECT TRUNC (MAX (export_datum), 'MONTH') FROM pchx_monitoring))
UNION ALL
SELECT NULL melding_key,
@@ -862,8 +863,8 @@ AS
NULL verdieping,
NULL ruimte,
NULL omschrijving,
NULL begin,
NULL gereed,
ADD_MONTHS(TRUNC (SYSDATE, 'MONTH'), -1) begin,
TRUNC (SYSDATE, 'MONTH') gereed,
NULL thtijdstip,
NULL verwerkt,
NULL eenheid,
@@ -888,7 +889,9 @@ AS
NULL prefix
FROM pchx_v_monitoring
WHERE PCHX.get_user = 'PCHW'
AND totaal IS NOT NULL AND ( (status = 'Afgemeld' AND afw IS NULL) OR (status = 'Historie'))
AND totaal IS NOT NULL
AND totaal <> 0
AND ( (status = 'Afgemeld' AND afw IS NULL) OR (status = 'Historie'))
AND (gereed < TRUNC (SYSDATE, 'MONTH')
OR TRUNC (SYSDATE, 'MONTH') =
(SELECT TRUNC (MAX (export_datum), 'MONTH') FROM pchx_monitoring))
@@ -903,8 +906,8 @@ AS
NULL verdieping,
NULL ruimte,
NULL omschrijving,
NULL begin,
NULL gereed,
ADD_MONTHS(TRUNC (SYSDATE, 'MONTH'), -1) begin,
TRUNC (SYSDATE, 'MONTH') gereed,
NULL thtijdstip,
NULL verwerkt,
NULL eenheid,
@@ -933,7 +936,7 @@ AS
AND (gereed < TRUNC (SYSDATE, 'MONTH')
OR TRUNC (SYSDATE, 'MONTH') =
(SELECT TRUNC (MAX (export_datum), 'MONTH') FROM pchx_monitoring))
GROUP BY 'Overschrijding';
GROUP BY 'Overschrijding';
CREATE OR REPLACE VIEW pchx_v_monitoring_history
@@ -1236,7 +1239,7 @@ AS
-- !!! controleer ook meldingen die aan elkaar gekoppeld zijn !!!!!!!!!!!!!!!!!!
CURSOR c2
IS
IS
SELECT m_start,
m.mld_melding_key,
(SELECT mld_melding_status
@@ -1264,14 +1267,14 @@ AS
CURSOR c_svd_opdracht
IS
SELECT * FROM pchx_v_rap_svd
SELECT * FROM pchx_v_rap_svd
WHERE status = 'Afgerond'
AND xml_node = 'opdracht'
AND datum < TRUNC (SYSDATE, 'MONTH');
CURSOR c_svd_artikel
IS
SELECT * FROM pchx_v_rap_svd
SELECT * FROM pchx_v_rap_svd
WHERE status = 'Afgemeld'
AND xml_node = 'artikel'
AND datum < TRUNC (SYSDATE, 'MONTH');
@@ -1286,7 +1289,7 @@ BEGIN
SELECT MAX(export_datum)
INTO v_lastexport
FROM pchx_monitoring;
IF TRUNC (COALESCE(v_lastexport, SYSDATE-100), 'MONTH') <> TRUNC(v_exportdate, 'MONTH')
THEN
-- Zet de meldingen die geen afwijking kennen en die niet op status afgerond staan naar status verwerkt
@@ -1298,8 +1301,8 @@ BEGIN
END;
END;
END LOOP;
-- zet slave meldingen van samenvallende meldingen ook op verwerkt
FOR rec IN c2
LOOP
@@ -1312,8 +1315,8 @@ BEGIN
END IF;
END;
END LOOP;
-- Voeg de entries uit het monitoringsoverzicht toe aan de freeze tabel.
FOR rec IN c3
LOOP
@@ -1350,6 +1353,8 @@ BEGIN
kinderen,
prs_bedrijf_naam,
klant_melding,
melding_omschrijving,
melding_opmerking,
export_datum,
bedrijf_malus,
prefix)
@@ -1384,13 +1389,15 @@ BEGIN
rec.kinderen,
rec.bedrijf_naam,
rec.klant_melding,
rec.melding_omschrijving,
rec.melding_opmerking,
v_exportdate,
rec.bedrijf_malus,
rec.prefix);
END;
END;
END LOOP;
INSERT INTO pchx_monitoring (melding_key, export_datum)
SELECT mld_melding_key, SYSDATE
FROM mld_melding m
@@ -1401,25 +1408,25 @@ BEGIN
FROM pchx_monitoring nm
WHERE nm.melding_key IS NOT NULL);
SELECT SUM(totaal)
SELECT SUM(totaal)
INTO v_kortingen_totaal
FROM pchx_monitoring
FROM pchx_monitoring
WHERE export_datum = v_exportdate;
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel, fac_rapport_volgnr)
VALUES ('FREEZE', 'Kortingen totaal: ' || v_kortingen_totaal, 1);
ELSE
ELSE
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel, fac_rapport_volgnr)
VALUES ('FREEZE', 'Kortingen zijn al bevroren deze maand op ' || TO_CHAR(v_lastexport, 'dd-mm-yyyy hh24:mi:ss'), 1);
VALUES ('FREEZE', 'Kortingen zijn al bevroren deze maand op ' || TO_CHAR(v_lastexport, 'dd-mm-yyyy hh24:mi:ss'), 1);
END IF;
-- Freeze van SVD's
-- Als ik deze maand al een freeze heb uitgevoerd dan mag ik dat niet nog een keer doen.
SELECT MAX(export_datum)
INTO v_lastexport
FROM pchx_svd;
IF TRUNC (COALESCE(v_lastexport, SYSDATE-100), 'MONTH') <> TRUNC(v_exportdate, 'MONTH')
THEN
FOR rec IN c_svd_opdracht
@@ -1449,13 +1456,13 @@ BEGIN
rec.totaal,
rec.index_totaal,
rec.mld_opdr_key,
rec.lomschr,
rec.lomschr,
rec.kostensoort,
rec.kostenkenmerk,
v_exportdate);
mld.setopdrachtstatus (rec.mld_opdr_key, 7, NULL);
mld.updatemeldingstatus (rec.mld_melding_key, 0, NULL);
END;
END LOOP;
@@ -1487,11 +1494,11 @@ BEGIN
rec.totaal,
rec.index_totaal,
rec.mld_opdr_key,
rec.lomschr,
rec.lomschr,
rec.kostensoort,
rec.kostenkenmerk,
v_exportdate);
UPDATE res_rsv_artikel rra
SET res_rsv_artikel_verwerkt = v_exportdate, res_status_bo_key = 6
WHERE rra.res_rsv_artikel_key = rec.mld_opdr_key;
@@ -1500,17 +1507,17 @@ BEGIN
SELECT SUM(totaal)
SELECT SUM(totaal)
INTO v_svd_totaal
FROM pchx_svd
WHERE export_datum = v_exportdate;
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel, fac_rapport_volgnr)
VALUES ('FREEZE', 'Kortingen totaal: ' || v_svd_totaal, 2);
ELSE
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel, fac_rapport_volgnr)
VALUES ('FREEZE', 'SVDs zijn al bevroren deze maand op ' || TO_CHAR(v_lastexport, 'dd-mm-yyyy hh24:mi:ss'), 2);
END IF;
VALUES ('FREEZE', 'SVDs zijn al bevroren deze maand op ' || TO_CHAR(v_lastexport, 'dd-mm-yyyy hh24:mi:ss'), 2);
END IF;
COMMIT;
END pchx_select_freeze_mon;
/