-- -- $Id$ -- -- Script containing customer specific db-configuration for WEHK. DEFINE thisfile = 'WEHK.SQL' DEFINE dbuser = '^WEHK' 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 ------ /* Formatted on 4-4-2012 16:44:36 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW wehk_v_import_log AS SELECT imp_log_status fclt_f_status, imp_log_omschrijving omschrijving, imp_log_hint opmerking FROM imp_log l WHERE l.fac_import_key = (SELECT MAX (fac_import_key) FROM fac_import WHERE fac_import_app_key = 29); CREATE OR REPLACE PROCEDURE wehk_import_prs ( p_import_key IN NUMBER ) IS c_fielddelimitor VARCHAR2 (1) := ';'; v_newline VARCHAR2 (1000); -- Input line v_errormsg VARCHAR (1000); v_errorhint VARCHAR (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count NUMBER; v_ongeldig NUMBER(1); v_mode NUMBER(1); v_aanduiding VARCHAR (200); v_all_null BOOLEAN; v_count_error NUMBER(10); v_count_tot NUMBER(10); v_count_import NUMBER(10); v_position NUMBER(10); -- De importvelden: v_alg_locatie_code VARCHAR2(256); v_alg_gebouw_code VARCHAR2(256); v_alg_verdieping_volgnr VARCHAR2(256); v_prs_afdeling_naam VARCHAR2(256); v_prs_perslid_naam VARCHAR2(256); v_prs_perslid_naam_all VARCHAR2(256); v_prs_perslid_voornaam VARCHAR2(256); v_prs_perslid_titel VARCHAR2(256); v_prs_perslid_voorletters VARCHAR2(256); v_prs_perslid_mobiel VARCHAR2(256); v_prs_perslid_email VARCHAR2(256); v_prs_srtperslid_omschrijving VARCHAR2(256); v_prs_perslid_nr VARCHAR2(256); v_prs_perslid_oslogin VARCHAR2(256); v_prs_perslid_telefoonnr VARCHAR2(256); -- De importvelden: v_alg_verdieping_volgnr_num NUMBER(3); v_alg_ruimte_nr VARCHAR2(256); v_prs_werkplek_volgnr VARCHAR2(256); v_prs_perslid_tussenvoegsel VARCHAR2(256); -- PRS_BEDRIJF CURSOR c1(p_import_key NUMBER) IS SELECT * FROM fac_imp_file WHERE 1=1 AND fac_import_key = p_import_key ORDER BY fac_imp_file_index; rec1 c1%ROWTYPE; BEGIN DELETE FROM wehk_imp_prs; v_count_error := 0; v_count_tot := 0; v_count_import := 0; v_aanduiding := ''; OPEN c1(p_import_key); IF (c1%ISOPEN) THEN LOOP BEGIN v_errormsg := 'Fout FETCH te importeren rij'; FETCH c1 INTO rec1; EXIT WHEN c1%NOTFOUND; IF (v_count_tot = 0) THEN FETCH c1 INTO rec1; EXIT WHEN c1%NOTFOUND; END IF; -- Sla eerste regel van het importbestand over v_newline := rec1. fac_imp_file_line; v_count_tot := v_count_tot + 1; v_errormsg := ''; v_errorhint := 'Fout opvragen te importeren rij'; v_aanduiding := ''; v_ongeldig := 0; IF (1=0) THEN fac.imp_writelog (p_import_key, 'E', v_aanduiding||'Ongeldig importbestand', 'Toelichting: ... ' ); ELSE -- Lees alle veldwaarden -- 01 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_alg_locatie_code ); -- 02 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_alg_gebouw_code ); -- 03 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_alg_verdieping_volgnr ); -- 04 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_alg_ruimte_nr ); -- 05 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_prs_afdeling_naam ); -- 06 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_prs_perslid_naam_all ); -- 07 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_prs_perslid_voornaam ); -- 08 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_prs_perslid_titel ); -- 09 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_prs_perslid_telefoonnr ); -- 10 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_prs_perslid_mobiel ); -- 11 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_prs_perslid_email ); -- 12 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_prs_srtperslid_omschrijving ); -- 13 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_prs_perslid_nr ); -- 14 fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_prs_perslid_oslogin ); v_aanduiding := v_prs_perslid_naam_all||' - '; -- Controleer alle veldwaarde v_errorhint := 'Ongeldige locatie code'; v_alg_locatie_code := trim(v_alg_locatie_code); IF LENGTH (v_alg_locatie_code) > 5 THEN v_alg_locatie_code:= SUBSTR(v_alg_locatie_code,1,5); fac.imp_writelog(p_import_key ,'W' ,v_aanduiding||'Locatie-aanduiding is te lang' ,'Aanduiding wordt afgebroken tot <' || v_alg_locatie_code || '>' ); END IF; -- v_errorhint := 'Ongeldige gebouw code'; v_alg_gebouw_code := trim(v_alg_gebouw_code); IF LENGTH (v_alg_gebouw_code) > 10 THEN v_alg_gebouw_code:= SUBSTR(v_alg_gebouw_code,1,10); fac.imp_writelog(p_import_key ,'W' ,v_aanduiding||'Gebouw-aanduiding is te lang' ,'Aanduiding wordt afgebroken tot <' || v_alg_gebouw_code || '>' ); END IF; -- v_errorhint := 'Ongeldig verdieping volgnummer'; v_alg_verdieping_volgnr := trim(v_alg_verdieping_volgnr); IF (v_alg_verdieping_volgnr IS NULL) THEN v_alg_verdieping_volgnr_num := TO_NUMBER(v_alg_verdieping_volgnr); ELSE BEGIN v_alg_verdieping_volgnr_num:= TO_NUMBER(v_alg_verdieping_volgnr); EXCEPTION WHEN OTHERS THEN v_ongeldig := 1; 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 ); END; END IF; -- v_errorhint := 'Ongeldige ruimte nr'; v_alg_ruimte_nr := trim(v_alg_ruimte_nr); IF LENGTH (v_alg_ruimte_nr) > 10 THEN v_alg_ruimte_nr:= SUBSTR(v_alg_ruimte_nr,1,10); fac.imp_writelog(p_import_key ,'W' ,v_aanduiding||'Ruimtenr-aanduiding is te lang' ,'Aanduiding wordt afgebroken tot <' || v_alg_ruimte_nr || '>' ); END IF; -- v_errorhint := 'Afleiden naam niet succesvol'; -- Markeer de positie van ',' of anders positie 257 (dwz geen komma) SELECT DECODE (INSTR (v_prs_perslid_naam_all, ','), 0, 257, INSTR (v_prs_perslid_naam_all, ',') ) INTO v_position FROM DUAL; -- SELECT SUBSTR (v_prs_perslid_naam_all, 1, v_position - 1 ) INTO v_prs_perslid_naam FROM DUAL; -- v_position + 2 --> komma overslaan SELECT TRIM(SUBSTR (v_prs_perslid_naam_all, v_position + 1)) INTO v_prs_perslid_naam_all FROM DUAL; -- v_errorhint := 'Ongeldige naam persoon'; 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 persoon is te lang' ,'Aanduiding 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' ,'Persoon heeft geen achternaam, personeelsnummer: '||v_prs_perslid_nr ,'Naam persoon moet worden opgegeven' ); END IF; END IF; v_errorhint := 'Afleiden voorletters niet succesvol'; -- Markeer de positie van ' ' (spatie) of anders positie 257 (dwz geen spatie) SELECT DECODE (INSTR (v_prs_perslid_naam_all, ' '), 0, 257, INSTR (v_prs_perslid_naam_all, ' ') ) INTO v_position FROM DUAL; -- SELECT SUBSTR (v_prs_perslid_naam_all, 1, v_position - 1 ) INTO v_prs_perslid_voorletters FROM DUAL; -- v_position + 2 --> spatie overslaan SELECT SUBSTR (v_prs_perslid_naam_all, v_position + 1) INTO v_prs_perslid_naam_all FROM DUAL; -- v_errorhint := 'Ongeldige voorletters persoon'; v_prs_perslid_voorletters := trim(v_prs_perslid_voorletters); IF LENGTH (v_prs_perslid_voorletters) > 10 THEN v_prs_perslid_voorletters:= SUBSTR(v_prs_perslid_voorletters,1,10); fac.imp_writelog(p_import_key ,'W' ,v_aanduiding||'Voorletters persoon zijn te lang' ,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_voorletters || '>' ); END IF; -- v_errorhint := 'Ongeldige tussenvoegsel persoon'; v_prs_perslid_tussenvoegsel := trim(v_prs_perslid_naam_all); 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 persoon is te lang' ,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_tussenvoegsel || '>' ); END IF; -- v_errorhint := 'Voornaam persoon'; 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 persoon is te lang' ,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_voornaam || '>' ); ELSE IF (v_prs_perslid_voornaam IS NULL) THEN v_errorhint := 'Geen voornaam gevonden, is ook niet verplicht'; END IF; END IF; -- v_errorhint := 'Ongeldige titel persoon'; v_prs_perslid_titel := trim(v_prs_perslid_titel); IF LENGTH (v_prs_perslid_titel) > 15 THEN v_prs_perslid_titel:= SUBSTR(v_prs_perslid_titel,1,15); fac.imp_writelog(p_import_key ,'W' ,v_aanduiding||'Titel persoon is te lang' ,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_titel || '>' ); END IF; -- v_errorhint := 'Ongeldige telefoonnr. persoon'; v_prs_perslid_telefoonnr := trim(v_prs_perslid_telefoonnr); IF LENGTH (v_prs_perslid_telefoonnr) > 15 THEN v_prs_perslid_telefoonnr:= SUBSTR(v_prs_perslid_telefoonnr,1,15); fac.imp_writelog(p_import_key ,'W' ,v_aanduiding||'Telefoonnr. persoon is te lang' ,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_telefoonnr || '>' ); END IF; -- v_errorhint := 'Ongeldige mobielnr. persoon'; v_prs_perslid_mobiel := trim(v_prs_perslid_mobiel); IF LENGTH (v_prs_perslid_mobiel) > 15 THEN v_prs_perslid_mobiel:= SUBSTR(v_prs_perslid_mobiel,1,15); fac.imp_writelog(p_import_key ,'W' ,v_aanduiding||'Mobielnr. persoon is te lang' ,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_mobiel || '>' ); END IF; -- v_errorhint := 'Ongeldige email persoon'; 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||'Email persoon is te lang' ,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_email || '>' ); END IF; -- v_errorhint := 'Ongeldige functie persoon'; v_prs_srtperslid_omschrijving := trim(v_prs_srtperslid_omschrijving); IF LENGTH (v_prs_srtperslid_omschrijving) > 30 THEN v_prs_srtperslid_omschrijving:= SUBSTR(v_prs_srtperslid_omschrijving,1,30); fac.imp_writelog(p_import_key ,'W' ,v_aanduiding||'Functie-aanduiding persoon is te lang' ,'Aanduiding wordt afgebroken tot <' || v_prs_srtperslid_omschrijving || '>' ); ELSE IF (v_prs_srtperslid_omschrijving IS NULL) THEN v_ongeldig := 1; fac.imp_writelog(p_import_key ,'E' ,v_aanduiding||'Functie persoon onbekend' ,'Functie persoon moet worden opgegeven' ); END IF; END IF; -- v_errorhint := 'Ongeldige persoonnr.'; v_prs_perslid_nr := trim(v_prs_perslid_nr); IF LENGTH (v_prs_perslid_nr) > 16 THEN v_prs_perslid_nr := SUBSTR(v_prs_perslid_nr,1,16); fac.imp_writelog(p_import_key ,'W' ,v_aanduiding||'Persoonnr. persoon is te lang' ,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_nr || '>' ); END IF; -- IF v_prs_perslid_nr IS NULL THEN v_prs_perslid_nr := SUBSTR(v_prs_perslid_nr,1,16); fac.imp_writelog(p_import_key ,'E' ,v_aanduiding||'Persoonnr. persoon is te lang' ,'Persoon heeft geen personeelsnummer <' || v_prs_perslid_naam || '>' ); END IF; -- v_errorhint := 'Ongeldige 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 persoon is te lang' ,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_oslogin || '>' ); END IF; -- -- Insert geformatteerde import record IF v_ongeldig = 0 THEN v_errormsg := 'Fout bij toevoegen te importeren persoon'; INSERT INTO wehk_imp_prs ( ALG_LOCATIE_CODE ,ALG_GEBOUW_CODE ,ALG_VERDIEPING_VOLGNR ,ALG_RUIMTE_NR ,PRS_AFDELING_NAAM ,PRS_PERSLID_NAAM ,PRS_PERSLID_VOORNAAM ,PRS_PERSLID_VOORLETTERS ,PRS_PERSLID_TUSSENVOEGSEL ,PRS_PERSLID_TITEL ,PRS_PERSLID_TELEFOONNR ,PRS_PERSLID_MOBIEL ,PRS_PERSLID_EMAIL ,PRS_SRTPERSLID_OMSCHRIJVING ,PRS_PERSLID_NR ,PRS_PERSLID_OSLOGIN ) VALUES ( v_ALG_LOCATIE_CODE ,v_ALG_GEBOUW_CODE ,v_ALG_VERDIEPING_VOLGNR ,v_ALG_RUIMTE_NR ,v_PRS_AFDELING_NAAM ,v_PRS_PERSLID_NAAM ,v_PRS_PERSLID_VOORNAAM ,v_PRS_PERSLID_VOORLETTERS ,v_PRS_PERSLID_TUSSENVOEGSEL --,DECODE(v_PRS_PERSLID_TITEL,'M','De heer',DECODE(v_PRS_PERSLID_TITEL,'V','Mevrouw',v_PRS_PERSLID_TITEL)) ,v_PRS_PERSLID_TITEL ,v_PRS_PERSLID_TELEFOONNR ,v_PRS_PERSLID_MOBIEL ,v_PRS_PERSLID_EMAIL ,v_PRS_SRTPERSLID_OMSCHRIJVING ,v_PRS_PERSLID_NR ,v_PRS_PERSLID_OSLOGIN ); v_count_import := v_count_import + 1; END IF; END IF; END; END LOOP; END IF; fac.imp_writelog ( p_import_key, 'S', 'Persoon: aantal ingelezen regels: '||to_char(v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'Persoon: aantal ingelezen ongeldige importregels: '||to_char(v_count_tot - v_count_import), '' ); 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 ); END wehk_import_prs; / CREATE OR REPLACE PROCEDURE wehk_update_prs ( p_import_key IN NUMBER ) IS c_fielddelimitor VARCHAR2 (1) := ';'; c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: '; -- Groep waar personen in geplaatst worden (indien nog geen groep) c_groep_upper VARCHAR2 (30) := 'ALGEMEEN'; c_profiel_oms VARCHAR2 (30) := 'ALGEMEEN'; v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); v_percentage NUMBER; v_count NUMBER (10); v_count2 NUMBER (10); v_count_prev_log NUMBER (10); v_ongeldig NUMBER (1); v_count_update NUMBER (10); v_count_error NUMBER (10); v_count_tot NUMBER (10); -- v_perslid_key NUMBER (10); v_afdeling_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_volgnr NUMBER (3); v_wp_oms VARCHAR2 (30); v_wp_key NUMBER (10); v_groep_key NUMBER (10); v_profiel_key NUMBER (10); CURSOR csperslid IS SELECT MIN (prs_perslid_naam) prs_perslid_naam, MIN (prs_perslid_voornaam) prs_perslid_voornaam, MIN (prs_srtperslid_omschrijving) prs_srtperslid_omschrijving FROM wehk_imp_prs WHERE 1 = 1 GROUP BY UPPER (prs_srtperslid_omschrijving); recsperslid csperslid%ROWTYPE; CURSOR cperslid IS SELECT * FROM wehk_imp_prs WHERE 1 = 1; recperslid cperslid%ROWTYPE; CURSOR cpersliddel IS SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam, p.prs_perslid_voornaam FROM prs_v_aanwezigperslid p WHERE p.prs_perslid_nr IS NOT NULL AND NOT EXISTS ( SELECT 1 FROM wehk_imp_prs ip WHERE UPPER (ip.prs_perslid_nr) = UPPER (p.prs_perslid_nr)); recpersliddel cpersliddel%ROWTYPE; -- Sluit personen uit die niet in Facilitor voorkomen. Deze konden kennelijk bij de ADD -- actie niet worden toegevoegd waarvoor waarschijnlijk al een logmelding gegenereerd is, -- vandaar dus uitsluiten van deelname. CURSOR cwp IS SELECT wip.*, TO_NUMBER (NULL) prs_werkplek_volgnr, '' prs_werkplek_omschrijving FROM wehk_imp_prs wip, (SELECT prs_perslid_nr FROM prs_perslid WHERE prs_perslid_verwijder IS NULL) p WHERE 1 = 1 AND p.prs_perslid_nr = wip.prs_perslid_nr AND ( (wip.alg_locatie_code IS NOT NULL) OR (wip.alg_gebouw_code IS NOT NULL) OR (wip.alg_verdieping_volgnr IS NOT NULL) OR (wip.alg_ruimte_nr IS NOT NULL) ); recwp cwp%ROWTYPE; -- Alle personen met nummer (ie. de import-doelgroep) niet in een groep -- komen in ALGEMEEN. CURSOR cnogroup IS SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam, p.prs_perslid_voornaam FROM prs_v_aanwezigperslid p WHERE p.prs_perslid_nr IS NOT NULL AND NOT EXISTS (SELECT 1 FROM fac_gebruikersgroep g WHERE g.prs_perslid_key = p.prs_perslid_key); BEGIN v_count_prev_log := 1; -- Aantal aktieve personen SELECT DECODE (COUNT (*), 0, 1, COUNT (*)) INTO v_count FROM prs_perslid p WHERE 1 = 1 AND p.prs_perslid_verwijder IS NULL AND p.prs_perslid_naam NOT LIKE '%INACTIEF%'; -- Aantal personen importbestand SELECT DECODE (COUNT (*), 0, 1, COUNT (*)) INTO v_count2 FROM wehk_imp_prs p WHERE 1 = 1 AND p.prs_perslid_nr IS NULL; v_percentage := (v_count2 / v_count2) * 100; IF ( ((v_percentage < 80) OR (v_percentage > 120)) AND (v_count_prev_log > 0) ) THEN fac.imp_writelog (p_import_key, 'E', 'Het verschil tussen de actieve personen (' || v_count || ') en te importeren aantallen (' || v_count || ') is te groot, zie specificaties', 'Afwijking (' || v_percentage || ')' ); ELSE v_errorhint := 'Fout bij bepalen profiel'; SELECT MAX (fac_profiel_key), COUNT ( * ) INTO v_profiel_key, v_count FROM fac_profiel WHERE UPPER (TRIM (fac_profiel_omschrijving)) = c_profiel_oms; IF (v_count = 0) THEN fac.imp_writelog ( p_import_key, 'I', 'Standaard profiel [' || c_profiel_oms || '] niet gevonden.', 'Personen zonder profiel kunnen niet worden gekoppeld aan een profiel.' ); COMMIT; END IF; OPEN csperslid; v_count_update := 0; v_count_tot := 0; v_count_error := 0; IF csperslid%ISOPEN THEN LOOP BEGIN v_aanduiding := ''; v_errormsg := ''; v_errorhint := ''; FETCH csperslid INTO recsperslid; EXIT WHEN csperslid%NOTFOUND; v_count_tot := v_count_tot + 1; v_aanduiding := recsperslid.prs_perslid_naam || '|' || recsperslid.prs_perslid_voornaam || '|' || 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; 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 := ' (ORACLE error number = <' || oracle_err_num || '> ORACLE error message = <' || 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', 'Personeelsfunctie: verwerkte regels zonder foutmelding: ' || TO_CHAR (v_count_tot - v_count_error), '' ); fac.imp_writelog (p_import_key, 'S', 'Personeelsfunctie: verwerkte regels met foutmelding: ' || TO_CHAR (v_count_error), '' ); COMMIT; CLOSE csperslid; END IF; OPEN cperslid; v_count_update := 0; v_count_tot := 0; v_count_error := 0; IF cperslid%ISOPEN THEN LOOP BEGIN v_aanduiding := ''; v_errormsg := ''; v_errorhint := ''; FETCH cperslid INTO recperslid; EXIT WHEN cperslid%NOTFOUND; v_count_tot := v_count_tot + 1; v_aanduiding := recperslid.prs_perslid_naam || '|' || recperslid.prs_perslid_naam || ' - '; v_errormsg := ''; v_errorhint := 'Fout bij bepalen functie'; 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 := 'Afdeling [' || recperslid.prs_afdeling_naam || '] bestaat niet | personeelsnummer [' || recperslid.prs_perslid_nr || ']'; SELECT prs_afdeling_key INTO v_afdeling_key FROM prs_afdeling WHERE UPPER (prs_afdeling_naam) = UPPER (recperslid.prs_afdeling_naam) AND prs_afdeling_verwijder IS NULL; v_errorhint := 'Kijken of de persoon al bestaat'; SELECT COUNT (*), MAX (prs_perslid_key) INTO v_count, v_perslid_key FROM prs_perslid WHERE prs_perslid_verwijder IS NULL AND prs_perslid_nr = recperslid.prs_perslid_nr AND prs_perslid_nr IS NOT NULL; 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_naam, prs_perslid_voorletters, prs_perslid_tussenvoegsel, prs_perslid_voornaam, prs_perslid_telefoonnr, prs_perslid_mobiel, prs_perslid_email, prs_perslid_nr, prs_perslid_titel, prs_perslid_geslacht, prs_perslid_oslogin, fac_profiel_key ) VALUES ('PRS', v_srtperslid_key, v_afdeling_key, recperslid.prs_perslid_naam, recperslid.prs_perslid_voorletters, recperslid.prs_perslid_tussenvoegsel, recperslid.prs_perslid_voornaam, recperslid.prs_perslid_telefoonnr, recperslid.prs_perslid_mobiel, recperslid.prs_perslid_email, recperslid.prs_perslid_nr, --recperslid.prs_perslid_titel, DECODE(UPPER(recperslid.prs_perslid_titel),'M','De heer','V','Mevrouw',recperslid.prs_perslid_titel), DECODE(UPPER(recperslid.prs_perslid_titel),'M',1,'V',0,NULL), recperslid.prs_perslid_oslogin, v_profiel_key ); COMMIT; v_count_update := v_count_update + 1; ELSE UPDATE prs_perslid SET prs_srtperslid_key = v_srtperslid_key, prs_afdeling_key = v_afdeling_key, prs_perslid_naam = recperslid.prs_perslid_naam, prs_perslid_voorletters = recperslid.prs_perslid_voorletters, prs_perslid_tussenvoegsel = recperslid.prs_perslid_tussenvoegsel, prs_perslid_voornaam = recperslid.prs_perslid_voornaam, prs_perslid_telefoonnr = recperslid.prs_perslid_telefoonnr, prs_perslid_mobiel = recperslid.prs_perslid_mobiel, prs_perslid_email = recperslid.prs_perslid_email, --prs_perslid_titel = recperslid.prs_perslid_titel, prs_perslid_titel = DECODE(UPPER(recperslid.prs_perslid_titel),'M','De heer','V','Mevrouw',recperslid.prs_perslid_titel), prs_perslid_geslacht = DECODE(UPPER(recperslid.prs_perslid_titel),'M',1,'V',0,NULL), prs_perslid_oslogin = recperslid.prs_perslid_oslogin, fac_profiel_key = COALESCE (fac_profiel_key, v_profiel_key) WHERE prs_perslid_key = v_perslid_key; COMMIT; v_count_update := v_count_update + 1; 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 := ' (ORACLE error number = <' || oracle_err_num || '> ORACLE error message = <' || 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), '' ); CLOSE cperslid; END IF; OPEN cwp; v_count_update := 0; v_count_tot := 0; v_count_error := 0; IF cwp%ISOPEN THEN COMMIT; LOOP BEGIN v_aanduiding := ''; v_errormsg := ''; v_errorhint := ''; FETCH cwp INTO recwp; EXIT WHEN cwp%NOTFOUND; -- Geen werkplekken meer? v_count_tot := v_count_tot + 1; v_aanduiding := recwp.alg_locatie_code || '|' || recwp.alg_gebouw_code || '|' || recwp.alg_verdieping_volgnr || '|' || recwp.alg_ruimte_nr || '|' || recwp.prs_perslid_nr || ' - '; v_errormsg := ''; v_errorhint := 'Fout bij bepalen persoon [' || recwp.prs_perslid_nr || ']'; SELECT prs_perslid_key INTO v_perslid_key FROM prs_perslid WHERE prs_perslid_verwijder IS NULL AND prs_perslid_nr = recwp.prs_perslid_nr AND prs_perslid_nr IS NOT NULL; v_errorhint := 'Fout bij bepalen locatie'; SELECT alg_locatie_key INTO v_locatie_key FROM alg_v_aanweziglocatie WHERE UPPER (alg_locatie_code) = UPPER (recwp.alg_locatie_code) AND alg_locatie_verwijder IS NULL; v_errorhint := 'Fout bij bepalen gebouw [' || recwp.alg_gebouw_code || ']'; SELECT alg_gebouw_key INTO v_gebouw_key FROM alg_v_aanweziggebouw WHERE UPPER (alg_gebouw_code) = UPPER (recwp.alg_gebouw_code) AND alg_locatie_key = v_locatie_key; v_errorhint := 'Fout bij bepalen verdieping'; SELECT alg_verdieping_key INTO v_verdieping_key FROM alg_v_aanwezigverdieping WHERE alg_gebouw_key = v_gebouw_key AND alg_verdieping_volgnr = recwp.alg_verdieping_volgnr AND alg_verdieping_verwijder IS NULL; v_errorhint := 'Fout bij bepalen ruimte [' || TO_CHAR (recwp.alg_ruimte_nr) || ']'; SELECT alg_ruimte_key INTO v_ruimte_key FROM alg_v_aanwezigruimte WHERE alg_verdieping_key = v_verdieping_key AND UPPER (alg_ruimte_nr) = UPPER (recwp.alg_ruimte_nr); v_errorhint := 'Fout bij verhuizen naar nieuwe werkplek'; PRS.movetoruimte (v_perslid_key, v_ruimte_key, 'G'); EXCEPTION WHEN OTHERS THEN v_count_error := v_count_error + 1; oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := ' (ORACLE error number = <' || oracle_err_num || '> ORACLE error message = <' || oracle_err_mes || '>)'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, v_errorhint ); COMMIT; END; END LOOP; -- Volgende werkplek ... fac.imp_writelog (p_import_key, 'S', 'Werkplek: verwerkte regels zonder foutmelding: ' || TO_CHAR (v_count_tot - v_count_error), '' ); fac.imp_writelog (p_import_key, 'S', 'Werkplek: verwerkte regels met foutmelding: ' || TO_CHAR (v_count_error), '' ); END IF; CLOSE cwp; OPEN cpersliddel; v_count_update := 0; v_count_tot := 0; v_count_error := 0; IF cpersliddel%ISOPEN THEN LOOP BEGIN v_aanduiding := ''; v_errormsg := ''; v_errorhint := ''; FETCH cpersliddel INTO recpersliddel; EXIT WHEN cpersliddel%NOTFOUND; v_count_tot := v_count_tot + 1; v_aanduiding := recpersliddel.prs_perslid_nr || '|' || recpersliddel.prs_perslid_naam || '|' || recpersliddel.prs_perslid_voornaam || ' - '; v_errorhint := 'Fout bij bepalen verplichtingen'; -- Heeft persoon actuele/toekomstige verplichtingen? SELECT COUNT (*) INTO v_count FROM prs_v_verplichting_keys r WHERE r.prs_perslid_key = recpersliddel.prs_perslid_key; IF v_count = 0 THEN v_errorhint := 'Fout bij verwijderen persoon'; UPDATE prs_perslid SET prs_perslid_verwijder = SYSDATE WHERE prs_perslid_key = recpersliddel.prs_perslid_key; fac.imp_writelog (p_import_key, 'I', 'Persoon met nummer [' || recpersliddel.prs_perslid_nr || '] en naam [' || recpersliddel.prs_perslid_naam || ', ' || recpersliddel.prs_perslid_voornaam || '] is verwijderd', 'Persoon is verwijderd' ); COMMIT; ELSE -- Staat persoon INACTIEF? SELECT COUNT (*) INTO v_count FROM prs_perslid p WHERE p.prs_perslid_naam LIKE c_persoon_inactief || '%' AND p.prs_perslid_key = recpersliddel.prs_perslid_key; IF v_count = 0 THEN v_errorhint := 'Fout bij INACTIEF maken persoon'; -- Persoon INACTIEF maken (update naam + reset oslogin) UPDATE prs_perslid SET prs_perslid_naam = SUBSTR (c_persoon_inactief || prs_perslid_naam, 1, 30 ), prs_perslid_oslogin = NULL WHERE prs_perslid_key = recpersliddel.prs_perslid_key; fac.imp_writelog (p_import_key, 'I', 'Persoon met nummer [' || recpersliddel.prs_perslid_nr || '] en naam [' || recpersliddel.prs_perslid_naam || ', ' || recpersliddel.prs_perslid_voornaam || '] is INACTIEF gemaakt', 'Persoon is INACTIEF gemaakt' ); ELSE v_errorhint := 'Fout bij INACTIEF houden persoon'; -- Persoon INACTIEF houden (reset oslogin; indien handmatig INACTIEF gemaakt) UPDATE prs_perslid SET prs_perslid_oslogin = NULL WHERE prs_perslid_naam LIKE c_persoon_inactief || '%' AND prs_perslid_oslogin IS NOT NULL; fac.imp_writelog (p_import_key, 'I', 'Persoon met nummer [' || recpersliddel.prs_perslid_nr || '] en naam [' || recpersliddel.prs_perslid_naam || ', ' || recpersliddel.prs_perslid_voornaam || '] is INACTIEF', 'Persoon is INACTIEF' ); END IF; 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 := ' (ORACLE error number = <' || oracle_err_num || '> ORACLE error message = <' || 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 verwijderen: verwerkte regels zonder foutmelding: ' || TO_CHAR (v_count_tot - v_count_error), '' ); fac.imp_writelog (p_import_key, 'S', 'Persoon verwijderen: verwerkte regels met foutmelding: ' || TO_CHAR (v_count_error), '' ); COMMIT; CLOSE cpersliddel; END IF; FOR recnogroup IN cnogroup LOOP BEGIN v_aanduiding := recnogroup.prs_perslid_nr || '|' || recnogroup.prs_perslid_naam || '|' || recnogroup.prs_perslid_voornaam || ' - '; v_errorhint := 'Fout bij bepalen groep [' || c_groep_upper || ']'; SELECT fac_groep_key INTO v_groep_key FROM fac_groep WHERE fac_groep_upper = c_groep_upper; v_errorhint := 'Fout bij koppelen persoon aan groep [' || c_groep_upper || ']'; INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key ) VALUES (v_groep_key, recnogroup.prs_perslid_key ); COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := ' (ORACLE error number = <' || oracle_err_num || '> ORACLE error message = <' || oracle_err_mes || '>)'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, v_errorhint ); COMMIT; END; END LOOP; END IF; -- Controle importbestand END wehk_update_prs; / CREATE OR REPLACE PROCEDURE wehk_import_leverancier (p_import_key IN NUMBER ) AS BEGIN fac_import_ext_bedrijf(p_import_key); END; / CREATE OR REPLACE PROCEDURE wehk_update_leverancier (p_import_key IN NUMBER ) AS BEGIN fac_update_bedrijf_body(p_import_key, 1); END; / CREATE OR REPLACE PROCEDURE wehk_processemail (pfrom IN VARCHAR2, pto IN VARCHAR2, psubject IN VARCHAR2, pbody IN VARCHAR2, psessionid IN VARCHAR2, pemailkey IN NUMBER) AS v_sender prs_perslid.prs_perslid_key%TYPE; v_melding_key mld_melding.mld_melding_key%TYPE; v_stdmelding_key mld_stdmelding.mld_stdmelding_key%TYPE; v_mld_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE; v_mld_kenmerkmelding_waarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE; errormsg fac_result.fac_result_waarde%TYPE; v_count NUMBER; v_error NUMBER; v_errormsg VARCHAR2 (100); v_from VARCHAR2 (4000); v_body VARCHAR2 (4000); BEGIN errormsg := 'Geen geldige reply'; v_error := 0; v_errormsg := ''; -- Check of dit een reply is op CUST07 waar de sender coversheet@wehk.facilitor.nl is. CASE WHEN UPPER (pto) LIKE '%COVERSHEET@%' THEN errormsg := 'Geen coversheet email gevonden.'; v_body := regexp_substr (pbody, '[A-z]*'); errormsg := 'Geen geldige reply gevonden, dit moet JA of NEE zijn.'; v_melding_key := REGEXP_SUBSTR (psubject, '[[:digit:]]{1,}', 1, 1, 'i'); errormsg := 'Error code 1.'; SELECT mld_stdmelding_key INTO v_stdmelding_key FROM mld_melding WHERE mld_melding_key = v_melding_key; errormsg := 'Error code 2.'; SELECT mld_kenmerk_key INTO v_mld_kenmerk_key FROM mld_kenmerk WHERE mld_stdmelding_key = v_stdmelding_key AND mld_srtkenmerk_key IN (1831, 1832, 1833, 1834, 1835); errormsg := 'Error code 3.'; CASE WHEN UPPER (v_body) LIKE '%JA%' THEN v_mld_kenmerkmelding_waarde := 41; WHEN UPPER (v_body) LIKE '%NEE%' THEN v_mld_kenmerkmelding_waarde := 42; END CASE; errormsg := 'Error code 4.'; INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, v_mld_kenmerk_key, -- email v_mld_kenmerkmelding_waarde) RETURNING mld_melding_key INTO v_melding_key; errormsg := 'Error code 5.'; UPDATE mld_melding SET mld_melding_status = 5 WHERE mld_melding_key = v_melding_key; errormsg := '(0x165)'; mld.setmeldingstatus (v_melding_key, 2, v_sender); END CASE; EXCEPTION WHEN OTHERS THEN INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'maillog', 'Database fout - Neem contact op met uw systeembeheerder ' || errormsg); fac.writelog ('PROCESSEMAIL', 'E', 'Mail kon niet ingelezen worden afzender:' || pfrom || '[' || errormsg || ']', 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')'); END; / /* Formatted on 2008/07/31 14:25 (Formatter Plus v4.8.7) */ CREATE OR REPLACE VIEW wehk_v_rap_ruimteoverzicht (fclt_f_locatie, fclt_f_gebouw, fclt_f_verdieping, ruimtenr, omschrijving, fclt_f_ruimtefunctie, fclt_f_vloersoort, teken_opp, fclt_f_schoonmaak, fclt_f_programma ) AS (SELECT a.alg_locatie_code, a.alg_gebouw_code, a.alg_verdieping_code, a.alg_ruimte_nr, a.alg_ruimte_omschrijving, a.ruimtefunctie, b.vloersoort, a.opp, c.schoonmaak, d.programma FROM (SELECT r.alg_ruimte_key, r.alg_ruimte_nr, r.alg_ruimte_omschrijving, v.alg_verdieping_code, g.alg_gebouw_code, l.alg_locatie_code, sr.alg_srtruimte_upper ruimtefunctie, r.alg_ruimte_bruto_vloeropp opp FROM alg_v_aanwezigruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, alg_srtruimte sr WHERE r.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 r.alg_srtruimte_key = sr.alg_srtruimte_key(+)) a LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr vloersoort FROM alg_onrgoedkenmerk ok, fac_usrdata ud WHERE ok.alg_kenmerk_key = 1020 -- vloersoort AND ok.alg_onrgoed_niveau = 'R' AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key) b ON a.alg_ruimte_key = b.alg_onrgoed_key LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr schoonmaak FROM alg_onrgoedkenmerk ok, fac_usrdata ud WHERE ok.alg_kenmerk_key = 1041 -- schoonmaak AND ok.alg_onrgoed_niveau = 'R' AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key) c ON a.alg_ruimte_key = c.alg_onrgoed_key LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr programma FROM alg_onrgoedkenmerk ok, fac_usrdata ud WHERE ok.alg_kenmerk_key = 1060 -- schoonmaakprogramma AND ok.alg_onrgoed_niveau = 'R' AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key) d ON a.alg_ruimte_key = d.alg_onrgoed_key ) / CREATE OR REPLACE VIEW wehk_v_thema_sch_prog (alg_ruimte_key, waarde) AS SELECT a.alg_ruimte_key, b.programma FROM (SELECT r.alg_ruimte_key FROM alg_v_aanwezigruimte r) a LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr programma FROM alg_onrgoedkenmerk ok, fac_usrdata ud WHERE ok.alg_kenmerk_key = 1060 -- schoonmaakprogramma AND ok.alg_onrgoed_niveau = 'R' AND ok.alg_onrgoedkenmerk_verwijder IS NULL AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key) b ON a.alg_ruimte_key = b.alg_onrgoed_key / /* Formatted on 19-8-2009 12:30:30 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW wehk_v_ophaalafleverbedr ( prs_bedrijf_key, bedrijfsgegevens ) AS SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam || ',' || COALESCE (cp.prs_contactpersoon_naam, '-') || ',' || COALESCE (cp.prs_contactpersoon_telefoon_1, cp.prs_contactpersoon_telefoon_2, '-') || ',' || COALESCE (b.prs_bedrijf_bezoek_adres, '-') || ',' || COALESCE (b.prs_bedrijf_bezoek_postcode, '-') || ' ' || COALESCE (b.prs_bedrijf_bezoek_plaats, '-') FROM prs_v_aanwezigbedrijf b, prs_v_aanwezigkenmerklink kl, prs_contactpersoon cp WHERE b.prs_bedrijf_uitvoerende = 1 AND b.prs_bedrijf_key = kl.prs_link_key AND kl.prs_kenmerk_key = 1040 -- Vervoersadres AND kl.prs_kenmerklink_waarde = 41 -- Ja AND b.prs_bedrijf_key = cp.prs_bedrijf_key(+) / /* Formatted on 27-8-2009 13:30:00 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW wehk_v_perslid_info ( prs_perslid_key, prs_perslid_info ) AS SELECT prs_perslid_key, prs_perslid_naam || DECODE (p.prs_perslid_voorletters, NULL, '', ', ' || p.prs_perslid_voorletters) || DECODE (p.prs_perslid_tussenvoegsel, NULL, '', ' ' || p.prs_perslid_tussenvoegsel) || DECODE (p.prs_perslid_voornaam, NULL, '', ' (' || p.prs_perslid_voornaam || ')') || ' / ' || a.prs_afdeling_naam || ' / ' || sp.prs_srtperslid_omschrijving prs_perslid_info FROM prs_v_aanwezigperslid p, prs_afdeling a, prs_srtperslid sp WHERE p.prs_afdeling_key = a.prs_afdeling_key(+) AND p.prs_srtperslid_key = sp.prs_srtperslid_key(+) / /* Formatted on 1-12-2009 16:44:12 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW wehk_v_rap_contractdetails ( hide_f_einddatum, hide_f_opzegdatum, cnt_nr, fclt_f_cnt_soort, fclt_f_beschrijving, mantel_nr, fclt_f_ingangsdatum, fclt_f_rappeldatum, fclt_f_opzegdatum, fclt_f_einddatum, uitvoerder, fclt_f_eigenaar, fclt_f_beheerder, cnt_bedrag, fclt_f_type_ovkomst, fclt_f_uurtarief, fclt_f_bet_cond, fclt_f_eindemnd, fclt_f_bet_term, fclt_f_lev_nr, fclt_f_korting, fclt_f_cnt_vot, fclt_f_directeur, fclt_f_ink_voorw ) AS SELECT TO_CHAR (basis.einddatum, 'yyyymmdd'), TO_CHAR (basis.opzegdatum, 'yyyymmdd'), basis.cnt_nr, basis.cnt_soort, basis.beschrijving, basis.mantel_nr, TO_CHAR (basis.ingangsdatum, 'dd-mm-yyyy'), TO_CHAR (basis.rappeldatum, 'dd-mm-yyyy'), TO_CHAR (basis.opzegdatum, 'dd-mm-yyyy'), TO_CHAR (basis.einddatum, 'dd-mm-yyyy'), basis.prs_bedrijf_naam, basis.cnt_eigenaar, basis.cnt_beheerder, REPLACE ( TO_CHAR (fac.safe_to_number (basis.bedrag), '999999990D99'), '.', ',' ), basis.type_ovkomst, REPLACE ( TO_CHAR (fac.safe_to_number (basis.cnt_contract_uurloon), '990D99'), '.', ',' ), basis.bet_cond, basis.eindemnd, basis.bet_term, basis.lev_nr, basis.korting, basis.cnt_vot, basis.directeur, basis.ink_voorw FROM (SELECT c.cnt_contract_nummer_intern cnt_nr, td.ins_discipline_omschrijving cnt_soort, c.cnt_contract_uurloon, c.cnt_contract_omschrijving beschrijving, mc.cnt_contract_nummer_intern mantel_nr, c.cnt_contract_looptijd_van ingangsdatum, cnt.cnt_getrappeldatum (c.cnt_contract_key) rappeldatum, cnt.cnt_getopzegdatum (c.cnt_contract_key) opzegdatum, c.cnt_contract_looptijd_tot einddatum, b.prs_bedrijf_naam, a.prs_afdeling_upper || '-' || a.prs_afdeling_omschrijving cnt_eigenaar, p.prs_perslid_naam_full cnt_beheerder, c.cnt_contract_kosten bedrag, (SELECT ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 241 AND fac.safe_to_number ( kc.cnt_kenmerkcontract_waarde ) = ud.fac_usrdata_key) type_ovkomst, (SELECT ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 181 AND fac.safe_to_number ( kc.cnt_kenmerkcontract_waarde ) = ud.fac_usrdata_key) bet_cond, (SELECT ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 121 AND fac.safe_to_number ( kc.cnt_kenmerkcontract_waarde ) = ud.fac_usrdata_key) eindemnd, (SELECT ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 61 AND fac.safe_to_number ( kc.cnt_kenmerkcontract_waarde ) = ud.fac_usrdata_key) bet_term, (SELECT kc.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 203) lev_nr, (SELECT ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 161 AND fac.safe_to_number ( kc.cnt_kenmerkcontract_waarde ) = ud.fac_usrdata_key) korting, (SELECT ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 202 AND fac.safe_to_number ( kc.cnt_kenmerkcontract_waarde ) = ud.fac_usrdata_key) cnt_vot, (SELECT ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 201 AND fac.safe_to_number ( kc.cnt_kenmerkcontract_waarde ) = ud.fac_usrdata_key) directeur, (SELECT ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 221 AND fac.safe_to_number ( kc.cnt_kenmerkcontract_waarde ) = ud.fac_usrdata_key) ink_voorw FROM cnt_v_aanwezigcontract c, cnt_contract mc, ins_tab_discipline td, prs_afdeling a, prs_v_perslid_fullnames p, prs_bedrijf b WHERE c.ins_discipline_key = td.ins_discipline_key AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+) AND c.prs_afdeling_key_eig = a.prs_afdeling_key AND c.prs_perslid_key_beh = p.prs_perslid_key AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) basis; /* Formatted on 12-11-2009 13:52:28 (QP5 v5.115.810.9015) */ -- PACKAGE voor WEHK specifieke rapportages! CREATE OR REPLACE PACKAGE WEHK_RAP AS TYPE t_cursor IS REF CURSOR; PROCEDURE wehk_rap_cntopeind (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE wehk_rap_cntopopzeg (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); END; / /* Formatted on 12-11-2009 13:58:28 (QP5 v5.115.810.9015) */ CREATE OR REPLACE PACKAGE BODY wehk_rap AS -- -- Algemene procedures en functies. -- -- Contracten op einddatum in een bepaalde periode. PROCEDURE wehk_rap_cntopeind (user_key IN NUMBER, p_datum_van IN VARCHAR2, -- Let wel: formaat '16-01-2006' p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT hide_f_einddatum, cnt_nr, fclt_f_cnt_soort, fclt_f_beschrijving, mantel_nr, fclt_f_ingangsdatum, fclt_f_rappeldatum, fclt_f_opzegdatum, fclt_f_einddatum, uitvoerder, fclt_f_eigenaar, fclt_f_beheerder, cnt_bedrag, fclt_f_type_ovkomst, fclt_f_bet_cond, fclt_f_eindemnd, fclt_f_bet_term, fclt_f_lev_nr, fclt_f_korting, fclt_f_cnt_vot, fclt_f_directeur, fclt_f_ink_voorw FROM wehk_v_rap_contractdetails WHERE TO_DATE (fclt_f_einddatum, 'dd-mm-yyyy') BETWEEN v_datum_van AND v_datum_tot ORDER BY hide_f_einddatum; END; -- Contracten op opzegdatum in een bepaalde periode. PROCEDURE wehk_rap_cntopopzeg (user_key IN NUMBER, p_datum_van IN VARCHAR2, -- Let wel: formaat '16-01-2006' p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT hide_f_opzegdatum, cnt_nr, fclt_f_cnt_soort, fclt_f_beschrijving, mantel_nr, fclt_f_ingangsdatum, fclt_f_rappeldatum, fclt_f_opzegdatum, fclt_f_einddatum, uitvoerder, fclt_f_eigenaar, fclt_f_beheerder, cnt_bedrag, fclt_f_type_ovkomst, fclt_f_bet_cond, fclt_f_eindemnd, fclt_f_bet_term, fclt_f_lev_nr, fclt_f_korting, fclt_f_cnt_vot, fclt_f_directeur, fclt_f_ink_voorw FROM wehk_v_rap_contractdetails WHERE TO_DATE (fclt_f_opzegdatum, 'dd-mm-yyyy') BETWEEN v_datum_van AND v_datum_tot ORDER BY hide_f_opzegdatum; END; END; / -- Contractkenmerken vullen met waarden uit Coversheet meldingen CREATE OR REPLACE PROCEDURE wehk_export_contractopvoer ( p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_filedir IN VARCHAR2, p_filename IN VARCHAR2) AS CURSOR wehk_c_opvoer -- Contracten die het meldingnummer van een coversheetmelding hebben in het kenmerkveld, conform kenmerkkeys op PRODUCTIE!!! IS SELECT DISTINCT * FROM (SELECT c.cnt_contract_key, m.mld_melding_key, mk.mld_kenmerk_key, mk.mld_kenmerkmelding_waarde, DECODE (mk.mld_kenmerk_key, 2565, 1200, 2531, 1401, 2594, 1402, 2534, 1403, 2598, 1184, 2587, 1194, 2521, 1178) cntkenmerkkey FROM cnt_contract c, mld_melding m, mld_kenmerkmelding mk, cnt_kenmerkcontract ck WHERE m.mld_melding_start_key = ck.cnt_kenmerkcontract_waarde AND ck.cnt_kenmerk_key = 1482 -- meldingsnummer AND m.mld_melding_status = 5 -- afgemeld, dus coversheet is goedgekeurd AND m.mld_stdmelding_key = 1601 -- coversheet en contract AND ck.cnt_contract_key = c.cnt_contract_key AND mk.mld_melding_key = m.mld_melding_key) sub WHERE sub.cntkenmerkkey IS NOT NULL AND NOT EXISTS -- Alleen kenmerken die nog leeg zijn (SELECT 1 FROM cnt_kenmerkcontract ck WHERE ck.cnt_contract_key = sub.cnt_contract_key AND ck.cnt_kenmerk_key = sub.cntkenmerkkey); BEGIN FOR rec IN wehk_c_opvoer LOOP INSERT INTO cnt_kenmerkcontract (cnt_contract_key, cnt_kenmerk_key, cnt_kenmerkcontract_waarde, cnt_kenmerkcontract_aanmaak, cnt_kenmerkcontract_wijzig) VALUES (rec.cnt_contract_key, rec.cntkenmerkkey, rec.mld_kenmerkmelding_waarde, SYSDATE, SYSDATE); END LOOP; END; / /* Formatted on 17-12-2009 16:10:32 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW wehk_v_rap_mld_schade ( hide_f_melddatum, fclt_f_maand, fclt_f_locatie, fclt_f_melding_nr, fclt_f_melding, fclt_f_status, fclt_f_ev_nr, fclt_f_rit_nr, fclt_f_rit_datum, vvp_waarde, fclt_f_art_oms, fclt_f_art_nr, fclt_f_eigen_risico, fclt_f_klant_nr, opkoop_waarde, fclt_f_schade_intern, fclt_f_soort_schade, fclt_f_vervoerder, finance_waarde, wehkamp_waarde ) AS SELECT m.mld_melding_datum, TO_CHAR (m.mld_melding_datum, 'yyyy-mm'), l.alg_locatie_code, TO_CHAR (m.mld_melding_key), sm.mld_stdmelding_omschrijving, s.mld_statuses_omschrijving, (SELECT km.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 543) ev_nr, (SELECT km.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 541) rit_nr, (SELECT km.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 581) rit_datum, (SELECT fac.safe_to_number (km.mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 624) vvp_waarde, (SELECT km.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 562) art_oms, (SELECT km.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 561) art_nr, (SELECT ud.fac_usrdata_omschr FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 546 AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) eigen_risico, (SELECT km.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 544) klant_nr, COALESCE ( ( SELECT SUM (fac.safe_to_number (ko.mld_kenmerkopdr_waarde)) FROM mld_kenmerkopdr ko, mld_opdr o, mld_kenmerk k WHERE ko.mld_opdr_key = o.mld_opdr_key AND o.mld_typeopdr_key = 681 AND o.mld_melding_key = m.mld_melding_key AND ko.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 623 GROUP BY ko.mld_opdr_key), (SELECT fac.safe_to_number ( REPLACE (km.mld_kenmerkmelding_waarde, ',', '.') ) FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 564) ) opkoop_waarde, COALESCE ( ( SELECT MAX (ud.fac_usrdata_omschr) FROM mld_kenmerkopdr ko, mld_opdr o, mld_kenmerk k, fac_usrdata ud WHERE ko.mld_opdr_key = o.mld_opdr_key AND o.mld_melding_key = m.mld_melding_key AND ko.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 565 AND fac.safe_to_number (ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key GROUP BY ko.mld_opdr_key), (SELECT ud.fac_usrdata_omschr FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 565 AND fac.safe_to_number ( km.mld_kenmerkmelding_waarde ) = ud.fac_usrdata_key) ) schade_intern, (SELECT km.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 425) soort_schade, (SELECT ud.fac_usrdata_omschr FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 566 AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) vervoerder, COALESCE ( ( SELECT SUM (fac.safe_to_number (ko.mld_kenmerkopdr_waarde)) FROM mld_kenmerkopdr ko, mld_opdr o, mld_kenmerk k WHERE ko.mld_opdr_key = o.mld_opdr_key AND o.mld_typeopdr_key = 681 AND o.mld_melding_key = m.mld_melding_key AND ko.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 622 GROUP BY ko.mld_opdr_key), (SELECT fac.safe_to_number ( REPLACE (km.mld_kenmerkmelding_waarde, ',', '.') ) FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 563) ) finance_waarde, COALESCE ( ( SELECT SUM (fac.safe_to_number (ko.mld_kenmerkopdr_waarde)) FROM mld_kenmerkopdr ko, mld_opdr o, mld_kenmerk k WHERE ko.mld_opdr_key = o.mld_opdr_key AND o.mld_typeopdr_key = 681 AND o.mld_melding_key = m.mld_melding_key AND ko.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 641 GROUP BY ko.mld_opdr_key), (SELECT fac.safe_to_number ( REPLACE (km.mld_kenmerkmelding_waarde, ',', '.') ) FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 569) ) wehkamp_waarde FROM mld_melding m, mld_stdmelding sm, mld_statuses s, alg_locatie l WHERE TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'yyyymm')) > 200909 AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = 621 -- schade AND m.mld_melding_status = s.mld_statuses_key AND m.mld_alg_locatie_key = l.alg_locatie_key; -- WEHK#20053 - Notificaties naar specifiek geregistreerde personen binnen de -- afdeling gedefinieerd als contracteigenaar en - indien ongedefinieerd - -- naar de persoon gedefinieerd als contractbeheerder. Tenminste, als vandaag -- is de rappeldatum! /* CREATE OR REPLACE VIEW wehk_v_noti_cntreminder ( code, sender, receiver, text, KEY, par1, par2, xkey ) AS SELECT 'CUST01', '', COALESCE (y.prs_eigenaar, x.prs_beheerder), 'Rappel: Contract ' || x.cnt_contract_nummer_intern || ' (' || x.cnt_contract_omschrijving || ' ' || x.prs_bedrijf_naam || ')' || ' moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (x.cnt_contract_key), 'dd-mm-yyyy') || ' worden verlengd of opgezegd.', x.cnt_contract_key, x.cnt_contract_nummer_intern, NULL, NULL FROM (SELECT c.prs_afdeling_key_eig afd_eigenaar, c.prs_perslid_key_beh prs_beheerder, c.cnt_contract_nummer_intern, c.cnt_contract_omschrijving, b.prs_bedrijf_naam, c.cnt_contract_key FROM cnt_v_aanwezigcontract c, prs_bedrijf b WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.cnt_contract_status = 0 --AND SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) -- AND cnt.cnt_getopzegdatum (c.cnt_contract_key) AND TRUNC ( cnt.cnt_getRappeldatum (c.cnt_contract_key) ) = TRUNC (SYSDATE)) x LEFT JOIN (SELECT kl.prs_link_key afd_eigenaar, fac.safe_to_number (kl.prs_kenmerklink_waarde) prs_eigenaar FROM prs_v_aanwezigkenmerklink kl WHERE kl.prs_kenmerk_key IN (1100, 1101, 1140) -- Eigenaar 1 + 2 + 3 AND kl.prs_kenmerklink_niveau = 'A') y ON x.afd_eigenaar = y.afd_eigenaar; */ -- WEHK#39464 - Notificaties naar Contracteigenaar functie, Contractbeheerder -- en - indien gedefineerd voor contractsoort - Contracteigenaar procurement, -- tenminste, als vandaag is de rappeldatum! /* Formatted on 4-7-2017 14:52:08 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW wehk_v_noti_cntreminder ( code, sender, receiver, text, key, xkey ) AS SELECT 'CUST01', NULL, c.prs_perslid_key_eig, 'Rappel: Contract ' || c.cnt_contract_nummer_intern || ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')' || ' moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy') || ' worden verlengd of opgezegd', c.cnt_contract_key, NULL FROM cnt_v_aanwezigcontract c, prs_bedrijf b WHERE c.prs_perslid_key_eig IS NOT NULL AND c.cnt_contract_status = 0 AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE) UNION ALL SELECT 'CUST01', NULL, c.prs_perslid_key_beh, 'Rappel: Contract ' || c.cnt_contract_nummer_intern || ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')' || ' moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy') || ' worden verlengd of opgezegd', c.cnt_contract_key, NULL FROM cnt_v_aanwezigcontract c, prs_bedrijf b WHERE c.cnt_contract_status = 0 AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE) UNION ALL SELECT 'CUST01', NULL, fac.safe_to_number (epkc.cnt_kenmerkcontract_waarde), 'Rappel: Contract ' || c.cnt_contract_nummer_intern || ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')' || ' moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy') || ' worden verlengd of opgezegd', c.cnt_contract_key, NULL FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract epkc, cnt_kenmerk epk WHERE c.cnt_contract_status = 0 AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.cnt_contract_key = epkc.cnt_contract_key AND epkc.cnt_kenmerkcontract_verwijder IS NULL AND epkc.cnt_kenmerk_key = epk.cnt_kenmerk_key AND epk.cnt_kenmerk_verwijder IS NULL AND epk.cnt_srtkenmerk_key = 301 -- Contracteigenaar procurement AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE) UNION ALL SELECT 'CUST01', NULL, fac.safe_to_number (ud.fac_usrdata_code), -- Te notificeren PRS_PERSLID_KEY voor Top50-contracten! 'Rappel: Contract ' || c.cnt_contract_nummer_intern || ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')' || ' moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy') || ' worden verlengd of opgezegd', c.cnt_contract_key, NULL FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract hotkc, cnt_kenmerk hotk, fac_usrdata ud WHERE c.cnt_contract_status = 0 AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.cnt_contract_key = hotkc.cnt_contract_key AND hotkc.cnt_kenmerkcontract_verwijder IS NULL AND hotkc.cnt_kenmerk_key = hotk.cnt_kenmerk_key AND hotk.cnt_kenmerk_verwijder IS NULL AND hotk.cnt_srtkenmerk_key = 481 -- Top50 spend AND ud.fac_usrtab_key = 741 AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE) UNION ALL SELECT sn.fac_srtnotificatie_code, NULL, c.prs_perslid_key_eig, REPLACE ( REPLACE ( REPLACE ( REPLACE (sn.fac_srtnotificatie_oms, '##NR##', c.cnt_contract_nummer_intern), '##OMS##', c.cnt_contract_omschrijving), '##BEDR##', b.prs_bedrijf_naam), '##DAT##', prkc.cnt_kenmerkcontract_waarde), c.cnt_contract_key, NULL FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract prkc, cnt_kenmerk prk, fac_srtnotificatie sn WHERE c.prs_perslid_key_eig IS NOT NULL AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.cnt_contract_status = 0 AND c.cnt_contract_key = prkc.cnt_contract_key AND prkc.cnt_kenmerkcontract_verwijder IS NULL AND prkc.cnt_kenmerk_key = prk.cnt_kenmerk_key AND prk.cnt_kenmerk_verwijder IS NULL AND prk.cnt_srtkenmerk_key = 315 -- Performance review rappeldatum AND fac.safe_to_date (prkc.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') = TRUNC (SYSDATE) AND sn.fac_srtnotificatie_code = 'CUST04' UNION ALL SELECT sn.fac_srtnotificatie_code, NULL, c.prs_perslid_key_beh, REPLACE ( REPLACE ( REPLACE ( REPLACE (sn.fac_srtnotificatie_oms, '##NR##', c.cnt_contract_nummer_intern), '##OMS##', c.cnt_contract_omschrijving), '##BEDR##', b.prs_bedrijf_naam), '##DAT##', prkc.cnt_kenmerkcontract_waarde), c.cnt_contract_key, NULL FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract prkc, cnt_kenmerk prk, fac_srtnotificatie sn WHERE c.cnt_contract_status = 0 AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.cnt_contract_key = prkc.cnt_contract_key AND prkc.cnt_kenmerkcontract_verwijder IS NULL AND prkc.cnt_kenmerk_key = prk.cnt_kenmerk_key AND prk.cnt_kenmerk_verwijder IS NULL AND prk.cnt_srtkenmerk_key = 315 -- Performance review rappeldatum AND fac.safe_to_date (prkc.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') = TRUNC (SYSDATE) AND sn.fac_srtnotificatie_code = 'CUST04' UNION ALL SELECT sn.fac_srtnotificatie_code, NULL, fac.safe_to_number (epkc.cnt_kenmerkcontract_waarde), REPLACE ( REPLACE ( REPLACE ( REPLACE (sn.fac_srtnotificatie_oms, '##NR##', c.cnt_contract_nummer_intern), '##OMS##', c.cnt_contract_omschrijving), '##BEDR##', b.prs_bedrijf_naam), '##DAT##', prkc.cnt_kenmerkcontract_waarde), c.cnt_contract_key, NULL FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract epkc, cnt_kenmerk epk, cnt_kenmerkcontract prkc, cnt_kenmerk prk, fac_srtnotificatie sn WHERE c.ins_discipline_key IN (1564, 1565) -- Non-merchandise/Inhuur! AND c.cnt_contract_status = 0 AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.cnt_contract_key = epkc.cnt_contract_key AND epkc.cnt_kenmerkcontract_verwijder IS NULL AND epkc.cnt_kenmerk_key = epk.cnt_kenmerk_key AND epk.cnt_kenmerk_verwijder IS NULL AND epk.cnt_srtkenmerk_key = 301 -- Contracteigenaar procurement AND c.cnt_contract_key = prkc.cnt_contract_key AND prkc.cnt_kenmerkcontract_verwijder IS NULL AND prkc.cnt_kenmerk_key = prk.cnt_kenmerk_key AND prk.cnt_kenmerk_verwijder IS NULL AND prk.cnt_srtkenmerk_key = 315 -- Performance review rappeldatum AND fac.safe_to_date (prkc.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') = TRUNC (SYSDATE) AND sn.fac_srtnotificatie_code = 'CUST04'; -- WEHK#56252 - Kenmerkdomein voor alleen bhvers- CREATE OR REPLACE VIEW WEHK_V_PRS_BHVNAMEN ( prs_perslid_key, prs_perslid_naam ) AS SELECT na.prs_perslid_key, na.prs_perslid_naam_friendly from prs_v_perslid_fullnames na , prs_perslid p where na.prs_perslid_key IN (Select PRS_LINK_KEY from prs_kenmerklink WHERE PRS_KENMERKLINK_WAARDE = '41' AND prs_kenmerk_key = 1120) AND na.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_verwijder is null; -- WEHK#20113 AutoClose ALLE bestellingen noti-dagen na geplande leverdatum! CREATE OR REPLACE PROCEDURE wehk_select_autoclose ( p_applname IN VARCHAR2, p_applrun IN VARCHAR2 ) AS BEGIN NULL; END; / CREATE OR REPLACE VIEW wehk_v_export_autoclose (RESULT, result_order) AS SELECT '', 0 FROM DUAL WHERE 1 = 0; / /* Formatted on 1-4-2011 14:48:18 (QP5 v5.115.810.9015) */ CREATE OR REPLACE PROCEDURE wehk_export_autoclose (p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_filedir IN VARCHAR2, p_filename IN VARCHAR2) AS CURSOR cres IS SELECT rrr.res_rsv_ruimte_key FROM res_rsv_ruimte rrr WHERE res_status_bo_key = 2 AND res_rsv_ruimte_verwijder IS NULL AND res_rsv_ruimte_van < SYSDATE - 14; CURSOR cart IS SELECT ra.res_rsv_artikel_key FROM res_rsv_artikel ra WHERE res_status_bo_key = 2 AND res_rsv_artikel_verwijder IS NULL AND res_rsv_artikel_levering < SYSDATE - 14; CURSOR cobj IS SELECT rd.res_rsv_deel_key FROM res_rsv_deel rd WHERE res_status_bo_key = 2 AND res_rsv_deel_verwijder IS NULL AND res_rsv_deel_tot < SYSDATE - 14; BEGIN FOR rc IN (SELECT boi.bes_bestelopdr_item_key, bo.bes_bestelopdr_key FROM bes_bestelopdr_item boi, bes_bestelopdr bo, bes_bestelling_item bi, bes_bestelling b, bes_srtdeel sd, bes_srtgroep sg, bes_disc_params bdp WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key AND bo.bes_bestelopdr_status = 4 -- In bestelling AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key AND bi.bes_bestelling_key = b.bes_bestelling_key AND bi.bes_srtdeel_key = sd.bes_srtdeel_key AND sd.bes_srtgroep_key = sg.bes_srtgroep_key --AND sg.ins_discipline_key = -1 AND sg.ins_discipline_key = bdp.bes_ins_discipline_key AND bdp.bes_disc_params_noti_dagen IS NOT NULL AND (b.bes_bestelling_datum IS NULL OR fac.datumtijdplusuitvoertijd ( b.bes_bestelling_leverdatum, bdp.bes_disc_params_noti_dagen, 'DAGEN' ) < SYSDATE)) LOOP UPDATE bes_bestelopdr_item SET bes_bestelopdr_item_aantalontv = bes_bestelopdr_item_aantal WHERE bes_bestelopdr_item_key = rc.bes_bestelopdr_item_key; bes.updatebestelopdrstatus (rc.bes_bestelopdr_key, NULL); COMMIT; END LOOP; FOR rc IN (SELECT bi.bes_bestelling_item_key, bi.bes_bestelling_key FROM bes_bestelling_item bi, bes_bestelopdr_item boi WHERE bi.bes_bestelling_item_aantal <> NVL (bi.bes_bestelling_item_aantalontv, 0) AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key AND boi.bes_bestelopdr_item_aantal = boi.bes_bestelopdr_item_aantalontv) LOOP UPDATE bes_bestelling_item SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal WHERE bes_bestelling_item_key = rc.bes_bestelling_item_key; bes.updatebestellingstatus (rc.bes_bestelling_key, NULL); COMMIT; END LOOP; FOR rc IN cart LOOP UPDATE res_rsv_artikel SET res_status_bo_key = 5 WHERE res_rsv_artikel_key = rc.res_rsv_artikel_key; fac.trackaction ('RESAFM', rc.res_rsv_artikel_key, NULL, NULL, NULL); COMMIT; END LOOP; FOR rc IN cobj LOOP UPDATE res_rsv_deel SET res_status_bo_key = 5 WHERE res_rsv_deel_key = rc.res_rsv_deel_key; fac.trackaction ('RESAFM', rc.res_rsv_deel_key, NULL, NULL, NULL); COMMIT; END LOOP; FOR rc IN cres LOOP UPDATE res_rsv_ruimte SET res_status_bo_key = 5 WHERE res_rsv_ruimte_key = rc.res_rsv_ruimte_key; fac.trackaction ('RESAFM', rc.res_rsv_ruimte_key, NULL, NULL, NULL); COMMIT; END LOOP; END; / -- Bevat CUST02- en CUST03-reminders naar verantwoordelijken voor inspectie -- van betreffende objecten. -- LET OP: Notificatiejob via xemail!!! -- CUST02: wekelijks mbt. over 1 tot 2 weken te keuren objecten! -- CUST03: wekelijks mbt. objecten waarvan keuringsdatum is verstreken! /* Formatted on 20-6-2013 9:58:02 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW WEHK_V_NOTI_INSPECTIEREMINDER ( code, sender, receiver, text, KEY, par1, par2, xkey, xemail, xmobile ) AS SELECT sn.fac_srtnotificatie_code code, NULL sender, NULL, --x.receiver, REPLACE ( REPLACE ( sn.fac_srtnotificatie_oms, '##SRTGROEP##', DECODE ( x.min_srtgroep_oms, x.max_srtgroep_oms, x.min_srtgroep_oms || DECODE (x.aantal, 1, '-' || max_controle_oms, ''), x.min_srtgroep_oms || ', ...' ) ), '##AANTAL##', x.aantal ) subject, x.dummy_deel_key, -- Dummy key!!! NULL, NULL, NULL, (SELECT prs_perslid_email FROM prs_perslid WHERE prs_perslid_key = x.receiver), NULL FROM ( SELECT DECODE ( o.ins_discipline_key, 1161, -- Controles -> eigenaar DECODE (o.ins_alg_ruimte_type, 'P', o.ins_alg_ruimte_key, NULL), lv.prs_perslid_key -- Rest -> locatie-verantw. ) receiver, MAX (cso.ins_srtcontrole_omschrijving) max_controle_oms, MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms, MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms, MIN (o.ins_deel_key) dummy_deel_key, COUNT (DISTINCT o.ins_deel_key) aantal FROM (SELECT scs.ins_srtinstallatie_key ins_srtdeel_key, scs.ins_srtcontrole_key, scs.ins_srtcontrole_omschrijving, scs.ins_srtcontrole_periode FROM ins_srtcontrole scs WHERE scs.ins_srtcontrole_niveau = 'S' UNION ALL SELECT sd.ins_srtdeel_key, scg.ins_srtcontrole_key, scg.ins_srtcontrole_omschrijving, scg.ins_srtcontrole_periode FROM ins_srtcontrole scg, ins_srtdeel sd WHERE scg.ins_srtcontrole_niveau = 'G' AND scg.ins_srtinstallatie_key = sd.ins_srtgroep_key UNION ALL SELECT sd.ins_srtdeel_key, scd.ins_srtcontrole_key, scd.ins_srtcontrole_omschrijving, scd.ins_srtcontrole_periode FROM ins_srtcontrole scd, ins_srtgroep sg, ins_srtdeel sd WHERE scd.ins_srtcontrole_niveau = 'D' AND scd.ins_srtinstallatie_key = sg.ins_discipline_key AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) cso -- ControleSoortObjecten LEFT JOIN (SELECT d.ins_deel_key, d.ins_deel_aanmaak, d.ins_alg_ruimte_key, d.ins_alg_ruimte_type, sd.ins_srtdeel_key, sg.ins_srtgroep_omschrijving, td.ins_discipline_key, td.ins_discipline_omschrijving, DECODE (d.ins_discipline_key, 41, 4, -- Vervoersmiddelen -> Zwolle d.ins_alg_locatie_key) alg_locatie_key FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline td, alg_locatie l WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = td.ins_discipline_key AND d.ins_alg_locatie_key = l.alg_locatie_key(+)) o -- Objecten ON cso.ins_srtdeel_key = o.ins_srtdeel_key LEFT JOIN (SELECT ok.alg_onrgoed_key alg_locatie_key, fac.safe_to_number ( ok.alg_onrgoedkenmerk_waarde ) prs_perslid_key FROM alg_v_aanwezigonrgoedkenmerk ok WHERE ok.alg_kenmerk_key = 1120 AND ok.alg_onrgoed_niveau = 'L') lv -- LocatieVerantwoordelijke ON o.alg_locatie_key = lv.alg_locatie_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde afgekeurd FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = -1) oa -- ObjectAfgekeurd ON o.ins_deel_key = oa.ins_deel_key LEFT JOIN (SELECT dsc.ins_deel_key, dsc.ins_srtcontrole_key, dsc.ins_deelsrtcontrole_datum, dsc.ins_deelsrtcontrole_opmerking FROM ins_deelsrtcontrole dsc WHERE dsc.ins_deelsrtcontrole_datum = (SELECT MAX ( ins_deelsrtcontrole_datum ) FROM ins_deelsrtcontrole WHERE ins_deel_key = dsc.ins_deel_key AND ins_srtcontrole_key = dsc.ins_srtcontrole_key)) olc -- ObjectLaatsteControle ON o.ins_deel_key = olc.ins_deel_key AND cso.ins_srtcontrole_key = olc.ins_srtcontrole_key WHERE (oa.afgekeurd IS NULL OR oa.afgekeurd = -1) -- 'Nee' AND COALESCE (olc.ins_deelsrtcontrole_datum, o.ins_deel_aanmaak) + cso.ins_srtcontrole_periode BETWEEN TRUNC ( SYSDATE + 7 ) AND TRUNC(SYSDATE + 14) GROUP BY DECODE ( o.ins_discipline_key, 1161, -- Controles -> eigenaar DECODE (o.ins_alg_ruimte_type, 'P', o.ins_alg_ruimte_key, NULL), lv.prs_perslid_key -- Rest -> locatie-verantw. )) x, fac_srtnotificatie sn WHERE sn.fac_srtnotificatie_code = 'CUST02' UNION ALL -- Verstreken naar verantwoordelijken! SELECT sn.fac_srtnotificatie_code code, NULL sender, NULL, --x.receiver, REPLACE ( REPLACE ( sn.fac_srtnotificatie_oms, '##SRTGROEP##', DECODE ( x.min_srtgroep_oms, x.max_srtgroep_oms, x.min_srtgroep_oms || DECODE (x.aantal, 1, '-' || max_controle_oms, ''), x.min_srtgroep_oms || ', ...' ) ), '##AANTAL##', x.aantal ) subject, x.dummy_deel_key, -- Dummy key!!! NULL, NULL, NULL, (SELECT prs_perslid_email FROM prs_perslid WHERE prs_perslid_key = x.receiver), NULL FROM ( SELECT DECODE ( o.ins_discipline_key, 1161, -- Controles -> eigenaar DECODE (o.ins_alg_ruimte_type, 'P', o.ins_alg_ruimte_key, NULL), lv.prs_perslid_key -- Rest -> locatie-verantw. ) receiver, MAX (cso.ins_srtcontrole_omschrijving) max_controle_oms, MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms, MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms, MIN (o.ins_deel_key) dummy_deel_key, COUNT (DISTINCT o.ins_deel_key) aantal FROM (SELECT scs.ins_srtinstallatie_key ins_srtdeel_key, scs.ins_srtcontrole_key, scs.ins_srtcontrole_omschrijving, scs.ins_srtcontrole_periode FROM ins_srtcontrole scs WHERE scs.ins_srtcontrole_niveau = 'S' UNION ALL SELECT sd.ins_srtdeel_key, scg.ins_srtcontrole_key, scg.ins_srtcontrole_omschrijving, scg.ins_srtcontrole_periode FROM ins_srtcontrole scg, ins_srtdeel sd WHERE scg.ins_srtcontrole_niveau = 'G' AND scg.ins_srtinstallatie_key = sd.ins_srtgroep_key UNION ALL SELECT sd.ins_srtdeel_key, scd.ins_srtcontrole_key, scd.ins_srtcontrole_omschrijving, scd.ins_srtcontrole_periode FROM ins_srtcontrole scd, ins_srtgroep sg, ins_srtdeel sd WHERE scd.ins_srtcontrole_niveau = 'D' AND scd.ins_srtinstallatie_key = sg.ins_discipline_key AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) cso -- ControleSoortObjecten LEFT JOIN (SELECT d.ins_deel_key, d.ins_deel_aanmaak, d.ins_alg_ruimte_key, d.ins_alg_ruimte_type, sd.ins_srtdeel_key, sg.ins_srtgroep_omschrijving, td.ins_discipline_key, td.ins_discipline_omschrijving, DECODE (d.ins_discipline_key, 41, 4, -- Vervoersmiddelen -> Zwolle d.ins_alg_locatie_key) alg_locatie_key FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline td, alg_locatie l WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = td.ins_discipline_key AND d.ins_alg_locatie_key = l.alg_locatie_key(+)) o -- Objecten ON cso.ins_srtdeel_key = o.ins_srtdeel_key LEFT JOIN (SELECT ok.alg_onrgoed_key alg_locatie_key, fac.safe_to_number ( ok.alg_onrgoedkenmerk_waarde ) prs_perslid_key FROM alg_v_aanwezigonrgoedkenmerk ok WHERE ok.alg_kenmerk_key = 1120 AND ok.alg_onrgoed_niveau = 'L') lv -- LocatieVerantwoordelijke ON o.alg_locatie_key = lv.alg_locatie_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde afgekeurd FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = -1) oa -- ObjectAfgekeurd ON o.ins_deel_key = oa.ins_deel_key LEFT JOIN (SELECT dsc.ins_deel_key, dsc.ins_srtcontrole_key, dsc.ins_deelsrtcontrole_datum, dsc.ins_deelsrtcontrole_opmerking FROM ins_deelsrtcontrole dsc WHERE dsc.ins_deelsrtcontrole_datum = (SELECT MAX ( ins_deelsrtcontrole_datum ) FROM ins_deelsrtcontrole WHERE ins_deel_key = dsc.ins_deel_key AND ins_srtcontrole_key = dsc.ins_srtcontrole_key)) olc -- ObjectLaatsteControle ON o.ins_deel_key = olc.ins_deel_key AND cso.ins_srtcontrole_key = olc.ins_srtcontrole_key WHERE (oa.afgekeurd IS NULL OR oa.afgekeurd = -1) -- 'Nee' AND COALESCE (olc.ins_deelsrtcontrole_datum, o.ins_deel_aanmaak) + cso.ins_srtcontrole_periode < TRUNC (SYSDATE) GROUP BY DECODE ( o.ins_discipline_key, 1161, -- Controles -> eigenaar DECODE (o.ins_alg_ruimte_type, 'P', o.ins_alg_ruimte_key, NULL), lv.prs_perslid_key -- Rest -> locatie-verantw. )) x, fac_srtnotificatie sn WHERE sn.fac_srtnotificatie_code = 'CUST03' UNION ALL -- Verstreken naar fabu@wehkamp.nl! SELECT sn.fac_srtnotificatie_code code, NULL sender, NULL receiver, REPLACE ( REPLACE ( sn.fac_srtnotificatie_oms, '##SRTGROEP##', DECODE (x.min_srtgroep_oms, x.max_srtgroep_oms, x.min_srtgroep_oms, x.min_srtgroep_oms || ', ...') ), '##AANTAL##', x.aantal ) subject, x.dummy_deel_key, -- Dummy key!!! NULL, NULL, NULL, 'fabu@wehkamp.nl', NULL FROM ( SELECT 1 receiver, MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms, MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms, MIN (o.ins_deel_key) dummy_deel_key, COUNT (DISTINCT o.ins_deel_key) aantal FROM (SELECT scs.ins_srtinstallatie_key ins_srtdeel_key, scs.ins_srtcontrole_key, scs.ins_srtcontrole_omschrijving, scs.ins_srtcontrole_periode FROM ins_srtcontrole scs WHERE scs.ins_srtcontrole_niveau = 'S' UNION ALL SELECT sd.ins_srtdeel_key, scg.ins_srtcontrole_key, scg.ins_srtcontrole_omschrijving, scg.ins_srtcontrole_periode FROM ins_srtcontrole scg, ins_srtdeel sd WHERE scg.ins_srtcontrole_niveau = 'G' AND scg.ins_srtinstallatie_key = sd.ins_srtgroep_key UNION ALL SELECT sd.ins_srtdeel_key, scd.ins_srtcontrole_key, scd.ins_srtcontrole_omschrijving, scd.ins_srtcontrole_periode FROM ins_srtcontrole scd, ins_srtgroep sg, ins_srtdeel sd WHERE scd.ins_srtcontrole_niveau = 'D' AND scd.ins_srtinstallatie_key = sg.ins_discipline_key AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) cso -- ControleSoortObjecten LEFT JOIN (SELECT d.ins_deel_key, d.ins_deel_aanmaak, d.ins_alg_ruimte_key, d.ins_alg_ruimte_type, sd.ins_srtdeel_key, sg.ins_srtgroep_omschrijving, td.ins_discipline_key, td.ins_discipline_omschrijving, DECODE (d.ins_discipline_key, 41, 4, -- Vervoersmiddelen -> Zwolle d.ins_alg_locatie_key) alg_locatie_key FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline td, alg_locatie l WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = td.ins_discipline_key AND d.ins_alg_locatie_key = l.alg_locatie_key(+)) o -- Objecten ON cso.ins_srtdeel_key = o.ins_srtdeel_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde afgekeurd FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = -1) oa -- ObjectAfgekeurd ON o.ins_deel_key = oa.ins_deel_key LEFT JOIN (SELECT dsc.ins_deel_key, dsc.ins_srtcontrole_key, dsc.ins_deelsrtcontrole_datum, dsc.ins_deelsrtcontrole_opmerking FROM ins_deelsrtcontrole dsc WHERE dsc.ins_deelsrtcontrole_datum = (SELECT MAX ( ins_deelsrtcontrole_datum ) FROM ins_deelsrtcontrole WHERE ins_deel_key = dsc.ins_deel_key AND ins_srtcontrole_key = dsc.ins_srtcontrole_key)) olc -- ObjectLaatsteControle ON o.ins_deel_key = olc.ins_deel_key AND cso.ins_srtcontrole_key = olc.ins_srtcontrole_key WHERE (oa.afgekeurd IS NULL OR oa.afgekeurd = -1) -- 'Nee' AND COALESCE (olc.ins_deelsrtcontrole_datum, o.ins_deel_aanmaak) + cso.ins_srtcontrole_periode < TRUNC (SYSDATE) GROUP BY 1) x, fac_srtnotificatie sn WHERE sn.fac_srtnotificatie_code = 'CUST03'; /* Formatted on 2-8-2013 14:38:16 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW wehk_v_inspectie_results ( hide_f_ins_deel_key, fclt_f_discipline, fclt_f_groep, fclt_f_objectsoort, fclt_f_object, fclt_f_locatie, --fclt_3d_locatie_key, fclt_f_district, fclt_f_regio, fclt_f_inspectiepunt, fclt_f_inspectieinfo, --fclt_f_jaar, --fclt_f_maand, fclt_d_datum, fclt_f_inspecteur, fclt_f_beoordeling, opmerking ) AS SELECT insp.ins_deel_key, dis.ins_discipline_omschrijving, sg.ins_srtgroep_omschrijving, sd.ins_srtdeel_omschrijving, d.ins_deel_omschrijving, l.alg_locatie_code || '-' || l.alg_locatie_omschrijving, --l.alg_locatie_key, di.alg_district_omschrijving, r.alg_regio_omschrijving, sc.ins_srtcontrole_omschrijving, sc.ins_srtcontrole_info, --TO_CHAR (insp.ins_deelsrtcontrole_datum, 'yyyy'), --TO_CHAR (insp.ins_deelsrtcontrole_datum, 'mm'), TO_CHAR (insp.ins_deelsrtcontrole_datum, 'dd-mm-yyyy'), pf.prs_perslid_naam_full, cm.ins_controlemode_oms, insp.ins_deelsrtcontrole_opmerking FROM ins_deelsrtcontrole insp, ins_controlemode cm, ins_srtcontrole sc, prs_v_perslid_fullnames_all pf, ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline dis, alg_locatie l, alg_district di, alg_regio r WHERE insp.ins_controlemode_key = cm.ins_controlemode_key AND insp.ins_srtcontrole_key = sc.ins_srtcontrole_key AND insp.prs_perslid_key = pf.prs_perslid_key(+) AND insp.ins_deel_key = d.ins_deel_key AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = dis.ins_discipline_key AND d.ins_alg_locatie_key = l.alg_locatie_key AND l.alg_district_key = di.alg_district_key AND di.alg_regio_key = r.alg_regio_key; -- KPIs/Contracten CREATE OR REPLACE VIEW wehk_v_kpi_cnt_data AS SELECT c.cnt_contract_key, c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid, cd.ins_discipline_key, cd.ins_discipline_omschrijving contractsoort, a.prs_afdeling_key contractafd3_key, a.prs_afdeling_omschrijving contractafd3_oms, c.cnt_contract_kosten, DECODE (vrkt.cnt_kenmerkcontract_waarde, NULL, 'Nee', 'Ja') verrijkt, DECODE (appr.aant, 3, 'Ja', 'Nee') approved, CASE WHEN SYSDATE < c.cnt_contract_looptijd_van THEN 'Toekomstig' WHEN SYSDATE BETWEEN c.cnt_contract_looptijd_van AND cnt.cnt_getrappeldatum (c.cnt_contract_key) THEN 'Actueel' WHEN SYSDATE BETWEEN cnt.cnt_getopzegdatum (c.cnt_contract_key) AND c.cnt_contract_looptijd_tot THEN 'In opzegtermijn' WHEN SYSDATE > c.cnt_contract_looptijd_tot THEN 'Verlopen' ELSE 'Rappel' END contractfase, afd1.fac_usrdata_omschr afd1_aanvrager, afd2.fac_usrdata_omschr afd2_aanvrager FROM cnt_v_aanwezigcontract c, cnt_discipline cd, prs_v_afdeling_boom ab, prs_afdeling a, (SELECT kc.* FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_verwijder IS NULL AND k.cnt_srtkenmerk_key = 304) vrkt, -- Groepsmaatschappij ( SELECT kc.cnt_contract_key, SUM (DECODE (kc.cnt_kenmerkcontract_waarde, 'Ja', 1, 0)) aant FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_verwijder IS NULL AND k.cnt_srtkenmerk_key IN (291, 292, 293) -- Approval Budgethouder/Legal/Buyer GROUP BY kc.cnt_contract_key) appr, (SELECT kc.cnt_contract_key, ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_verwijder IS NULL AND k.cnt_srtkenmerk_key = 288 -- Afdeling 1e level Aanvrager AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd1, (SELECT kc.cnt_contract_key, ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_verwijder IS NULL AND k.cnt_srtkenmerk_key = 289 -- Afdeling 2e level Aanvrager AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd2 WHERE c.cnt_contract_status = 0 -- Actief --AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot AND c.ins_discipline_key = cd.ins_discipline_key AND cd.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565) AND c.prs_afdeling_key_eig = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key3, ab.prs_afdeling_key1) = a.prs_afdeling_key AND c.cnt_contract_key = vrkt.cnt_contract_key(+) AND c.cnt_contract_key = appr.cnt_contract_key(+) AND c.cnt_contract_key = afd1.cnt_contract_key(+) AND c.cnt_contract_key = afd2.cnt_contract_key(+); /* CREATE OR REPLACE VIEW wehk_v_kpi_cnt_coverage -- WEG? AS SELECT c.cnt_contract_key, c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid, cd.ins_discipline_omschrijving contractsoort, a.prs_afdeling_omschrijving contractafd3, c.cnt_contract_kosten FROM cnt_v_aanwezigcontract c, cnt_discipline cd, prs_v_afdeling_boom ab, prs_afdeling a WHERE c.cnt_contract_status = 0 -- Actief --AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot AND c.ins_discipline_key = cd.ins_discipline_key AND cd.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565) AND c.prs_afdeling_key_eig = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key3, ab.prs_afdeling_key1) = a.prs_afdeling_key; CREATE OR REPLACE VIEW wehk_v_kpi_cnt_verrijkt -- WEG? AS SELECT c.cnt_contract_key, c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid, DECODE (vrkt.cnt_kenmerkcontract_waarde, NULL, 'Nee', 'Ja') verrijkt FROM cnt_v_aanwezigcontract c, (SELECT kc.* FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_verwijder IS NULL AND k.cnt_srtkenmerk_key = 304) vrkt -- Groepsmaatschappij WHERE c.cnt_contract_status = 0 -- Actief --AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot AND c.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565) AND c.cnt_contract_key = vrkt.cnt_contract_key(+); CREATE OR REPLACE VIEW wehk_v_kpi_cnt_approved -- WEG? AS SELECT c.cnt_contract_key, c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid, DECODE (appr.aant, 3, 'Ja', 'Nee') approved FROM cnt_v_aanwezigcontract c, ( SELECT kc.cnt_contract_key, SUM (DECODE (kc.cnt_kenmerkcontract_waarde, 'Ja', 1, 0)) aant FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_verwijder IS NULL AND k.cnt_srtkenmerk_key IN (291, 292, 293) -- Approval Budgethouder/Legal/Buyer GROUP BY kc.cnt_contract_key) appr WHERE c.cnt_contract_status = 0 -- Actief --AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot AND c.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565) AND c.cnt_contract_key = appr.cnt_contract_key(+); */ CREATE OR REPLACE VIEW wehk_v_kpi_cnt_covaant ( FCLT_XAS_, FCLT_YAS_, VOLGORDE, FCLT_URL ) AS SELECT contractsoort, COUNT ( * ), 0 - COUNT ( * ), 'appl/cnt/cnt_search.asp?urole=bo' || '&' || 'autosearch=1' || '&' || 'disc=' || TO_CHAR (ins_discipline_key) FROM wehk_v_kpi_cnt_data GROUP BY contractsoort, TO_CHAR (ins_discipline_key) UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond? SELECT ' ', 0, 999999, ' ' FROM DUAL; CREATE OR REPLACE VIEW wehk_v_kpi_cnt_covaant_afd3 ( FCLT_XAS_, FCLT_YAS_, VOLGORDE, FCLT_URL ) AS SELECT contractafd3_oms, COUNT ( * ), 0 - COUNT ( * ), 'appl/cnt/cnt_search.asp?urole=bo' || '&' || 'autosearch=1' || '&' || 'dep_key=' || TO_CHAR (contractafd3_key) FROM wehk_v_kpi_cnt_data GROUP BY contractafd3_oms, TO_CHAR (contractafd3_key) UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond? SELECT ' ', 0, 999999, ' ' FROM DUAL; CREATE OR REPLACE VIEW wehk_v_kpi_cnt_coveuro ( FCLT_XAS_, FCLT_YAS_, VOLGORDE, FCLT_URL ) AS SELECT contractsoort, SUM ( cnt_contract_kosten ), 0 - COUNT ( * ), 'appl/cnt/cnt_search.asp?urole=bo' || '&' || 'autosearch=1' || '&' || 'disc=' || TO_CHAR (ins_discipline_key) FROM wehk_v_kpi_cnt_data GROUP BY contractsoort, TO_CHAR (ins_discipline_key) UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond? SELECT ' ', 0, 999999, ' ' FROM DUAL; CREATE OR REPLACE VIEW wehk_v_kpi_cnt_coveuro_afd3 ( FCLT_XAS_, FCLT_YAS_, VOLGORDE, FCLT_URL ) AS SELECT contractafd3_oms, SUM ( cnt_contract_kosten ), 0 - COUNT ( * ), 'appl/cnt/cnt_search.asp?urole=bo' || '&' || 'autosearch=1' || '&' || 'dep_key=' || TO_CHAR (contractafd3_key) FROM wehk_v_kpi_cnt_data GROUP BY contractafd3_oms, TO_CHAR (contractafd3_key) UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond? SELECT ' ', 0, 999999, ' ' FROM DUAL; CREATE OR REPLACE VIEW wehk_v_kpi_cnt_soortfase ( FCLT_XAS_, FCLT_YAS_, FCLT_YAS2_, FCLT_YAS3_, FCLT_YAS4_, FCLT_YAS5_, FCLT_SORT ) AS WITH contracten AS (SELECT cnt_contract_key, ins_discipline_key, CASE WHEN SYSDATE < cnt_contract_looptijd_van THEN 'Toekomstig' WHEN SYSDATE BETWEEN cnt_contract_looptijd_van AND cnt.cnt_getrappeldatum (cnt_contract_key) THEN 'Actueel' WHEN SYSDATE BETWEEN cnt.cnt_getopzegdatum (cnt_contract_key) AND cnt_contract_looptijd_tot THEN 'In opzegtermijn' WHEN SYSDATE > cnt_contract_looptijd_tot THEN 'Verlopen' ELSE 'Rappel' END contractfase FROM cnt_v_aanwezigcontract WHERE cnt_contract_status = 0 -- Actief AND ins_discipline_key IN (1561, 1562, 1563, 1564, 1565)) SELECT cd.ins_discipline_omschrijving, SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'T', 1, 0)) toekomstig, SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'A', 1, 0)) actueel, SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'R', 1, 0)) rappel, SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'I', 1, 0)) opzeg, SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'V', 1, 0)) verlopen, 0 - COUNT ( * ) FROM contracten c, cnt_discipline cd WHERE c.ins_discipline_key = cd.ins_discipline_key GROUP BY cd.ins_discipline_omschrijving; CREATE OR REPLACE VIEW wehk_v_kpi_cnt_bandsfase ( FCLT_XAS_, FCLT_YAS_, FCLT_YAS2_, FCLT_YAS3_, FCLT_YAS4_, FCLT_YAS5_, FCLT_SORT ) AS WITH contracten AS (SELECT cnt_contract_key, CASE WHEN SYSDATE < cnt_contract_looptijd_van THEN 'Toekomstig' WHEN SYSDATE BETWEEN cnt_contract_looptijd_van AND cnt.cnt_getrappeldatum (cnt_contract_key) THEN 'Actueel' WHEN SYSDATE BETWEEN cnt.cnt_getopzegdatum (cnt_contract_key) AND cnt_contract_looptijd_tot THEN 'In opzegtermijn' WHEN SYSDATE > cnt_contract_looptijd_tot THEN 'Verlopen' ELSE 'Rappel' END contractfase FROM cnt_v_aanwezigcontract WHERE cnt_contract_status = 0 -- Actief AND ins_discipline_key IN (1561, 1562, 1563, 1564, 1565)) SELECT COALESCE (afd2.fac_usrdata_omschr, '???') afd2, SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'T', 1, 0)) toekomstig, SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'A', 1, 0)) actueel, SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'R', 1, 0)) rappel, SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'I', 1, 0)) opzeg, SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'V', 1, 0)) verlopen, 0 - COUNT ( * ) FROM contracten c, (SELECT kc.cnt_contract_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_verwijder IS NULL AND k.cnt_srtkenmerk_key = 288 -- Afdeling 1e level Aanvrager AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd1, (SELECT kc.cnt_contract_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud WHERE kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_verwijder IS NULL AND k.cnt_srtkenmerk_key = 289 -- Afdeling 2e level Aanvrager AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd2 WHERE c.cnt_contract_key = afd1.cnt_contract_key AND afd1.fac_usrdata_key = 2967 -- Buying and Sales AND c.cnt_contract_key = afd2.cnt_contract_key(+) GROUP BY COALESCE (afd2.fac_usrdata_omschr, '???'); CREATE OR REPLACE VIEW wehk_v_kpi_cnt_afloop AS SELECT c.cnt_contract_key, c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid, TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy-mm') afloopmaand FROM cnt_v_aanwezigcontract c, cnt_discipline cd WHERE c.cnt_contract_status = 0 -- Actief AND c.cnt_contract_looptijd_tot BETWEEN TRUNC (SYSDATE, 'mm') AND ADD_MONTHS (TRUNC (SYSDATE, 'mm'), 24) - 1 -- 24 maanden in toekomst AND c.ins_discipline_key = cd.ins_discipline_key AND cd.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565); -- WEHK#40548: Openstaande meldingen per locatie/vakgroep (anders dan ongeval) CREATE OR REPLACE VIEW wehk_v_rtm_meld_locvg AS SELECT m.mld_melding_key, l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving, sm.mld_stdmelding_key, sm.mld_stdmelding_omschrijving, md.ins_discipline_key, md.ins_discipline_omschrijving, COALESCE (l.alg_locatie_code, 'Onbekend') || '-' || md.ins_discipline_omschrijving locvg FROM mld_melding m, alg_locatie l, mld_stdmelding sm, mld_discipline md WHERE m.mld_melding_status IN (2, 3, 4, 7, 0, 99) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending, 99-Niet opgelost AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = md.ins_discipline_key AND md.ins_srtdiscipline_key != 41; -- WEHK#40548: Openstaande meldingen per locatie/vakgroep (anders dan ongeval) CREATE OR REPLACE VIEW WEHK_V_RTM_MELD_LOCVGSLA ( MLD_MELDING_KEY, ALG_LOCATIE_KEY, ALG_LOCATIE_CODE, ALG_LOCATIE_OMSCHRIJVING, MLD_STDMELDING_KEY, MLD_STDMELDING_OMSCHRIJVING, INS_DISCIPLINE_KEY, INS_DISCIPLINE_OMSCHRIJVING, LOCVG, MLDSTART, MLDEIND_RESPIJT, SLA ) AS SELECT m.mld_melding_key, l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving, sm.mld_stdmelding_key, sm.mld_stdmelding_omschrijving, md.ins_discipline_key, md.ins_discipline_omschrijving, COALESCE (l.alg_locatie_code, 'Onbekend') || '-' || md.ins_discipline_omschrijving locvg, fac.gettrackingdate ('MLDNEW', m.mld_melding_key), m.mld_melding_einddatum_std, CASE WHEN (COALESCE( fac.gettrackingdate ('MLDAFM', m.mld_melding_key), (SYSDATE)) <= m.mld_melding_einddatum) THEN 'Binnen' ELSE 'Buiten' END binnen_buiten_SLA FROM mld_melding m, alg_locatie l, mld_stdmelding sm, mld_discipline md WHERE m.mld_melding_status IN (2, 3, 4, 7, 0, 99) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending, 99-Niet opgelost AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = md.ins_discipline_key AND md.ins_srtdiscipline_key != 41; -- WEHK#40548: Openstaande ongeval-meldingen per locatie/soortmelding CREATE OR REPLACE VIEW WEHK_V_RTM_ONGEVAL_LOCSM ( MLD_MELDING_KEY, ALG_LOCATIE_KEY, ALG_LOCATIE_CODE, ALG_LOCATIE_OMSCHRIJVING, MLD_STDMELDING_KEY, MLD_STDMELDING_OMSCHRIJVING, INS_DISCIPLINE_KEY, INS_DISCIPLINE_OMSCHRIJVING, LOCSM ) AS SELECT m.mld_melding_key, l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving, sm.mld_stdmelding_key, sm.mld_stdmelding_omschrijving, md.ins_discipline_key, md.ins_discipline_omschrijving, COALESCE (l.alg_locatie_code, 'Onbekend') || '-' || sm.mld_stdmelding_omschrijving locsm FROM mld_melding m, alg_locatie l, mld_stdmelding sm, mld_discipline md WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+) AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = md.ins_discipline_key AND sm.mld_ins_discipline_key IN (1641, 1642, 1643, 1644) -- Enkel de 4 nieuwe discipline key, voor de nieuwe ongevalsmeldingen AND md.ins_srtdiscipline_key = 41; -- WEHK#40548: Openstaande ongeval-meldingen per locatie/soortmelding CREATE OR REPLACE VIEW WEHK_V_RTM_ONGEVAL_LOCSMSLA ( MLD_MELDING_KEY, ALG_LOCATIE_KEY, ALG_LOCATIE_CODE, ALG_LOCATIE_OMSCHRIJVING, MLD_STDMELDING_KEY, MLD_STDMELDING_OMSCHRIJVING, INS_DISCIPLINE_KEY, INS_DISCIPLINE_OMSCHRIJVING, LOCSM, MLDSTART, MLDEIND_RESPIJT, SLA ) AS SELECT m.mld_melding_key, l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving, sm.mld_stdmelding_key, sm.mld_stdmelding_omschrijving, md.ins_discipline_key, md.ins_discipline_omschrijving, COALESCE (l.alg_locatie_code, 'Onbekend') || '-' || sm.mld_stdmelding_omschrijving locsm, fac.gettrackingdate ('MLDNEW', m.mld_melding_key), m.mld_melding_einddatum_std, CASE WHEN (SYSDATE) - (COALESCE (FAC.datumtijdplusuitvoertijd(m.mld_melding_einddatum_std, m.mld_melding_t_respijt.tijdsduur, m.mld_melding_t_respijt.eenheid), m.mld_melding_einddatum_std)) < 0 THEN 'Binnen' ELSE 'Buiten' END binnen_buiten_SLA FROM mld_melding m, alg_locatie l, mld_stdmelding sm, mld_discipline md WHERE m.mld_melding_status IN (2, 3, 4, 7, 0, 99) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending, 99-Niet opgelost AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = md.ins_discipline_key AND sm.mld_ins_discipline_key IN (1641,1642,1643,1644) -- Enkel de 4 nieuwe discipline key, voor de nieuwe ongevalsmeldingen AND md.ins_srtdiscipline_key = 41; -- WEHK#40548: Openstaande opdrachten per (locatie/)leverancier CREATE OR REPLACE VIEW wehk_v_rtm_opdr_lev AS SELECT o.mld_opdr_key, o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr, l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving, l.alg_locatie_code || '-' || b.prs_bedrijf_naam locuv, 'B' uv_type, b.prs_bedrijf_naam uv FROM mld_opdr o, prs_bedrijf b, mld_melding m, alg_locatie l WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd, Ter goedkeuring AND o.mld_uitvoerende_keys = b.prs_bedrijf_key AND o.mld_melding_key = m.mld_melding_key AND m.mld_alg_locatie_key = l.alg_locatie_key(+) UNION ALL SELECT o.mld_opdr_key, o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr, l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving, l.alg_locatie_code || '-' || pf.prs_perslid_naam_full locuv, 'P' uv_type, pf.prs_perslid_naam_full uv FROM mld_opdr o, prs_v_perslid_fullnames_all pf, mld_melding m, alg_locatie l WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd, Ter goedkeuring AND o.mld_uitvoerende_keys = pf.prs_perslid_key AND o.mld_melding_key = m.mld_melding_key AND m.mld_alg_locatie_key = l.alg_locatie_key(+); -- WEHK#58706 Contracten met datum laatst gewijzigd. CREATE OR REPLACE VIEW WEHK_CNT_V_CNTBEH_WIJZIG ( CONTRACT_KEY, CONTRACT_NR, CONTRACT_OMSCH, CONTRACT_BEHEERDER, LOOPTIJD_VAN, LOOPTIJD_TOT, CONTRACT_FASE, STATUS, CONTRACT_KOSTEN, LAATSTE_WIJZIG_DATUM ) AS SELECT CNT_CONTRACT_KEY, COALESCE (CNT_CONTRACT_NUMMER_INTERN, TO_CHAR (CNT_CONTRACT_KEY)), CNT_CONTRACT_OMSCHRIJVING, (select prs_perslid_naam_friendly from prs_v_perslid_fullnames where prs_perslid_key = prs_perslid_key_beh ) daan, c.CNT_CONTRACT_LOOPTIJD_VAN, CNT_CONTRACT_LOOPTIJD_TOT, DECODE (cnt.cnt_contract_status ( c.cnt_contract_looptijd_van, cnt.cnt_getrappeldatum (c.cnt_contract_key), cnt.cnt_getopzegdatum (c.cnt_contract_key), c.cnt_contract_looptijd_tot), 0, lcl.l ('lcl_cnt_future'), 1, lcl.l ('lcl_cnt_topical'), 2, lcl.l ('lcl_cnt_warn'), 3, lcl.l ('lcl_cnt_cancel'), 4, lcl.l ('lcl_cnt_past')) fase_actief, DECODE ( C.cnt_contract_status, 0, DECODE (fac.getsetting ('cnt_contract_approval'), 1, lcl.l ('lcl_cnt_active_approval'), lcl.l ('lcl_cnt_active')), 1, lcl.l ('lcl_cnt_inactive'), 2, lcl.l ('lcl_cnt_new'), 3, lcl.l ('lcl_cnt_forapproval')) cnt_contract_status, CNT_CONTRACT_KOSTEN, (SELECT MAX (fac_tracking_datum) FROM fac_tracking ft, fac_srtnotificatie sn WHERE fac_tracking_refkey = cnt_contract_key AND sn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key AND sn.fac_srtnotificatie_xmlnode = 'contract') LAATST_GEWIJZIGD FROM cnt_contract c WHERE c.cnt_contract_verwijder IS NULL; -- WEHK#40548: Afgehandelde meldingen per (locatie/)maand CREATE OR REPLACE VIEW wehk_v_rtm_meld_afm_mnd AS SELECT m.mld_melding_key, l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving, sm.mld_stdmelding_key, sm.mld_stdmelding_omschrijving, md.ins_discipline_key, md.ins_discipline_omschrijving, l.alg_locatie_code || '-' || TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') locmnd, TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') mnd, DECODE (SUBSTR (TO_CHAR (t.fac_tracking_datum, 'yyyymm'), 5), '01', 'Januari', '02', 'Februari', '03', 'Maart', '04', 'April', '05', 'Mei', '06', 'Juni', '07', 'Juli', '08', 'Augustus', '09', 'September', '10', 'Oktober', '11', 'November', 'December') mnd_oms FROM mld_melding m, alg_locatie l, mld_stdmelding sm, mld_discipline md, fac_tracking t WHERE m.mld_melding_status IN (5, 6) -- 5-Afgemeld, 6-Verwerkt AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = md.ins_discipline_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 18 -- MLDAFM AND t.fac_tracking_datum BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -11) AND SYSDATE; -- WEHK#53429: Notificatiejob nieuwe ongevalsmeldingen: CREATE OR REPLACE VIEW wehk_v_rap_newmldongeval ( locatie, locatiecode, locatieomschrijving, hrmedewerker, melding_key, trackdatum, datum, tijd, invoerder, aanvrager, behandelaar, stdmeldingomschrijving, meldingonderwerp, meldingomschrijving ) AS SELECT l.alg_locatie_omschrijving, l.alg_locatie_code, l.alg_locatie_omschrijving, COALESCE ( (SELECT fac.safe_to_number (alg_onrgoedkenmerk_waarde) FROM alg_onrgoedkenmerk WHERE alg_kenmerk_key = 1140 --Kenmerk 'Persoon ongevalsmelding' bij locatie AND alg_onrgoed_niveau = 'L' AND alg_onrgoedkenmerk_verwijder IS NULL AND alg_onrgoed_key = l.alg_locatie_key), 2693) hrmedewerker, m.mld_melding_key, t.fac_tracking_datum trackingdatum, TRUNC (t.fac_tracking_datum) datum, SUBSTR (t.fac_tracking_datum, 12, 8) tijd, t.prs_perslid_key invoerder, m.prs_perslid_key_voor aanvrager, m.mld_melding_behandelaar_key behandelaar, sm.mld_stdmelding_omschrijving, m.mld_melding_onderwerp, m.mld_melding_omschrijving FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline d, fac_tracking t, alg_locatie l WHERE ( t.fac_tracking_refkey = m.mld_melding_key AND m.mld_alg_locatie_key = l.alg_locatie_key AND l.alg_locatie_verwijder IS NULL AND t.fac_srtnotificatie_key = 21 AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = 41 AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE) AND TO_CHAR (t.fac_tracking_datum, 'HH24') = TO_CHAR (SYSDATE - 1 / 24, 'HH24')) OR ( t.fac_tracking_refkey = m.mld_melding_key AND m.mld_alg_locatie_key = l.alg_locatie_key AND l.alg_locatie_verwijder IS NULL AND t.fac_srtnotificatie_key = 21 AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = 41 AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE - 1) AND TO_CHAR (t.fac_tracking_datum, 'HH24') = TO_CHAR (SYSDATE - 1 / 24, 'HH24') AND TO_CHAR (SYSDATE - 1 / 24, 'HH24') = 23); -- Rapportage t.b.v. facturatieschema CREATE OR REPLACE VIEW WEHK_V_RAP_FACTUURSCHEMA ( CONTRACTKEY, CONTRACT_NUMMER, CONTRACTSOORT, INKOOPCATEGORIE_1E_LEVEL, INKOOPSCATEGORIE_2E_LEVEL, AFDELING_LEVEL1_AANVRAGER, AFDELING_LEVEL2_AANVRAGER, BEDRIJFSNAAM, CONTRACT_OMSCHRIJVING, FACTUURMAAND, BEDRAG, OPMERKING ) AS SELECT c.cnt_contract_key, c.cnt_contract_nummer_intern, cd.ins_discipline_omschrijving, (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = (SELECT ckc.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck WHERE ckc.cnt_contract_key = c.cnt_contract_key AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key AND ck.cnt_srtkenmerk_key = 319)) inkoop1, (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = (SELECT ckc.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck WHERE ckc.cnt_contract_key = c.cnt_contract_key AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key AND ck.cnt_srtkenmerk_key = 320)) inkoop2, (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = (SELECT ckc.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck WHERE ckc.cnt_contract_key = c.cnt_contract_key AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key AND ck.cnt_srtkenmerk_key = 288)) afdeling1, (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = (SELECT ckc.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck WHERE ckc.cnt_contract_key = c.cnt_contract_key AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key AND ck.cnt_srtkenmerk_key = 289)) afdeling2, pb.prs_bedrijf_naam, c.cnt_contract_omschrijving, cf.cnt_factuurschema_boekmaand, cf.cnt_factuurschema_bedrag, cf.cnt_factuurschema_opmerking FROM cnt_factuurschema cf, cnt_contract c, cnt_v_aanwezigdiscipline cd, prs_bedrijf pb WHERE c.cnt_contract_key = cf.cnt_contract_key AND c.cnt_contract_verwijder IS NULL -- niet verwijderd AND c.ins_discipline_key = cd.ins_discipline_key AND c.cnt_prs_bedrijf_key = pb.prs_bedrijf_key; -- WEHK#53429: Notificatiejob nieuwe ongevalsmeldingen: CREATE OR REPLACE VIEW WEHK_V_NOTI_NEWMLDONGEVAL ( CODE, SENDER, RECEIVER, TEXT, KEY, XKEY, XEMAIL, XMOBILE ) AS SELECT 'CUST05', NULL, mldv.hrmedewerker, ( 'Er is een nieuwe ongevalsmelding (' || 'o /' || mldv.melding_key || ') op locatie ' || mldv.locatieomschrijving), mldv.melding_key, NULL, NULL, NULL FROM WEHK_V_RAP_NEWMLDONGEVAL mldv; CREATE OR REPLACE VIEW WEHK_V_NOTI_OPVOERENCONTRACT ( CODE, SENDER, RECEIVER, TEXT, KEY, XKEY, XEMAIL, XMOBILE ) AS -- Bij nieuwe "opvoeren contract" meldingen moet er een mail gaan naar -- de verzamelbox van de contractafdeling, voor nu even mijn eigen ter test. -- Flag = 1 instellen bij de notificatiejob! (i.v.m. xemail) SELECT 'CUST06', NULL, NULL, ( 'Er staat een nieuwe melding voor opvoeren contract voor u klaar (' || 'i /' || m.mld_melding_key) || ')', m.mld_melding_key, NULL, 'contracten@wehkamp.nl', NULL FROM mld_melding m, fac_tracking t WHERE m.mld_stdmelding_key = 1641 AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'MLDNEW') AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval / 24 FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'WEHK_V_NOTI_OPVOERENCONTRACT') AND (SELECT fac_notificatie_job_nextrun FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'WEHK_V_NOTI_OPVOERENCONTRACT'); -- Melding naar de in de coversheet melding geselecteerde goedkeurder. -- Flag 8 instellen voor XSENDER! CREATE OR REPLACE VIEW WEHK_V_NOTI_GOEDKEURDER ( CODE, SENDER, RECEIVER, TEXT, KEY, XKEY, XSENDER, XEMAIL, XMOBILE ) AS SELECT 'CUST07', NULL, mkm.mld_kenmerkmelding_waarde, 'Er staat een coversheet voor u klaar ter goedkeuring (' || 'i /' || m.mld_melding_key || ')', m.mld_melding_key, NULL, 'coversheet@wehk.facilitor.nl', NULL, NULL FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk, fac_tracking t WHERE m.mld_stdmelding_key IN (1621, 1622, 1623, 1624, 1625) -- een van de goedkeuringsmeldingen AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key AND mkm.mld_melding_key = m.mld_melding_key AND mk.mld_srtkenmerk_key = 1847 AND t.fac_tracking_refkey = m.mld_melding_key AND t.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'MLDNEW') AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval / 24 FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'WEHK_V_NOTI_GOEDKEURDER') AND (SELECT fac_notificatie_job_nextrun FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'WEHK_V_NOTI_GOEDKEURDER'); ------ 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