PCHW#51595 -- Rapport overschrijdingskorting

PCHW#51175 -- Kosten evenement

svn path=/Customer/trunk/; revision=36395
This commit is contained in:
Arthur Egberink
2017-12-18 11:32:14 +00:00
parent 3990d6b3c6
commit 2fbbaa92fd

View File

@@ -1541,36 +1541,124 @@ EXCEPTION
END;
/
--Klant specifieke view voor het tonen van het totaal aantal korting per onderwerp over 1 maand
CREATE OR REPLACE VIEW PCHW_V_TOTAAL_KORTING_OND
CREATE OR REPLACE PROCEDURE pchw_select_freeze_cat (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c
IS
SELECT rra.res_rsv_artikel_key, rra.res_rsv_artikel_prijs
FROM res_rsv_artikel rra, res_artikel ra
WHERE rra.res_artikel_key = ra.res_artikel_key
AND SUBSTR (ra.res_artikel_groep, 1, 3) <> 'SVD'
AND res_status_bo_key = 5
AND res_rsv_artikel_levering < TRUNC (SYSDATE, 'MONTH')
AND res_rsv_artikel_verwijder IS NULL;
v_exportdate DATE;
v_lastexport DATE;
v_cat_totaal NUMBER(11,2);
BEGIN
v_exportdate := SYSDATE;
v_cat_totaal := 0;
-- Als ik deze maand al een freeze heb uitgevoerd dan mag ik dat niet nog een keer doen.
SELECT MAX(res_rsv_artikel_verwerkt)
INTO v_lastexport
FROM res_rsv_artikel rra, res_artikel ra
WHERE rra.res_artikel_key = ra.res_artikel_key
AND SUBSTR (ra.res_artikel_groep, 1, 3) <> 'SVD';
IF TRUNC (v_lastexport, 'MONTH') <> TRUNC(v_exportdate, 'MONTH')
THEN
FOR rec IN c
LOOP
BEGIN
UPDATE res_rsv_artikel
SET res_status_bo_key = 6
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
v_cat_totaal := v_cat_totaal + rec.res_rsv_artikel_prijs;
END;
END LOOP;
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel, fac_rapport_volgnr)
VALUES ('FREEZE_CAT', 'Catering totaal: ' || v_cat_totaal, 1);
ELSE
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel, fac_rapport_volgnr)
VALUES ('FREEZE_CAT', 'Catering is al bevroren deze maand op ' || TO_CHAR(v_lastexport, 'dd-mm-yyyy hh24:mi:ss'), 1);
END IF;
COMMIT;
END pchw_select_freeze_cat;
/
CREATE OR REPLACE PROCEDURE pchw_export_freeze_cat (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
BEGIN
DELETE fac_rapport WHERE fac_rapport_node = 'FREEZE_CAT';
END;
/
CREATE OR REPLACE VIEW pchw_v_export_freeze_cat
( result,
result_order)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr
FROM fac_rapport
WHERE fac_rapport_node = 'FREEZE_CAT';
CREATE OR REPLACE VIEW pchw_v_cat_factuur
(
ONDERWERP,
TOTAAL
res_rsv_ruimte_nr,
res_rsv_ruimte_omschrijving,
res_rsv_ruimte_van,
res_rsv_ruimte_bezoekers,
res_rsv_ruimte_extern,
res_discipline_omschrijving,
res_rsv_artikel_aantal,
res_rsv_artikel_omschrijving,
res_rsv_artikel_prijs,
res_artikel_groep,
res_rsv_artikel_verwerkt,
periode
)
AS
SELECT onderwerp, SUM(totaal)
FROM (SELECT ins_discipline_omschrijving,
DECODE (
UPPER (ins_discipline_omschrijving),
'COMFORT', 'FTRC',
'FUNCTIONALITEIT', 'FTRC',
'TOEGANKELIJKHEID', 'FTRC',
'REPRESENTATIVITEIT', 'FTRC',
'VEILIGHEID ' || CHR (38) || ' GEZONDHEID', 'V'
|| CHR (38)
|| 'G',
'WET ' || CHR (38) || ' REGELGEVING', 'W' || CHR (38) || 'R',
'Dienst')
onderwerp,
totaal
FROM pchx_v_monitoring m, mld_discipline d, mld_melding a
WHERE m.discipline_key = d.ins_discipline_key
AND m.melding_key = a.mld_melding_key
AND totaal IS NOT NULL
AND totaal != 0
AND mld_melding_datum > ADD_MONTHS (SYSDATE, -1))
GROUP BY onderwerp;
SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
res_rsv_ruimte_omschrijving,
res_rsv_ruimte_van,
res_rsv_ruimte_bezoekers,
(SELECT fac.safe_to_number (res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde kw
WHERE kw.res_kenmerk_key = 22
AND kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
extern,
d.ins_discipline_omschrijving,
rra.res_rsv_artikel_aantal,
ra.res_artikel_omschrijving,
res_rsv_artikel_prijs,
DECODE (SUBSTR (ra.res_artikel_groep, 1, 3),
'SVD', 'SVD',
'Banqueting')
groep,
rra.res_rsv_artikel_verwerkt,
TO_CHAR (
ADD_MONTHS (TRUNC (rra.res_rsv_artikel_verwerkt, 'month'), -1),
'YYYY-month')
periode
FROM res_rsv_artikel rra,
res_artikel ra,
res_rsv_ruimte rrr,
res_discipline d
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = d.ins_discipline_key
AND rra.res_status_bo_key = 6
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key;
-- Procedure om mailberichten van meldingen buiten kantooruren toch in een melding op te kunnen slaan.
CREATE OR REPLACE PROCEDURE pchw_processemail (pfrom IN VARCHAR2,
@@ -1730,6 +1818,198 @@ CREATE OR REPLACE VIEW pchw_v_rap_indices (svd, index_waarde) as
ORDER BY fac.safe_to_number (
SUBSTR (COALESCE (res_artikel_groep, 'SVD1'), 4));
-- Dashboard views
-- Dashboard rapport voor nieuwe meldingen.
CREATE OR REPLACE VIEW pchw_v_dashboard_new
AS
SELECT sd.ins_srtdiscipline_prefix || m.mld_melding_key mld_melding_key,
pf.prs_perslid_naam_full,
mld_melding_datum,
std.mld_stdmelding_omschrijving,
d.ins_discipline_omschrijving
FROM mld_melding m,
prs_perslid p,
prs_v_perslid_fullnames pf,
mld_stdmelding std,
ins_tab_discipline d,
ins_srtdiscipline sd
WHERE m.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND pchx_mon.klant_melding (m.mld_melding_key) = 1
AND mld_melding_status IN (2, 3);
CREATE OR REPLACE VIEW pchw_melding_optijd
AS
SELECT gereed,
DECODE (SIGN (mld_melding_einddatum_std - gereed), -1, 0, 100)
optijd
FROM (SELECT m.*,
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) gereed
FROM mld_melding m)
WHERE gereed IS NOT NULL
AND ADD_MONTHS(TRUNC(gereed, 'MONTH'),6) > SYSDATE;
--Klant specifieke view voor het tonen van het totaal aantal korting per onderwerp over 1 maand
CREATE OR REPLACE VIEW pchw_v_totaal_korting_ond
(
onderwerp,
totaal_index,
maand
)
AS
SELECT onderwerp, SUM (totaal_index), TRUNC (gereed, 'MONTH')
FROM (SELECT ins_discipline_omschrijving,
mld_stdmeldinggroep_oms onderwerp,
totaal_index,
gereed
FROM (SELECT melding_key,
COALESCE (gereed, SYSDATE) gereed,
totaal_index,
stdmelding_key,
indult
FROM pchx_v_monitoring
UNION ALL
SELECT melding_key,
gereed,
totaal_index,
stdmelding_key,
indult
FROM pchx_monitoring) m,
mld_discipline d,
mld_stdmelding std,
mld_stdmeldinggroep gr
WHERE m.stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND std.mld_stdmeldinggroep_key =
gr.mld_stdmeldinggroep_key(+)
AND indult = 'Nee'
AND totaal_index IS NOT NULL
AND totaal_index != 0
AND ADD_MONTHS (TRUNC (gereed, 'MONTH'), 6) > SYSDATE)
GROUP BY onderwerp, TRUNC (gereed, 'MONTH');
CREATE OR REPLACE VIEW pchw_v_overschrijding_doorbel
(
EXPORT_DATUM,
BEDRIJF,
GROEP,
VARIABELEKORTING,
TOTAAL,
TOTAAL_INDEX
)
AS
SELECT export_datum,
bedrijf,
groep,
variabelekorting,
( totaal
/ ( (totaal / variabelekorting)
+ DECODE (variabelekorting, 50, 20, 250, 10, 0)))
* COUNT (*)
totaal,
( totaal_index
/ ( (totaal / variabelekorting)
+ DECODE (variabelekorting, 50, 20, 250, 10, 0)))
* COUNT (*)
totaal_index
FROM pchx_monitoring mo,
mld_melding m,
(SELECT km.mld_melding_key, fac_usrdata_omschr bedrijf
FROM mld_kenmerkmelding km, fac_usrdata ud
WHERE mld_kenmerk_key = 121
AND fac.safe_to_number (mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key) b
WHERE kinderen IS NOT NULL
AND ',' || mo.kinderen || ',' LIKE
'%,' || m.mld_melding_key || ',%'
AND COALESCE(m.mld_melding_parentkey, m.mld_melding_key) = b.mld_melding_key(+) -- bij meldingen die onder een andere melding vallen moeten we bij de parent kijken
AND totaal > 0 -- Soms zijn er wel kind meldingen maar hebben we geen korting te pakken.
GROUP BY export_datum,
groep,
variabelekorting,
totaal_index,
totaal,
bedrijf;
-- Rapportages ten behoeve van de verslaglegging naar de financiers.
CREATE OR REPLACE VIEW pchw_v_melding_p_maand
AS
SELECT maand,
(SELECT COUNT (*)
FROM mld_melding
WHERE mld_melding_datum BETWEEN ADD_MONTHS (maand, -11)
AND ADD_MONTHS (maand, 1))
pmaandjaar,
(SELECT COUNT (*)
FROM mld_melding
WHERE mld_melding_datum BETWEEN maand AND ADD_MONTHS (maand, 1))
pmaand
FROM ( SELECT ADD_MONTHS (TRUNC (SYSDATE, 'MONTH'), (LEVEL * -1)) maand
FROM DUAL
CONNECT BY LEVEL <= 12);
CREATE OR REPLACE VIEW pchw_v_onderdeel_p_maand
AS
SELECT maand,
mld_stdmeldinggroep_oms,
(SELECT COUNT (*)
FROM mld_melding m, mld_stdmelding std
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_stdmeldinggroep_key = gr.mld_stdmeldinggroep_key
AND mld_melding_datum BETWEEN maand AND ADD_MONTHS (maand, 1))
pmaand
FROM ( SELECT ADD_MONTHS (TRUNC (SYSDATE, 'MONTH'), (LEVEL * -1)) maand
FROM DUAL
CONNECT BY LEVEL <= 12) m,
mld_stdmeldinggroep gr
WHERE mld_stdmeldinggroep_oms IS NOT NULL;
CREATE OR REPLACE VIEW pchw_v_meldingen_top10_mnd
AS
SELECT mld_stdmelding_omschrijving, ins_discipline_omschrijving, aantal
FROM ( SELECT mld_stdmelding_omschrijving,
d.ins_discipline_omschrijving,
COUNT (*) aantal
FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = 101
AND mld_melding_datum BETWEEN ADD_MONTHS (
TRUNC (SYSDATE, 'MONTH'),
-1)
AND TRUNC (SYSDATE, 'MONTH')
GROUP BY mld_stdmelding_omschrijving,
d.ins_discipline_omschrijving
ORDER BY COUNT (*) DESC)
WHERE ROWNUM <= 10;
CREATE OR REPLACE VIEW pchw_v_meldingen_top10_jaar
AS
SELECT 1 - aantal hide_f_sort,
mld_stdmelding_omschrijving,
ins_discipline_omschrijving,
aantal
FROM ( SELECT mld_stdmelding_omschrijving,
d.ins_discipline_omschrijving,
COUNT (*) aantal
FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = 101
AND mld_melding_datum BETWEEN ADD_MONTHS (
TRUNC (SYSDATE, 'MONTH'),
-12)
AND TRUNC (SYSDATE, 'MONTH')
GROUP BY mld_stdmelding_omschrijving,
d.ins_discipline_omschrijving
ORDER BY COUNT (*) DESC)
WHERE ROWNUM <= 10;
------ payload end ------
SET DEFINE OFF