Files
Customer/PCHD/pchd.sql
Arthur Egberink 655caef14c PCHX#61916 -- Bedrijven zonder technisch adres ook synchroniseren
svn path=/Customer/trunk/; revision=46344
2020-03-24 08:44:07 +00:00

2280 lines
86 KiB
MySQL
Raw Blame History

-- $Id$
--
-- Script containing customer specific db-configuration for PCHD.
DEFINE thisfile = 'PCHD.SQL'
DEFINE dbuser = '^PCHD'
DEFINE custid = 'PCHD'
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
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE VIEW pchd_v_imp_prs_perslid_sync
(
prs_afdeling_naam,
prs_perslid_naam,
prs_perslid_tussenvoegsel,
prs_perslid_voorletters,
prs_perslid_voornaam,
prs_perslid_titel,
prs_perslid_telefoonnr,
prs_perslid_mobiel,
prs_perslid_email,
prs_perslid_apikey,
prs_srtperslid_omschrijving,
prs_perslid_nr,
prs_perslid_oslogin,
prs_perslid_oslogin2,
prs_perslid_geslacht,
prs_perslid_dienstverband
)
AS
SELECT pg.prs_afdeling_naam,
p.prs_perslid_naam,
p.prs_perslid_tussenvoegsel,
p.prs_perslid_voorletters,
p.prs_perslid_voornaam,
p.prs_perslid_titel,
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel,
p.prs_perslid_email,
p.prs_perslid_apikey,
pg.prs_srtperslid_omschrijving,
p.prs_perslid_nr,
p.prs_perslid_oslogin,
p.prs_perslid_oslogin2,
p.prs_perslid_geslacht,
p.prs_perslid_dienstverband
FROM prs_v_perslid_gegevens pg, prs_perslid p, prs_v_afdeling a
WHERE p.prs_perslid_key = pg.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = fac.getsetting ('xd_primary_bedrijfkey');
CREATE OR REPLACE VIEW pchd_v_opdrachtenfacturatie
(
maand,
district,
locatie,
vakgroeptype,
vakgroep,
aantal_opdrachten,
totale_kosten_opdrachten,
reeds_gefactureerd,
nog_te_verwachten_kosten
)
AS
SELECT TO_CHAR (mo.mld_opdr_datumbegin, 'YYYY-MM'),
d.alg_district_omschrijving,
l.alg_locatie_omschrijving,
insr.ins_srtdiscipline_omschrijving,
md.ins_discipline_omschrijving,
COUNT (mo.mld_opdr_key),
SUM (mo.mld_opdr_kosten),
SUM (ff.fin_factuur_totaal),
SUM (mo.mld_opdr_kosten) - SUM (ff.fin_factuur_totaal)
FROM ins_srtdiscipline insr,
mld_discipline md,
mld_opdr mo,
mld_melding mm,
mld_stdmelding mstd,
fin_factuur ff,
alg_locatie l,
alg_district d
WHERE insr.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND md.ins_discipline_key = mstd.mld_ins_discipline_key
AND mm.mld_stdmelding_key = mstd.mld_stdmelding_key
AND mm.mld_melding_key = mo.mld_melding_key
AND mo.mld_opdr_key = ff.mld_opdr_key
AND l.alg_locatie_key = mm.mld_alg_locatie_key
and d.alg_district_key = l.alg_district_key
AND ff.fin_factuur_verwijder IS NULL
AND ff.fin_factuur_statuses_key IN (6, 7) -- Ingevoerd, Incompleet, Akkoord, Verwerkt
AND mo.mld_statusopdr_key NOT IN (1, 2)
GROUP BY TO_CHAR (mo.mld_opdr_datumbegin, 'YYYY-MM'),
l.alg_locatie_omschrijving,
insr.ins_srtdiscipline_omschrijving,
md.ins_discipline_omschrijving,
d.alg_district_omschrijving;
--View om te zien welke kostenplaatsen er aan een locatie gekoppeld zijn.
--PCHD#55359
CREATE OR REPLACE VIEW PCHD_V_RAP_KOSTENPLAATS_LOC
(
locatie_omschrijving,
kostenplaats_key,
kostenplaats_omschrijving
)
AS
SELECT DISTINCT l.alg_locatie_omschrijving , prsa.prs_kostenplaats_key, kost.prs_kostenplaats_omschrijving
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r,
prs_ruimteafdeling ra,
prs_afdeling prsa,
prs_kostenplaats kost
WHERE g.alg_locatie_key = l.alg_locatie_key(+)
AND v.alg_gebouw_key (+) = g.alg_gebouw_key
AND r.alg_verdieping_key(+) = v.alg_verdieping_key
AND r.ALG_RUIMTE_KEY = ra.ALG_RUIMTE_KEY (+)
AND prsa.PRS_AFDELING_KEY = ra.PRS_AFDELING_KEY
AND prsa.prs_kostenplaats_key = kost.prs_kostenplaats_key;
-- draft versie van PPI rapportage voor truckparking
CREATE OR REPLACE VIEW pchd_v_rap_mld_truckparking
(
hide_f_ts,
fclt_d_datum,
tijd,
fclt_f_locatie,
vakgroep,
melding,
melder,
omschrijving,
afhandeling,
datum_tijd_tht,
datum_tijd_afgemeld,
telaat
)
AS
SELECT TO_CHAR (mld_melding_datum, 'yyyymmddhh24mi'),
TO_CHAR (mld_melding_datum, 'dd-mm-yyyy'),
TO_CHAR (mld_melding_datum, 'hh24:mi'),
alg_locatie_omschrijving,
ins_discipline_omschrijving,
mld_stdmelding_omschrijving,
pf.prs_perslid_naam_full,
mld_melding_omschrijving,
mld_melding_opmerking,
TO_CHAR (mld_melding_einddatum_std, 'dd-mm-yyyy hh24:mi'),
TO_CHAR (
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1),
NULL),
'dd-mm-yyyy hh24:mi'),
DECODE (
SIGN(mld_melding_einddatum_std
- COALESCE (
COALESCE (
mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)),
SYSDATE)),
-1,
'Ja')
FROM mld_melding m,
mld_stdmelding std,
ins_tab_discipline d,
prs_v_perslid_fullnames_all pf,
alg_locatie l
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND d.ins_srtdiscipline_key = 61;
--PCHD#53705 - Import personen vanuit AD VolkerWessels
CREATE OR REPLACE PROCEDURE pchd_import_perslid (p_import_key IN NUMBER)
IS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER := 0;
v_ongeldig NUMBER (1);
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_count NUMBER;
-- De importvelden:
v_prs_perslid_voornaam VARCHAR2 (256);
v_prs_perslid_naam VARCHAR2 (256);
v_prs_perslid_tussenvoegsel VARCHAR2 (256);
v_prs_perslid_oslogin VARCHAR2 (256);
v_prs_perslid_oslogin2 VARCHAR2 (256);
v_prs_perslid_wm VARCHAR2 (256);
v_prs_perslid_organisation VARCHAR2 (256);
v_prs_perslid_companycode VARCHAR2 (256);
v_prs_afdeling_naam VARCHAR2 (256);
v_prs_perslid_costcarrier VARCHAR2 (256);
v_prs_srtperslid_omschrijving VARCHAR2 (256);
v_prs_perslid_managedby VARCHAR2 (256);
v_prs_perslid_email VARCHAR2 (256);
v_prs_perslid_telefoonnr VARCHAR2 (256);
v_prs_perslid_mobiel VARCHAR2 (256);
v_prs_perslid_vestigingsnaam VARCHAR2 (256);
v_prs_perslid_vestigingsnummer VARCHAR2 (256);
-- Overig:
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM pchd_imp_prs;
COMMIT;
v_count_tot := 0;
v_count_import := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_aanduiding := '';
v_errorhint := 'Fout bij opvragen te importeren rij';
v_ongeldig := 0;
-- Lees alle veldwaarden
-- 01
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voornaam);
-- 02
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
-- 03
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel);
-- 04
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
-- 05
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_wm);
-- 06
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_organisation);
-- 07
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_companycode);
-- 08
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
-- 09
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_costcarrier);
-- 10
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving);
-- 11
--fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_managedby);
-- 12
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
-- 13
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
-- 14
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel);
-- 15
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_vestigingsnaam);
-- 16
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_vestigingsnummer);
--
v_aanduiding :=
'['
|| v_prs_perslid_oslogin
|| '|'
|| v_prs_perslid_naam
|| '|'
|| v_prs_perslid_tussenvoegsel
|| '|'
|| v_prs_perslid_voornaam
|| '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (v_prs_perslid_voornaam) = 'FIRSTNAME'
AND UPPER (v_prs_perslid_naam) = 'LASTNAME'
AND UPPER (v_prs_perslid_tussenvoegsel) = 'MIDDLENAME'
AND UPPER (v_prs_perslid_oslogin) = 'USERNAME'
AND UPPER (v_prs_perslid_wm) = 'WM'
AND UPPER (v_prs_perslid_organisation) = 'ORGANISATION'
AND UPPER (v_prs_perslid_companycode) = 'COMPANYCODE'
AND UPPER (v_prs_afdeling_naam) = 'DEPARTMENT'
AND UPPER (v_prs_perslid_costcarrier) = 'COSTCARRIER'
AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTION'
--AND UPPER (v_prs_perslid_managedby) = 'MANAGEDBY'
AND UPPER (v_prs_perslid_email) = 'EMAIL'
AND UPPER (v_prs_perslid_telefoonnr) = 'PHONENUMBER'
AND UPPER (v_prs_perslid_mobiel) = 'MOBILENUMBER'
AND UPPER (v_prs_perslid_vestigingsnaam) = 'VESTIGINGSNAAM'
AND UPPER (v_prs_perslid_vestigingsnummer) = 'VESTIGINGSNUMMER'
THEN
header_is_valid := 1;
END IF;
ELSE
--
v_errorhint := 'Ongeldige naam';
v_prs_perslid_naam := TRIM (v_prs_perslid_naam);
IF LENGTH (v_prs_perslid_naam) > 30
THEN
v_prs_perslid_naam := SUBSTR (v_prs_perslid_naam, 1, 30);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Naam te lang',
'Naam wordt afgebroken tot ['
|| v_prs_perslid_naam
|| ']'
);
ELSE
IF (v_prs_perslid_naam IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog
(p_import_key,
'E',
v_aanduiding || 'Naam onbekend',
'Naam is verplicht; regel wordt overgeslagen!'
);
END IF;
END IF;
COMMIT;
--
v_errorhint := 'Ongeldig tussenvoegsel';
v_prs_perslid_tussenvoegsel := TRIM (v_prs_perslid_tussenvoegsel);
IF LENGTH (v_prs_perslid_tussenvoegsel) > 10
THEN
v_prs_perslid_tussenvoegsel :=
SUBSTR (v_prs_perslid_tussenvoegsel, 1, 10);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Tussenvoegsel te lang',
'Tussenvoegsel wordt afgebroken tot ['
|| v_prs_perslid_tussenvoegsel
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldige voornaam';
v_prs_perslid_voornaam := TRIM (v_prs_perslid_voornaam);
IF LENGTH (v_prs_perslid_voornaam) > 30
THEN
v_prs_perslid_voornaam :=
SUBSTR (v_prs_perslid_voornaam, 1, 30);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Voornaam is te lang',
'Voornaam wordt afgebroken tot ['
|| v_prs_perslid_voornaam
|| ']'
);
ELSE
IF (v_prs_perslid_voornaam IS NULL)
THEN
v_prs_perslid_voornaam := '-';
fac.imp_writelog
(p_import_key,
'W',
v_aanduiding || 'Voornaam onbekend',
'Voornaam wordt gezet op [-]'
);
END IF;
END IF;
COMMIT;
--
v_errorhint := 'Ongeldige bedrijfsnaam';
v_prs_perslid_wm := TRIM (v_prs_perslid_wm);
IF LENGTH (v_prs_perslid_wm) > 60
THEN
v_prs_perslid_wm := SUBSTR (v_prs_perslid_wm, 1, 60);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Bedrijfsnaam te lang',
'Bedrijfsnaam wordt afgebroken tot ['
|| v_prs_perslid_wm
|| ']'
);
v_ongeldig :=1;
ELSE
IF (v_prs_perslid_wm IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog
(p_import_key,
'E',
v_aanduiding || 'Bedrijfsnaam onbekend',
'Bedrijfsnaam is verplicht; regel wordt overgeslagen!'
);
END IF;
END IF;
COMMIT;
--
v_errorhint := 'Ongeldige organisatienaam';
v_prs_perslid_organisation := TRIM (v_prs_perslid_organisation);
IF LENGTH (v_prs_perslid_organisation) > 60
THEN
v_prs_perslid_organisation := SUBSTR (v_prs_perslid_organisation, 1, 60);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Organisatienaam te lang',
'Organisatienaam wordt afgebroken tot ['
|| v_prs_perslid_organisation
|| ']'
);
v_ongeldig :=1;
ELSE
IF (v_prs_afdeling_naam IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog
(p_import_key,
'E',
v_aanduiding || 'Organisatienaam onbekend',
'Organisatienaam is verplicht; regel wordt overgeslagen!'
);
END IF;
END IF;
COMMIT;
--
v_errorhint := 'Ongeldige afdelingsnaam ';
v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
IF LENGTH (v_prs_afdeling_naam) > 60
THEN
v_prs_afdeling_naam := SUBSTR (v_prs_afdeling_naam, 1, 60);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Afdelingsnaam te lang',
'Afdelingsnaam wordt afgebroken tot ['
|| v_prs_afdeling_naam
|| ']'
);
v_ongeldig :=1;
ELSE
IF (v_prs_afdeling_naam IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog
(p_import_key,
'E',
v_aanduiding || 'Afdelingsnaam onbekend',
'Afdelingsnaam is verplicht; regel wordt overgeslagen!'
);
END IF;
END IF;
COMMIT;
--
v_errorhint := 'Ongeldige functie';
v_prs_srtperslid_omschrijving := TRIM (v_prs_srtperslid_omschrijving);
IF LENGTH (v_prs_srtperslid_omschrijving) >60
THEN
v_prs_srtperslid_omschrijving :=
SUBSTR (v_prs_srtperslid_omschrijving, 1, 60);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Functie te lang',
'Functie wordt afgebroken tot ['
|| v_prs_srtperslid_omschrijving
|| ']'
);
v_ongeldig :=1;
ELSE
IF (v_prs_srtperslid_omschrijving IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog
(p_import_key,
'E',
v_aanduiding || 'Functie onbekend',
'Functie is verplicht; regel wordt overgeslagen!'
);
END IF;
END IF;
COMMIT;
--
v_errorhint := 'Ongeldig telefoonnummer';
v_prs_perslid_telefoonnr := TRIM (v_prs_perslid_telefoonnr);
IF LENGTH (REPLACE(v_prs_perslid_telefoonnr,' ','')) > 15
THEN
v_prs_perslid_telefoonnr :=
SUBSTR (REPLACE(v_prs_perslid_telefoonnr,' ',''), 1, 15);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Telefoonnummer te lang',
'Telefoonnummer wordt afgebroken tot ['
|| v_prs_perslid_telefoonnr
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldig mobiel nr';
v_prs_perslid_mobiel := TRIM (v_prs_perslid_mobiel);
IF LENGTH (REPLACE(v_prs_perslid_mobiel,' ','')) > 15
THEN
v_prs_perslid_telefoonnr :=
SUBSTR (REPLACE(v_prs_perslid_mobiel,' ',''), 1, 15);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Mobiel te lang',
'Mobiel wordt afgebroken tot ['
|| v_prs_perslid_mobiel
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldig e-mailadres';
v_prs_perslid_email := TRIM (v_prs_perslid_email);
IF LENGTH (v_prs_perslid_email) > 50
THEN
v_prs_perslid_email := SUBSTR (v_prs_perslid_email, 1, 50);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'E-mailadres te lang',
'E-mailadres wordt afgebroken tot ['
|| v_prs_perslid_email
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldig loginnaam';
v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
IF LENGTH (v_prs_perslid_oslogin) > 30
THEN
v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_oslogin, 1, 30);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Loginnaam te lang',
'Loginnaam wordt afgebroken tot ['
|| v_prs_perslid_oslogin
|| ']'
);
v_ongeldig :=1;
COMMIT;
END IF;
-- IF LENGTH (v_prs_perslid_managedby) > 256
-- THEN
-- v_prs_perslid_managedby :=
-- SUBSTR (v_prs_perslid_managedby, 1, 256);
-- fac.imp_writelog (p_import_key,
-- 'W',
-- v_aanduiding || 'Managed by is te lang',
-- 'Managed by wordt afgebroken tot ['
-- || v_prs_perslid_managedby
-- || ']'
-- );
-- COMMIT;
-- END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errorhint :=
'Fout bij toevoegen regel aan importtabel pchd_imp_prs';
INSERT INTO pchd_imp_prs
(prs_perslid_naam,
prs_perslid_tussenvoegsel,
prs_perslid_voornaam,
prs_afdeling_naam,
prs_srtperslid_omschrijving,
prs_perslid_telefoonnr,
prs_perslid_mobiel,
prs_perslid_oslogin,
prs_perslid_email,
prs_perslid_wm,
prs_perslid_organisation,
prs_perslid_companycode,
prs_perslid_costcarrier,
--prs_perslid_managedby,
prs_perslid_vestigingsnaam,
prs_perslid_vestigingsnummer
)
VALUES
(v_prs_perslid_naam,
v_prs_perslid_tussenvoegsel,
v_prs_perslid_voornaam,
v_prs_afdeling_naam,
v_prs_srtperslid_omschrijving,
REPLACE(v_prs_perslid_telefoonnr,' ',''),
REPLACE(v_prs_perslid_mobiel,' ',''),
v_prs_perslid_oslogin,
v_prs_perslid_email,
v_prs_perslid_wm,
v_prs_perslid_organisation,
v_prs_perslid_companycode,
v_prs_perslid_costcarrier,
v_prs_perslid_vestigingsnaam,
v_prs_perslid_vestigingsnummer
);
COMMIT;
v_count_import := v_count_import + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
v_errorhint
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog
(p_import_key,
'E',
v_aanduiding || v_errormsg,
'Ingelezen regel kan niet worden weggeschreven!'
);
COMMIT;
END;
END IF;
END IF;
END;
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.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
END pchd_import_perslid;
/
CREATE OR REPLACE PROCEDURE pchd_update_perslid (p_import_key IN NUMBER)
IS
-- LET OP: moet idem zijn als declaratie bij pchd_IMPORT_PERSLID
c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: ';
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een nummer
c_max_delta_percentage NUMBER (10) := 1000;
-- Ruimte waar personen in geplaatst worden (indien nog geen ruimte in opgegeven gebouw)
c_ruimte_nr VARCHAR2 (10) := '000';
-- Groep waar personen in geplaatst worden (indien nog geen groep)
c_groep_upper VARCHAR2 (30) := '_default VWInfra';
c_key_default_rol NUMBER(10) := 661; --781 is Key voor autorisatiegroep _default VWInfra in ACCEPTATIE!! In productie is dit 661 (in branch 621)
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_prs_actual NUMBER (10);
v_count_prs_import NUMBER (10); -- Matching actual persons!
v_count_tot NUMBER (10);
v_count_error NUMBER (10);
v_count NUMBER (10);
--
v_perslid_key NUMBER (10);
v_afdeling_key NUMBER (10);
v_afdeling_parentkey NUMBER (10);
v_bedrijf_key NUMBER (10);
v_kostenplaats_key NUMBER (10);
v_srtperslid_key NUMBER (10);
v_locatie_key NUMBER (10);
v_gebouw_key NUMBER (10);
v_verdieping_key NUMBER (10);
v_ruimte_key NUMBER (10);
v_wp_key NUMBER (10);
v_wp_volgnr NUMBER (3);
v_wp_oms VARCHAR2 (30);
v_groep_defaultnaam VARCHAR2 (30);
v_prs_bedrijf_key VARCHAR2 (30);
v_prs_afdeling_key VARCHAR2 (30);
v_prs_company_key VARCHAR2 (30);
v_prs_perslid_costcarrier VARCHAR2 (30);
v_prs_perslid_managedby VARCHAR2 (30);
v_prs_perslid_oslogin VARCHAR2 (30);
v_prs_perslid_oslogin2 VARCHAR2 (30);
-- Bepalen alle personen die in aanmerking komen om verwijderd te worden (INACTIEF)!
CURSOR cdelprs
IS
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, p.prs_perslid_naam,
p.prs_perslid_voornaam
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_oslogin IS NOT NULL
AND SUBSTR(p.prs_perslid_oslogin,1,1) <> '_'
AND EXISTS (
SELECT 1
FROM prs_kenmerklink km
WHERE km.prs_link_key = p.prs_perslid_key
AND km.prs_kenmerk_key = 1041 -- Key voor Kenmerk 'Import personen uit AD'. In ACCEPTATIEOMGEVING BRANCH: 1040 / In PRODUCTIEOMGEVING: 1041
AND km.prs_kenmerklink_waarde = '1461') -- Key voor waarde "Ja" bij kenmerk 'Import personen uit AD'.)
AND NOT EXISTS (
SELECT 1
FROM pchd_imp_prs ip
WHERE UPPER(ip.prs_perslid_oslogin) = UPPER(p.prs_perslid_oslogin));
--Bepalen alle functie omschrijvingen in het import bestand.
CURSOR csperslid
IS
SELECT UPPER(prs_srtperslid_omschrijving) prs_srtperslid_omschrijving
FROM pchd_imp_prs
GROUP BY UPPER (prs_srtperslid_omschrijving);
--Bepalen alle wm (werkmaatschappijen) in het import bestand.
CURSOR cwm
IS
SELECT UPPER(prs_perslid_wm) prs_perslid_wm
FROM pchd_imp_prs
WHERE prs_perslid_wm IS NOT NULL
GROUP BY UPPER (prs_perslid_wm);
--Bepalen alle organisaties in het import bestand.
CURSOR corg
IS
SELECT UPPER (prs_perslid_organisation) prs_perslid_organisation, UPPER (prs_perslid_companycode) prs_perslid_companycode, UPPER (prs_perslid_wm) prs_perslid_wm
FROM pchd_imp_prs
WHERE prs_perslid_organisation IS NOT NULL AND prs_perslid_wm IS NOT NULL
GROUP BY UPPER (prs_perslid_organisation), UPPER (prs_perslid_companycode), UPPER (prs_perslid_wm);
--Bepalen alle afdeling omschrijvingen in het import bestand.
CURSOR cdep
IS
SELECT UPPER(prs_afdeling_naam) prs_afdeling_naam, UPPER (prs_perslid_organisation) prs_perslid_organisation, UPPER (prs_perslid_wm) prs_perslid_wm
FROM pchd_imp_prs
WHERE prs_perslid_organisation IS NOT NULL AND prs_perslid_wm IS NOT NULL AND prs_afdeling_naam IS NOT NULL
GROUP BY UPPER(prs_afdeling_naam), UPPER (prs_perslid_organisation), UPPER (prs_perslid_wm);
CURSOR cperslid
IS
SELECT *
FROM pchd_imp_prs;
CURSOR cwerkplek
IS
SELECT p.prs_perslid_key,
i.prs_perslid_oslogin,
MIN (rg_nvt.alg_ruimte_key) alg_ruimte_key,
alg_gebouw_key
FROM prs_ruimteafdeling ra,
pchd_imp_prs i,
prs_perslid p,
prs_afdeling a,
prs_afdeling bu,
alg_v_ruimte_gegevens rg_nvt
WHERE UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
AND p.prs_afdeling_key = a.prs_afdeling_key
AND bu.prs_afdeling_key = ra.prs_afdeling_key
AND rg_nvt.alg_ruimte_key = ra.alg_ruimte_key
AND UPPER (rg_nvt.alg_ruimte_nr) = 'N.V.T.'
AND bu.prs_afdeling_key = a.prs_afdeling_parentkey
AND NOT EXISTS
(SELECT prs_perslidwerkplek_key
FROM prs_v_perslidwerkplek_gegevens pwpg
WHERE pwpg.prs_perslid_key = p.prs_perslid_key
AND pwpg.alg_gebouw_key = rg_nvt.alg_gebouw_key)
GROUP BY p.prs_perslid_key, i.prs_perslid_oslogin, rg_nvt.alg_gebouw_key;
BEGIN
SELECT DECODE (COUNT (*), 0, 1, COUNT (*))
INTO v_count_prs_actual
FROM prs_perslid
WHERE prs_perslid_verwijder IS NULL AND prs_perslid_oslogin IS NOT NULL;
SELECT DECODE (COUNT (*), 0, 1, COUNT (*))
INTO v_count_prs_import
FROM prs_perslid p, pchd_imp_prs ip
WHERE p.prs_perslid_oslogin IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_oslogin = ip.prs_perslid_oslogin;
IF ( (TRUNC ((v_count_prs_import / v_count_prs_actual) * 100) >=
(100 - c_max_delta_percentage
)
)
)
THEN
-- Geldig importbestand wat betreft aantal personen
-- Personen verwijderen/inactiefmaken
FOR recdelprs IN cdelprs
LOOP
BEGIN
PRS.delete_perslid(p_import_key, recdelprs.prs_perslid_key);
END;
END LOOP;
v_count_tot := 0;
v_count_error := 0;
-- Toevoegen functies
FOR recsperslid IN csperslid
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding := recsperslid.prs_srtperslid_omschrijving || ' - ';
v_errorhint := 'Fout bij bepalen functie';
SELECT COUNT (*)
INTO v_count
FROM prs_srtperslid
WHERE UPPER (prs_srtperslid_omschrijving) =
UPPER (recsperslid.prs_srtperslid_omschrijving)
AND prs_srtperslid_verwijder IS NULL;
IF (v_count = 0)
THEN
v_errorhint := 'Fout bij toevoegen functie';
INSERT INTO prs_srtperslid
(prs_srtperslid_omschrijving
)
VALUES (recsperslid.prs_srtperslid_omschrijving
);
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
v_count_tot := 0;
v_count_error := 0;
-- Toevoegen bedrijf (wm: werkmaatschappij)
FOR recwm IN cwm
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding := recwm.prs_perslid_wm || ' - ';
v_errorhint := 'Fout bij bepalen bedrijf (wm)';
SELECT COUNT (*)
INTO v_count
FROM prs_bedrijf
WHERE UPPER (prs_bedrijf_naam) =
UPPER (recwm.prs_perslid_wm)
AND prs_bedrijf_verwijder IS NULL;
IF (v_count = 0)
THEN
v_errorhint := 'Fout bij toevoegen bedrijf (wm)';
INSERT INTO prs_bedrijf
(prs_bedrijf_naam,
prs_bedrijf_intern)
VALUES (recwm.prs_perslid_wm,
1);
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Bedrijf: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (p_import_key,
'S',
'Bedrijf: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
v_count_tot := 0;
v_count_error := 0;
-- Toevoegen Organisatie
FOR recorg IN corg
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding := recorg.prs_perslid_organisation || ' - ' || recorg.prs_perslid_wm || ' - ' ;
v_errorhint := 'Fout bij bepalen organisatie';
-- Zoek bedrijf
v_errorhint := 'Zoek werkmaatschappij';
SELECT prs_bedrijf_key
INTO v_bedrijf_key
FROM prs_bedrijf pb
WHERE UPPER (pb.prs_bedrijf_naam) = UPPER (recorg.prs_perslid_wm)
AND pb.prs_bedrijf_verwijder IS NULL
AND pb.prs_bedrijf_intern = 1;
SELECT COUNT (*)
INTO v_count
FROM prs_afdeling
WHERE UPPER (prs_afdeling_omschrijving) =
UPPER (recorg.prs_perslid_organisation)
AND prs_bedrijf_key = v_bedrijf_key
AND prs_afdeling_verwijder IS NULL;
IF (v_count = 0)
THEN
v_errorhint := 'Fout bij toevoegen organisatie';
SELECT prs_s_prs_afdeling_key.nextval
INTO v_afdeling_key
FROM DUAL;
INSERT INTO prs_afdeling
(prs_bedrijf_key,
prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving
)
VALUES (v_bedrijf_key,
v_afdeling_key,
recorg.prs_perslid_wm || v_afdeling_key,
recorg.prs_perslid_organisation
);
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Organisatie: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (p_import_key,
'S',
'Organisatie: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
v_count_tot := 0;
v_count_error := 0;
-- Toevoegen afdeling
FOR recdep IN cdep
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding := recdep.prs_afdeling_naam || ' - ' || recdep.prs_perslid_organisation || ' - ' || recdep.prs_perslid_wm || ' - ';
v_errorhint := 'Fout bij bepalen afdeling';
-- Kijken of de waarde uit de import al voorkomt. Er wordt gecontroleerd op unieke voorkomende afdelingomschrijvingen.
-- ??De import is er dus niet op toegerust om meerdere afdelingen te hebben met zelfde omschrijving maar ondere verschillende moeder-afdelingen.
v_errorhint := 'Zoek bovenliggende afdeling';
SELECT prs_afdeling_key, prs_kostenplaats_key
INTO v_afdeling_parentkey, v_kostenplaats_key
FROM prs_afdeling pa, prs_bedrijf pb
WHERE UPPER (pa.prs_afdeling_omschrijving) = UPPER (recdep.prs_perslid_organisation)
AND pa.prs_afdeling_verwijder IS NULL
AND pa.prs_bedrijf_key = pb.prs_bedrijf_key
AND pb.prs_bedrijf_naam = recdep.prs_perslid_wm;
SELECT COUNT (*), MAX(prs_afdeling_key)
INTO v_count, v_afdeling_key
FROM prs_afdeling
WHERE UPPER (prs_afdeling_omschrijving) =
UPPER (recdep.prs_afdeling_naam)
AND prs_afdeling_parentkey = v_afdeling_parentkey
AND prs_afdeling_verwijder IS NULL;
IF (v_count = 0)
THEN
v_errorhint := 'Fout bij toevoegen afdeling';
SELECT prs_s_prs_afdeling_key.nextval
INTO v_afdeling_key
FROM DUAL;
INSERT INTO prs_afdeling
(prs_afdeling_parentkey,
prs_afdeling_key,
prs_afdeling_naam,
prs_kostenplaats_key,
prs_afdeling_omschrijving
)
VALUES (v_afdeling_parentkey,
v_afdeling_key,
recdep.prs_perslid_wm || v_afdeling_key,
v_kostenplaats_key,
recdep.prs_afdeling_naam
);
ELSIF v_count = 1
THEN
UPDATE prs_afdeling
SET prs_kostenplaats_key = v_kostenplaats_key
WHERE prs_afdeling_key = v_afdeling_key;
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Afdeling: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (p_import_key,
'S',
'Afdeling: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
v_count_tot := 0;
v_count_error := 0;
-- Toevoegen personen
FOR recperslid IN cperslid
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
recperslid.prs_perslid_oslogin
|| '|'
|| recperslid.prs_perslid_naam
|| '|'
|| recperslid.prs_perslid_voornaam
|| ' - ';
v_errorhint :=
'Fout bij bepalen functie ['
|| recperslid.prs_srtperslid_omschrijving
|| ']';
-- Zoek functie-KEY behorend bij de functie van de persoon
SELECT prs_srtperslid_key
INTO v_srtperslid_key
FROM prs_srtperslid
WHERE prs_srtperslid_verwijder IS NULL
AND UPPER (prs_srtperslid_omschrijving) =
UPPER (recperslid.prs_srtperslid_omschrijving);
v_errorhint :=
'Fout bij bepalen afdeling persoon ['
|| recperslid.prs_afdeling_naam || '-' || recperslid.prs_perslid_organisation || '-' || recperslid.prs_perslid_wm
|| ']';
-- Zoek afdeling-KEY behorend bij de afdeling van de persoon
SELECT a2.prs_afdeling_key
INTO v_afdeling_key
FROM prs_bedrijf b, prs_afdeling a1, prs_afdeling a2
WHERE b.prs_bedrijf_verwijder IS NULL
AND b.prs_bedrijf_naam = recperslid.prs_perslid_wm
AND b.prs_bedrijf_key = a1.prs_bedrijf_key
AND a1.prs_afdeling_verwijder IS NULL
AND UPPER (a1.prs_afdeling_omschrijving) = UPPER (recperslid.prs_perslid_organisation)
AND a1.prs_afdeling_key = a2.prs_afdeling_parentkey
AND a2.prs_afdeling_verwijder IS NULL
AND UPPER (a2.prs_afdeling_omschrijving) = UPPER (recperslid.prs_afdeling_naam);
v_errorhint := 'Fout bij bepalen persoon';
-- Zoek perslid-KEY, behorend bij bestaand persoon, voor het updaten van de juiste persoon
SELECT COUNT (*), MAX(prs_perslid_key)
INTO v_count, v_perslid_key
FROM prs_perslid
WHERE prs_perslid_verwijder IS NULL
AND UPPER (prs_perslid_oslogin) = UPPER (recperslid.prs_perslid_oslogin);
IF (v_count = 0)
THEN
v_errorhint := 'Fout bij toevoegen persoon';
INSERT INTO prs_perslid
(prs_perslid_module,
prs_srtperslid_key,
prs_afdeling_key,
prs_perslid_voornaam,
prs_perslid_naam,
prs_perslid_tussenvoegsel,
prs_perslid_oslogin,
prs_perslid_email,
prs_perslid_telefoonnr,
prs_perslid_mobiel
)
VALUES ('PRS',
v_srtperslid_key,
v_afdeling_key,
recperslid.prs_perslid_voornaam,
recperslid.prs_perslid_naam,
recperslid.prs_perslid_tussenvoegsel,
recperslid.prs_perslid_oslogin,
recperslid.prs_perslid_email,
recperslid.prs_perslid_telefoonnr,
recperslid.prs_perslid_mobiel
) RETURNING prs_perslid_key INTO v_perslid_key;
v_errorhint := 'Fout bij bepalen loginnaam';
ELSIF v_count = 1
THEN
v_errorhint := 'Fout bij wijzigen persoon';
BEGIN
UPDATE prs_perslid p
SET p.prs_srtperslid_key = v_srtperslid_key,
p.prs_afdeling_key = v_afdeling_key,
p.prs_perslid_voornaam = recperslid.prs_perslid_voornaam,
p.prs_perslid_naam = recperslid.prs_perslid_naam,
p.prs_perslid_tussenvoegsel = recperslid.prs_perslid_tussenvoegsel,
p.prs_perslid_oslogin = recperslid.prs_perslid_oslogin,
p.prs_perslid_telefoonnr = recperslid.prs_perslid_telefoonnr,
p.prs_perslid_mobiel = recperslid.prs_perslid_mobiel,
p.prs_perslid_email = recperslid.prs_perslid_email
WHERE p.prs_perslid_key = v_perslid_key;
END;
ELSIF v_count > 1
THEN
fac.imp_writelog (p_import_key,
'E',
v_aanduiding
|| ' kan persoon niet 1-duidig bepalen',
v_errorhint
);
END IF;
IF v_count < 2
THEN
v_errorhint := 'Fout bij toevoegen kenmerk import personen uit AD';
-- Toevoegen kenmerk "Import personen uit AD'
-- Key voor Kenmerk 'Import personen uit AD': 1041
-- Waarde "Ja" voor Kenmerk 'Import personen uit AD'.
PRS.upsertkenmerk (1041, v_perslid_key, '1461');
v_errorhint := 'Fout bij toevoegen kenmerk Costcarrier';
-- Toevoegen kenmerk "Costcarrier'
-- Key voor Kenmerk 'Costcarrier': 1060
PRS.upsertkenmerk (1060, v_perslid_key, recperslid.prs_perslid_costcarrier);
-- Toevoegen kenmerk "Company code'
-- Key voor Kenmerk 'Costcarrier': 1080
PRS.upsertkenmerk (1080, v_perslid_key, recperslid.prs_perslid_companycode);
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Persoon: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (p_import_key,
'S',
'Persoon: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
v_count_tot := 0;
v_count_error := 0;
-- Iedereen krijgt _default-rol die nog geen groep heeft.
INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key)
SELECT prs_perslid_key, 661
FROM prs_perslid p, pchd_imp_prs i
WHERE UPPER (i.prs_perslid_oslogin) = p.prs_perslid_oslogin
AND NOT EXISTS
(SELECT gg.prs_perslid_key
FROM fac_gebruikersgroep gg, fac_groep g
WHERE gg.prs_perslid_key = p.prs_perslid_key
AND gg.fac_groep_key = g.fac_groep_key
AND fac_groep_omschrijving = c_groep_upper);
ELSE
fac.imp_writelog
(p_import_key,
'E',
'Verschil tussen het actuele aantal en het te importeren aantal personen te groot; zie specificatie!',
'- max. verschilpercentage = ['
|| TO_CHAR (c_max_delta_percentage)
|| '%] <br> '
|| '- #personen importbestand = ['
|| TO_CHAR (v_count_prs_import)
|| '] <br> '
|| '- #personen Facilitor = ['
|| TO_CHAR (v_count_prs_actual)
|| ']'
);
COMMIT;
END IF; -- Geldig importbestand wat betreft aantal inserts
COMMIT;
FOR recwerkplek IN cwerkplek
LOOP
BEGIN
-- Maximaal <20><>n werkplek per gebouw
prs.movetoruimte (recwerkplek.prs_perslid_key, recwerkplek.alg_ruimte_key, 'G', 0);
END;
END LOOP;
COMMIT;
END pchd_update_perslid;
/
CREATE OR REPLACE VIEW pchd_v_rap_catresbasis
(
resnr,
locatie,
gebouw,
ruimte,
contactp,
kostenpl,
datum,
van,
tot,
artikel_nr,
artikel,
aantal,
levering,
dieet,
wensen,
kosten_klant,
kostenplaats_klant
)
AS
SELECT resnr_volgnr,
alg_locatie_omschrijving,
alg_gebouw_omschrijving,
res_ruimte_nr,
prs_perslid_naam_full,
kostenplaats,
datum,
van,
tot,
artikel_nr,
soort_catering,
aantal,
res_rsv_artikel_levering,
kmdieet,
kmwens,
kosten_klant,
kostenplaats_klant
FROM (SELECT rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr
AS resnr_volgnr,
rg.alg_locatie_omschrijving,
rg.alg_gebouw_omschrijving,
COALESCE (
(SELECT rru.res_ruimte_nr
FROM res_ruimte rru
WHERE r2a.res_ruimte_key = rru.res_ruimte_key),
rg.alg_ruimte_nr || ' ' || rg.alg_ruimte_omschrijving)
AS res_ruimte_nr,
pf.prs_perslid_naam_full,
(SELECT MAX (kmw.res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde kmw,
res_kenmerk km,
res_srtkenmerk sk
WHERE kmw.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND km.res_kenmerk_key = kmw.res_kenmerk_key
AND sk.res_srtkenmerk_key = km.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 2)
kostenplaats, -- Kenmerksoort: Kostenplaats binnen werkmaatschappij'
TRUNC (rr.res_rsv_ruimte_van)
datum,
TO_CHAR (ra.res_rsv_artikel_levering, 'HH24:MI')
van,
TO_CHAR (rr.res_rsv_ruimte_tot, 'HH24:MI')
tot,
rart.res_artikel_nr
artikel_nr,
rart.res_artikel_omschrijving
soort_catering,
ra.res_rsv_artikel_aantal
aantal,
ra.res_rsv_artikel_levering,
(SELECT MAX (rkmw.res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde rkmw,
res_kenmerk rkm,
res_srtkenmerk rsk
WHERE rsk.res_srtkenmerk_key =
rkm.res_srtkenmerk_key
AND rkm.res_kenmerk_key = rkmw.res_kenmerk_key
AND rkmw.res_rsv_ruimte_key =
rr.res_rsv_ruimte_key
AND rsk.res_srtkenmerk_key = 21) -- Kenmerksoort 'Dieetwensen / allergieen'
kmdieet,
(SELECT MAX (rkmw.res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde rkmw,
res_kenmerk rkm,
res_srtkenmerk rsk
WHERE rsk.res_srtkenmerk_key =
rkm.res_srtkenmerk_key
AND rkm.res_kenmerk_key = rkmw.res_kenmerk_key
AND rkmw.res_rsv_ruimte_key =
rr.res_rsv_ruimte_key
AND rsk.res_srtkenmerk_key = 41) -- Kenmerksoort 'Aanvullende wensen lunch'
kmwens,
DECODE (rr.RES_RSV_RUIMTE_KOSTEN_KLANT, 1, 'Ja')
kosten_klant,
(SELECT prs_kostenplaats_omschrijving
FROM prs_kostenplaats
WHERE rr.prs_kostenplaats_key = prs_kostenplaats_key)
kostenplaats_klant
FROM res_rsv_ruimte rr,
res_rsv_artikel ra,
res_artikel rart,
alg_v_ruimte_gegevens rg,
prs_v_perslid_fullnames_all pf,
(SELECT rr2.res_rsv_ruimte_key,
rr2.res_reservering_key,
COALESCE (rr2.alg_ruimte_key, r2r.alg_ruimte_key)
alg_ruimte_key,
res_ruimte_key
FROM res_v_rsv_ruimte_2_alg_ruimte r2r,
res_rsv_ruimte rr2
WHERE r2r.res_rsv_ruimte_key(+) =
rr2.res_rsv_ruimte_key
AND res_alg_ruimte_verwijder IS NULL) r2a
WHERE rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND rr.res_rsv_ruimte_verwijder IS NULL
AND r2a.alg_ruimte_key = rg.alg_ruimte_key
AND r2a.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND rr.res_rsv_ruimte_contact_key = pf.prs_perslid_key
AND ra.res_artikel_key = rart.res_artikel_key
AND ra.res_rsv_artikel_verwijder IS NULL
AND rart.res_discipline_key IN (1001,
1002,
1003,
1004,
1005) -- Discipline / Catalogus "Lunch" weghalen voor productie!!
AND rr.res_status_fo_key <= 5)
GROUP BY resnr_volgnr,
alg_locatie_omschrijving,
alg_gebouw_omschrijving,
res_ruimte_nr,
prs_perslid_naam_full,
kostenplaats,
datum,
van,
tot,
artikel_nr,
soort_catering,
aantal,
res_rsv_artikel_levering,
kmdieet,
kmwens,
kosten_klant,
kostenplaats_klant;
-- Levert de catering voor morgen
CREATE OR REPLACE FORCE VIEW pchd_v_rap_catres1
AS
SELECT resnr,
locatie,
gebouw,
ruimte,
contactp,
kostenpl,
datum,
van,
tot,
artikel_nr,
artikel,
aantal,
dieet,
wensen,
kosten_klant,
kostenplaats_klant
FROM pchd_v_rap_catresbasis
WHERE TRUNC (levering) = TRUNC (fac.datumtijdplusuitvoertijd (SYSDATE,
1,
'D',
0,
24,
1))
AND fac.getweekdaynum (SYSDATE) NOT IN (1, 7);
-- Levert de catering lijst voor vandaag
CREATE OR REPLACE FORCE VIEW pchd_v_rap_catres2
AS
SELECT resnr,
locatie,
gebouw,
ruimte,
contactp,
kostenpl,
datum,
van,
tot,
artikel_nr,
artikel,
aantal,
dieet,
wensen,
kosten_klant,
kostenplaats_klant
FROM pchd_v_rap_catresbasis
WHERE fac.getweekdaynum (SYSDATE) NOT IN (1, 7)
AND TRUNC (levering) = TRUNC (SYSDATE);
CREATE OR REPLACE VIEW pchd_v_noti_catres1
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT DISTINCT
'CUST01' AS code,
NULL,
10481, -- Persoon "Verhoef B.V.", voor de emailadressen
'Cateringreserveringen',
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE UPPER(fac_usrrap_view_name) = 'PCHD_V_RAP_CATRES1')
rapportnr,
NULL
FROM DUAL
WHERE fac.iswerkdag (SYSDATE) = 1;
CREATE OR REPLACE VIEW pchd_v_rap_schoonm_basis
(
resnr,
ruimte,
locatie,
van,
tot,
status,
personen,
gastheer_gastvrouw,
aanvrager,
omschrijving
)
AS
SELECT r.nummer,
r.ruimte,
r.locatie,
r.van,
r.tot,
r.status,
r.bezoekers,
r.gastheer,
r.contact,
r.res_omschrijving
FROM res_v_udr_reservering r
WHERE r.reserveerbare_ruimte = 'Ja' AND r.locatie = 'VIA01'
ORDER BY r.tot ASC;
CREATE OR REPLACE VIEW pchd_v_rap_schoonm_today
(
resnr,
ruimte,
locatie,
van,
tot,
status,
personen,
gastheer_gastvrouw,
aanvrager,
omschrijving
)
AS
SELECT resnr,
ruimte,
locatie,
van,
tot,
status,
personen,
gastheer_gastvrouw,
aanvrager,
omschrijving
FROM pchd_v_rap_schoonm_basis
WHERE fac.getweekdaynum (SYSDATE) NOT IN (1, 7)
AND TRUNC (van) = TRUNC (SYSDATE);
CREATE OR REPLACE VIEW pchd_v_noti_schoonmaak
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT DISTINCT
'CUST03' AS code,
NULL,
16161, -- Persoon "_Schoonmaak_Van_Vliet", voor de emailadressen
'Schoonmaken gereserveerde ruimte',
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE UPPER (fac_usrrap_view_name) = 'PCHD_V_RAP_SCHOONM_TODAY')
rapportnr,
NULL
FROM DUAL
WHERE fac.iswerkdag (SYSDATE) = 1;
CREATE OR REPLACE VIEW PCHD_V_CNTR_CNTRREF
(
CONTRACT_KEY,
CONTRACT_NUMMER,
VERWIJDER_DATUM
)
AS
SELECT cnt.cnt_contract_key,
cnt.cnt_contract_nummer_intern || case when cnt.cnt_contract_versie IS NULL OR cnt.cnt_contract_versie = ''THEN '' ELSE '.'||cnt.cnt_contract_versie END || ' - ' || cdisc.INS_DISCIPLINE_OMSCHRIJVING ,
cnt.CNT_CONTRACT_VERWIJDER
FROM cnt_contract cnt, cnt_discipline cdisc
WHERE cnt.INS_DISCIPLINE_KEY = cdisc.INS_DISCIPLINE_KEY;
CREATE OR REPLACE VIEW pchd_v_noti_catres2
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT DISTINCT
'CUST02' AS code,
NULL,
10481, -- Persoon "Verhoef B.V.", voor de emailadressen
'Cateringreserveringen',
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE UPPER(fac_usrrap_view_name) = 'PCHD_V_RAP_CATRES2')
rapportnr,
NULL
FROM DUAL
WHERE fac.iswerkdag (SYSDATE) = 1;
-- PCHD#55492 VIEW om referentievelden naar meldingen te kunnen maken.
CREATE OR REPLACE VIEW pchd_v_mld_mldref
(
MELDING_KEY,
MELDING_NUMMER
)
AS
SELECT m.mld_melding_key,
srt.INS_SRTDISCIPLINE_PREFIX
|| m.mld_melding_key
|| ' - '
|| sm.MLD_STDMELDING_OMSCHRIJVING
FROM mld_melding m, ins_srtdiscipline srt, mld_stdmelding sm, mld_discipline d
WHERE m.MLD_STDMELDING_KEY = sm.MLD_STDMELDING_KEY AND
sm.MLD_INS_DISCIPLINE_KEY = d.INS_DISCIPLINE_KEY
AND d.INS_SRTDISCIPLINE_KEY = srt.INS_SRTDISCIPLINE_KEY;
--Rapport tbv controle welke werkplekken extra zijn aangemaakt tav cursor in import.
--Deze werkplekken kunnen mogelijk verwijderd worden.
--De select in de NOT EXIST is de cursor van de import, met filter op prs_key en ruimte_key tav de werkplekken. Bovendien controle op omschrijving van bu en wm tov de import-gegevens.
CREATE OR REPLACE VIEW pchd_v_rap_extrawerkplekken
AS
SELECT pwp.prs_perslidwerkplek_key,
p.prs_perslid_key,
p.prs_perslid_naam,
p.prs_perslid_oslogin,
og.alg_plaatsaanduiding,
d.alg_district_omschrijving,
l.alg_locatie_omschrijving,
og.alg_verdieping_omschrijving,
og.alg_gebouw_naam,
og.alg_ruimte_nr
FROM prs_perslidwerkplek pwp,
prs_werkplek wp,
prs_perslid p,
pchd_imp_prs i,
alg_v_allonrgoed_gegevens og,
alg_locatie l,
alg_district d
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
AND pwp.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_oslogin = UPPER (i.prs_perslid_oslogin)
AND wp.prs_alg_ruimte_key = og.alg_ruimte_key
AND og.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND NOT EXISTS
(SELECT p.prs_perslid_key,
i.prs_perslid_oslogin,
ra.alg_ruimte_key,
g.alg_gebouw_omschrijving
FROM alg_ruimte ir,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
pchd_imp_prs ii,
prs_perslid ip,
prs_afdeling a,
prs_ruimteafdeling ra
WHERE ir.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND UPPER (a.prs_afdeling_omschrijving) =
UPPER (ii.prs_perslid_organisation)
AND UPPER (ii.prs_perslid_wm) =
(SELECT b.prs_bedrijf_naam_upper
FROM prs_bedrijf b, prs_v_afdeling ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_afdeling_key = a.prs_afdeling_key)
AND UPPER (ip.prs_perslid_oslogin) =
UPPER (ii.prs_perslid_oslogin)
AND ra.prs_afdeling_key = a.prs_afdeling_key
AND ra.prs_ruimteafdeling_verwijder IS NULL
AND ra.alg_ruimte_key = ir.alg_ruimte_key
AND UPPER (ir.alg_ruimte_nr) = 'N.V.T.'
AND ip.prs_perslid_key = p.prs_perslid_key
AND ir.alg_ruimte_key = wp.prs_alg_ruimte_key);
-- Koppeling om crediteurgegevens vanuit PCHD te verspreiden over de andere PCH omgevingen.
CREATE OR REPLACE VIEW pchd_v_export_bedrijf_gegevens
AS
SELECT 'prs_bedrijf_key;prs_bedrijf_naam;prs_bedrijf_post_adres;prs_bedrijf_post_postcode;prs_bedrijf_post_plaats;prs_bedrijf_post_land;prs_bedrijf_bezoek_adres;prs_bedrijf_bezoek_postcode;prs_bedrijf_bezoek_plaats;prs_bedrijf_bezoek_land;prs_bedrijf_telefoon;prs_bedrijf_fax;prs_bedrijf_telefoon2;prs_bedrijf_contact_persoon;prs_bedrijf_contact_telefoon;prs_bedrijf_contact_fax;prs_bedrijf_opmerking;prs_bedrijf_opmerking2;prs_bedrijf_uurloon;prs_leverancier_nr;prs_overeenkomst_nr;prs_overeenkomst_datum;prs_bedrijf_email;prs_bedrijf_order_confirm;prs_bedrijf_image_loc;prs_bedrijf_details_loc;prs_bedrijf_xmldetails_loc;prs_bedrijf_xmlcatalogus_loc;prs_bedrijf_bes_limiet;prs_bedrijf_bes_kosten;prs_bedrijf_aanmaak;prs_bedrijf_verwijder;prs_bedrijf_leverancier;prs_bedrijf_uitvoerende;prs_bedrijf_contract;prs_bedrijf_intern;prs_bedrijf_huurder;prs_bedrijf_bezoeker;prs_bedrijf_ingids;prs_bedrijf_bes_factor;prs_relatietype_omschrijving;prs_bedrijfadres_key;prs_bedrijfadres_type;mld_typeopdr_omschrijving;prs_bedrijfadres_url;prs_bedrijfadres_ordermode;prs_bedrijfadres_certificate;prs_bedrijfadres_xsl;prs_bedrijfadres_ext;prs_bedrijfadres_username;prs_bedrijfadres_password;prs_bedrijfadres_attachfile;prs_bedrijfadres_flexfiles;prs_bedrijfadres_encoding;prs_bedrijfadres_authmethod;prs_bedrijfadres_soapversion;prs_bedrijfadres_soapaction;bedrijfadres_lockuser_naam;prs_bedrijfadres_locksecret;prs_bedrijfadres_lockexpire' result,
-1 result_order
FROM DUAL
UNION ALL
SELECT '"' || b.prs_bedrijf_key || '";"' ||
REPLACE(b.prs_bedrijf_naam, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_post_adres, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_post_postcode, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_post_plaats, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_post_land, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_bezoek_adres, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_bezoek_postcode, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_bezoek_plaats, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_bezoek_land, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_telefoon, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_fax, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_telefoon2, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_contact_persoon, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_contact_telefoon, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_contact_fax, '"', CHR(39)) || '";"' ||
REPLACE(REPLACE(b.prs_bedrijf_opmerking, '"', CHR(39)), CHR(10)) || '";"' ||
REPLACE(REPLACE(b.prs_bedrijf_opmerking2, '"', CHR(39)), CHR(10)) || '";"' ||
b.prs_bedrijf_uurloon || '";"' ||
REPLACE(b.prs_leverancier_nr, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_overeenkomst_nr, '"', CHR(39)) || '";"' ||
TO_CHAR(b.prs_overeenkomst_datum, 'yyyy-mm-dd hh24:mi:ss') || '";"' ||
REPLACE(b.prs_bedrijf_email, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_order_confirm, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_image_loc, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_details_loc, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_xmldetails_loc, '"', CHR(39)) || '";"' ||
REPLACE(b.prs_bedrijf_xmlcatalogus_loc, '"', CHR(39)) || '";"' ||
b.prs_bedrijf_bes_limiet || '";"' ||
b.prs_bedrijf_bes_kosten || '";"' ||
TO_CHAR(b.prs_bedrijf_aanmaak, 'yyyy-mm-dd hh24:mi:ss') || '";"' ||
TO_CHAR(b.prs_bedrijf_verwijder, 'yyyy-mm-dd hh24:mi:ss') || '";"' ||
b.prs_bedrijf_leverancier || '";"' ||
b.prs_bedrijf_uitvoerende || '";"' ||
b.prs_bedrijf_contract || '";"' ||
b.prs_bedrijf_intern || '";"' ||
b.prs_bedrijf_huurder || '";"' ||
b.prs_bedrijf_bezoeker || '";"' ||
b.prs_bedrijf_ingids || '";"' ||
b.prs_bedrijf_bes_factor || '";"' ||
REPLACE(rt.prs_relatietype_omschrijving, '"', CHR(39)) || '";"' ||
ba.prs_bedrijfadres_key || '";"' ||
ba.prs_bedrijfadres_type || '";"' ||
REPLACE(ot.mld_typeopdr_omschrijving, '"', CHR(39)) || '";"' ||
REPLACE(ba.prs_bedrijfadres_url, '"', CHR(39)) || '";"' ||
ba.prs_bedrijfadres_ordermode || '";"' ||
REPLACE(ba.prs_bedrijfadres_certificate, '"', CHR(39)) || '";"' ||
REPLACE(ba.prs_bedrijfadres_xsl, '"', CHR(39)) || '";"' ||
REPLACE(ba.prs_bedrijfadres_ext, '"', CHR(39)) || '";"' ||
REPLACE(ba.prs_bedrijfadres_username, '"', CHR(39)) || '";"' ||
REPLACE(ba.prs_bedrijfadres_password, '"', CHR(39)) || '";"' ||
ba.prs_bedrijfadres_attachfile || '";"' ||
ba.prs_bedrijfadres_flexfiles || '";"' ||
ba.prs_bedrijfadres_encoding || '";"' ||
ba.prs_bedrijfadres_authmethod || '";"' ||
ba.prs_bedrijfadres_soapversion || '";"' ||
REPLACE(ba.prs_bedrijfadres_soapaction, '"', CHR(39)) || '";"' ||
REPLACE(lu.prs_perslid_naam, '"', CHR(39)) || '";"' ||
REPLACE(ba.prs_bedrijfadres_locksecret, '"', CHR(39)) || '";"' ||
ba.prs_bedrijfadres_lockexpire || '";' result,
b.prs_bedrijf_key result_order
FROM prs_bedrijf b,
prs_relatietype rt,
prs_bedrijfadres ba,
prs_kenmerklink kl,
prs_perslid lu,
mld_typeopdr ot
WHERE b.prs_bedrijf_key = ba.prs_bedrijf_key(+)
AND b.prs_relatietype_key = rt.prs_relatietype_key(+)
AND ba.prs_bedrijfadres_lockuser_key = lu.prs_perslid_key(+)
AND ba.mld_typeopdr_key = ot.mld_typeopdr_key(+)
AND kl.prs_kenmerk_key = 1020
AND kl.prs_link_key = b.prs_bedrijf_key
AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = 1
AND b.prs_bedrijf_verwijder IS NULL;
CREATE OR REPLACE VIEW pchd_v_export_contactpersoon
AS
SELECT 'prs_contactpersoon_key;prs_contactpersoon_naam;prs_contactpersoon_tussenv;prs_contactpersoon_voorletters;' ||
'prs_contactpersoon_voornaam;prs_contactpersoon_aanhef;prs_contactpersoon_titel;prs_contactpersoon_telefoon_1;' ||
'prs_contactpersoon_telefoon_2;prs_contactpersoon_fax;prs_contactpersoon_email;prs_contactpersoon_functie;' ||
'prs_contactpersoon_opmerking;prs_bedrijf_key;prs_bedrijf_naam' result,
-1 result_order
FROM DUAL
UNION ALL
SELECT '"' || cp.prs_contactpersoon_key || '";"' ||
REPLACE(cp.prs_contactpersoon_naam, '"', CHR(39)) || '";"' ||
REPLACE(cp.prs_contactpersoon_tussenv, '"', CHR(39)) || '";"' ||
REPLACE(cp.prs_contactpersoon_voorletters, '"', CHR(39)) || '";"' ||
REPLACE(cp.prs_contactpersoon_voornaam, '"', CHR(39)) || '";"' ||
REPLACE(cp.prs_contactpersoon_aanhef, '"', CHR(39)) || '";"' ||
REPLACE(cp.prs_contactpersoon_titel, '"', CHR(39)) || '";"' ||
REPLACE(cp.prs_contactpersoon_telefoon_1, '"', CHR(39)) || '";"' ||
REPLACE(cp.prs_contactpersoon_telefoon_2, '"', CHR(39)) || '";"' ||
REPLACE(cp.prs_contactpersoon_fax, '"', CHR(39)) || '";"' ||
REPLACE(cp.prs_contactpersoon_email, '"', CHR(39)) || '";"' ||
REPLACE(cp.prs_contactpersoon_functie, '"', CHR(39)) || '";"' ||
REPLACE(REPLACE(cp.prs_contactpersoon_opmerking, '"', CHR(39)), CHR(10)) || '";"' ||
cp.prs_bedrijf_key || '";"' ||
REPLACE(b.prs_bedrijf_naam, '"', CHR(39)) || '"',
b.prs_bedrijf_key result_order
FROM prs_contactpersoon cp, prs_bedrijf b, prs_kenmerklink kl
WHERE cp.prs_bedrijf_key = b.prs_bedrijf_key
AND kl.prs_link_key = b.prs_bedrijf_key
AND kl.prs_kenmerk_key = 1020
AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = 1
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_contactpersoon_verwijder IS NULL;
CREATE OR REPLACE VIEW pchd_v_rap_offerteopdr
(
melding_key,
vakgroep,
melding,
opdracht_type,
opdracht_nummer,
opdracht_status,
opdracht_locatie_code,
opdracht_gebouw,
opdracht_verdieping,
opdracht_ruimtenr,
opdracht_datum,
opdracht_verstrektdatum,
opdracht_afgemeld,
opdracht_omschrijving,
opdracht_opmerking,
opdracht_kosten,
opdracht_uitvoerende,
opdracht_uitvoerende_contact,
opdracht_behandelaar,
bijlage,
opdracht_na_offerte
)
AS
SELECT mo.melding_key,
mo.productgroep,
mo.subproductgroep,
mo.opdracht_type,
mo.opdracht_nummer,
mo.opdracht_status,
mo.opdracht_locatie_code,
mo.opdracht_gebouw,
mo.opdracht_verdieping,
mo.opdracht_ruimtenr,
TRUNC (mo.opdracht_datum) AS opdracht_datum,
TRUNC (mo.opdracht_verstrektdatum) AS opdracht_verstrektdatum,
mo.opdracht_afgemeld,
mo.opdracht_omschrijving,
mo.opdracht_opmerking,
mo.opdracht_kosten,
mo.opdracht_uitvoerende,
mo.opdracht_uitvoerende_contact,
mo.opdracht_behandelaar,
(SELECT mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr kmo
WHERE kmo.mld_opdr_key = mo.opdracht_key AND mld_kenmerk_key = 82)
AS bijlage,
CASE
WHEN (SELECT COUNT (opdracht_key)
FROM mld_v_udr_opdracht o
WHERE o.melding_key = mo.melding_key
AND SUBSTR (opdracht_type, 1, 7) = 'Offerte') > 0
THEN
'Opdracht_na_offerte'
ELSE
''
END
AS opdracht_na_offerte
FROM mld_v_udr_meldingopdracht mo;
CREATE OR REPLACE VIEW prs_v_contactpersoon_fullnames
(
prs_contactpersoon_key,
prs_cp_naam_full,
prs_cp_naam_friendly,
prs_cp_naam_full_comp,
prs_cp_naam_friendly_comp,
prs_perslid_key
)
AS
SELECT p.prs_contactpersoon_key,
p.prs_contactpersoon_naam
|| DECODE (p.prs_contactpersoon_voorletters,
NULL, '',
', ' || p.prs_contactpersoon_voorletters)
|| DECODE (p.prs_contactpersoon_tussenv,
NULL, '',
' ' || p.prs_contactpersoon_tussenv)
|| DECODE (p.prs_contactpersoon_voornaam,
NULL, '',
' (' || p.prs_contactpersoon_voornaam || ')')
prs_cp_naam_full,
DECODE (p.prs_contactpersoon_voornaam,
NULL, '',
p.prs_contactpersoon_voornaam || ' ')
|| DECODE (p.prs_contactpersoon_tussenv,
NULL, '',
p.prs_contactpersoon_tussenv || ' ')
|| p.prs_contactpersoon_naam
prs_cp_naam_friendly,
p.prs_contactpersoon_naam
|| DECODE (p.prs_contactpersoon_voorletters,
NULL, '',
', ' || p.prs_contactpersoon_voorletters)
|| DECODE (p.prs_contactpersoon_tussenv,
NULL, '',
' ' || p.prs_contactpersoon_tussenv)
|| DECODE (p.prs_contactpersoon_voornaam,
NULL, '',
' (' || p.prs_contactpersoon_voornaam || ')')
|| DECODE (b.prs_bedrijf_naam,
NULL, '',
' [' || b.prs_bedrijf_naam || ']')
prs_cp_naam_full_comp,
DECODE (p.prs_contactpersoon_voornaam,
NULL, '',
p.prs_contactpersoon_voornaam || ' ')
|| DECODE (p.prs_contactpersoon_tussenv,
NULL, '',
p.prs_contactpersoon_tussenv || ' ')
|| p.prs_contactpersoon_naam
|| DECODE (b.prs_bedrijf_naam,
NULL, '',
' [' || b.prs_bedrijf_naam || ']')
prs_cp_naam_friendly_comp,
p.prs_perslid_key
FROM prs_contactpersoon p, prs_bedrijf b
WHERE b.prs_bedrijf_key = p.prs_bedrijf_key;
CREATE OR REPLACE FORCE VIEW pchd_v_rap_afdeling_nieuw
(
afdeling,
afdeling_omschrijving,
aanmaakdatum,
verwijderdatum,
onderdeel_van,
bu_omschrijving,
bedrijf
)
AS
SELECT a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
a.prs_afdeling_aanmaak,
a.prs_afdeling_verwijder,
(SELECT o.prs_afdeling_naam
FROM prs_afdeling o
WHERE o.prs_afdeling_key = a.prs_afdeling_parentkey)
AS onderdeel_van,
(SELECT o.prs_afdeling_omschrijving
FROM prs_afdeling o
WHERE o.prs_afdeling_key = a.prs_afdeling_parentkey)
AS bu_omschrijving,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key)
AS bedrijf
FROM prs_afdeling a
WHERE TRUNC (a.prs_afdeling_aanmaak) = TRUNC (SYSDATE) - 1
AND (SELECT o.prs_afdeling_omschrijving -- Bij nader inzicht toch enkel de BU's ipv alle afdelingen
FROM prs_afdeling o
WHERE o.prs_afdeling_key = a.prs_afdeling_parentkey) IS NULL
AND prs_afdeling_verwijder IS NULL;
CREATE OR REPLACE VIEW pchd_v_noti_afdeling_nieuw
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT DISTINCT
'CUST04' AS code,
NULL,
781, -- Callan Stinkens
'Nieuwe afdelingen aangemaakt',
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE UPPER (fac_usrrap_view_name) = 'PCHD_V_RAP_AFDELING_NIEUW')
rapportnr,
NULL
FROM DUAL
WHERE (SELECT COUNT ( * ) FROM pchd_v_rap_afdeling_nieuw) > 0;
CREATE OR REPLACE VIEW pchd_v_rap_catresscherm
AS
SELECT x.row_num, r.*
FROM ( SELECT ROW_NUMBER ()
OVER (ORDER BY datum DESC,
voorziening_van ASC,
ruimte,
nummer)
row_num,
datum,
voorziening_van,
nummer,
locatie,
gebouw,
verdieping,
ruimte
FROM res_v_udr_reserveringincl
WHERE voorziening_van IS NOT NULL
GROUP BY datum,
voorziening_van,
nummer,
locatie,
gebouw,
verdieping,
ruimte) x, res_v_udr_reserveringincl r
WHERE r.nummer = x.nummer
AND r.locatie = x.locatie
AND r.gebouw = x.gebouw
AND r.verdieping = x.verdieping
AND r.ruimte = x.ruimte
AND r.voorziening_van = x.voorziening_van
AND r.voorziening_van IS NOT NULL
--AND r.datum = SYSDATE
AND r.bostatus = 'Geregistreerd'
ORDER BY x.row_num;
--PCHD#61367: Rapportage met taken, ook niet geplande taken tonen
CREATE OR REPLACE VIEW pchd_v_rap_deelinspect
(
deel_key,
discipline,
soort,
groep,
soortcode,
omschrijving,
plaatseigenaar,
plaatseigenaartype,
plaatsaanduiding,
eigenaar,
eigenaar_key,
opmerking,
regio,
district,
locatie_code,
locatie_omschrijving,
locatie_plaats,
gebouwcode,
gebouw,
terreinsectorcode,
terreinsector,
verdiepingcode,
ruimtenr,
werkplekvolgnr,
werkplek,
uitleenbaar,
uitgeleend,
res_opmerking,
beheerder,
vervaldatum,
actief,
aantal,
state,
statedate,
fclt_3d_discipline_key,
fclt_3d_afdeling_key,
fclt_3d_locatie_key,
ins_deelsrtcontrole_key,
ins_srtcontrole_key,
srtcontrole_omschrijving,
ins_deelsrtcontrole_datum,
controlemode_omschrijving,
ins_deelsrtcontrole_opmerking,
perslid,
ins_deelsrtcontrole_datum_org,
ins_deelsrtcontrole_plandatum,
deelsrtcontrole_status
)
AS
SELECT deel_key,
discipline,
soort,
groep,
soortcode,
omschrijving,
plaatseigenaar,
plaatseigenaartype,
plaatsaanduiding,
eigenaar,
eigenaar_key,
opmerking,
regio,
district,
locatie_code,
locatie_omschrijving,
locatie_plaats,
gebouwcode,
gebouw,
terreinsectorcode,
terreinsector,
verdiepingcode,
ruimtenr,
werkplekvolgnr,
werkplek,
uitleenbaar,
uitgeleend,
res_opmerking,
beheerder,
vervaldatum,
actief,
aantal,
state,
statedate,
fclt_3d_discipline_key,
fclt_3d_afdeling_key,
fclt_3d_locatie_key,
ins_deelsrtcontrole_key,
ins_srtcontrole_key,
srtcontrole_omschrijving,
ins_deelsrtcontrole_datum,
controlemode_omschrijving,
ins_deelsrtcontrole_opmerking,
perslid,
ins_deelsrtcontrole_datum_org,
ins_deelsrtcontrole_plandatum,
deelsrtcontrole_status
FROM ins_v_udr_deelinspect
UNION ALL
SELECT ud.deel_key,
ud.discipline,
ud.soort,
ud.groep,
ud.soortcode,
ud.omschrijving,
ud.plaatseigenaar,
ud.plaatseigenaartype,
ud.plaatsaanduiding,
ud.eigenaar,
ud.eigenaar_key,
ud.opmerking,
ud.regio,
ud.district,
ud.locatie_code,
ud.locatie_omschrijving,
ud.locatie_plaats,
ud.gebouwcode,
ud.gebouw,
ud.terreinsectorcode,
ud.terreinsector,
ud.verdiepingcode,
ud.ruimtenr,
ud.werkplekvolgnr,
ud.werkplek,
ud.uitleenbaar,
ud.uitgeleend,
ud.res_opmerking,
ud.beheerder,
ud.vervaldatum,
ud.actief,
ud.aantal,
ud.state,
ud.statedate,
ud.fclt_3d_discipline_key,
ud.fclt_3d_afdeling_key,
ud.fclt_3d_locatie_key,
NULL,
sc.ins_srtcontrole_key,
sc.ins_srtcontrole_omschrijving,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
FROM ins_v_udr_deel ud,
ins_deel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline disc,
ins_srtcontrole sc
WHERE d.ins_deel_key = ud.deel_key
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
AND ( (sd.ins_srtdeel_key = sc.ins_srtinstallatie_key
AND ins_srtcontrole_niveau = 'S')
OR (sg.ins_srtgroep_key = sc.ins_srtinstallatie_key
AND ins_srtcontrole_niveau = 'G')
OR (disc.ins_discipline_key = sc.ins_srtinstallatie_key
AND ins_srtcontrole_niveau = 'D'))
AND d.ins_deel_key || '-' || sc.ins_srtcontrole_key NOT IN --Hiermee selecteren we hier de objecten die nog niet zijn ingepland.
(SELECT ins_deel_key || '-' || ins_srtcontrole_key
FROM ins_deelsrtcontrole);
------ 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