HMOD#58494 -- Implementatie Humanitas Onder Dak - cust sql
svn path=/Customer/trunk/; revision=45411
This commit is contained in:
290
HMOD/hmod.sql
290
HMOD/hmod.sql
@@ -217,6 +217,8 @@ AS
|
||||
v_elvy VARCHAR2 (20);
|
||||
v_hodnet VARCHAR2 (20);
|
||||
v_proactive VARCHAR2 (20);
|
||||
v_opmerking VARCHAR2 (1000);
|
||||
v_volgnr NUMBER (10);
|
||||
|
||||
CURSOR c
|
||||
IS
|
||||
@@ -229,7 +231,6 @@ BEGIN
|
||||
---- Voor hmod_koffersysteem geldt dat je inlezen op dezelfde dag mag/kunt overschrijven. Voorgaande versiedatums blijven staan.
|
||||
DELETE FROM hmod_imp_koffersysteem
|
||||
WHERE versiedatum = TO_CHAR(TRUNC (SYSDATE),'DD-MM-YYYY');
|
||||
|
||||
COMMIT;
|
||||
|
||||
header_is_valid := 0;
|
||||
@@ -246,12 +247,10 @@ BEGIN
|
||||
v_errormsg := 'Fout opvragen te importeren rij';
|
||||
v_aanduiding := '';
|
||||
|
||||
-- Lees alle veldwaarden: versiedatum;omschrijving;code;token;mob;hit;lap_en_sim;lapt;tnc;tnc omschrijving;facilitor;adp;absentiemanager;regas;checks;accountview;elvy;hodnet;proactive
|
||||
-- Lees alle veldwaarden: omschrijving;code;token;mob;hit;lap_en_sim;lapt;tnc;tnc omschrijving;facilitor;adp;absentiemanager;regas;checks;accountview;elvy;hodnet;proactive;opmerking
|
||||
v_errormsg := 'Fout opvragen te importeren kolom/rij 1';
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_versiedatum);
|
||||
v_errormsg := 'Fout opvragen te importeren kolom/rij 2';
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_omschrijving);
|
||||
v_errormsg := 'Fout opvragen te importeren kolom/rij 3';
|
||||
v_errormsg := 'Fout opvragen te importeren kolom/rij 2';
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_code);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_token);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_mob);
|
||||
@@ -259,9 +258,7 @@ BEGIN
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_lap_en_sim);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_lapt);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_tnc);
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_tnc_omschrijving);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_tnc_omschrijving);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_facilitor);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_adp);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_absentiemanager);
|
||||
@@ -271,6 +268,7 @@ BEGIN
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_elvy);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_hodnet);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_proactive);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_opmerking);
|
||||
|
||||
v_aanduiding :=
|
||||
v_versiedatum || '|' || v_omschrijving || '|' || v_code;
|
||||
@@ -279,8 +277,7 @@ BEGIN
|
||||
-- Skip until the header is found
|
||||
IF header_is_valid = 0
|
||||
THEN
|
||||
IF v_versiedatum = 'versiedatum'
|
||||
AND v_omschrijving = 'omschrijving'
|
||||
IF v_omschrijving = 'omschrijving'
|
||||
AND v_code = 'code'
|
||||
AND v_token = 'token'
|
||||
AND v_mob = 'mob'
|
||||
@@ -298,16 +295,26 @@ BEGIN
|
||||
AND v_elvy = 'elvy'
|
||||
AND v_hodnet = 'hodnet'
|
||||
AND v_proactive = 'proactive'
|
||||
AND v_opmerking = 'opmerking'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
ELSE -- Header OK. Vanaf hier in de LOOP eventueel variabele vullen.
|
||||
|
||||
BEGIN
|
||||
v_errormsg := 'Versiedatum wordt sysdatum ';
|
||||
|
||||
SELECT TO_CHAR (TRUNC (SYSDATE), 'DD-MM-YYYY')
|
||||
INTO v_versiedatum
|
||||
FROM DUAL;
|
||||
|
||||
-- volgnr vullen - dit numerieke veld gebruiken we voor kenmerkdomein-key..
|
||||
---- dit zou ik ook kunnen vullen buiten de LOOP, toch?
|
||||
SELECT COALESCE (MAX (volgnr), 0)
|
||||
INTO v_volgnr
|
||||
FROM hmod_imp_koffersysteem;
|
||||
v_volgnr := v_volgnr + 1 ;
|
||||
|
||||
END;
|
||||
|
||||
INSERT INTO hmod_imp_koffersysteem (versiedatum,
|
||||
@@ -328,7 +335,9 @@ BEGIN
|
||||
accountview,
|
||||
elvy,
|
||||
hodnet,
|
||||
proactive)
|
||||
proactive,
|
||||
volgnr,
|
||||
opmerking)
|
||||
VALUES (v_versiedatum,
|
||||
v_omschrijving,
|
||||
v_code,
|
||||
@@ -347,7 +356,9 @@ BEGIN
|
||||
v_accountview,
|
||||
v_elvy,
|
||||
v_hodnet,
|
||||
v_proactive);
|
||||
v_proactive,
|
||||
v_volgnr,
|
||||
v_opmerking);
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
@@ -363,7 +374,7 @@ BEGIN
|
||||
IF v_ongeldig > 0
|
||||
THEN
|
||||
ROLLBACK;
|
||||
-- Met rollback haalt hij ook al mijn errors en warnings weg!?? Daarom een DELETE
|
||||
-- Met rollback haalt hij ook al mijn errors en waarschuwingen weg!?? Daarom een DELETE
|
||||
-- delete from hmod_imp_contractscope where <alleen de ingelzen versiedatum ;
|
||||
COMMIT;
|
||||
fac.imp_writelog (
|
||||
@@ -409,6 +420,8 @@ BEGIN
|
||||
END hmod_update_koffer;
|
||||
/
|
||||
|
||||
-- Voor UDR-rapportage.
|
||||
-- Later stadium nog aanvullen met personen-koppeling zodat men goed overzicht heeft van wat er per persoon is uitgereikt. Bij herziening van de koffer oook direct in beeld heeft waar eventuele vervolgacties gedaan moeten worden.
|
||||
CREATE OR REPLACE VIEW hmod_v_koffersysteem
|
||||
(
|
||||
OMSCHRIJVING_TOTAAL,
|
||||
@@ -429,7 +442,9 @@ CREATE OR REPLACE VIEW hmod_v_koffersysteem
|
||||
ACCOUNTVIEW,
|
||||
ELVY,
|
||||
HODNET,
|
||||
PROACTIVE
|
||||
PROACTIVE,
|
||||
VOLGNR,
|
||||
OPMERKING
|
||||
)
|
||||
AS
|
||||
SELECT OMSCHRIJVING || ' (' || code || ')' AS omschrijving_totaal,
|
||||
@@ -450,9 +465,254 @@ AS
|
||||
accountview,
|
||||
elvy,
|
||||
hodnet,
|
||||
proactive
|
||||
proactive,
|
||||
volgnr,
|
||||
opmerking
|
||||
FROM hmod_imp_koffersysteem;
|
||||
|
||||
-- Voor keuzelijst (kenmerk domein)
|
||||
CREATE OR REPLACE VIEW hmod_v_koffersysteem_huidig
|
||||
(
|
||||
VOLGNR,
|
||||
OMSCHRIJVING,
|
||||
VERSIEDATUM
|
||||
)
|
||||
AS
|
||||
SELECT
|
||||
VOLGNR,
|
||||
OMSCHRIJVING_TOTAAL,
|
||||
VERSIEDATUM
|
||||
FROM hmod_v_koffersysteem
|
||||
WHERE versiedatum = (select max(versiedatum) from hmod_v_koffersysteem)
|
||||
ORDER BY omschrijving, versiedatum DESC
|
||||
;
|
||||
|
||||
-- Basisview en rapportview voor de telefoon-objecten mobiel en vast per persoon
|
||||
CREATE OR REPLACE VIEW HMOD_V_TELEFOONNR_KLANTOBJECT
|
||||
(
|
||||
PRS_PERSLID_KEY,
|
||||
PRS_NAAM,
|
||||
SOORT,
|
||||
NUMMER_OBJECT,
|
||||
INS_DEEL_KEY, -- KEY 1
|
||||
INS_DEEL_AANMAAK,
|
||||
INS_DEEL_KEY2, -- KEY2 voor MOBIEL-SIM-OBJECT
|
||||
VASTNR_HUIDIG,
|
||||
MOBIELNR_HUIDIG
|
||||
)
|
||||
AS
|
||||
SELECT p.prs_perslid_key,
|
||||
prs_perslid_naam || ' (' || prs_perslid_voornaam || ')'
|
||||
AS naam_werknemer,
|
||||
sd.ins_srtdeel_omschrijving,
|
||||
d.ins_deel_upper,
|
||||
d.ins_deel_key
|
||||
key1,
|
||||
d.ins_deel_aanmaak,
|
||||
NULL
|
||||
key2,
|
||||
p.prs_perslid_telefoonnr,
|
||||
p.prs_perslid_mobiel
|
||||
FROM prs_perslid p,
|
||||
ins_deel d,
|
||||
ins_srtdeel sd,
|
||||
prs_v_aanwezigafdeling v
|
||||
WHERE p.prs_perslid_key = d.ins_alg_ruimte_key
|
||||
AND d.ins_srtdeel_key = 70 -- Telefooncentralenummers
|
||||
AND d.ins_alg_ruimte_type = 'P'
|
||||
AND d.ins_deel_verwijder IS NULL
|
||||
AND d.ins_deel_actief = 1
|
||||
AND ( d.ins_deel_vervaldatum IS NULL
|
||||
OR TRUNC (d.ins_deel_vervaldatum) > TRUNC (SYSDATE))
|
||||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_afdeling_key = v.prs_afdeling_key
|
||||
AND v.prs_bedrijf_key = 41 -- Personen binnen bedrijf Humanitas onder Dak
|
||||
AND p.prs_perslid_key NOT IN (721) -- M.u.v. perslid voor met nr '999001' (bestemd voor objecten nog uit te lenen...)
|
||||
UNION ALL
|
||||
SELECT p.prs_perslid_key,
|
||||
prs_perslid_naam || ' (' || prs_perslid_voornaam || ')'
|
||||
AS Naam_werknemer,
|
||||
sd.ins_srtdeel_omschrijving,
|
||||
dd.ins_deel_upper,
|
||||
d.ins_deel_key
|
||||
Key1,
|
||||
d.ins_deel_aanmaak,
|
||||
dd.ins_deel_key
|
||||
Key2,
|
||||
p.prs_perslid_telefoonnr,
|
||||
p.prs_perslid_mobiel
|
||||
FROM prs_perslid p,
|
||||
ins_deel d,
|
||||
ins_srtdeel sd,
|
||||
prs_v_aanwezigafdeling v,
|
||||
ins_kenmerkdeel kd,
|
||||
ins_deel dd
|
||||
WHERE p.prs_perslid_key = d.ins_alg_ruimte_key
|
||||
AND d.ins_srtdeel_key = 69 -- Mobieltelefoon
|
||||
AND d.ins_alg_ruimte_type = 'P'
|
||||
AND d.ins_deel_verwijder IS NULL
|
||||
AND d.ins_deel_actief = 1
|
||||
AND ( d.ins_deel_vervaldatum IS NULL
|
||||
OR TRUNC (d.ins_deel_vervaldatum) > TRUNC (SYSDATE))
|
||||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_afdeling_key = v.prs_afdeling_key
|
||||
AND v.prs_bedrijf_key = 41 -- afdeling binnen bedrijf Humanitas..
|
||||
AND p.prs_perslid_key NOT IN (721) -- perslid voor met nr '999001' voor objecten nog uit te lenen...
|
||||
AND d.ins_deel_key = kd.ins_deel_key
|
||||
AND kd.ins_kenmerk_key = 152
|
||||
AND kd.ins_kenmerkdeel_verwijder IS NULL
|
||||
AND fac.safe_to_number (kd.ins_kenmerkdeel_waarde) =
|
||||
dd.ins_deel_key
|
||||
AND dd.ins_srtdeel_key = 341 -- SIM-kaarten en nummers
|
||||
AND dd.ins_deel_verwijder IS NULL
|
||||
AND dd.ins_deel_actief = 1
|
||||
AND ( dd.ins_deel_vervaldatum IS NULL
|
||||
OR TRUNC (dd.ins_deel_vervaldatum) > TRUNC (SYSDATE)) ;
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE hmod_prs_telefoonnummers (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
CURSOR c_vast
|
||||
IS
|
||||
SELECT PRS_PERSLID_KEY, PRS_NAAM, SOORT, NUMMER_OBJECT, INS_DEEL_KEY, INS_DEEL_AANMAAK, INS_DEEL_KEY2, VASTNR_HUIDIG, MOBIELNR_HUIDIG
|
||||
FROM HMOD_V_TELEFOONNR_KLANTOBJECT
|
||||
WHERE SOORT = 'Telefooncentralenummers' AND (VASTNR_HUIDIG<>NUMMER_OBJECT OR VASTNR_HUIDIG is null) ;
|
||||
|
||||
CURSOR c_mob
|
||||
IS
|
||||
SELECT PRS_PERSLID_KEY, PRS_NAAM, SOORT, NUMMER_OBJECT, INS_DEEL_KEY, INS_DEEL_AANMAAK, INS_DEEL_KEY2, VASTNR_HUIDIG, MOBIELNR_HUIDIG
|
||||
FROM HMOD_V_TELEFOONNR_KLANTOBJECT
|
||||
WHERE SOORT = 'Mobieletelefoon' AND (MOBIELNR_HUIDIG<>NUMMER_OBJECT OR MOBIELNR_HUIDIG is null) ;
|
||||
|
||||
CURSOR c_delvast
|
||||
IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_telefoonnr
|
||||
FROM prs_perslid p
|
||||
WHERE
|
||||
p.prs_perslid_key not in (select v.prs_perslid_key from HMOD_V_TELEFOONNR_KLANTOBJECT v where v.soort = 'Telefooncentralenummers')
|
||||
and p.prs_afdeling_key in (select v.prs_afdeling_key from prs_v_aanwezigafdeling v where v.prs_bedrijf_key = 41 and v.prs_afdeling_verwijder is null) -- Onderdeel bedrijf Humanitas...
|
||||
and p.prs_perslid_telefoonnr is not null ;
|
||||
|
||||
CURSOR c_delmob
|
||||
IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_mobiel
|
||||
FROM prs_perslid p
|
||||
WHERE
|
||||
p.prs_perslid_key not in (select v.prs_perslid_key from HMOD_V_TELEFOONNR_KLANTOBJECT v where v.soort = 'Mobieletelefoon')
|
||||
and p.prs_afdeling_key in (select v.prs_afdeling_key from prs_v_aanwezigafdeling v where v.prs_bedrijf_key = 41 and v.prs_afdeling_verwijder is null) -- Onderdeel bedrijf Humanitas...
|
||||
and p.prs_perslid_mobiel is not null ;
|
||||
|
||||
v_telefoon_vast VARCHAR2(15);
|
||||
v_telefoon_mobiel VARCHAR2(15);
|
||||
|
||||
v_errormsg VARCHAR (200);
|
||||
v_errorhint VARCHAR (200);
|
||||
oracle_err_mes VARCHAR2 (150);
|
||||
currentversion fac_module.fac_module_version%TYPE;
|
||||
v_aanduiding VARCHAR (100);
|
||||
v_count NUMBER;
|
||||
|
||||
BEGIN
|
||||
v_count:=0;
|
||||
|
||||
FOR rec IN c_vast
|
||||
LOOP
|
||||
|
||||
v_aanduiding :=
|
||||
'Vast nummer gewijzigd, ' || CHR(10)
|
||||
|| 'van ' || COALESCE(rec.vastnr_huidig,'<leeg>') || ' naar ' || rec.nummer_object ;
|
||||
v_errorhint := 'telefoonnr vast aanpassen';
|
||||
|
||||
UPDATE prs_perslid p
|
||||
SET prs_perslid_telefoonnr = rec.nummer_object
|
||||
WHERE p.prs_perslid_key = rec.prs_perslid_key ;
|
||||
|
||||
fac.trackaction (
|
||||
'PRSUPD',
|
||||
rec.prs_perslid_key,
|
||||
3,
|
||||
SYSDATE,
|
||||
v_aanduiding);
|
||||
|
||||
END LOOP;
|
||||
|
||||
FOR rec IN c_mob
|
||||
LOOP
|
||||
v_aanduiding :=
|
||||
'Mobielnummer gewijzigd, ' || CHR(10)
|
||||
|| 'van ' || COALESCE(rec.mobielnr_huidig,'<leeg>') || ' naar ' || rec.nummer_object ;
|
||||
v_errorhint := 'telefoonnr mobiel aanpassen';
|
||||
|
||||
UPDATE prs_perslid p
|
||||
SET prs_perslid_mobiel = rec.nummer_object
|
||||
WHERE p.prs_perslid_key = rec.prs_perslid_key ;
|
||||
|
||||
fac.trackaction (
|
||||
'PRSUPD',
|
||||
rec.prs_perslid_key,
|
||||
3,
|
||||
SYSDATE,
|
||||
v_aanduiding);
|
||||
|
||||
END LOOP;
|
||||
|
||||
FOR rec IN c_delvast
|
||||
LOOP
|
||||
v_aanduiding :=
|
||||
'Vast nummer verwijderd ' || CHR(10)
|
||||
|| 'Was ' || rec.prs_perslid_telefoonnr ;
|
||||
v_errorhint := 'vast nummer verwijderen';
|
||||
|
||||
UPDATE prs_perslid p
|
||||
SET p.prs_perslid_telefoonnr = ''
|
||||
WHERE p.prs_perslid_key = rec.prs_perslid_key ;
|
||||
|
||||
fac.trackaction (
|
||||
'PRSUPD',
|
||||
rec.prs_perslid_key,
|
||||
3,
|
||||
SYSDATE,
|
||||
v_aanduiding);
|
||||
|
||||
END LOOP;
|
||||
|
||||
FOR rec IN c_delmob
|
||||
LOOP
|
||||
v_aanduiding :=
|
||||
'Mobielnummer verwijderd ' || CHR(10)
|
||||
|| 'Was ' || rec.prs_perslid_mobiel ;
|
||||
v_errorhint := 'mobielnummer verwijderen';
|
||||
|
||||
UPDATE prs_perslid p
|
||||
SET p.prs_perslid_mobiel = ''
|
||||
WHERE p.prs_perslid_key = rec.prs_perslid_key ;
|
||||
|
||||
fac.trackaction (
|
||||
'PRSUPD',
|
||||
rec.prs_perslid_key,
|
||||
3,
|
||||
SYSDATE,
|
||||
v_aanduiding);
|
||||
|
||||
END LOOP;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
-- script om dagelijks terugkerende scripts aan te roepen.
|
||||
CREATE OR REPLACE PROCEDURE hmod_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||||
AS
|
||||
BEGIN
|
||||
-- job om de telefoonnummers in persoonkaart te synchroniseren met de eigendommen (gekoppelde telefoonobjecten vast en mobiel)
|
||||
hmod_prs_telefoonnummers (p_applname, p_applrun);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
------ payload end ------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user