BLST#75097 Rapportage uitlenen dienstfietsen
svn path=/Customer/trunk/; revision=60484
This commit is contained in:
287
BLST/BLST.sql
287
BLST/BLST.sql
@@ -100,6 +100,8 @@ AS
|
||||
|
||||
PROCEDURE controleer_bestelling (p_bestelling_key IN NUMBER);
|
||||
|
||||
PROCEDURE archiveer_uitleen;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -1571,6 +1573,182 @@ AS
|
||||
|
||||
END;
|
||||
|
||||
PROCEDURE archiveer_uitleen
|
||||
AS
|
||||
CURSOR c IS
|
||||
SELECT TRUNC (SYSDATE),
|
||||
d.alg_ruimte_key,
|
||||
d.ins_deel_key
|
||||
object_key,
|
||||
in_uit.fac_tracking_key_uit,
|
||||
in_uit.datum_uitgifte
|
||||
datum_uitgeleend,
|
||||
fac.safe_to_date (in_uit.datum_uitgifte, 'dd-mm-yy')
|
||||
datum_uit,
|
||||
TO_CHAR (in_uit.datum_uitgifte, 'hh24:mi')
|
||||
tijdstip_uit,
|
||||
in_uit.omschrijving_uitgifte,
|
||||
SUBSTR (
|
||||
in_uit.omschrijving_uitgifte,
|
||||
INSTR (in_uit.omschrijving_uitgifte,
|
||||
'is uitgegeven aan ')
|
||||
+ 18)
|
||||
uitgeleend_aan,
|
||||
in_uit.uitgegeven_door,
|
||||
in_uit.fac_tracking_key_in,
|
||||
in_uit.datum_inname
|
||||
datum_ingenomen,
|
||||
fac.safe_to_date (in_uit.datum_inname, 'dd-mm-yy')
|
||||
datum_in,
|
||||
TO_CHAR (in_uit.datum_inname, 'hh24:mi')
|
||||
tijdstip_in,
|
||||
in_uit.ingenomen_door,
|
||||
ROUND ((in_uit.datum_inname - in_uit.datum_uitgifte) * 24, 1)
|
||||
uren_gebruik
|
||||
FROM (SELECT disc.ins_discipline_omschrijving,
|
||||
sg.ins_srtgroep_omschrijving,
|
||||
sd.ins_srtdeel_key,
|
||||
sd.ins_srtdeel_omschrijving,
|
||||
d.ins_deel_key,
|
||||
d.ins_deel_omschrijving,
|
||||
d.ins_deel_opmerking,
|
||||
d.ins_alg_ruimte_key alg_ruimte_key
|
||||
FROM ins_deel d,
|
||||
ins_srtdeel sd,
|
||||
ins_srtgroep sg,
|
||||
ins_tab_discipline disc
|
||||
WHERE d.ins_deel_verwijder IS NULL
|
||||
AND d.ins_alg_ruimte_type = 'R'
|
||||
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||||
AND disc.ins_discipline_key = sg.ins_discipline_key
|
||||
UNION ALL
|
||||
SELECT disc.ins_discipline_omschrijving,
|
||||
sg.ins_srtgroep_omschrijving,
|
||||
sd.ins_srtdeel_key,
|
||||
sd.ins_srtdeel_omschrijving,
|
||||
d.ins_deel_key,
|
||||
d.ins_deel_omschrijving,
|
||||
d.ins_deel_opmerking,
|
||||
d.ins_alg_ruimte_key_org alg_ruimte_key
|
||||
FROM ins_deel d,
|
||||
ins_srtdeel sd,
|
||||
ins_srtgroep sg,
|
||||
ins_tab_discipline disc
|
||||
WHERE d.ins_deel_verwijder IS NULL
|
||||
AND d.ins_alg_ruimte_type_org = 'R'
|
||||
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||||
AND disc.ins_discipline_key = sg.ins_discipline_key) d,
|
||||
( SELECT ins_uit.fac_tracking_key_uit,
|
||||
ins_uit.ins_deel_key,
|
||||
ins_uit.datum_uitgifte,
|
||||
ins_uit.omschrijving_uitgifte,
|
||||
ins_uit.uitgegeven_door,
|
||||
ins_in.fac_tracking_key_in,
|
||||
ins_in.datum_inname,
|
||||
ins_in.ingenomen_door
|
||||
FROM ( SELECT t.fac_tracking_key
|
||||
fac_tracking_key_uit,
|
||||
t.fac_tracking_refkey
|
||||
ins_deel_key,
|
||||
t.fac_tracking_datum
|
||||
datum_uitgifte,
|
||||
t.fac_tracking_oms
|
||||
omschrijving_uitgifte,
|
||||
p.prs_perslid_naam_full
|
||||
uitgegeven_door,
|
||||
RANK ()
|
||||
OVER (PARTITION BY t.fac_tracking_refkey
|
||||
ORDER BY t.fac_tracking_datum ASC)
|
||||
ranking
|
||||
FROM fac_tracking t, prs_v_perslid_fullnames_all p
|
||||
WHERE t.prs_perslid_key = p.prs_perslid_key
|
||||
AND t.fac_srtnotificatie_key = 130
|
||||
GROUP BY t.fac_tracking_refkey,
|
||||
t.fac_tracking_key,
|
||||
t.fac_tracking_datum,
|
||||
t.fac_tracking_oms,
|
||||
p.prs_perslid_naam_full) ins_uit
|
||||
FULL OUTER JOIN
|
||||
( SELECT t.fac_tracking_key fac_tracking_key_in,
|
||||
t.fac_tracking_refkey ins_deel_key,
|
||||
t.fac_tracking_datum datum_inname,
|
||||
t.fac_tracking_oms omschrijving_inname,
|
||||
p.prs_perslid_naam_full ingenomen_door,
|
||||
RANK ()
|
||||
OVER (PARTITION BY t.fac_tracking_refkey
|
||||
ORDER BY t.fac_tracking_datum ASC) ranking
|
||||
FROM fac_tracking t, prs_v_perslid_fullnames_all p
|
||||
WHERE t.prs_perslid_key = p.prs_perslid_key
|
||||
AND t.fac_srtnotificatie_key = 131
|
||||
GROUP BY t.fac_tracking_refkey,
|
||||
t.fac_tracking_key,
|
||||
t.fac_tracking_datum,
|
||||
t.fac_tracking_oms,
|
||||
p.prs_perslid_naam_full) ins_in
|
||||
ON ( ins_uit.ranking = ins_in.ranking
|
||||
AND ins_uit.ins_deel_key = ins_in.ins_deel_key)
|
||||
ORDER BY ins_uit.ins_deel_key, ins_uit.ranking) In_uit
|
||||
WHERE in_uit.ins_deel_key = d.ins_deel_key
|
||||
AND ( in_uit.fac_tracking_key_in IS NULL
|
||||
OR NOT EXISTS
|
||||
(SELECT a.fac_tracking_key_in
|
||||
FROM blst_uitleen_archief a
|
||||
WHERE a.fac_tracking_key_in =
|
||||
in_uit.fac_tracking_key_in));
|
||||
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (200);
|
||||
v_onderwerp VARCHAR2 (100);
|
||||
|
||||
BEGIN
|
||||
--- Alleen complete sets uit/in kunnen we in het archief laten staan
|
||||
--- Als een object was uitgeleend maar nog niet ingenomen, dan gooien we die regel weg en voegen we de huidige stavaza toe
|
||||
--- daarom importeren we alleen regels waarbij tracking in is nog steeds leeg of tracking in komt nog niet voor in het archief
|
||||
--- Net zo lang tot de set uit/in compleet is
|
||||
|
||||
DELETE blst_uitleen_archief
|
||||
WHERE fac_tracking_key_in IS NULL;
|
||||
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
v_onderwerp :=
|
||||
'Archivering uitleenregistratie ' || rec.archiveerdatum;
|
||||
|
||||
INSERT INTO blst_uitleen_archief (alg_ruimte_key,
|
||||
object_key,
|
||||
fac_tracking_key_uit,
|
||||
datum_uitgeleend,
|
||||
fac_tracking_key_in,
|
||||
datum_ingenomen)
|
||||
VALUES (rec.alg_ruimte_key,
|
||||
rec.object_key,
|
||||
rec.fac_tracking_key_uit,
|
||||
rec.datum_uitgeleend,
|
||||
rec.fac_tracking_key_in,
|
||||
rec.datum_ingenomen);
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
'OTHERS (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.writelog ('Archiveer uitleen',
|
||||
'E',
|
||||
v_errormsg,
|
||||
'');
|
||||
END;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -6084,6 +6262,10 @@ BEGIN
|
||||
|
||||
-- notificatiejob voor bezoekers die 'morgen' een afspraak hebben of vandaag en nog niet genotificeerd (lastminute)
|
||||
blst.noti_bezoek ();
|
||||
|
||||
-- archiveren uitleenregistratie
|
||||
blst.archiveer_uitleen();
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -9254,7 +9436,110 @@ AS
|
||||
2,
|
||||
3,
|
||||
4));
|
||||
|
||||
|
||||
CREATE OR REPLACE VIEW BLST_GEBRUIK_OBJECTEN
|
||||
(
|
||||
HIDE_F_locatie,
|
||||
HIDE_F_deel,
|
||||
HIDE_F_tracking_uit,
|
||||
locatie_code,
|
||||
locatie_omschrijving,
|
||||
gebouwcode,
|
||||
gebouw_omschrijving,
|
||||
discipline,
|
||||
groep,
|
||||
objectsoort,
|
||||
ins_deel_key,
|
||||
object_id,
|
||||
object_beschrijving,
|
||||
datum_uitgeleend,
|
||||
datum_uit,
|
||||
tijdstip_uit,
|
||||
omschrijving_uitgifte,
|
||||
uitgeleend_aan,
|
||||
uitgegeven_door,
|
||||
datum_ingenomen,
|
||||
datum_in,
|
||||
tijdstip_in,
|
||||
ingenomen_door,
|
||||
gebruik
|
||||
)
|
||||
AS
|
||||
SELECT l.alg_locatie_code
|
||||
sort_locatie,
|
||||
d.ins_deel_key
|
||||
sort_deel,
|
||||
uitg.fac_tracking_key_uit
|
||||
sort_uitgifte,
|
||||
l.alg_locatie_code,
|
||||
l.alg_locatie_omschrijving,
|
||||
g.alg_gebouw_code,
|
||||
g.alg_gebouw_omschrijving,
|
||||
disc.ins_discipline_omschrijving,
|
||||
og.ins_srtgroep_omschrijving,
|
||||
os.ins_srtdeel_omschrijving,
|
||||
d.ins_deel_key,
|
||||
d.ins_deel_omschrijving,
|
||||
d.ins_deel_opmerking,
|
||||
uitg.datum_uitgifte
|
||||
datum_uitgeleend,
|
||||
fac.safe_to_date (uitg.datum_uitgifte, 'dd-mm-yy')
|
||||
datum_uit,
|
||||
TO_CHAR (uitg.datum_uitgifte, 'hh24:mi')
|
||||
tijdstip_uit,
|
||||
uitg.omschrijving_uitgifte,
|
||||
SUBSTR (
|
||||
uitg.omschrijving_uitgifte,
|
||||
INSTR (uitg.omschrijving_uitgifte, 'is uitgegeven aan ') + 18)
|
||||
uitgeleend_aan,
|
||||
uitg.uitgegeven_door,
|
||||
inn.datum_inname
|
||||
datum_ingenomen,
|
||||
fac.safe_to_date (inn.datum_inname, 'dd-mm-yy')
|
||||
datum_in,
|
||||
TO_CHAR (inn.datum_inname, 'hh24:mi')
|
||||
tijdstip_in,
|
||||
inn.ingenomen_door,
|
||||
ROUND ((inn.datum_inname - uitg.datum_uitgifte) * 24, 1)
|
||||
uren_gebruik
|
||||
FROM blst_uitleen_archief a,
|
||||
ins_deel d,
|
||||
ins_srtdeel os,
|
||||
ins_srtgroep og,
|
||||
ins_tab_discipline disc,
|
||||
alg_ruimte r,
|
||||
alg_verdieping v,
|
||||
alg_gebouw g,
|
||||
alg_locatie l,
|
||||
(SELECT t.fac_tracking_key fac_tracking_key_uit,
|
||||
t.fac_tracking_datum datum_uitgifte,
|
||||
t.fac_tracking_oms omschrijving_uitgifte,
|
||||
p.prs_perslid_naam_full uitgegeven_door
|
||||
FROM fac_tracking t, prs_v_perslid_fullnames_all p
|
||||
WHERE t.prs_perslid_key = p.prs_perslid_key) uitg,
|
||||
( SELECT t.fac_tracking_key fac_tracking_key_in,
|
||||
t.fac_tracking_datum datum_inname,
|
||||
t.fac_tracking_oms omschrijving_inname,
|
||||
p.prs_perslid_naam_full ingenomen_door
|
||||
FROM fac_tracking t, prs_v_perslid_fullnames_all p
|
||||
WHERE t.prs_perslid_key = p.prs_perslid_key
|
||||
GROUP BY t.fac_tracking_refkey,
|
||||
t.fac_tracking_key,
|
||||
t.fac_tracking_datum,
|
||||
t.fac_tracking_oms,
|
||||
p.prs_perslid_naam_full) inn
|
||||
WHERE a.alg_ruimte_key = r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND g.alg_locatie_key = l.alg_locatie_key
|
||||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||||
AND a.fac_tracking_key_in = inn.fac_tracking_key_in(+)
|
||||
AND a.fac_tracking_key_uit = uitg.fac_tracking_key_uit
|
||||
AND a.object_key = d.ins_deel_key
|
||||
AND d.ins_srtdeel_key = os.ins_srtdeel_key
|
||||
AND os.ins_srtgroep_key = og.ins_srtgroep_key
|
||||
AND og.ins_discipline_key = disc.ins_discipline_key
|
||||
ORDER BY a.object_key, datum_uitgeleend;
|
||||
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
Reference in New Issue
Block a user