SCHG#84842 -- Implementatie Scharenborg Groep - dwh-views tbv huurcontracten
svn path=/Customer/trunk/; revision=67062
This commit is contained in:
926
SCHG/schg.sql
Normal file
926
SCHG/schg.sql
Normal file
@@ -0,0 +1,926 @@
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
-- Script containing customer specific sql statements for the FACILITOR database SCHG
|
||||
|
||||
DEFINE thisfile = 'SCHG.SQL'
|
||||
DEFINE dbuser = 'SCHG'
|
||||
|
||||
SET ECHO ON
|
||||
SET DEFINE ON
|
||||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||||
WHENEVER SQLERROR CONTINUE;
|
||||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||||
SPOOL &fcltlogfile
|
||||
WHENEVER SQLERROR EXIT;
|
||||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||||
WHENEVER SQLERROR CONTINUE;
|
||||
---------------------------------------
|
||||
PROMPT &fcltcusttxt
|
||||
---------------------------------------
|
||||
SET DEFINE OFF
|
||||
|
||||
------ payload begin ------
|
||||
|
||||
-------------------------------
|
||||
--- DOMEINVIEWS ---------------
|
||||
-------------------------------
|
||||
|
||||
CREATE OR REPLACE VIEW schg_v_contracten_vh -- verkoop huur
|
||||
(
|
||||
CNT_CONTRACT_KEY,
|
||||
OMSCHRIJVING, -- Soort - Nr.versie - Omschrijving
|
||||
CONTRACTANT, -- Voor extra_tekstkolom
|
||||
VERVALDATUM -- Alle contracten die al meer dan 2 maanden verlopen zijn, worden niet meer getoond in keuzelijst
|
||||
)
|
||||
AS
|
||||
SELECT c.cnt_contract_key,
|
||||
c.cnt_contract_nummer_intern
|
||||
|| DECODE (c.cnt_contract_versie,
|
||||
NULL, '.0',
|
||||
'.' || c.cnt_contract_versie)
|
||||
|| ' - '
|
||||
|| c.cnt_contract_omschrijving
|
||||
|| ' (' || TO_CHAR(c.cnt_contract_looptijd_tot, 'dd-mm-yyyy') || ')'
|
||||
omschrijving,
|
||||
(SELECT prs_bedrijf_naam
|
||||
FROM prs_bedrijf
|
||||
WHERE prs_bedrijf_key = c.cnt_prs_bedrijf_key)
|
||||
contractant,
|
||||
c.cnt_contract_looptijd_tot + 60
|
||||
vervaldatum
|
||||
FROM cnt_contract c, ins_tab_discipline d
|
||||
WHERE c.ins_discipline_key = d.ins_discipline_key
|
||||
AND d.ins_discipline_module = 'CNT'
|
||||
AND d.ins_discipline_key = 22 -- huurcontract verkoop extern
|
||||
;
|
||||
|
||||
CREATE OR REPLACE VIEW schg_v_contracten_ih --intern huurcontract
|
||||
(
|
||||
CNT_CONTRACT_KEY,
|
||||
OMSCHRIJVING, -- Soort - Nr.versie - Omschrijving
|
||||
CONTRACTANT, -- Voor extra_tekstkolom
|
||||
VERVALDATUM -- Alle contracten die al meer dan 2 maanden verlopen zijn, worden niet meer getoond in keuzelijst
|
||||
)
|
||||
AS
|
||||
SELECT c.cnt_contract_key,
|
||||
c.cnt_contract_nummer_intern
|
||||
|| DECODE (c.cnt_contract_versie,
|
||||
NULL, '.0',
|
||||
'.' || c.cnt_contract_versie)
|
||||
|| ' - '
|
||||
|| c.cnt_contract_omschrijving
|
||||
|| ' (' || TO_CHAR(c.cnt_contract_looptijd_tot, 'dd-mm-yyyy') || ')'
|
||||
omschrijving,
|
||||
(SELECT prs_bedrijf_naam
|
||||
FROM prs_bedrijf
|
||||
WHERE prs_bedrijf_key = c.cnt_prs_bedrijf_key)
|
||||
contractant,
|
||||
c.cnt_contract_looptijd_tot + 60
|
||||
vervaldatum
|
||||
FROM cnt_contract c, ins_tab_discipline d,
|
||||
(
|
||||
SELECT prs_bedrijf_key,
|
||||
prs_bedrijf_naam,
|
||||
CASE WHEN flx.getflex ('PRS', 1000, b.prs_bedrijf_key, 'B') IS NULL THEN 0 ELSE 1 END
|
||||
contract_partij_intern
|
||||
FROM prs_bedrijf b
|
||||
) bi -- bedrijf_intern
|
||||
WHERE c.ins_discipline_key = d.ins_discipline_key
|
||||
AND d.ins_discipline_module = 'CNT'
|
||||
AND d.ins_discipline_key = 21 -- huurcontract vg
|
||||
AND c.cnt_prs_bedrijf_key = bi.prs_bedrijf_key
|
||||
AND bi.contract_partij_intern = 1
|
||||
;
|
||||
|
||||
|
||||
-------------------------------
|
||||
--- RAPPORTAGES ---------------
|
||||
-------------------------------
|
||||
|
||||
|
||||
|
||||
-------------------------------
|
||||
--- RAPPORTAGES - DWH ---------
|
||||
-------------------------------
|
||||
|
||||
CREATE OR REPLACE VIEW SCHG_V_CNT_DWH_HUURVG
|
||||
(
|
||||
CONTRACTSOORT,
|
||||
CONTRACTTYPE, -- inkoop / verkoop
|
||||
CONTRACT_NR,
|
||||
CONTRACT_KEY,
|
||||
ORGANISATIE_CODE,
|
||||
ORGANISATIE_NAAM,
|
||||
ORGANISATIE_BU_NAAM,
|
||||
CONTRACT_KOSTENPLAATS_CODE,
|
||||
CONTRACT_KOSTENPLAATS_OMS,
|
||||
CONTRACT_PARTIJ,
|
||||
CONTRACT_PARTIJ_INTERN,
|
||||
CONTRACT_LOOPTIJD_VAN,
|
||||
CONTRACT_LOOPTIJD_TOT,
|
||||
CONTRACT_FASE_ACTIEF,
|
||||
CONTRACT_STATUS,
|
||||
CONTRACT_STATUS_SCHG,
|
||||
CONTRACT_OPGEZEGD,
|
||||
BESTEDING_CONTRACTUEEL,
|
||||
BESTEDING_AVOND,
|
||||
BESTEDING_DAGDEEL_BEHANDELING,
|
||||
BESTEDING_DAGDEEL_OVERIG,
|
||||
POD_AGENDA_AANTAL, -- aantal agenda's gekoppeld
|
||||
LOCATIE_GEKOPPELD,
|
||||
OH_ONDERHUUR_AANTAL -- aantal onderhuur-contracten gekoppeld
|
||||
)
|
||||
AS
|
||||
SELECT d.ins_discipline_omschrijving
|
||||
contractsoort,
|
||||
CASE
|
||||
WHEN dp.cnt_disc_params_verkoopcontr = 1 THEN 'verkoop'
|
||||
ELSE 'inkoop'
|
||||
END
|
||||
contracttype,
|
||||
c.cnt_contract_nummer_intern
|
||||
|| '.'
|
||||
|| DECODE (c.cnt_contract_versie,
|
||||
NULL, '0',
|
||||
c.cnt_contract_versie)
|
||||
contract_nr,
|
||||
c.cnt_contract_key,
|
||||
cbu.prs_afdeling_naam2
|
||||
organisatie_code,
|
||||
cbu.prs_afdeling_naam3
|
||||
organisatie_naam,
|
||||
cbu.bu_naam
|
||||
organisatie_bedrijfsnaam, -- BU-Scharenborggroep
|
||||
kp.prs_kostenplaats_nr
|
||||
contract_kostenplaats_code,
|
||||
kp.prs_kostenplaats_omschrijving
|
||||
contract_kostenplaats_oms,
|
||||
b.prs_bedrijf_naam
|
||||
contract_partij,
|
||||
CASE WHEN flx.getflex ('PRS', 1000, b.prs_bedrijf_key, 'B') IS NULL THEN 0 ELSE 1 END
|
||||
contract_partij_intern,
|
||||
c.cnt_contract_looptijd_van
|
||||
contract_looptijd_van,
|
||||
c.cnt_contract_looptijd_tot
|
||||
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'))
|
||||
contract_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'))
|
||||
contract_status,
|
||||
flx.getdomeinwaarde(2,
|
||||
flx.getflex ('CNT',
|
||||
COALESCE(
|
||||
(SELECT MAX(k.cnt_kenmerk_key)
|
||||
FROM cnt_kenmerk k
|
||||
WHERE k.cnt_srtkenmerk_key = 22
|
||||
AND k.cnt_kenmerk_verwijder IS NULL
|
||||
AND k.cnt_srtcontract_key IS NULL), -1),
|
||||
c.cnt_contract_key)
|
||||
)
|
||||
contract_status_schg,
|
||||
flx.getflex ('CNT', 19, c.cnt_contract_key)
|
||||
contract_opgezegd,
|
||||
flx.getdomeinwaarde(5,
|
||||
flx.getflex ('CNT',
|
||||
COALESCE(
|
||||
(SELECT MAX(k.cnt_kenmerk_key)
|
||||
FROM cnt_kenmerk k
|
||||
WHERE k.cnt_srtkenmerk_key = 25
|
||||
AND k.cnt_kenmerk_omschrijving = 'Contractueel?'
|
||||
AND k.cnt_kenmerk_verwijder IS NULL
|
||||
AND k.cnt_srtcontract_key = c.ins_discipline_key), -1),
|
||||
c.cnt_contract_key)
|
||||
)
|
||||
besteding_contractueel,
|
||||
flx.getdomeinwaarde(5,
|
||||
flx.getflex ('CNT',
|
||||
COALESCE(
|
||||
(SELECT MAX(k.cnt_kenmerk_key)
|
||||
FROM cnt_kenmerk k
|
||||
WHERE k.cnt_srtkenmerk_key = 25
|
||||
AND k.cnt_kenmerk_omschrijving = 'Avonduren mogelijk?'
|
||||
AND k.cnt_kenmerk_verwijder IS NULL
|
||||
AND k.cnt_srtcontract_key = c.ins_discipline_key), -1),
|
||||
c.cnt_contract_key)
|
||||
)
|
||||
besteding_avond,
|
||||
flx.getflex (
|
||||
'CNT',
|
||||
COALESCE(
|
||||
(SELECT MAX(k.cnt_kenmerk_key)
|
||||
FROM cnt_kenmerk k
|
||||
WHERE k.cnt_srtkenmerk_key = 12
|
||||
AND k.cnt_kenmerk_omschrijving = 'Dagdeel - behandeling'
|
||||
AND k.cnt_kenmerk_verwijder IS NULL
|
||||
AND k.cnt_srtcontract_key = c.ins_discipline_key), -1),
|
||||
c.cnt_contract_key)
|
||||
besteding_dagdeel_behandeling,
|
||||
flx.getflex (
|
||||
'CNT',
|
||||
COALESCE(
|
||||
(SELECT MAX(k.cnt_kenmerk_key)
|
||||
FROM cnt_kenmerk k
|
||||
WHERE k.cnt_srtkenmerk_key = 12
|
||||
AND k.cnt_kenmerk_omschrijving = 'Dagdeel - overig'
|
||||
AND k.cnt_kenmerk_verwijder IS NULL
|
||||
AND k.cnt_srtcontract_key = c.ins_discipline_key), -1),
|
||||
c.cnt_contract_key)
|
||||
besteding_dagdeel_overig,
|
||||
am.agenda_aantal,
|
||||
cl.locatie_gekoppeld,
|
||||
oh.oh_aantal
|
||||
FROM cnt_contract c,
|
||||
prs_kostenplaats kp,
|
||||
ins_tab_discipline d,
|
||||
cnt_disc_params dp,
|
||||
(SELECT a.prs_afdeling_key,
|
||||
a.prs_afdeling_naam2,
|
||||
a.prs_afdeling_naam3,
|
||||
a1.prs_afdeling_naam3
|
||||
bu_naam,
|
||||
b.prs_bedrijf_naam
|
||||
FROM prs_v_afdeling a, prs_bedrijf b, prs_v_afdeling_boom ab, prs_v_afdeling a1
|
||||
WHERE a.prs_bedrijf_key = b.prs_bedrijf_key AND a.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = a1.prs_afdeling_key
|
||||
AND a.prs_afdeling_verwijder IS NULL) cbu, -- bu_contract_afdeling
|
||||
prs_bedrijf b,
|
||||
( SELECT c.cnt_contract_key,
|
||||
COUNT (kc.cnt_kenmerkcontract_key)
|
||||
agenda_aantal,
|
||||
MAX (kc.cnt_kenmerkcontract_waarde)
|
||||
agenda_key_fac
|
||||
FROM cnt_contract c, cnt_kenmerkcontract kc, cnt_kenmerk k
|
||||
WHERE c.cnt_contract_key = kc.cnt_contract_key
|
||||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
||||
AND kc.cnt_kenmerkcontract_verwijder IS NULL
|
||||
AND k.cnt_kenmerk_verwijder IS NULL
|
||||
AND k.cnt_srtkenmerk_key = 26 -- POD_AGENDA
|
||||
GROUP BY c.cnt_contract_key) am, -- agenda_max, - detailgegevens in SCHG_V_CNT_DWH_HUURVG2
|
||||
( SELECT c.cnt_contract_key,
|
||||
COUNT (kc.cnt_kenmerkcontract_key)
|
||||
oh_aantal,
|
||||
MAX (kc.cnt_kenmerkcontract_waarde)
|
||||
oh_contract_key
|
||||
FROM cnt_contract c, cnt_kenmerkcontract kc, cnt_kenmerk k
|
||||
WHERE c.cnt_contract_key = kc.cnt_contract_key
|
||||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
||||
AND kc.cnt_kenmerkcontract_verwijder IS NULL
|
||||
AND k.cnt_kenmerk_verwijder IS NULL
|
||||
AND k.cnt_srtkenmerk_key IN (23, 24) -- Onderhuur - gekoppelde interne en extern huurcontracten
|
||||
GROUP BY c.cnt_contract_key) oh, -- Tonen er eentje MAX - detailgegevens in SCHG_V_CNT_DWH_HUURVG3
|
||||
( SELECT cp.cnt_contract_key,
|
||||
LISTAGG (
|
||||
l.alg_locatie_omschrijving
|
||||
|| ' - '
|
||||
|| l.alg_locatie_plaats,
|
||||
', ')
|
||||
WITHIN GROUP (ORDER BY cp.cnt_contract_plaats_key) AS locatie_gekoppeld
|
||||
FROM cnt_contract_plaats cp, alg_locatie l
|
||||
WHERE cp.cnt_alg_plaats_code = 'L'
|
||||
AND cp.cnt_alg_plaats_key = l.alg_locatie_key
|
||||
GROUP BY cp.cnt_contract_key) cl -- contract_locatie(s)
|
||||
WHERE c.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND c.ins_discipline_key = d.ins_discipline_key
|
||||
AND c.ins_discipline_key IN (21, 22) -- Alleen alle huurcontracten VG en alle huurcontracten VG EXTERNE VERKOOP. De contracten ANDERS sluiten we vooralsnog uit. ACTIE IN PROD KEY 21 en 22
|
||||
AND d.ins_discipline_key = dp.cnt_ins_discipline_key(+)
|
||||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND c.prs_afdeling_key_eig = cbu.prs_afdeling_key
|
||||
AND c.cnt_contract_key = am.cnt_contract_key(+)
|
||||
AND c.cnt_contract_key = oh.cnt_contract_key(+)
|
||||
AND c.cnt_contract_key = cl.cnt_contract_key(+);
|
||||
|
||||
CREATE OR REPLACE VIEW SCHG_V_CNT_DWH_HUURVG2
|
||||
(
|
||||
CONTRACT_NR,
|
||||
CONTRACT_KEY,
|
||||
ORGANISATIE_CODE,
|
||||
POD_AGENDA_KEY,
|
||||
VERVALDATUM
|
||||
)
|
||||
AS
|
||||
SELECT c.cnt_contract_nummer_intern
|
||||
|| '.'
|
||||
|| DECODE (c.cnt_contract_versie,
|
||||
NULL, '0',
|
||||
c.cnt_contract_versie)
|
||||
contract_nr,
|
||||
c.cnt_contract_key
|
||||
contract_key,
|
||||
cbu.prs_afdeling_naam2
|
||||
organisatie_code,
|
||||
t.agenda_key_fac
|
||||
pod_agenda_key,
|
||||
t.fac_usrdata_vervaldatum
|
||||
vervaldatum
|
||||
FROM cnt_contract c,
|
||||
prs_kostenplaats kp,
|
||||
ins_tab_discipline d,
|
||||
cnt_disc_params dp,
|
||||
(SELECT a.prs_afdeling_key,
|
||||
a.prs_afdeling_naam2,
|
||||
a.prs_afdeling_naam3,
|
||||
a1.prs_afdeling_naam3
|
||||
bu_naam,
|
||||
b.prs_bedrijf_naam
|
||||
FROM prs_v_afdeling a, prs_bedrijf b, prs_v_afdeling_boom ab, prs_v_afdeling a1
|
||||
WHERE a.prs_bedrijf_key = b.prs_bedrijf_key AND a.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = a1.prs_afdeling_key
|
||||
AND a.prs_afdeling_verwijder IS NULL) cbu, -- bu_contract_afdeling
|
||||
prs_bedrijf b,
|
||||
( SELECT c.cnt_contract_key,
|
||||
kc.cnt_kenmerkcontract_waarde agenda_key_fac
|
||||
FROM cnt_contract c, cnt_kenmerkcontract kc, cnt_kenmerk k
|
||||
WHERE c.cnt_contract_key = kc.cnt_contract_key
|
||||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
||||
AND kc.cnt_kenmerkcontract_verwijder IS NULL
|
||||
AND k.cnt_kenmerk_verwijder IS NULL
|
||||
AND k.cnt_srtkenmerk_key = 26 -- POD_AGENDA
|
||||
) ag, -- agenda,
|
||||
(
|
||||
SELECT ud.fac_usrdata_key, SUBSTR (ud.fac_usrdata_code, 5) agenda_key_fac, ud.fac_usrdata_vervaldatum
|
||||
FROM fac_usrtab ut, fac_usrdata ud
|
||||
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key
|
||||
AND ut.fac_usrtab_key = 24 -- eigen tabel POD_AGENDA_2
|
||||
AND ud.fac_usrdata_verwijder IS NULL
|
||||
) t -- eigen tabel waar agendas in opgenomen zijn
|
||||
WHERE c.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND c.ins_discipline_key = d.ins_discipline_key
|
||||
AND c.ins_discipline_key IN (21) -- Alleen alle huurcontracten VG
|
||||
AND d.ins_discipline_key = dp.cnt_ins_discipline_key(+)
|
||||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND c.prs_afdeling_key_eig = cbu.prs_afdeling_key
|
||||
AND c.cnt_contract_key = ag.cnt_contract_key(+)
|
||||
AND ag.agenda_key_fac = t.fac_usrdata_key (+) ;
|
||||
|
||||
-- Onderhuur - alle gekoppelde onderhuurcontracten per contract_key
|
||||
CREATE OR REPLACE VIEW SCHG_V_CNT_DWH_HUURVG3
|
||||
(
|
||||
CONTRACT_NR,
|
||||
CONTRACT_KEY,
|
||||
ORGANISATIE_CODE,
|
||||
OH_CONTRACT_KEY,
|
||||
OH_CONTRACT_SOORT
|
||||
)
|
||||
AS
|
||||
SELECT c.cnt_contract_nummer_intern
|
||||
|| '.'
|
||||
|| DECODE (c.cnt_contract_versie,
|
||||
NULL, '0',
|
||||
c.cnt_contract_versie)
|
||||
contract_nr,
|
||||
c.cnt_contract_key
|
||||
contract_key,
|
||||
cbu.prs_afdeling_naam2
|
||||
organisatie_code,
|
||||
oh.oh_contract_key
|
||||
oh_contract_key,
|
||||
oh.oh_contract_soort
|
||||
FROM cnt_contract c,
|
||||
prs_kostenplaats kp,
|
||||
ins_tab_discipline d,
|
||||
cnt_disc_params dp,
|
||||
(SELECT a.prs_afdeling_key,
|
||||
a.prs_afdeling_naam2,
|
||||
a.prs_afdeling_naam3,
|
||||
a1.prs_afdeling_naam3
|
||||
bu_naam,
|
||||
b.prs_bedrijf_naam
|
||||
FROM prs_v_afdeling a, prs_bedrijf b, prs_v_afdeling_boom ab, prs_v_afdeling a1
|
||||
WHERE a.prs_bedrijf_key = b.prs_bedrijf_key AND a.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = a1.prs_afdeling_key
|
||||
AND a.prs_afdeling_verwijder IS NULL) cbu, -- bu_contract_afdeling
|
||||
prs_bedrijf b,
|
||||
( SELECT c.cnt_contract_key,
|
||||
kc.cnt_kenmerkcontract_waarde
|
||||
oh_contract_key,
|
||||
CASE WHEN k.cnt_srtkenmerk_key = 23 THEN 'Inkoop Intern'
|
||||
WHEN k.cnt_srtkenmerk_key = 24 THEN 'Inkoop Extern'
|
||||
ELSE ''
|
||||
END
|
||||
oh_contract_soort
|
||||
FROM cnt_contract c, cnt_kenmerkcontract kc, cnt_kenmerk k
|
||||
WHERE c.cnt_contract_key = kc.cnt_contract_key
|
||||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
||||
AND kc.cnt_kenmerkcontract_verwijder IS NULL
|
||||
AND k.cnt_kenmerk_verwijder IS NULL
|
||||
AND k.cnt_srtkenmerk_key IN (23, 24)
|
||||
) oh -- Onderhuur - gekoppelde interne en extern huurcontracten
|
||||
WHERE c.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND c.ins_discipline_key = d.ins_discipline_key
|
||||
AND c.ins_discipline_key IN (21) -- Alleen op Huurcontracten VG
|
||||
AND d.ins_discipline_key = dp.cnt_ins_discipline_key(+)
|
||||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND c.prs_afdeling_key_eig = cbu.prs_afdeling_key
|
||||
AND c.cnt_contract_key = oh.cnt_contract_key(+)
|
||||
ORDER BY c.cnt_contract_key;
|
||||
|
||||
|
||||
-------------------------------
|
||||
--- PROCEDURES ---------------
|
||||
-------------------------------
|
||||
|
||||
CREATE OR REPLACE PROCEDURE schg_import_perslid (p_import_key IN NUMBER)
|
||||
AS
|
||||
v_seq_of_columns VARCHAR (255);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (200);
|
||||
v_errorhint VARCHAR2 (200);
|
||||
|
||||
-- overige variabelen
|
||||
v_prs_afdeling_key NUMBER(10);
|
||||
|
||||
CURSOR c_afd
|
||||
IS
|
||||
SELECT fac_imp_file_index, prs_perslid_email, prs_afdeling_naam
|
||||
FROM fac_imp_perslid
|
||||
WHERE fac_import_key = p_import_key ;
|
||||
|
||||
|
||||
BEGIN
|
||||
-- Import csv formaat - kolommen:
|
||||
-- 1. userPrincipalName
|
||||
-- 2. displayName
|
||||
-- 3. surname
|
||||
-- 4. EmailAddress
|
||||
-- 5. givenName
|
||||
-- 6. id
|
||||
-- 7. jobTitle
|
||||
-- 8. department
|
||||
-- 9. usageLocation
|
||||
-- 10. officeLocation
|
||||
-- 11. comanyName
|
||||
-- 12. importbestand_schg -- LET OP - Deze voeg ik voor import toe omdat men meerdere bestanden, cq entra_id's heeft aan scharenborg_kant
|
||||
|
||||
v_seq_of_columns := '0;0;0;0;0;0;9;3;0;5;'
|
||||
-- v_alg_locatie_code 1
|
||||
-- v_alg_gebouw_code 2
|
||||
-- v_alg_verdieping_volgnr 3
|
||||
-- v_alg_ruimte_nr 4
|
||||
-- v_prs_werkplek_volgnr 5
|
||||
-- v_prs_werkplek_omschrijving 6
|
||||
-- v_prs_afdeling_naam 7 -- VERPLICHT BIJ IMPORT
|
||||
-- v_prs_perslid_naam 8
|
||||
-- v_prs_perslid_tussenvoegsel 9
|
||||
-- v_prs_perslid_voornaam 10
|
||||
|| '0;0;0;0;0;0;0;4;0;0;'
|
||||
-- v_prs_perslid_voorletters 11
|
||||
-- v_prs_perslid_partner_naam 12
|
||||
-- v_prs_perslid_partner_tussenv 13
|
||||
-- v_prs_naamgebruik_code 14 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
|
||||
-- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
|
||||
-- 2 personen die de geboortenaam van de partner willen gebruiken
|
||||
-- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
|
||||
-- v_prs_perslid_geslacht 15 Gebruik 'man', 'm' of 1 voor man en 'vrouw', 'v' of 0 voor vrouw case insensitive geen default
|
||||
-- v_prs_perslid_telefoonnr 16
|
||||
-- v_prs_perslid_mobiel 17
|
||||
-- v_prs_perslid_email 18
|
||||
-- v_prs_perslid_dienstverband 19
|
||||
-- v_prs_perslid_nr 20
|
||||
|| '9;0;0;0;0;0;1;2;3;4;'
|
||||
-- v_prs_srtperslid_omschrijving 21 -- VERPLICHT BIJ IMPORT
|
||||
-- v_prs_perslid_oslogin 22
|
||||
-- v_prs_perslid_wachtwoord 23
|
||||
-- v_prs_perslid_titel 24
|
||||
-- v_prs_perslid_apikey 25
|
||||
-- v_dummy 26
|
||||
-- v_prs_kenmerk1 27
|
||||
-- v_prs_kenmerk2 28
|
||||
-- v_prs_kenmerk3 29
|
||||
-- v_prs_kenmerk4 30
|
||||
|| '5;6;7;8;9;10;11;12;0;0;'
|
||||
|| '0;0;0;0;0;7';
|
||||
|
||||
-- header aanvullen met bestand
|
||||
-- deze voeg ik voor import toe omdat men meerdere bestanden, cq entra_id's heeft aan scharenborg_kant
|
||||
|
||||
UPDATE fac_imp_file i
|
||||
SET i.fac_imp_file_line =
|
||||
fac_imp_file_line
|
||||
|| ';'
|
||||
|| 'importbestand_schg'
|
||||
WHERE fac_import_key = p_import_key AND fac_imp_file_index = 1;
|
||||
|
||||
-- regels
|
||||
UPDATE fac_imp_file i
|
||||
SET i.fac_imp_file_line =
|
||||
fac_imp_file_line
|
||||
|| ';'
|
||||
|| (SELECT fac_import_filenaam FROM fac_import WHERE fac_import_key = p_import_key)
|
||||
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
||||
|
||||
|
||||
prs.import_perslid(p_import_key, v_seq_of_columns, 'userPrincipalName;displayName;surname;EmailAddress;givenName;id;jobTitle;department;usageLocation;officeLocation;companyName;importbestand_schg%');
|
||||
|
||||
|
||||
-- POST-UPDATES op data doen om verwerking goed/volledig/cust-specifiek te laten verlopen
|
||||
|
||||
-- Loginnaam afleiden van emailadres
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_perslid_oslogin =
|
||||
UPPER((SUBSTR (prs_perslid_email,
|
||||
0,
|
||||
INSTR (prs_perslid_email, '@') - 1))) ;
|
||||
|
||||
-- Functie moet bekend zijn
|
||||
-- Functie is niet altijd gevuld, functie eerst gevuld met achternaam, nu vullen met kenmerk (of 'Onbekend').
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_srtperslid_omschrijving =
|
||||
DECODE (prs_kenmerk20, NULL, 'Onbekend', prs_kenmerk20);
|
||||
|
||||
-- Moeten er nog deletes/opschoning gedaan worden in bulkbestand?
|
||||
-- DELETE fac_imp_perslid WHERE prs_perslid_email IS NULL ;
|
||||
|
||||
|
||||
v_errorhint := 'Afdeling bepalen en vullen';
|
||||
-- Afdeling bepalen waar persoon onder komt te vallen --- NOG ONDERHANDEN / TE BESPREKEN !!!
|
||||
---- Structuur die ik nu kies is om domein_naam emailadres te hanteren (en als deze onbekend is dan fallback-afdeling op AD_ONBEKEND
|
||||
FOR rec IN c_afd
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
v_errorhint := 'Persoon aan Afdeling koppelen';
|
||||
|
||||
SELECT min(prs_afdeling_key)
|
||||
INTO v_prs_afdeling_key
|
||||
FROM prs_v_afdeling
|
||||
WHERE UPPER(prs_afdeling_omschrijving) = UPPER(SUBSTR (rec.prs_perslid_email, INSTR (rec.prs_perslid_email, '@') + 1))
|
||||
AND prs_afdeling_verwijder IS NULL ;
|
||||
|
||||
IF v_prs_afdeling_key IS NOT NULL THEN
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_afdeling_naam = (SELECT a.prs_afdeling_upper FROM prs_afdeling a WHERE a.prs_afdeling_key = v_prs_afdeling_key)
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
ELSE
|
||||
|
||||
-- fallback_afdeling
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_afdeling_naam = 'AD_ONBEKEND'
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
END IF;
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
|
||||
/*
|
||||
-- De afdelingscode slaan we tijdelijk op in kenmerk14 omdat deze bij toekomstige medewerkers leeg is.
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_afdeling_naam = COALESCE(prs_kenmerk14, '_FH'),
|
||||
prs_kenmerk1 = COALESCE(prs_kenmerk1, 'Future Hires'),
|
||||
prs_srtperslid_omschrijving = SUBSTR(COALESCE(prs_kenmerk15, 'Future Hire'),1,60);
|
||||
|
||||
-- We gaan de medewerkers koppelen aan een werkplek. Dat gaan we doen door de code van de standplaats (kenmerk6) te matchen
|
||||
-- met het kenmerk bij het gebouw (kenmerk 1200). Verder moet er dan bij dat gebouw een ruimte zijn met ruimtenummer _WP
|
||||
UPDATE fac_imp_perslid p
|
||||
SET (alg_locatie_code,
|
||||
alg_gebouw_code,
|
||||
alg_verdieping_volgnr,
|
||||
alg_ruimte_nr) =
|
||||
(SELECT alg_locatie_code,
|
||||
alg_gebouw_upper,
|
||||
alg_verdieping_volgnr,
|
||||
alg_ruimte_nr
|
||||
FROM alg_v_ruimte_gegevens rg, alg_onrgoedkenmerk aogk
|
||||
WHERE aogk.alg_onrgoed_key = rg.alg_gebouw_key
|
||||
AND aogk.alg_kenmerk_key = 1200
|
||||
AND alg_ruimte_nr = '_WP'
|
||||
AND aogk.alg_onrgoedkenmerk_waarde = prs_kenmerk6
|
||||
AND ROWNUM = 1);
|
||||
*/
|
||||
|
||||
END schg_import_perslid;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE schg_update_perslid (p_import_key IN NUMBER)
|
||||
IS
|
||||
-- Alle personen verwijderen die niet meer in het import bestand voorkomen
|
||||
-- Actuele bestand verwerken via standaard update
|
||||
-- Kenmerkvelden in personenkaart van de AD_gegevens
|
||||
-- Omdat er 2 tenant's zijn moet je bij de DELETE actie niet 'zomaar checken op 'Niet bekend, dus verwijderen'.
|
||||
---- Ik heb import_bestands_naam toegevoegd en dus in DELETE alleen binnen het personenbestand in Facilitor wat uit die tenant_id komt checken.
|
||||
---- Dubbelingen tussen de tenants/bestanden - ER NOG UITVISSEN ??
|
||||
-- VERDER NOG BESPREKEN
|
||||
---- Draaien import als aantal medewerkers > 100 ?
|
||||
---- Personen in de juiste autorisatiegroep zetten op basis FUNCTIE
|
||||
---- Dubbeling email-adressen ???
|
||||
---- ???
|
||||
|
||||
CURSOR c_del
|
||||
IS
|
||||
SELECT p.prs_perslid_key,
|
||||
p.prs_perslid_email,
|
||||
pf.prs_perslid_naam_full,
|
||||
p.prs_perslid_oslogin,
|
||||
p.importbestand_schg,
|
||||
i.prs_kenmerk12
|
||||
FROM fac_imp_perslid i,
|
||||
(SELECT p.prs_perslid_key,
|
||||
p.prs_perslid_email,
|
||||
p.prs_perslid_oslogin,
|
||||
p.prs_perslid_verwijder,
|
||||
p.prs_afdeling_key,
|
||||
(SELECT kw.prs_kenmerklink_waarde
|
||||
FROM prs_kenmerklink kw
|
||||
WHERE kw.prs_kenmerk_key = 1020
|
||||
AND kw.prs_kenmerklink_niveau = 'P'
|
||||
AND kw.prs_link_key = p.prs_perslid_key)
|
||||
importbestand_schg
|
||||
FROM prs_perslid p) p,
|
||||
prs_v_perslid_fullnames_all pf,
|
||||
prs_v_afdeling_boom ab,
|
||||
prs_afdeling a,
|
||||
(SELECT MAX (prs_kenmerk12)
|
||||
importbestand_schg
|
||||
FROM fac_imp_perslid) ib -- importbestand_sch in deze run
|
||||
WHERE p.prs_perslid_email = i.prs_perslid_email(+)
|
||||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND COALESCE (p.importbestand_schg, ib.importbestand_schg) = ib.importbestand_schg
|
||||
-- AND ab.prs_bedrijf_key = c_bedrijf_key
|
||||
AND INSTR (a.prs_afdeling_upper, 'AD_') > 0
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM fac_imp_perslid
|
||||
WHERE INSTR (UPPER (p.prs_perslid_email), UPPER (prs_perslid_email)) > 0);
|
||||
|
||||
CURSOR c_flex -- Voor updaten van de algemene flex-kenmerkvelden op actuele medewerkers
|
||||
IS
|
||||
SELECT p.prs_perslid_key, i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3, i.prs_kenmerk4, i.prs_kenmerk5, i.prs_kenmerk6, i.prs_kenmerk7, i.prs_kenmerk8, i.prs_kenmerk9, i.prs_kenmerk10, i.prs_kenmerk11, i.prs_kenmerk12
|
||||
FROM prs_v_aanwezigperslid p, fac_imp_perslid i
|
||||
WHERE p.prs_perslid_key = i.prs_perslid_key
|
||||
ORDER BY 1;
|
||||
|
||||
v_count NUMBER;
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (400);
|
||||
v_errorhint VARCHAR2 (400);
|
||||
|
||||
BEGIN
|
||||
v_errorhint := 'Niet genoeg personen in bestand, import afgebroken';
|
||||
|
||||
SELECT COUNT ( * ) INTO v_count FROM fac_imp_perslid;
|
||||
|
||||
IF v_count >= 100
|
||||
THEN
|
||||
v_errorhint := 'Verwerken persoonsgegevens';
|
||||
|
||||
-- Geldig importbestand wat betreft aantal personen
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- Nu kunnen we de standaard facilitor-update doorvoeren
|
||||
-- generic update
|
||||
-- 'EMAIL' betekent dat op basis van Email wordt gematched.
|
||||
-- 'NULL' betekent altijd geen werkplekken verwijderen
|
||||
prs.update_perslid (p_import_key, 'EMAIL', NULL);
|
||||
|
||||
-- Voordat we gaan importeren gaan we op zoek of we nog mensen moeten verwijderen die niet in de import voorkomen.
|
||||
FOR rec IN c_del
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint :=
|
||||
'Verwijderen persoon: '
|
||||
|| rec.prs_perslid_key
|
||||
|| '-'
|
||||
|| rec.prs_perslid_email
|
||||
|| '-'
|
||||
|| rec.prs_perslid_oslogin;
|
||||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- En dan gaan we als laatste de kenmmerken bijwerken op de actuele medewerkers
|
||||
FOR rec IN c_flex
|
||||
LOOP
|
||||
BEGIN
|
||||
-- userPrincipalName;displayName;surname;EmailAddress;givenName;id;jobTitle;department;usageLocation;officeLocation;companyName;
|
||||
|
||||
v_errorhint:='Fout bijwerken kenmerkvelden';
|
||||
PRS.upsertkenmerk (1001, rec.prs_perslid_key, rec.prs_kenmerk1);
|
||||
PRS.upsertkenmerk (1002, rec.prs_perslid_key, rec.prs_kenmerk2);
|
||||
PRS.upsertkenmerk (1003, rec.prs_perslid_key, rec.prs_kenmerk3);
|
||||
PRS.upsertkenmerk (1040, rec.prs_perslid_key, rec.prs_kenmerk4);
|
||||
PRS.upsertkenmerk (1004, rec.prs_perslid_key, rec.prs_kenmerk5);
|
||||
PRS.upsertkenmerk (1005, rec.prs_perslid_key, rec.prs_kenmerk6);
|
||||
PRS.upsertkenmerk (1006, rec.prs_perslid_key, rec.prs_kenmerk7);
|
||||
PRS.upsertkenmerk (1007, rec.prs_perslid_key, rec.prs_kenmerk8);
|
||||
PRS.upsertkenmerk (1008, rec.prs_perslid_key, rec.prs_kenmerk9);
|
||||
PRS.upsertkenmerk (1009, rec.prs_perslid_key, rec.prs_kenmerk10);
|
||||
PRS.upsertkenmerk (1010, rec.prs_perslid_key, rec.prs_kenmerk11);
|
||||
PRS.upsertkenmerk (1020, rec.prs_perslid_key, rec.prs_kenmerk12);
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
v_errorhint);
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
v_errorhint);
|
||||
END schg_update_perslid;
|
||||
/
|
||||
|
||||
|
||||
|
||||
-------------------------------
|
||||
--- NOTI-JOBS ---------------
|
||||
-------------------------------
|
||||
|
||||
-- Contract-Rappel
|
||||
--- Notificatie op contractbeheerder en/of verantwoordelijke
|
||||
--- Onderstaand rapport is basisview en deze fungeert als bron voor de rappel-notificatie
|
||||
CREATE OR REPLACE VIEW schg_v_cnt_rappel_basis
|
||||
AS
|
||||
SELECT d.ins_discipline_omschrijving,
|
||||
c.cnt_contract_key,
|
||||
c.cnt_contract_nummer_intern
|
||||
|| DECODE (c.cnt_contract_versie,
|
||||
NULL, '',
|
||||
'.' || c.cnt_contract_versie)
|
||||
cnt_contract_nr,
|
||||
c.cnt_contract_looptijd_van begindatum,
|
||||
c.cnt_contract_looptijd_tot einddatum,
|
||||
cnt.cnt_getopzegdatum (c.cnt_contract_key) cnt_opzegdatum,
|
||||
cnt.cnt_getrappeldatum (c.cnt_contract_key) cnt_rappeldatum,
|
||||
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,
|
||||
(SELECT kc.cnt_kenmerkcontract_waarde
|
||||
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
|
||||
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
|
||||
AND kc.cnt_contract_key = c.cnt_contract_key
|
||||
AND k.cnt_kenmerk_key = 17) -- contractbeheerder
|
||||
vink_beheerder,
|
||||
(SELECT p.prs_perslid_email
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_perslid_key = c.prs_perslid_key_beh
|
||||
AND p.prs_perslid_verwijder IS NULL)
|
||||
beheerder_email,
|
||||
(SELECT kc.cnt_kenmerkcontract_waarde
|
||||
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
|
||||
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
|
||||
AND kc.cnt_contract_key = c.cnt_contract_key
|
||||
AND k.cnt_kenmerk_key = 16) -- contractverantwoordelijke
|
||||
vink_verantwoordelijke,
|
||||
(SELECT p.prs_perslid_email
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_perslid_key = c.prs_perslid_key_eig
|
||||
AND p.prs_perslid_verwijder IS NULL)
|
||||
veantwoordelijke_email
|
||||
FROM cnt_v_aanwezigcontract c, ins_tab_discipline d
|
||||
WHERE c.ins_discipline_key = d.ins_discipline_key
|
||||
AND d.ins_discipline_module = 'CNT';
|
||||
|
||||
|
||||
-- SCHG: Contractbeheerder(_eig) is Beheerder/Administrateur en de Contractverantwoordelijke (_beh) is 1e aanspreekpunt die beslist over wel/niet verlengen.
|
||||
CREATE OR REPLACE VIEW schg_v_noti_cntreminder
|
||||
(
|
||||
code,
|
||||
sender,
|
||||
receiver,
|
||||
text,
|
||||
key,
|
||||
xkey,
|
||||
xemail,
|
||||
xmobile
|
||||
)
|
||||
AS -- Op rappel-datum TER INFO-mail naar de Beheerder/Administrateur sturen
|
||||
SELECT 'CNTMAI',
|
||||
NULL,
|
||||
c.prs_perslid_key_beh,
|
||||
'TER INFO: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
|
||||
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|
||||
|| ' (' || 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,
|
||||
NULL,
|
||||
NULL
|
||||
FROM schg_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
|
||||
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND v.cnt_contract_key = c.cnt_contract_key
|
||||
AND v.vink_beheerder = 1
|
||||
AND c.cnt_contract_status = 0
|
||||
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
|
||||
AND c.prs_perslid_key_beh <> COALESCE(c.prs_perslid_key_eig, -1) -- als administrateur gelijk aan 1e aanspreekpunt dan dan sturen we de info-mail niet uit
|
||||
AND NOT EXISTS -- kenmerkveld 'Opgezegd' staat uit
|
||||
(SELECT km.cnt_contract_key
|
||||
FROM cnt_kenmerkcontract km, cnt_kenmerk k
|
||||
WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_key = 19)
|
||||
UNION ALL -- Op rappel-datum ACTIE-mail naar het 1e aanspreekpunt sturen (contractverantwoordelijke)
|
||||
SELECT 'CUST01',
|
||||
NULL,
|
||||
c.prs_perslid_key_eig,
|
||||
'ACTIE: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
|
||||
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|
||||
|| ' (' || 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,
|
||||
NULL,
|
||||
NULL
|
||||
FROM schg_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
|
||||
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND v.cnt_contract_key = c.cnt_contract_key
|
||||
AND v.vink_verantwoordelijke = 1
|
||||
AND c.cnt_contract_status = 0
|
||||
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
|
||||
AND c.prs_perslid_key_eig IS NOT NULL
|
||||
AND NOT EXISTS -- kenmerkveld 'Opgezegd' staat uit
|
||||
(SELECT km.cnt_contract_key
|
||||
FROM cnt_kenmerkcontract km, cnt_kenmerk k
|
||||
WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_key = 19)
|
||||
;
|
||||
|
||||
|
||||
|
||||
-- Dagelijkse taak
|
||||
CREATE OR REPLACE PROCEDURE schg_daily
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
NULL;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
------ 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
|
||||
Reference in New Issue
Block a user