529 lines
24 KiB
SQL
529 lines
24 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific db-configuration for BSSC.
|
|
DEFINE thisfile = 'BSSC.SQL'
|
|
DEFINE dbuser = '^BSSC'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SPOOL &fcltlogfile
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
CREATE OR REPLACE VIEW bssc_v_rap_import_log
|
|
(
|
|
fclt_f_applicatie,
|
|
datum,
|
|
fclt_f_status,
|
|
omschrijving,
|
|
hint
|
|
)
|
|
AS
|
|
SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
|
|
TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'),
|
|
imp_log_status,
|
|
imp_log_omschrijving,
|
|
imp_log_hint
|
|
FROM imp_log il1, fac_import fi1, fac_import_app fia1
|
|
WHERE il1.fac_import_key = fi1.fac_import_key(+)
|
|
AND fi1.fac_import_app_key = fia1.fac_import_app_key(+)
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM imp_log il2, fac_import fi2
|
|
WHERE il2.fac_import_key = fi2.fac_import_key
|
|
AND fi2.fac_import_app_key = fi1.fac_import_app_key
|
|
AND il2.fac_import_key > il1.fac_import_key);
|
|
|
|
CREATE OR REPLACE PROCEDURE bssc_import_perslid (p_import_key IN NUMBER)
|
|
AS
|
|
v_errormsg VARCHAR2 (1000) := '-';
|
|
v_errorhint VARCHAR2 (1000) := '-';
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
BEGIN
|
|
v_errorhint := 'Generieke import ' || TO_CHAR (p_import_key);
|
|
|
|
-- Afdelingscode-kolom hard op 'XxX' indien leeg (want verplicht)!
|
|
UPDATE fac_imp_file
|
|
SET fac_imp_file_line =
|
|
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 2))
|
|
|| 'XxX'
|
|
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 3))
|
|
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1
|
|
AND SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 2)
|
|
+ 1, INSTR (fac_imp_file_line, ';', 1, 3)
|
|
- INSTR (fac_imp_file_line, ';', 1, 2)
|
|
- 1) IS NULL;
|
|
|
|
COMMIT;
|
|
|
|
-- Functie-kolom negeren en hard op 'Medewerker' (want verplicht)!
|
|
UPDATE fac_imp_file i
|
|
SET fac_imp_file_line =
|
|
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 10))
|
|
|| 'Medewerker'
|
|
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 11))
|
|
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
|
|
|
COMMIT;
|
|
|
|
-- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE.
|
|
prs.import_perslid (
|
|
p_import_key,
|
|
'0;0;0;0;0;0;3;4;5;6;'
|
|
|| '0;0;0;0;10;7;8;9;0;0;'
|
|
|| '11;1;2;0;0;0;12;13;14;15;'
|
|
|| '16;17;0;0;0;0;0;0;0;0;'
|
|
|| '0;0;0;0;0;0',
|
|
'Loginnaam;Wachtwoord;Afdelingscode;Achternaam;Tussenvoegsel;Voornaam;Telefoon;Mobiel;Email;Geslacht;Functie;Taal;SSC FOBO;SSC Digireceptiemedewerker;SSC Huurderadministrator;SSC Bezoekersparkeerplaats;SSC Etage 4%');
|
|
|
|
-- Klantspecifieke aanpassingen.
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ') ';
|
|
fac.imp_writelog (p_import_key, 'E', v_errormsg || v_errorhint,
|
|
'Inleesproces personen afgebroken!');
|
|
END bssc_import_perslid;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE bssc_update_perslid (p_import_key IN NUMBER)
|
|
AS
|
|
-- Verwijderen personen niet in import voor afdelingen wel in import!
|
|
CURSOR c_del
|
|
IS
|
|
SELECT p.prs_perslid_key
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
|
WHERE (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
|
|
AND p.prs_perslid_oslogin2 IS NULL
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM fac_imp_perslid i
|
|
WHERE UPPER (i.prs_afdeling_naam) = a.prs_afdeling_upper)
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_imp_perslid i
|
|
WHERE UPPER (i.prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin))
|
|
ORDER BY 1;
|
|
|
|
-- Bijwerken werkplek van personen naar '_' (als nog geen werkplek)!
|
|
CURSOR c_wp
|
|
IS
|
|
SELECT p.prs_perslid_key
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslidwerkplek pw
|
|
WHERE pw.prs_perslid_key = p.prs_perslid_key)
|
|
ORDER BY 1;
|
|
|
|
-- Bijwerken language van personen naar 'EN' (volgens importbestand)!
|
|
CURSOR c_lang
|
|
IS
|
|
SELECT p.prs_perslid_key, DECODE (i.prs_kenmerk1, 'EN', 'EN', 'NL') lang
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
|
ORDER BY 1;
|
|
|
|
-- Bijwerken autorisatiegroepen van personen (volgens importbestand)!
|
|
CURSOR c_rol (
|
|
p_ssc_fobo_key IN NUMBER,
|
|
p_ssc_dmedew_key IN NUMBER,
|
|
p_ssc_hadmin_key IN NUMBER,
|
|
p_ssc_bezprk_key IN NUMBER,
|
|
p_ssc_etage4_key IN NUMBER)
|
|
IS
|
|
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk2), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_fobo_key fac_groep_key
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
|
UNION ALL
|
|
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk3), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_dmedew_key fac_groep_key
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
|
UNION ALL
|
|
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk4), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_hadmin_key fac_groep_key
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
|
UNION ALL
|
|
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk5), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_bezprk_key fac_groep_key
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
|
UNION ALL
|
|
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk6), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_etage4_key fac_groep_key
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
|
UNION ALL -- Afnemen _Default
|
|
SELECT p.prs_perslid_key, 0 aanuit, 1 fac_groep_key -- _Default
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
|
UNION ALL -- Toewijzen SSC FE
|
|
SELECT p.prs_perslid_key, 1 aanuit, 321 fac_groep_key -- SSC FE
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
|
ORDER BY 1, 3;
|
|
|
|
-- Toekennen VLAN-autorisatiegroep (volgens eigen tabel met key=481)!
|
|
CURSOR c_vlan
|
|
IS
|
|
SELECT p.prs_perslid_key, fac.safe_to_number (ud.fac_usrdata_upper) fac_groep_key
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i, fac_v_aanwezigusrdata ud
|
|
WHERE 1 = 1 -- TRUNC (p.prs_perslid_aanmaak) = TRUNC (SYSDATE)
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
|
AND a.prs_afdeling_upper = UPPER (ud.fac_usrdata_omschr)
|
|
AND EXISTS (SELECT 1 FROM fac_groep WHERE TO_CHAR (fac_groep_key) = ud.fac_usrdata_code)
|
|
ORDER BY 1;
|
|
|
|
c_ruimte_key NUMBER := 2204; -- Fictieve ruimte op SSCH-locatie
|
|
c_ssc_fobo_key NUMBER := 341; -- SSC FOBO
|
|
c_ssc_dmedew_key NUMBER := 361; -- SSC Digireceptiemedewerker
|
|
c_ssc_hadmin_key NUMBER := 362; -- SSC Huurderadministrator
|
|
c_ssc_bezprk_key NUMBER := 1721; -- SSC Bezoekersparkeerplaats
|
|
c_ssc_etage4_key NUMBER := 1481; -- SSC Etage 4
|
|
v_bedrijf_key NUMBER (10) := -1;
|
|
v_afdeling_naam VARCHAR2 (15) := '';
|
|
BEGIN
|
|
-- Als import door Huurderadministrator, dan Afdelingscode-kolom negeren en hard op Afdeling-1 van Huurderadministrator!
|
|
SELECT ab.prs_bedrijf_key, a.prs_afdeling_naam
|
|
INTO v_bedrijf_key, v_afdeling_naam
|
|
FROM fac_import i, prs_v_aanwezigperslid p, prs_afdeling a, prs_v_afdeling_boom ab
|
|
WHERE i.fac_import_key = p_import_key
|
|
AND i.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_key = ab.prs_afdeling_key;
|
|
|
|
IF v_bedrijf_key = 2442 -- Huurders SSC-bedrijf!
|
|
THEN -- Import door Huurderadministrator!
|
|
UPDATE fac_imp_perslid
|
|
SET prs_afdeling_naam = v_afdeling_naam;
|
|
ELSE -- Import door andere administrator!
|
|
UPDATE fac_imp_perslid
|
|
SET prs_afdeling_naam = NULL
|
|
WHERE prs_afdeling_naam = 'XxX';
|
|
END IF;
|
|
|
|
COMMIT;
|
|
|
|
-- Generieke update.
|
|
prs.update_perslid (p_import_key, 'LOGIN', NULL);
|
|
|
|
-- Verwijderen personen niet in import voor afdelingen wel in import!
|
|
FOR rec IN c_del
|
|
LOOP
|
|
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
|
|
-- Toekennen fictieve werkplek op SSCH-locatie (voor wie daar nog niet een
|
|
-- werkplek heeft)!
|
|
-- Bijwerken werkplek van personen naar '_' (als nog geen werkplek)!
|
|
FOR rec IN c_wp
|
|
LOOP
|
|
prs.movetoruimte (rec.prs_perslid_key, c_ruimte_key, NULL);
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
|
|
-- Bijwerken language van personen naar 'EN' (volgens importbestand)!
|
|
FOR rec IN c_lang
|
|
LOOP
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_lang = rec.lang
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
|
|
-- Bijwerken autorisatiegroepen van personen (volgens importbestand)!
|
|
FOR rec IN c_rol (c_ssc_fobo_key, c_ssc_dmedew_key, c_ssc_hadmin_key, c_ssc_bezprk_key, c_ssc_etage4_key)
|
|
LOOP
|
|
IF rec.aanuit = 1
|
|
THEN
|
|
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
|
SELECT rec.fac_groep_key, rec.prs_perslid_key
|
|
FROM DUAL
|
|
WHERE NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_gebruikersgroep
|
|
WHERE fac_groep_key = rec.fac_groep_key
|
|
AND prs_perslid_key = rec.prs_perslid_key);
|
|
ELSE
|
|
DELETE FROM fac_gebruikersgroep
|
|
WHERE fac_groep_key = rec.fac_groep_key
|
|
AND prs_perslid_key = rec.prs_perslid_key;
|
|
END IF;
|
|
END LOOP;
|
|
|
|
-- Toekennen VLAN-autorisatiegroep (volgens eigen tabel met key=481)!
|
|
-- NB. VLAN-autorisatiegroep wordt nooit automatisch afgenomen!
|
|
FOR rec IN c_vlan
|
|
LOOP
|
|
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
|
SELECT rec.fac_groep_key, rec.prs_perslid_key
|
|
FROM DUAL
|
|
WHERE NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_gebruikersgroep
|
|
WHERE fac_groep_key = rec.fac_groep_key
|
|
AND prs_perslid_key = rec.prs_perslid_key);
|
|
END LOOP;
|
|
END bssc_update_perslid;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW bssc_v_autorisatiegroepen
|
|
(
|
|
fac_groep_key,
|
|
fac_groep_oms
|
|
)
|
|
AS
|
|
SELECT fac_groep_key, fac_groep_omschrijving
|
|
FROM fac_groep
|
|
WHERE fac_groep_omschrijving LIKE 'SSC%';
|
|
|
|
CREATE OR REPLACE VIEW bssc_v_rap_ssc_cat_looplijst
|
|
(
|
|
resnr,
|
|
activiteit,
|
|
--locatie,
|
|
ruimte,
|
|
datum,
|
|
van,
|
|
tot,
|
|
reslev,
|
|
organisatie,
|
|
gastheer,
|
|
kostenplaats,
|
|
--costcenter,
|
|
omschrijving,
|
|
aantal,
|
|
artikelnr,
|
|
artikeloms,
|
|
horeca_details,
|
|
deelnemers
|
|
)
|
|
AS
|
|
SELECT x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr || DECODE (res_rsv_ruimte_dirtlevel, 0, '', ' [ongeldig]') resnr,
|
|
x.res_activiteit_omschrijving activiteit,
|
|
--NULL locatie,
|
|
COALESCE (rr.res_ruimte_nr, rg.alg_ruimte_omschrijving) ruimte,
|
|
x.res_rsv_ruimte_van,
|
|
x.res_rsv_ruimte_van,
|
|
x.res_rsv_ruimte_tot,
|
|
x.reslev,
|
|
(SELECT prs_afdeling_omschrijving
|
|
FROM prs_afdeling
|
|
WHERE prs_afdeling_key = x.prs_afdeling_key)
|
|
organisatie,
|
|
x.prs_perslid_naam_full gastheer,
|
|
x.prs_kostenplaats_omschrijving kostenplaats,
|
|
--(SELECT MAX (kw.res_kenmerkreservering_waarde)
|
|
-- FROM res_kenmerkwaarde kw, res_kenmerk rk
|
|
-- WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key
|
|
-- AND kw.res_kenmerkwaarde_verwijder IS NULL
|
|
-- AND kw.res_kenmerk_key = rk.res_kenmerk_key
|
|
-- AND rk.res_srtkenmerk_key = 1)
|
|
-- costcenter,
|
|
x.res_rsv_ruimte_omschrijving omschrijving,
|
|
x.res_rsv_artikel_aantal,
|
|
x.res_artikel_nr,
|
|
x.res_artikel_omschrijving,
|
|
(select res_kenmerkreservering_waarde
|
|
from res_kenmerkwaarde rkw, res_kenmerk k
|
|
where rkw.res_kenmerk_key = k.res_kenmerk_key
|
|
and k.res_srtkenmerk_key = 142
|
|
and x.res_rsv_ruimte_key = rkw.res_rsv_ruimte_key) horeca_details,
|
|
x.res_rsv_ruimte_bezoekers
|
|
FROM (SELECT rrr.res_rsv_ruimte_key,
|
|
rrr.res_reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr,
|
|
act.res_activiteit_omschrijving,
|
|
COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) res_ruimte_key,
|
|
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key,
|
|
rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
rra.res_rsv_artikel_levering reslev,
|
|
COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) prs_afdeling_key,
|
|
pf.prs_perslid_naam_full,
|
|
kp.prs_kostenplaats_nr,
|
|
kp.prs_kostenplaats_omschrijving,
|
|
kl.prs_kenmerklink_waarde,
|
|
rrr.res_rsv_ruimte_omschrijving,
|
|
rra.res_rsv_artikel_aantal,
|
|
ra.res_artikel_nr,
|
|
ra.res_artikel_omschrijving,
|
|
rrr.res_rsv_ruimte_bezoekers,
|
|
rrr.res_rsv_ruimte_dirtlevel
|
|
FROM res_rsv_ruimte rrr,
|
|
res_activiteit act,
|
|
res_ruimte_opstelling rro,
|
|
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
|
FROM res_alg_ruimte
|
|
WHERE res_alg_ruimte_verwijder IS NULL
|
|
GROUP BY res_ruimte_key) rar1,
|
|
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
|
FROM res_alg_ruimte
|
|
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
|
GROUP BY res_ruimte_key) rar2,
|
|
alg_v_allonroerendgoed aog,
|
|
prs_v_perslid_fullnames_all pf,
|
|
prs_kostenplaats kp,
|
|
prs_perslid p,
|
|
prs_v_afdeling_boom ab,
|
|
prs_kenmerklink kl,
|
|
res_v_aanwezigrsv_artikel rra,
|
|
res_artikel ra
|
|
WHERE rrr.res_activiteit_key = act.res_activiteit_key
|
|
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
|
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
|
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
|
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
|
|
AND aog.alg_locatie_key = 21 -- SSC
|
|
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
|
|
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
|
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
|
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+)
|
|
AND kl.prs_kenmerklink_niveau(+) = 'A'
|
|
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
|
|
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
|
AND rra.res_artikel_key = ra.res_artikel_key
|
|
AND rra.res_rsv_artikel_dirtlevel = 0
|
|
AND rrr.res_status_fo_key != 4 -- vervallen
|
|
AND rra.res_rsv_artikel_levering > TO_DATE ('20171101', 'yyyymmdd')
|
|
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'IW') + 21) x
|
|
LEFT JOIN res_ruimte rr
|
|
ON x.res_ruimte_key = rr.res_ruimte_key
|
|
LEFT JOIN alg_v_ruimte_gegevens_all rg
|
|
ON x.alg_ruimte_key = rg.alg_ruimte_key;
|
|
|
|
CREATE OR REPLACE VIEW bssc_v_rap_ssc_cat_factlijst
|
|
(
|
|
resnr,
|
|
datum,
|
|
organisatie,
|
|
gastheer,
|
|
kostenplaats,
|
|
--costcenter,
|
|
omschrijving,
|
|
totaal
|
|
)
|
|
AS -- Catering gegroepeerd per reservering
|
|
SELECT res_id,
|
|
TRUNC (reslev),
|
|
prs_afdeling_omschrijving organisatie,
|
|
prs_perslid_naam_full gastheer,
|
|
prs_kostenplaats_omschrijving kostenplaats,
|
|
--(SELECT MAX (kw.res_kenmerkreservering_waarde)
|
|
-- FROM res_kenmerkwaarde kw, res_kenmerk rk
|
|
-- WHERE kw.res_rsv_ruimte_key = res_rsv_ruimte_key
|
|
-- AND kw.res_kenmerkwaarde_verwijder IS NULL
|
|
-- AND kw.res_kenmerk_key = rk.res_kenmerk_key
|
|
-- AND rk.res_srtkenmerk_key = 1)
|
|
-- costcenter,
|
|
res_rsv_ruimte_omschrijving omschrijving,
|
|
SUM (COALESCE (verw_prijs, prijs))
|
|
FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
|
|
rra.res_rsv_artikel_levering reslev,
|
|
prs_afdeling_omschrijving,
|
|
pf.prs_perslid_naam_full,
|
|
kp.prs_kostenplaats_nr,
|
|
kp.prs_kostenplaats_omschrijving,
|
|
rrr.res_rsv_ruimte_omschrijving,
|
|
rra.res_rsv_artikel_prijs verw_prijs,
|
|
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs
|
|
FROM res_rsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
|
FROM res_alg_ruimte
|
|
WHERE res_alg_ruimte_verwijder IS NULL
|
|
GROUP BY res_ruimte_key) rar1,
|
|
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
|
FROM res_alg_ruimte
|
|
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
|
GROUP BY res_ruimte_key) rar2,
|
|
alg_v_allonroerendgoed aog,
|
|
prs_v_perslid_fullnames_all pf,
|
|
prs_kostenplaats kp,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_v_afdeling_boom ab,
|
|
prs_kenmerklink kl,
|
|
res_v_aanwezigrsv_artikel rra,
|
|
res_artikel ra,
|
|
res_discipline rd,
|
|
res_disc_params dp,
|
|
prs_bedrijf b,
|
|
prs_kostensoort ks
|
|
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
|
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
|
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
|
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
|
|
AND aog.alg_locatie_key = 21 -- SSC
|
|
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
|
|
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
|
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
|
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+)
|
|
AND kl.prs_kenmerklink_niveau(+) = 'A'
|
|
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
|
|
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
|
--AND rra.res_rsv_artikel_verwerkt IS NULL
|
|
AND rra.res_artikel_key = ra.res_artikel_key
|
|
AND ra.res_discipline_key = rd.ins_discipline_key
|
|
AND rd.ins_discipline_key = dp.res_ins_discipline_key
|
|
AND dp.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
|
AND rra.res_rsv_artikel_dirtlevel = 0
|
|
AND rra.res_rsv_artikel_levering > TO_DATE ('20171101', 'yyyymmdd')
|
|
AND rra.res_rsv_artikel_levering < SYSDATE)
|
|
GROUP BY res_id,
|
|
TRUNC (reslev),
|
|
prs_afdeling_omschrijving,
|
|
prs_perslid_naam_full,
|
|
prs_kostenplaats_omschrijving,
|
|
res_rsv_ruimte_omschrijving;
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|