CONN#12503

svn path=/Customer/trunk/; revision=13252
This commit is contained in:
Arthur Egberink
2007-04-05 11:39:30 +00:00
parent 00274ff0de
commit c8d91cabee

View File

@@ -1,195 +1,24 @@
CREATE OR REPLACE PACKAGE CONN_RAP AS
-- PACKAGES voor de Connexxion specifieke rapportages
TYPE t_cursor IS REF CURSOR;
FUNCTION FindNearestSampleValue(p_ins_deel_key IN NUMBER,p_ins_kenmerk_key IN NUMBER ,p_sample_date IN DATE) RETURN NUMBER;
FUNCTION FindNearestSampleDate(p_ins_deel_key IN NUMBER,p_ins_kenmerk_key IN NUMBER ,p_sample_date IN DATE) RETURN DATE;
PROCEDURE conn_p_verbruik (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
PROCEDURE conn_p_bes_div_cat (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
END;
/
CREATE OR REPLACE PACKAGE BODY CONN_RAP AS
--
-- Algemene procedures en functies.
--
--
FUNCTION FindNearestSampleDate(p_ins_deel_key IN NUMBER
,p_ins_kenmerk_key IN NUMBER
,p_sample_date IN DATE
) RETURN DATE IS
v_waarde DATE;
BEGIN
SELECT waarde
INTO v_waarde
FROM (
SELECT ins_kenmerkdeel_aanmaak waarde
FROM ins_kenmerkdeel skd
WHERE skd.ins_kenmerk_key = p_ins_kenmerk_key
AND skd.ins_deel_key = p_ins_deel_key
ORDER BY ABS(p_sample_date - skd.INS_KENMERKDEEL_AANMAAK)
)
WHERE ROWNUM = 1;
RETURN v_waarde;
END;
--
FUNCTION FindNearestSampleValue(p_ins_deel_key IN NUMBER
,p_ins_kenmerk_key IN NUMBER
,p_sample_date IN DATE
) RETURN NUMBER IS
v_waarde NUMBER;
BEGIN
SELECT FAC.safe_to_number(waarde)
INTO v_waarde
FROM (
SELECT ins_kenmerkdeel_waarde waarde
FROM ins_kenmerkdeel skd
WHERE skd.ins_kenmerk_key = p_ins_kenmerk_key
AND skd.ins_deel_key = p_ins_deel_key
ORDER BY ABS(p_sample_date - skd.INS_KENMERKDEEL_AANMAAK)
)
WHERE ROWNUM = 1;
RETURN v_waarde;
END;
--
PROCEDURE conn_p_verbruik (user_key IN NUMBER
,p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor) AS
v_datum_van DATE;
v_datum_tot DATE;
v_alg_level_read NUMBER;
BEGIN
v_datum_van := fac.safe_to_date(p_datum_van, 'dd-mm-yyyy');
v_datum_tot := fac.safe_to_date(p_datum_tot, 'dd-mm-yyyy');
SELECT MIN(fac_gebruiker_alg_level_read)
INTO v_alg_level_read
FROM fac_v_webgebruiker
WHERE prs_perslid_key = user_key
AND fac_functie_key = 242; -- WEB_OBJUSE
IF v_alg_level_read = -1 THEN
OPEN p_cursor FOR
SELECT alg_locatie_code code,
alg_locatie_omschrijving naam,
ins_deel_omschrijving meter,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) -
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) verbruik,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van),'dd-mm-yyyy hh24:mi') begin_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) begin_waarde,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot),'dd-mm-yyyy hh24:mi') eind_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) eind_waarde
FROM (
SELECT DISTINCT
d.ins_deel_key,
k.ins_kenmerk_key,
ins_deel_omschrijving,
alg_locatie_key,
alg_locatie_omschrijving,
alg_locatie_code
FROM ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d,
ins_kenmerkdeel kd,
ins_kenmerk k,
ins_srtkenmerk sk,
alg_locatie l
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
AND d.ins_deel_key = kd.ins_deel_key
AND d.ins_alg_locatie_key = l.alg_locatie_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_kenmerk_verwijder IS NULL
AND k.ins_kenmerk_volgnummer >= 100
AND sk.INS_SRTKENMERK_KENMERKTYPE = 'N'
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
) res
ORDER BY code;
ELSE -- We moeten echte autorisatie controleren
OPEN p_cursor FOR
SELECT alg_locatie_code code,
alg_locatie_omschrijving naam,
ins_deel_omschrijving meter,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) -
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) verbruik,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van),'dd-mm-yyyy hh24:mi') begin_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) begin_waarde,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot),'dd-mm-yyyy hh24:mi') eind_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) eind_waarde
FROM (
SELECT DISTINCT
d.ins_deel_key,
k.ins_kenmerk_key,
ins_deel_omschrijving,
alg_locatie_key,
alg_locatie_omschrijving,
alg_locatie_code
FROM ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d,
ins_kenmerkdeel kd,
ins_kenmerk k,
ins_srtkenmerk sk,
alg_locatie l
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
AND d.ins_deel_key = kd.ins_deel_key
AND d.INS_ALG_LOCATIE_KEY = l.alg_locatie_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_kenmerk_verwijder IS NULL
AND k.ins_kenmerk_volgnummer >= 100
AND sk.INS_SRTKENMERK_KENMERKTYPE = 'N'
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND alg_locatie_key IN (
SELECT alg_locatie_key
FROM fac_v_my_locations
WHERE PRS_PERSLID_KEY = user_key
AND niveau = v_alg_level_read
)
) res
ORDER BY code;
END IF;
END;
--
PROCEDURE conn_p_bes_div_cat ( user_key IN NUMBER,
p_datum_van IN VARCHAR2, -- Let wel: formaat '01-01-2015'
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor) AS
BEGIN
OPEN p_cursor FOR
SELECT a.prs_afdeling_parent_oms divisie,
dis.ins_discipline_omschrijving catalogus,
COUNT (b.bes_bestelling_key) aantal_aanvragen,
SUM (COALESCE (bp.prijs, 0) * bi.bes_bestelling_item_aantal
) totaalbedrag
FROM BES_BESTELLING b,
BES_BESTELLING_ITEM bi,
INS_SRTDEEL sd,
INS_SRTGROEP sg,
INS_TAB_DISCIPLINE dis,
bes_v_item_prijs bp,
(SELECT p.prs_perslid_key,
a.prs_afdeling_omschrijving prs_afdeling_parent_oms
FROM prs_v_afdeling_boom ab, PRS_AFDELING a, PRS_PERSLID p
WHERE ab.prs_afdeling_key1 = a.prs_afdeling_key
AND p.prs_afdeling_key = ab.prs_afdeling_key) a
WHERE bi.bes_bestelling_item_key = bp.bes_bestelling_item_key
AND b.bes_bestelling_datum >= Fac.safe_to_date(p_datum_van, 'dd-mm-yyyy')
AND b.bes_bestelling_datum < Fac.safe_to_date(p_datum_tot, 'dd-mm-yyyy')
AND bi.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = dis.ins_discipline_key
AND b.bes_bestelling_status <> 1
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bi.bes_bestelling_item_key = bp.bes_bestelling_item_key
AND b.bes_bestelling_module = 'BES'
AND a.prs_perslid_key = b.prs_perslid_key
GROUP BY a.prs_afdeling_parent_oms, dis.ins_discipline_omschrijving
ORDER BY 1,2;
END;
--
END;
/
SET ECHO ON
SPOOL xconn4701to2.lst
PROMPT $Revision: 2 $
-- CONN#3661
INSERT INTO FAC_USRRAP (FAC_USRRAP_VIEW_NAME
, FAC_USRRAP_OMSCHRIJVING
, FAC_USRRAP_VRAAGBEGINDATUM
, FAC_USRRAP_VRAAGEINDDATUM
, FAC_USRRAP_FUNCTIE
, fac_functie_key
, FAC_USRRAP_INFO
, FAC_USRRAP_AUTOREFRESH )
VALUES ('conn_v_haltewerk'
, 'HALTEWERK: Doorbelastingsoverzicht'
, 0
, 0
, 0
, 27
, 'Overzicht van haltewerkzaamheden'
, 0);
INSERT INTO FAC_USRRAP
(fac_usrrap_omschrijving,
@@ -206,3 +35,8 @@ INSERT INTO FAC_USRRAP
2, 'Bestelbedragen per Divisie/Catalogus (datumformaat: dd-mm-jjjj)',
to_number(null), 0
);
SPOOL OFF
@conn.sql