Files
Customer/GDFS/gdfs.sql
Arthur Egberink fa3c5bc126 GDFS#23474 -- aanpassing rapport objectuitgifte
svn path=/Customer/trunk/; revision=15659
2012-10-15 14:13:57 +00:00

366 lines
13 KiB
SQL

-- Script containing customer specific configuration sql statements for GDFS: Gaz de France Suez
-- (c) 2011 SG facilitor
-- $Revision$
-- $Id$
--
-- Support: +31 53 4800700
SPOOL xGDFS.LST
SET ECHO ON
CREATE OR REPLACE VIEW gdfs_v_rap_bezoekers
(
fclt_d_datum_in,
tijd_in,
datum_uit,
tijd_uit,
naam,
bedrijf,
fclt_f_gebouw,
gastheer,
duur
)
AS
SELECT TO_CHAR (COALESCE (bez_bezoekers_done, TRUNC (bez_afspraak_datum)),
'dd-mm-yyyy')
datum_in,
TO_CHAR (COALESCE (bez_bezoekers_done, TRUNC (bez_afspraak_datum)),
'hh24:mi:ss')
tijd_in,
TO_CHAR (
COALESCE (bez_bezoekers_out, TRUNC (bez_afspraak_eind + 1)),
'dd-mm-yyyy')
datum_uit,
TO_CHAR (
COALESCE (bez_bezoekers_out, TRUNC (bez_afspraak_eind + 1)),
'hh24:mi:ss')
tijd_uit,
b.bez_afspraak_naam,
b.bez_afspraak_bedrijf,
aog.alg_gebouw_naam,
a.bez_afspraak_gastheer,
TO_CHAR (
TRUNC( (COALESCE (bez_bezoekers_out,
TRUNC (bez_afspraak_eind + 1))
- COALESCE (bez_bezoekers_done,
TRUNC (bez_afspraak_datum)))
* 24),
'FM00')
|| ':'
|| TO_CHAR (
MOD (
( (COALESCE (bez_bezoekers_out,
TRUNC (bez_afspraak_eind + 1))
- COALESCE (bez_bezoekers_done,
TRUNC (bez_afspraak_datum)))
* 24),
1)
* 60,
'FM00')
duur
FROM bez_bezoekers b, bez_afspraak a, alg_v_onroerendgoed_gegevens aog
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND A.ALG_ONRGOED_KEYS = AOG.ALG_ONROERENDGOED_KEYS
AND (bez_bezoekers_out IS NOT NULL
OR bez_bezoekers_done IS NOT NULL);
CREATE OR REPLACE VIEW gdfs_v_contactpersoon_perslid
(
code,
omschrijving
)
AS
SELECT 90000000 + prs_contactpersoon_key,
cp.prs_contactpersoon_naam
|| NVL2 (cp.prs_contactpersoon_voorletters,
', ' || cp.prs_contactpersoon_voorletters,
'')
|| NVL2 (cp.prs_contactpersoon_tussenv,
' ' || cp.prs_contactpersoon_tussenv,
'')
|| NVL2 (cp.prs_contactpersoon_voornaam,
' (' || cp.prs_contactpersoon_voornaam || ')',
'')
|| ' ['
|| prs_bedrijf_naam
|| ']'
FROM prs_contactpersoon cp, prs_bedrijf b
WHERE cp.prs_bedrijf_key = b.prs_bedrijf_key
UNION ALL
SELECT prs_perslid_key,
p.prs_perslid_naam
|| NVL2 (p.prs_perslid_voorletters,
', ' || p.prs_perslid_voorletters,
'')
|| NVL2 (p.prs_perslid_tussenvoegsel,
' ' || p.prs_perslid_tussenvoegsel,
'')
|| NVL2 (p.prs_perslid_voornaam,
' (' || p.prs_perslid_voornaam || ')',
'')
|| ' [Intern]'
FROM prs_perslid p
WHERE prs_perslid_verwijder IS NULL;
CREATE OR REPLACE FORCE VIEW GDFS_V_RAP_INS_UITGIFTE
(
FCLT_D_DATUM,
OBJECT,
UITGEGEVENAAN,
UITLEENDATUM,
INNAMEDATUM,
INGELEVERDDOOR
)
AS
SELECT TO_CHAR (uitleen.fac_tracking_datum, 'dd-mm-yyyy') fclt_f_datum,
ins_deel_omschrijving,
SUBSTR (
uitleen.fac_tracking_oms,
instr(uitleen.fac_tracking_oms, 'is uitgegeven aan') + 18,
DECODE (INSTR (uitleen.fac_tracking_oms, CHR (10)),
0, 50,
INSTR (uitleen.fac_tracking_oms, CHR (10)) - (instr(uitleen.fac_tracking_oms, 'is uitgegeven aan') + 18))),
TO_CHAR (uitleen.fac_tracking_datum, 'dd-mm-yyyy hh24:mi:ss')
uitleendatum,
TO_CHAR (inname.fac_tracking_datum, 'dd-mm-yyyy hh24:mi:ss')
innamedatum,
(SELECT omschrijving
FROM gdfs_v_contactpersoon_perslid
WHERE code =
fac.safe_to_number(SUBSTR (
inname.fac_tracking_oms,
INSTR (inname.fac_tracking_oms,
'Ingel')
+ 28)))
ingeleverddoor
FROM fac_tracking uitleen,
fac_tracking inname,
(SELECT t.fac_tracking_key uitleen,
(SELECT MIN (fac_tracking_key)
FROM fac_tracking inname
WHERE inname.fac_tracking_key > t.fac_tracking_key
AND inname.fac_srtnotificatie_key = 63
AND inname.fac_tracking_refkey =
t.fac_tracking_refkey)
inname,
d.ins_deel_omschrijving
FROM fac_tracking t, ins_deel d
WHERE fac_srtnotificatie_key = 62
AND fac_tracking_refkey = d.ins_deel_key) uitlening
WHERE uitlening.uitleen = uitleen.fac_tracking_key
AND uitlening.inname = inname.fac_tracking_key(+)
UNION ALL
SELECT TO_CHAR (inname.fac_tracking_datum, 'dd-mm-yyyy') fclt_f_datum,
ins_deel_omschrijving,
uitleen.fac_tracking_oms,
TO_CHAR (uitleen.fac_tracking_datum, 'dd-mm-yyyy hh24:mi:ss')
uitleendatum,
TO_CHAR (inname.fac_tracking_datum, 'dd-mm-yyyy hh24:mi:ss')
innamedatum,
(SELECT omschrijving
FROM gdfs_v_contactpersoon_perslid
WHERE code =
fac.safe_to_number(SUBSTR (
inname.fac_tracking_oms,
INSTR (inname.fac_tracking_oms,
'Ingel')
+ 28)))
ingeleverddoor
FROM fac_tracking uitleen,
fac_tracking inname,
(SELECT t.fac_tracking_key uitleen,
(SELECT MIN (fac_tracking_key)
FROM fac_tracking inname
WHERE inname.fac_tracking_key > t.fac_tracking_key
AND inname.fac_srtnotificatie_key = 63
AND inname.fac_tracking_refkey =
t.fac_tracking_refkey)
inname,
d.ins_deel_omschrijving
FROM fac_tracking t, ins_deel d
WHERE fac_srtnotificatie_key = 62
AND fac_tracking_refkey = d.ins_deel_key) uitlening
WHERE uitlening.uitleen = uitleen.fac_tracking_key
AND uitlening.inname = inname.fac_tracking_key
AND TRUNC (uitleen.fac_tracking_datum) <>
TRUNC (inname.fac_tracking_datum);
-- voorbeeld rapport voor als we de kilometers ook bij gaan houden.
-- blijkt nu echter erg traag te worden.
CREATE OR REPLACE VIEW gdfs_v_rap_uitgifte_basis
(
objectx,
uitgegevenaan,
uitleendatum,
innamedatum,
ingeleverddoor,
km_begin,
km_eind
)
AS
SELECT ins_deel_omschrijving objectx,
SUBSTR (
uitleen.fac_tracking_oms,
INSTR (uitleen.fac_tracking_oms, 'is uitgegeven aan') + 18,
DECODE (
INSTR (uitleen.fac_tracking_oms, CHR (10)),
0,
50,
INSTR (uitleen.fac_tracking_oms, CHR (10))
- (INSTR (uitleen.fac_tracking_oms, 'is uitgegeven aan') + 18))),
uitleen.fac_tracking_datum uitleendatum,
inname.fac_tracking_datum innamedatum,
(SELECT omschrijving
FROM gdfs_v_contactpersoon_perslid
WHERE code =
fac.safe_to_number(SUBSTR (
inname.fac_tracking_oms,
INSTR (inname.fac_tracking_oms,
'Ingel')
+ 28)))
ingeleverddoor,
fac.safe_to_number(SUBSTR (inname.kilometers,
0,
INSTR (inname.kilometers, ' --> ') - 1))
km_begin,
fac.safe_to_number(SUBSTR (
inname.kilometers,
INSTR (inname.kilometers, ' --> ') + 5,
INSTR (inname.kilometers, CHR (10))
- (INSTR (inname.kilometers, ' --> ') + 5)))
km_eind
FROM fac_tracking uitleen,
(SELECT fac_tracking_key,
fac_tracking_datum,
fac_tracking_oms,
SUBSTR (
fac_tracking_oms,
INSTR (fac_tracking_oms, 'Kilometerstand: ') + 16,
DECODE (INSTR (fac_tracking_oms, 'Kilometerstand: '),
0, 0,
100))
kilometers
FROM fac_tracking) inname,
(SELECT t.fac_tracking_key uitleen,
(SELECT MIN (fac_tracking_key)
FROM fac_tracking inname
WHERE inname.fac_tracking_key > t.fac_tracking_key
AND inname.fac_srtnotificatie_key = 63
AND inname.fac_tracking_refkey = t.fac_tracking_refkey)
inname,
d.ins_deel_omschrijving
FROM fac_tracking t, ins_deel d
WHERE fac_srtnotificatie_key = 62
AND fac_tracking_refkey = d.ins_deel_key) uitlening
WHERE uitlening.uitleen = uitleen.fac_tracking_key
AND uitlening.inname = inname.fac_tracking_key(+);
CREATE OR REPLACE VIEW gdfs_v_rap_ins_tracking
(
hide_f_datum,
fclt_d_datum,
tijdstip,
fclt_f_type,
fclt_f_object,
actie,
omschrijving
)
AS
SELECT TO_CHAR (fac_tracking_datum, 'yyyymmdd hh24mi'),
TO_CHAR (fac_tracking_datum, 'dd-mm-yyyy'),
TO_CHAR (fac_tracking_datum, 'hh24:mi'),
ins_srtdeel_omschrijving,
ins_deel_omschrijving,
DECODE (fac_srtnotificatie_key, 62, 'Uitgifte', 'Inname') actie,
fac_tracking_oms
FROM ins_deel d, ins_srtdeel sd, fac_tracking t
WHERE d.ins_deel_key = t.fac_tracking_refkey
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND t.fac_srtnotificatie_key IN (62, 63);
CREATE OR REPLACE VIEW GDFS_V_RAP_DIENSTRAPPORT
(
HIDE_F_DATUM,
FCLT_D_DATUM,
DIENSTRAPPORT,
PERSOON
)
AS
SELECT to_char(mld_melding_datum, 'yyyymmddhh24'),
to_char(m.mld_melding_datum, 'dd-mm-yyyy'),
m.mld_melding_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = m.prs_perslid_key)
FROM mld_melding m
WHERE mld_stdmelding_key = 2;
CREATE OR REPLACE VIEW gdfs_v_export_kenteken
(
prs_contactpersoon_key,
kenteken_nieuw,
kenteken_oud,
prs_kenmerklink_key,
result,
result_order
)
AS
SELECT b.prs_contactpersoon_key,
k.bez_kenmerkwaarde_waarde,
kl.prs_kenmerklink_waarde,
kl.prs_kenmerklink_key,
b.prs_contactpersoon_key || ';' || k.bez_kenmerkwaarde_waarde || ';' || kl.prs_kenmerklink_waarde || ';' || kl.prs_kenmerklink_key,
NULL
FROM bez_bezoekers b,
bez_afspraak a,
bez_kenmerkwaarde k,
(SELECT prs_kenmerklink_key, prs_kenmerklink_waarde, prs_link_key
FROM prs_kenmerklink
WHERE prs_kenmerklink_niveau = 'C' AND prs_kenmerk_key = 1002) kl
WHERE b.bez_afspraak_key = a.bez_afspraak_key
AND TRUNC (a.bez_afspraak_datum) = TRUNC (SYSDATE)
AND k.bez_kenmerk_key = 1000
AND k.bez_bezoekers_key = b.bez_bezoekers_key
AND b.prs_contactpersoon_key = kl.prs_link_key(+);
CREATE OR REPLACE PROCEDURE gdfs_export_kenteken (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
BEGIN
UPDATE prs_kenmerklink kl
SET prs_kenmerklink_waarde =
(SELECT MAX(kenteken_nieuw)
FROM gdfs_v_export_kenteken gk
WHERE gk.prs_kenmerklink_key = kl.prs_kenmerklink_key)
WHERE EXISTS (SELECT kenteken_nieuw
FROM gdfs_v_export_kenteken gk
WHERE gk.prs_kenmerklink_key = kl.prs_kenmerklink_key);
INSERT INTO prs_kenmerklink (prs_link_key,
prs_kenmerklink_niveau,
prs_kenmerklink_waarde,
prs_kenmerk_key)
SELECT prs_contactpersoon_key,
'C',
MAX(kenteken_nieuw),
1002
FROM gdfs_v_export_kenteken
WHERE prs_kenmerklink_key IS NULL
GROUP BY prs_contactpersoon_key;
END;
/
BEGIN fac.registercustversion('GDFS', 4); END;
/
COMMIT;
SPOOL OFF