Files
Customer/WDKA/WDKA.sql

3484 lines
160 KiB
SQL
Raw Permalink Blame History

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
-- Voor dbuser invullen: - indien script voor 1 klant is: 'AADS' (de klantcode, zoals vermeld in fac_version_cust)
-- - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group)
-- - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM'
-- Ook als het script gedraaid wordt voor de verkeerde cust wordt er een logfile gemaakt.
-- (dit in tegenstelling tot sample_xxxx.sql)
DEFINE thisfile = 'WDKA.SQL'
DEFINE dbuser = 'WDKA'
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 ------
CREATE OR REPLACE PACKAGE WDKA
AS
PROCEDURE update_vervaldatum;
PROCEDURE inactief_ins_deel;
PROCEDURE activeer_ins_deel;
PROCEDURE insert_object(p_objectNr IN VARCHAR2, p_mld_melding_key IN NUMBER);
PROCEDURE insert_ctr_kenmerk (p_srtcontrole_key IN NUMBER);
PROCEDURE setKenmerkObject(p_ins_key IN NUMBER, p_ins_srtinstallatie_key IN NUMBER, p_kenmerk_omschrijving IN VARCHAR2, p_kenmerk_waarde IN VARCHAR2);
FUNCTION getSrtControldatum(p_datum IN DATE, p_cyclus IN NUMBER) RETURN DATE;
FUNCTION getCtrGroep(v_taak in VARCHAR2) RETURN NUMBER;
END;
/
CREATE OR REPLACE PACKAGE BODY WDKA
AS
-- rechtzetten van die objecten die wel inactief zijnngezte maar de vervaldatum niet gevuld is.
PROCEDURE update_vervaldatum
AS
CURSOR c
IS
SELECT i.ins_deel_key,
ft.fac_tracking_datum
FROM ins_deel i,
fac_tracking ft
WHERE i.ins_deel_actief=0
AND i.ins_deel_vervaldatum IS NULL
AND ft.fac_tracking_refkey = i.ins_deel_key
AND ft.fac_srtnotificatie_key=133
AND ft.fac_tracking_datum BETWEEN SYSDATE-1 AND SYSDATE
AND ft.fac_tracking_oms like '%Actief: 1 --> 0%'
AND i.ins_deel_verwijder IS NULL;
BEGIN
FOR rec IN c
LOOP
UPDATE ins_deel
SET ins_deel_vervaldatum = rec.fac_tracking_datum
WHERE ins_deel_key = rec.ins_deel_key;
fac.trackaction ('INSUPD', rec.ins_deel_key, 3, SYSDATE,
'Vervaldatum gezet wegens inactief zetten zonder vervaldatum.');
END LOOP;
COMMIT;
END;
PROCEDURE inactief_ins_deel
AS
CURSOR c
IS
SELECT m.mld_melding_key,
mmo.ins_deel_key,
p1.prs_perslid_key loc_manager_key,
p1.prs_perslid_email loc_manager_email,
p2.prs_perslid_key beheerder_key,
p2.prs_perslid_email beheerder_email
FROM mld_melding m,
mld_stdmelding ms,
fac_tracking ft,
mld_melding_object mmo,
ins_deel i,
prs_perslid p1,
prs_perslid p2
WHERE m.mld_stdmelding_key = ms.mld_stdmelding_key
AND UPPER(ms.mld_stdmelding_omschrijving)='MUTATIE UIT AANVRAAG'
AND m.mld_melding_status =4 -- alleen 4
AND ft.fac_tracking_refkey=m.mld_melding_key
AND ft.fac_srtnotificatie_key=46
AND ft.prs_perslid_key IN (SELECT p.prs_perslid_key
FROM prs_perslid p, fac_groep fg, fac_gebruikersgroep fgg
WHERE UPPER(fg.fac_groep_omschrijving)='LOCATIEMANAGER_ACCEPT'
AND fgg.fac_groep_key = fg.fac_groep_key
AND p.prs_perslid_key = fgg.prs_perslid_key)
AND mmo.mld_melding_key=m.mld_melding_key
AND p1.prs_perslid_key = ft.prs_perslid_key
AND p2.prs_perslid_key = i.prs_perslid_key_beh
AND i.ins_deel_key = mmo.ins_deel_key
AND i.ins_deel_actief=1;
BEGIN
FOR rec IN c
LOOP
UPDATE ins_deel
SET ins_deel_actief=0,
ins_deel_vervaldatum=SYSDATE
WHERE ins_deel_key=rec.ins_deel_key
AND ins_deel_verwijder IS NULL;
flx.setflex('INS',81,rec.ins_deel_key,90); -- ObjectStatus kenmerk krijgt status passief (90)
fac.trackaction ('INSUPD', rec.ins_deel_key, 3, SYSDATE,
'Object is vanuit daily op inactief gezet vanuit melding '||rec.mld_melding_key);
fac.trackaction ('INSUPD', rec.ins_deel_key, 3, SYSDATE, 'Object gewijzigd '||CHR(13)|| CHR(10)||'Vervaldatum: (leeg) --> '|| SYSDATE);
fac.trackaction ('CUST01', rec.mld_melding_key, NULL, NULL, '#Mail naar locatie manager gestuurd naar: ' || rec.loc_manager_email);
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (261, -- CUST01
2, -- mail
rec.loc_manager_email, -- email
rec.loc_manager_key,
'Mutatie uit aanvraag uitgevoerd',
rec.mld_melding_key,
NULL,
2);
fac.trackaction ('CUST01', rec.mld_melding_key, NULL, NULL, '#Mail naar object beheerder gestuurd naar: ' || rec.beheerder_email);
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (261, -- CUST01
2, -- mail
rec.beheerder_email, -- email
rec.beheerder_key,
'Mutatie uit aanvraag uitgevoerd',
rec.mld_melding_key,
NULL,
2);
END LOOP;
END;
PROCEDURE activeer_ins_deel
AS
CURSOR c
IS
SELECT m.mld_melding_key,
mmo.ins_deel_key,
i.ins_deel_vervaldatum,
p1.prs_perslid_key loc_manager_key,
p1.prs_perslid_email loc_manager_email,
p2.prs_perslid_key beheerder_key,
p2.prs_perslid_email beheerder_email
FROM mld_melding m,
mld_stdmelding ms,
fac_tracking ft,
mld_melding_object mmo,
ins_deel i,
prs_perslid p1,
prs_perslid p2
WHERE m.mld_stdmelding_key = ms.mld_stdmelding_key
AND UPPER(ms.mld_stdmelding_omschrijving)='AANVRAAG HERACTIVEREN OBJECT'
AND m.mld_melding_status =4 -- alleen 4
AND ft.fac_tracking_refkey=m.mld_melding_key
AND ft.fac_srtnotificatie_key=46
AND ft.prs_perslid_key IN (SELECT p.prs_perslid_key
FROM prs_perslid p, fac_groep fg, fac_gebruikersgroep fgg
WHERE UPPER(fg.fac_groep_omschrijving)='LOCATIEMANAGER_ACCEPT'
AND fgg.fac_groep_key = fg.fac_groep_key
AND p.prs_perslid_key = fgg.prs_perslid_key)
AND mmo.mld_melding_key=m.mld_melding_key
AND p1.prs_perslid_key = ft.prs_perslid_key
AND p2.prs_perslid_key = i.prs_perslid_key_beh
AND i.ins_deel_key = mmo.ins_deel_key
AND i.ins_deel_actief=0;
BEGIN
FOR rec IN c
LOOP
UPDATE ins_deel
SET ins_deel_actief=1,
ins_deel_vervaldatum=NULL
WHERE ins_deel_key=rec.ins_deel_key
AND ins_deel_verwijder IS NULL;
flx.setflex('INS',81,rec.ins_deel_key,85); -- ObjectStatus kenmerk krijgt status actief (85)
fac.trackaction ('INSUPD', rec.ins_deel_key, 3, SYSDATE,
'Object is vanuit daily op actief gezet vanuit melding '||rec.mld_melding_key);
fac.trackaction ('INSUPD', rec.ins_deel_key, 3, SYSDATE, 'Object gewijzigd '||CHR(13)|| CHR(10)||'Vervaldatum: '||TO_CHAR(rec.ins_deel_vervaldatum,' DD-MM-YYYY')||' --> (leeg)');
fac.trackaction ('CUST02', rec.mld_melding_key, NULL, NULL, '#Mail naar locatie manager gestuurd naar: ' || rec.loc_manager_email);
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (281, -- CUST02
2, -- mail
rec.loc_manager_email, -- email
rec.loc_manager_key,
'Aanvraag heractiveren object',
rec.mld_melding_key,
NULL,
2);
fac.trackaction ('CUST02', rec.mld_melding_key, NULL, NULL, '#Mail naar object beheerder gestuurd naar: ' || rec.beheerder_email);
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (281, -- CUST02
2, -- mail
rec.beheerder_email, -- email
rec.beheerder_key,
'Aanvraag heractiveren object',
rec.mld_melding_key,
NULL,
2);
END LOOP;
END;
PROCEDURE insert_object(p_objectNr IN VARCHAR2, p_mld_melding_key IN NUMBER)
AS
v_objectNr VARCHAR2(20):='';
v_objectSoortKey VARCHAR2(10):='';
v_aanmaak VARCHAR2(10):='';
v_alg_ruimte_key NUMBER:=0;
v_aanwezig NUMBER:=0;
v_ins_deel_key NUMBER:=0;
v_merk NUMBER:=0;
v_leverancier NUMBER:=0;
v_type VARCHAR2(50);
v_serienummer VARCHAR2(50);
v_kenteken VARCHAR2(50);
v_bouwjaar VARCHAR2(50);
v_garantiedatum VARCHAR2(50);
v_investeringsnr VARCHAR2(50);
v_aanschafprijs VARCHAR2(50);
v_objectstatus NUMBER;
v_kenmerk VARCHAR2(50);
v_beschrijving VARCHAR2(50);
-- Kenmerk keys
v_merk_key NUMBER:=141;
v_leverancier_key NUMBER:=142;
v_type_key NUMBER:=44;
v_serienummer_key NUMBER:=41;
v_kenteken_key NUMBER:=43;
v_bouwjaar_key NUMBER:=63;
v_garantiedatum_key NUMBER:=61;
v_investeringsnr_key NUMBER:=144;
v_aanschafprijs_key NUMBER:=143;
v_objectstatus_key NUMBER:=81;
v_kenmerk_key NUMBER:=121;
v_bijlagen_key NUMBER:=4281;
v_level NUMBER:=0;
CURSOR b(p_melding_key IN NUMBER)
IS
SELECT f.fac_bijlagen_key
FROM fac_bijlagen f
WHERE f.fac_bijlagen_refkey=p_melding_key
AND f.fac_bijlagen_module='MLD';
BEGIN
-- We halen eerts de object identiofocatio op
v_objectNr := p_objectNr;
v_objectstatus:= 85; -- De standaard waarde van dit kenmerkn moet Actief zijn (eigen tabel key: 85)
-- Welk objectsoort is er gekozen
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_objectSoortKey
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND UPPER(mk.mld_kenmerk_omschrijving)='OBJECT SOORT'; -- D=2, A=201
-- Moeten we een object aanmaken
BEGIN
SELECT fud.fac_usrdata_code
INTO v_aanmaak
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk, fac_usrdata fud
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND UPPER(mk.mld_kenmerk_omschrijving)='OBJECT AANMAKEN'
AND fud.fac_usrdata_key=mkm.mld_kenmerkmelding_waarde; -- D=3, A=181
EXCEPTION WHEN NO_DATA_FOUND THEN
v_aanmaak:='Nee';
END;
-- We halen de alg_ruimte_key op van het gebouw wat is gekozen en ruimte 999999
SELECT MIN(alg_ruimte_key)
INTO v_alg_ruimte_key
FROM ALG_V_ALLONRGOED_GEGEVENS
WHERE alg_ruimte_nr='999999'
AND alg_verdieping_code = '0' --FCLT#90025 Bij twee ruimtenrs '999999' op 2 verdiepingen in een gebouw volgde een aiai, daarom enkel verdieping 0
AND alg_gebouw_key=(SELECT fac.safe_to_number(mkm.mld_kenmerkmelding_waarde)
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND UPPER(mk.mld_kenmerk_omschrijving)='GEBOUW'); -- A=241
-- We gaan wat kenmerken ophalen die bij het object gezet moeten worden
BEGIN
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_merk
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND UPPER(mk.mld_kenmerk_omschrijving)='FABRIKANT / MERK';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_merk:=NULL;
END;
BEGIN
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_leverancier
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND UPPER(mk.mld_kenmerk_omschrijving)='LEVERANCIER';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_leverancier:=NULL;
END;
BEGIN
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_type
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND UPPER(mk.mld_kenmerk_omschrijving)='TYPE';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_type:=NULL;
END;
BEGIN
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_serienummer
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND UPPER(mk.mld_kenmerk_omschrijving)='SERIENUMMER';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_serienummer:=NULL;
END;
BEGIN
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_kenteken
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND UPPER(mk.mld_kenmerk_omschrijving)='KENTEKEN';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_kenteken:=NULL;
v_kenteken_key:=-1;
END;
BEGIN
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_bouwjaar
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND UPPER(mk.mld_kenmerk_omschrijving)='BOUWJAAR';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_bouwjaar:=NULL;
v_bouwjaar_key:=-1;
END;
BEGIN
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_garantiedatum
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND UPPER(mk.mld_kenmerk_omschrijving)='GARANTIEDATUM';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_garantiedatum:=NULL;
v_garantiedatum_key:=-1;
END;
BEGIN
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_investeringsnr
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND UPPER(mk.mld_kenmerk_omschrijving)='INVESTERINGS NR';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_investeringsnr:=NULL;
v_investeringsnr_key:=-1;
END;
BEGIN
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_aanschafprijs
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND UPPER(mk.mld_kenmerk_omschrijving)='AANSCHAFPRIJS <20>';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_aanschafprijs:=NULL;
v_aanschafprijs_key:=-1;
END;
BEGIN
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_kenmerk
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND UPPER(mk.mld_kenmerk_omschrijving)='KENMERK';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_kenmerk:=NULL;
v_kenmerk_key:=-1;
END;
BEGIN
SELECT mkm.mld_kenmerkmelding_waarde
INTO v_beschrijving
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE m.mld_melding_key=p_mld_melding_key
AND mkm.mld_melding_key=m.mld_melding_key
AND mk.mld_stdmelding_key = m.mld_stdmelding_key
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND UPPER(mk.mld_kenmerk_omschrijving)='BESCHRIJVING';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_beschrijving:=NULL;
END;
SELECT count(*) into v_aanwezig
FROm ins_deel
WHERE ins_deel_omschrijving=v_objectNr
AND ins_deel_verwijder IS NULL;
IF (v_aanwezig = 0 AND v_aanmaak='Ja') THEN
INSERT INTO ins_deel(ins_deel_omschrijving, ins_deel_opmerking, ins_deel_aanmaak, ins_srtdeel_key, ins_deel_actief, ins_alg_ruimte_key, ins_alg_ruimte_type)
VALUES(v_objectNr, v_beschrijving, SYSDATE, v_objectSoortKey, 1, v_alg_ruimte_key ,'R')
RETURNING ins_deel_key
INTO v_ins_deel_key;
flx.setflex('INS',v_merk_key,v_ins_deel_key,v_merk);
flx.setflex('INS',v_type_key,v_ins_deel_key,v_type);
flx.setflex('INS',v_leverancier_key,v_ins_deel_key,v_leverancier);
flx.setflex('INS',v_serienummer_key,v_ins_deel_key,v_serienummer);
flx.setflex('INS',v_objectstatus_key,v_ins_deel_key,v_objectstatus);
IF (v_kenteken_key>0) THEN
flx.setflex('INS',v_kenteken_key,v_ins_deel_key,v_kenteken);
END IF;
IF (v_bouwjaar_key>0) THEN
flx.setflex('INS',v_bouwjaar_key,v_ins_deel_key,v_bouwjaar);
END IF;
IF (v_garantiedatum_key>0) THEN
flx.setflex('INS',v_garantiedatum_key,v_ins_deel_key,v_garantiedatum);
END IF;
IF (v_investeringsnr_key>0) THEN
flx.setflex('INS',v_investeringsnr_key,v_ins_deel_key,v_investeringsnr);
END IF;
IF (v_aanschafprijs_key>0) THEN
flx.setflex('INS',v_aanschafprijs_key,v_ins_deel_key,v_aanschafprijs);
END IF;
IF (v_kenmerk_key>0) THEN
flx.setflex('INS',v_kenmerk_key,v_ins_deel_key,v_kenmerk);
END IF;
FOR rec IN b(p_mld_melding_key)
LOOP
flx.copyflexbijlage ('INS',v_ins_deel_key, v_bijlagen_key, rec.fac_bijlagen_key);
END LOOP;
fac.trackaction ('INSNEW', v_ins_deel_key, 3, SYSDATE,
'Object '||v_objectNr||' geregistreerd uit melding '||p_mld_melding_key||'.');
IF (v_ins_deel_key>0) THEN
v_level:=v_level+1;
INSERT INTO mld_melding_object(ins_deel_key, mld_melding_key, mld_melding_object_aanmaak)
VALUES(v_ins_deel_key, p_mld_melding_key, SYSDATE);
END IF;
fac.trackaction ('MLDUPD', p_mld_melding_key, 3, SYSDATE,
'Object '||v_objectNr||' toegevoegd aan melding.');
END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
fac.trackaction ('MLDUPD', p_mld_melding_key, 3, SYSDATE,
'Fout bij aanmaken object '||v_objectNr);
END;
-- Aanmaken van resultaat kenmerken bij periodiek taak
PROCEDURE insert_ctr_kenmerk (p_srtcontrole_key IN NUMBER)
AS
v_insrtkenmerk_key NUMBER;
BEGIN
v_insrtkenmerk_key:=-1;
SELECT isk.ins_srtkenmerk_key INTO v_insrtkenmerk_key FROM ins_srtkenmerk isk WHERE isk.ins_srtkenmerk_upper=UPPER('resultaat waardes(50)');
IF v_insrtkenmerk_key>0 THEN
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Aarde (Ohm)',100);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Aarde Resultaat',110);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Lekstroom (mA)',120);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Lekstroom resultaat',130);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Aanraak lekstroom (mA)',140);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Aanraak lekstroom resultaat',150);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Vervangende lekstroom (mA)',160);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Vervangende lekstroom resultaat',170);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Isolatie (MOhm)',180);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Isolatie resultaat',190);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Bedrading',200);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Bedrading resultaat',210);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Gebruikerstest',220);
INSERT INTO ins_kenmerk(ins_srtkenmerk_key,ins_srtinstallatie_key,ins_kenmerk_niveau, ins_kenmerk_toonbaar, ins_kenmerk_omschrijving, ins_kenmerk_volgnummer) values(v_insrtkenmerk_key,p_srtcontrole_key,'C',1,'Gebruikers resultaat',230);
COMMIT;
END IF;
END;
PROCEDURE setKenmerkObject(p_ins_key IN NUMBER, p_ins_srtinstallatie_key IN NUMBER, p_kenmerk_omschrijving IN VARCHAR2, p_kenmerk_waarde IN VARCHAR2)
AS
v_ins_kenmerk_key NUMBER;
BEGIN
v_ins_kenmerk_key:=-1;
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key
FROM ins_kenmerk where UPPER(ins_kenmerk.ins_kenmerk_omschrijving)=UPPER(p_kenmerk_omschrijving)
AND ins_srtinstallatie_key=p_ins_srtinstallatie_key
AND ins_kenmerk_niveau='D'
AND ins_kenmerk_verwijder IS NULL;
IF v_ins_kenmerk_key>-1 THEN
flx.setflex('INS',v_ins_kenmerk_key,p_ins_key,p_kenmerk_waarde);
END IF;
END;
FUNCTION getSrtControldatum(p_datum IN DATE, p_cyclus IN NUMBER) RETURN DATE
AS
v_count NUMBER;
r_datum DATE;
r_datum_str VARCHAR2(10);
BEGIN
v_count:=0;
IF (p_cyclus=12) THEN
r_datum_str := TO_CHAR(p_datum,'DD')||'-'||TO_CHAR(p_datum,'MM')||'-'||TO_CHAR(SYSDATE,'YYYY');
r_datum := TO_DATE(r_datum_str,'DD-MM-YYYY');
IF r_datum > TRUNC(SYSDATE) THEN
r_datum := ADD_MONTHS(r_datum, -12);
END IF;
ELSIF (p_cyclus=36) THEN
IF (EXTRACT(YEAR FROM p_datum) > EXTRACT(YEAR FROM SYSDATE)) THEN
r_datum:=ADD_MONTHS(p_datum,-1*p_cyclus); -- geven laatste gekeurde datum door.
ELSE
v_count:= FLOOR((2022-EXTRACT(YEAR FROM p_datum))*12/p_cyclus);
r_datum:= ADD_MONTHS(p_datum,v_count*p_cyclus);
END IF;
ELSE
r_datum:=p_datum;
END IF;
RETURN r_datum;
END;
FUNCTION getCtrGroep(v_taak IN VARCHAR2) RETURN NUMBER
AS
v_groep NUMBER;
BEGIN
v_groep:=-1;
BEGIN
IF UPPER(v_taak) = '11A - NEN3140'
THEN
SELECT ins_discipline_key INTO v_groep
FROM ctr_discipline
WHERE UPPER(ins_discipline_omschrijving)='NEN3140'
and ins_discipline_verwijder IS NULL;
END IF;
IF UPPER(v_taak) = 'APK KEURING'
THEN
SELECT ins_discipline_key INTO v_groep
FROM ctr_discipline
WHERE UPPER(ins_discipline_omschrijving)='APK KEURING'
and ins_discipline_verwijder IS NULL;
END IF;
IF UPPER(v_taak) = 'REGISTRATIE'
THEN
SELECT ins_discipline_key INTO v_groep
FROM ctr_discipline
WHERE UPPER(ins_discipline_omschrijving)='REGISTRATIE'
and ins_discipline_verwijder IS NULL;
END IF;
IF UPPER(SUBSTR(v_taak,0,3)) = '20A' OR
UPPER(SUBSTR(v_taak,0,3)) = '53A' OR
UPPER(SUBSTR(v_taak,0,3)) = '58A' OR
UPPER(SUBSTR(v_taak,0,3)) = '60A' OR
UPPER(SUBSTR(v_taak,0,3)) = '63A'
THEN
SELECT ins_discipline_key INTO v_groep
FROM ctr_discipline
WHERE UPPER(ins_discipline_omschrijving)='INTERN ONDERHOUD'
and ins_discipline_verwijder IS NULL;
END IF;
IF UPPER(SUBSTR(v_taak,0,3)) = '21' OR
UPPER(SUBSTR(v_taak,0,3)) = '53B' OR
UPPER(SUBSTR(v_taak,0,3)) = '58B' OR
UPPER(SUBSTR(v_taak,0,3)) = '58C' OR
UPPER(SUBSTR(v_taak,0,3)) = '59B' OR
UPPER(SUBSTR(v_taak,0,3)) = '62B' OR
UPPER(v_taak) = 'SKH KEURING'
THEN
SELECT ins_discipline_key INTO v_groep
FROM ctr_discipline
WHERE UPPER(ins_discipline_omschrijving)='EXTERN ONDERHOUD'
and ins_discipline_verwijder IS NULL;
END IF;
IF v_groep<0
THEN
v_groep:=3;
END IF;
RETURN v_groep;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_groep:=3;
RETURN v_groep;
END;
END;
END;
/
--de daily task draait elke ochtend om 5 uur.
CREATE OR REPLACE PROCEDURE WDKA_DAILY
AS
BEGIN
-- inactiveren personen die 12 maanden niet hebben ingelogd
wdka.update_vervaldatum;
wdka.inactief_ins_deel;
wdka.activeer_ins_deel;
END;
/
CREATE OR REPLACE PROCEDURE WDKA_IMPORT_TAAKFORMULIER(p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
v_newline VARCHAR2 (10000); -- Import line
v_field VARCHAR2 (100); -- Import field
v_fielddelimitor VARCHAR2 (2) := fac.import_delimiter(p_import_key); -- Field seperator
v_count_tot NUMBER (10);
v_count NUMBER;
v_errormsg VARCHAR2 (200);
v_errorhint VARCHAR2 (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
-- Import velden
v_discipline VARCHAR2 (300);
v_objectgroep VARCHAR2 (300);
v_objectsoort VARCHAR2 (300);
v_objectsoortcode VARCHAR2 (300);
v_taakcategorie VARCHAR2 (300);
v_taak VARCHAR2 (300);
v_srtkenmerk_oms VARCHAR2 (300);
v_kenmerk_omschr VARCHAR2 (300);
v_kenmerk_hint VARCHAR2 (300);
v_kenmerk_volgnr VARCHAR2 (300);
v_kenmerk_verplicht VARCHAR2 (300);
v_kenmerk_extra VARCHAR2 (300);
v_kenmerk_default VARCHAR2 (300);
v_kenmerk_toonbaar VARCHAR2(10);
v_srtkenmerk_key NUMBER;
header_is_valid NUMBER;
BEGIN
v_count:=0;
v_count_tot := 0;
header_is_valid:=0;
v_kenmerk_toonbaar:=0;
v_kenmerk_default:='';
DELETE FROM fac_imp_flex;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
fac.imp_getfield (v_newline, v_fielddelimitor, v_discipline);
fac.imp_getfield (v_newline, v_fielddelimitor, v_objectgroep);
fac.imp_getfield (v_newline, v_fielddelimitor, v_objectsoortcode);
fac.imp_getfield (v_newline, v_fielddelimitor, v_objectsoort);
fac.imp_getfield (v_newline, v_fielddelimitor, v_taakcategorie);
fac.imp_getfield (v_newline, v_fielddelimitor, v_taak);
fac.imp_getfield (v_newline, v_fielddelimitor, v_srtkenmerk_oms);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_omschr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_volgnr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_verplicht);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_hint);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_extra);
IF (header_is_valid = 0)
THEN
IF UPPER (v_discipline)='DISCIPLINEOMSCHRIJVING'
AND UPPER (v_objectgroep)='GROEPSOORTOMSCHRIJVING'
AND UPPER (v_objectsoortcode)='OBJECTSOORTCODE'
AND UPPER (v_objectsoort)='OBJECTSOORTOMSCHRIJVING'
AND UPPER (v_taakcategorie)='TAAK CATEGORIE'
AND UPPER (v_taak)='TAAK'
AND UPPER (v_srtkenmerk_oms)='KENMERKSOORT_OMSCHRIJVING'
AND UPPER (v_kenmerk_omschr)='KENMERK OMSCHRIJVING'
AND UPPER (v_kenmerk_volgnr)='VOLGNR'
AND UPPER (v_kenmerk_verplicht)='VERPLICHT'
AND UPPER (v_kenmerk_hint)='HINT'
AND UPPER (v_kenmerk_extra)='EXTRA_1'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
IF (LENGTH(v_kenmerk_omschr)>50 )
THEN
fac.imp_writelog (p_import_key,
'W',
'Kenmerk omschrijving "'|| v_kenmerk_omschr||'" is meer dan 50 tekens en wordt afgekapt tot 50 tekens.',
'Kenmerk omschrijving te lang.');
v_kenmerk_omschr := SUBSTR(v_kenmerk_omschr,0,50);
END IF;
-- Eerst kijken of de gekozen srtkenmerk wel aanwezig zijn
SELECT COUNT(*), MAX(isk.ins_srtkenmerk_key)
INTO v_count , v_srtkenmerk_key
FROM ins_srtkenmerk isk
WHERE UPPER(isk.INS_SRTKENMERK_OMSCHRIJVING)=UPPER(v_srtkenmerk_oms)
AND isk.ins_srtkenmerk_verwijder IS NULL;
IF v_count=1 THEN
INSERT INTO fac_imp_flex (
SRTKENMERK_OMSCHRIJVING,
kenmerk_niveau,
kenmerk_verplicht,
kenmerk_volgnummer,
kenmerk_hint,
kenmerk_omschr,
ins_discipline,
ins_srtgroep,
ins_srtdeel,
kenmerk_extra_1,
kenmerk_extra_2,
kenmerk_extra_3 -- 45
)
VALUES (
SUBSTR (v_srtkenmerk_oms, 1, 255), -- 1
'C',
SUBSTR (v_kenmerk_verplicht, 1, 255),
SUBSTR (v_kenmerk_volgnr, 1, 255),
SUBSTR (v_kenmerk_hint, 1, 255),
SUBSTR (v_kenmerk_omschr, 1, 255),
SUBSTR (v_discipline, 1, 255),
SUBSTR (v_objectgroep, 1, 255),
SUBSTR (v_objectsoortcode, 1, 255),
SUBSTR (v_taakcategorie, 1, 255), -- 10
SUBSTR (v_taak, 1, 255),
v_srtkenmerk_key
);
ELSE
fac.imp_writelog (p_import_key,
'W',
'srtkenmerk '|| v_srtkenmerk_oms||' niet gevonden',
'srtkenmerk niet gevonden maak deze eerst aan');
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key,
'W',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!'
);
ELSE
fac.imp_writelog (p_import_key, 'S', 'Aantal ingelezen regels (CTR): ' || TO_CHAR (v_count_tot), '');
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'W', v_errormsg, '');
END;
/
CREATE OR REPLACE PROCEDURE WDKA_UPDATE_TAAKFORMULIER(p_import_key IN NUMBER)
AS
CURSOR c_flex
IS
SELECT * FROM fac_imp_flex
ORDER BY srtkenmerk_omschrijving, kenmerk_volgnummer;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (250);
v_errormsg VARCHAR2 (1024);
v_errorhint VARCHAR2 (1024);
v_count NUMBER;
v_insdiscipline_key NUMBER;
v_srtgroep_key NUMBER;
v_srtdeel_key NUMBER;
v_ins_srtcontrole_key NUMBER;
v_ctr_categorie_key NUMBER;
v_kenmerk_key NUMBER;
v_desc VARCHAR2 (255);
v_error NUMBER;
BEGIN
v_error:=0;
FOR rec in c_flex
LOOP
SELECT COUNT(*), MAX(id.ins_discipline_key)
INTO v_count, v_insdiscipline_key
FROM ins_discipline id
WHERE id.INS_DISCIPLINE_OMSCHRIJVING=rec.ins_discipline
AND id.ins_discipline_verwijder IS NULL;
IF v_count>0 THEN
SELECT COUNT(*), MAX(ins_srtgroep_key)
INTO v_count, v_srtgroep_key
FROM ins_srtgroep isg
WHERE isg.ins_srtgroep_upper=UPPER(rec.ins_srtgroep)
AND isg.ins_discipline_key = v_insdiscipline_key
AND isg.ins_srtgroep_verwijder IS NULL;
ELSE
v_error:=1;
v_errormsg:='ins_disicpline '|| rec.ins_discipline||' niet gevonden';
END IF;
IF v_count>0 THEN
SELECT COUNT(*), MAX(ins_srtdeel_key)
INTO v_count, v_srtdeel_key
FROM ins_srtdeel isd
WHERE isd.ins_srtdeel_code=rec.ins_srtdeel
AND isd.ins_srtgroep_key= v_srtgroep_key
AND isd.ins_srtdeel_verwijder IS NULL;
ELSE
v_errormsg:='soortgroep '|| rec.ins_srtgroep||' niet gevonden';
v_error:=1;
END IF;
IF v_count> 0 THEN
SELECT COUNT(*), MAX(ins_discipline_key)
INTO v_count, v_ctr_categorie_key
FROM ins_tab_discipline
where UPPER(ins_discipline_omschrijving)=UPPER(rec.kenmerk_extra_1)
AND ins_discipline_module='CTR'
AND ins_discipline_verwijder IS NULL;
ELSE
v_errormsg:='soortdeel '|| rec.ins_srtdeel||' niet gevonden';
v_error:=1;
END IF;
IF v_count>0 THEN
SELECT COUNT(*) , MAX(isc.ins_srtcontrole_key)
INTO v_count, v_ins_srtcontrole_key
FROM ins_srtcontrole isc
WHERE isc.ins_srtcontrole_omschrijving= rec.kenmerk_extra_2
AND isc.ctr_discipline_key = v_ctr_categorie_key
AND isc.ins_srtinstallatie_key=v_srtdeel_key
AND ins_srtcontrole_niveau='S';
ELSE
v_errormsg:='Taak categoriel '|| rec.ins_srtdeel||' niet gevonden';
v_error:=1;
END IF;
v_desc := rec.srtkenmerk_omschrijving || ' (' || rec.ins_discipline || '/' || rec.ins_srtgroep || '/' || rec.ins_srtdeel || ')';
IF v_error=0 AND v_ins_srtcontrole_key>0 THEN
-- Eerst gaan we nu bepalen of het kenmerk er al is
SELECT COUNT ( * ), MIN(ins_kenmerk_key)
INTO v_count, v_kenmerk_key
FROM ins_kenmerk
WHERE ins_srtkenmerk_key = fac.safe_to_number(rec.kenmerk_extra_3)
AND ins_kenmerk_niveau = rec.kenmerk_niveau
AND ins_kenmerk_bewerkniveau = 'D'
AND ins_srtinstallatie_key = v_ins_srtcontrole_key
AND (ins_kenmerk_omschrijving = rec.kenmerk_omschr
OR (rec.kenmerk_omschr IS NULL AND ins_kenmerk_omschrijving IS NULL))
AND ins_kenmerk_verwijder IS NULL;
IF v_count=0
THEN
-- Hij bestaat nog niet
INSERT INTO ins_kenmerk (
ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_bewerkniveau,
ins_kenmerk_verplicht,
ins_kenmerk_verplicht_status,
ins_kenmerk_groep,
ins_kenmerk_volgnummer,
ins_kenmerk_hint,
ins_kenmerk_omschrijving
)
VALUES (
fac.safe_to_number(rec.kenmerk_extra_3),
v_ins_srtcontrole_key,
rec.kenmerk_niveau,
'D',
fac.safe_to_number (rec.kenmerk_verplicht),
DECODE(fac.safe_to_number (rec.kenmerk_verplicht),1,5,NULL), -- Verplicht bij afmelden
0,
fac.safe_to_number (rec.kenmerk_volgnummer),
rec.kenmerk_hint,
rec.kenmerk_omschr
)
RETURNING ins_kenmerk_key
INTO v_kenmerk_key;
fac.imp_writelog (p_import_key, 'I', 'Kenmerk toegevoegd', v_desc || ' (' || v_kenmerk_key || ')');
ELSE
UPDATE ins_kenmerk
SET ins_srtkenmerk_key = fac.safe_to_number(rec.kenmerk_extra_3),
ins_srtinstallatie_key = v_ins_srtcontrole_key,
ins_kenmerk_volgnummer = fac.safe_to_number (rec.kenmerk_volgnummer),
ins_kenmerk_hint = rec.kenmerk_hint,
ins_kenmerk_verplicht = fac.safe_to_number (rec.kenmerk_verplicht),
ins_kenmerk_omschrijving = rec.kenmerk_omschr
WHERE ins_kenmerk_key = v_kenmerk_key
AND ins_kenmerk_verwijder IS NULL;
fac.imp_writelog (p_import_key, 'I', 'Kenmerk gewijzigd', v_desc || ' (' || v_kenmerk_key || ')');
END IF;
ELSE
IF v_count=0 THEN
v_errormsg:='Taak '|| rec.kenmerk_extra_2||'/'||v_insdiscipline_key||'-'||'-'||v_srtgroep_key||'-'||v_srtdeel_key||' niet gevonden';
END IF;
fac.imp_writelog (p_import_key,
'W',
v_errormsg,
'' );
END IF;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'W', v_errormsg, '');
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE WDKA_IMPORT_INSPECTIES(p_import_key IN NUMBER)
AS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
v_aanduiding VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count NUMBER;
v_ongeldig NUMBER (1);
v_ins_discipline_omschrijving VARCHAR2(1000);
v_ins_srtgroep_omschrijving VARCHAR2(60);
v_ins_srtdeel_code VARCHAR2(50);
v_srttaak_omschrijving VARCHAR2(60);
v_srttaak_periode VARCHAR2(10);
v_srttaak_eenheid VARCHAR2(10);
v_srttaak_mode VARCHAR2(10);
v_srttaak_omschrijving_2 VARCHAR2(60);
v_srttaak_periode_2 VARCHAR2(10);
v_srttaak_eenheid_2 VARCHAR2(10);
v_srttaak_mode_2 VARCHAR2(10);
v_srttaak_omschrijving_3 VARCHAR2(60);
v_srttaak_periode_3 VARCHAR2(10);
v_srttaak_eenheid_3 VARCHAR2(10);
v_srttaak_mode_3 VARCHAR2(10);
CURSOR c
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
v_count := 1;
DELETE fac_imp_inspectie;
FOR rec IN c
LOOP
BEGIN
IF v_count > 1
THEN
v_count:=v_count+1;
v_errormsg := 'Fout FETCH te importeren rij '||v_count;
v_newline := rec.fac_imp_file_line;
v_aanduiding := '';
-- Lees alle veldwaarden
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_ins_discipline_omschrijving);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_ins_srtgroep_omschrijving);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_ins_srtdeel_code);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_srttaak_omschrijving);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 5, v_srttaak_periode);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_srttaak_eenheid);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_srttaak_mode);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_srttaak_omschrijving_2);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_srttaak_periode_2);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 11, v_srttaak_eenheid_2);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 12, v_srttaak_mode_2);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 14, v_srttaak_omschrijving_3);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 15, v_srttaak_periode_3);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 16, v_srttaak_eenheid_3);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 17, v_srttaak_mode_3);
IF (UPPER(v_srttaak_omschrijving) != 'REGISTRATIE')
THEN
INSERT INTO fac_imp_inspectie(INS_DISCIPLINE_OMSCHRIJVING,
INS_SRTGROEP_OMSCHRIJVING,
INS_SRTDEEL_CODE,
INS_SRTCONTROLE_EENHEID,
INS_SRTCONTROLE_INFO,
INS_SRTCONTROLE_MODE,
INS_SRTCONTROLE_OMSCHRIJVING,
INS_SRTCONTROLE_PERIODE
)
VALUES (v_ins_discipline_omschrijving,
v_ins_srtgroep_omschrijving,
v_ins_srtdeel_code,
v_srttaak_eenheid,
'',
v_srttaak_mode,
v_srttaak_omschrijving,
v_srttaak_periode);
END IF;
IF ( LENGTH(v_srttaak_omschrijving_2)>0
AND LENGTH(v_srttaak_periode_2)>0
AND LENGTH(v_srttaak_eenheid_2)>0
AND LENGTH(v_srttaak_mode_2)>0
AND v_ins_srtdeel_code != 'Registratie')
THEN
INSERT INTO fac_imp_inspectie(INS_DISCIPLINE_OMSCHRIJVING,
INS_SRTGROEP_OMSCHRIJVING,
INS_SRTDEEL_CODE,
INS_SRTCONTROLE_EENHEID,
INS_SRTCONTROLE_INFO,
INS_SRTCONTROLE_MODE,
INS_SRTCONTROLE_OMSCHRIJVING,
INS_SRTCONTROLE_PERIODE
)
VALUES (v_ins_discipline_omschrijving,
v_ins_srtgroep_omschrijving,
v_ins_srtdeel_code,
v_srttaak_eenheid_2,
'',
v_srttaak_mode_2,
v_srttaak_omschrijving_2,
v_srttaak_periode_2);
END IF;
IF ( LENGTH(v_srttaak_omschrijving_3)>0
AND LENGTH(v_srttaak_periode_3)>0
AND LENGTH(v_srttaak_eenheid_3)>0
AND LENGTH(v_srttaak_mode_3)>0
AND v_ins_srtdeel_code != 'Registratie')
THEN
INSERT INTO fac_imp_inspectie(INS_DISCIPLINE_OMSCHRIJVING,
INS_SRTGROEP_OMSCHRIJVING,
INS_SRTDEEL_CODE,
INS_SRTCONTROLE_EENHEID,
INS_SRTCONTROLE_INFO,
INS_SRTCONTROLE_MODE,
INS_SRTCONTROLE_OMSCHRIJVING,
INS_SRTCONTROLE_PERIODE
)
VALUES (v_ins_discipline_omschrijving,
v_ins_srtgroep_omschrijving,
v_ins_srtdeel_code,
v_srttaak_eenheid_3,
'',
v_srttaak_mode_3,
v_srttaak_omschrijving_3,
v_srttaak_periode_3);
END IF;
ELSE
v_count := v_count+1;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
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;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE WDKA_UPDATE_INSPECTIES(p_import_key IN NUMBER)
AS
BEGIN
fac_update_inspectie(p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE WDKA_IMPORT_ASSETS(p_import_key IN NUMBER)
AS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count NUMBER;
v_ongeldig NUMBER (1);
v_mode NUMBER (1);
v_aanduiding VARCHAR2 (200);
v_all_null BOOLEAN;
v_count_error NUMBER (10);
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_gebouw_code VARCHAR2(100);
v_locatie_code VARCHAR2(100);
v_alg_gebouw_code VARCHAR2(100);
v_alg_locatie_code VARCHAR2(100);
v_alg_verdieping_volgnr NUMBER;
v_alg_ruimte_nr VARCHAR2(100);
v_ins_discipline_omschrijving VARCHAR2(100);
d_ins_discipline_omschrijving VARCHAR2(100);
v_ins_srtgroep_omschrijving VARCHAR2(100);
d_ins_srtgroep_omschrijving VARCHAR2(100);
v_ins_srtdeel_code VARCHAR2(100);
v_ins_srtdeel_omschrijving VARCHAR2(100);
d_ins_srtdeel_omschrijving VARCHAR2(100);
v_ins_deel_aantal NUMBER;
v_ins_deel_omschrijving VARCHAR2(100);
v_ins_deel_opmerking VARCHAR2(100);
v_discipline_key NUMBER;
v_srtgroep_key NUMBER;
v_ins_deel_aanmaak DATE;
v_kenmerk1 VARCHAR2(1000);
v_kenmerk2 VARCHAR2(1000);
v_kenmerk3 VARCHAR2(1000);
v_kenmerk4 VARCHAR2(1000);
v_kenmerk5 VARCHAR2(1000);
v_kenmerk6 VARCHAR2(1000);
v_kenmerk7 VARCHAR2(1000);
v_kenmerk8 VARCHAR2(1000);
v_kenmerk9 VARCHAR2(1000);
v_kenmerk10 VARCHAR2(1000);
v_kenmerk11 VARCHAR2(1000);
v_kenmerk12 VARCHAR2(1000);
v_kenmerk13 VARCHAR2(1000);
v_kenmerk14 VARCHAR2(1000);
v_kenmerk15 VARCHAR2(1000);
v_kenmerk16 VARCHAR2(1000);
v_kenmerk17 VARCHAR2(1000);
v_kenmerk18 VARCHAR2(1000);
v_kenmerk19 VARCHAR2(1000);
v_kenmerk20 VARCHAR2(1000);
CURSOR c
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE fac_imp_ins;
v_count_import := 0;
FOR rec IN c
LOOP
BEGIN
V_count_import := v_count_import +1;
v_errormsg := 'Fout FETCH te importeren rij';
v_newline := rec.fac_imp_file_line;
IF v_count_import >1 THEN
v_errormsg := 'Fout opvragen K1 te importeren rij '||v_count_import;
v_aanduiding := '';
-- Lees alle veldwaarden
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 11, v_locatie_code);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 12, v_gebouw_code);
v_errormsg := 'Fout opvragen K3 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 13, v_alg_verdieping_volgnr);
v_errormsg := 'Fout opvragen K4 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 14, v_alg_ruimte_nr);
v_errormsg := 'Fout opvragen K2 te importeren rij '||v_count_import;
v_errormsg := 'Fout opvragen K5 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_ins_discipline_omschrijving);
v_errormsg := 'Fout opvragen K6te importeren rij '||v_count_import;
--fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_ins_srtgroep_code);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_ins_srtgroep_omschrijving);
v_errormsg := 'Fout opvragen K8 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_ins_srtdeel_code);
v_errormsg := 'Fout opvragen K9 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 5, v_ins_srtdeel_omschrijving);
v_errormsg := 'Fout opvragen K14 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 22, v_ins_deel_aantal);
v_errormsg := 'Fout opvragen K10 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_ins_deel_omschrijving);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_ins_deel_opmerking);
v_errormsg := 'Fout opvragen K12 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 23, v_kenmerk1); -- beheerder
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 24, v_kenmerk2); -- keuring1
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 25, v_kenmerk3); -- keuring1 datum
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 26, v_kenmerk4); -- keuring2
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 27, v_kenmerk5); -- keuring2 datum
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 28, v_kenmerk6); -- keuring3
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 29, v_kenmerk7); -- keuring3 datum
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 30, v_kenmerk8); -- serienummer
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 31, v_kenmerk9); -- kenteken
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 32, v_kenmerk10); -- type
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 33, v_kenmerk11); -- merk/fabrikant
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 34, v_kenmerk12); -- Garanmtiedatum
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 35, v_kenmerk13); -- Leverancier
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 36, v_kenmerk14); -- Ontvangstdatum
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 37, v_kenmerk15); -- Objectstatus
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 38, v_kenmerk16); -- Storings afhandeling
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 39, v_kenmerk17); -- bouwjaar
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 40, v_kenmerk18); -- extren referentie
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 41, v_kenmerk19); -- Kenmerk
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 42, v_kenmerk20); -- onderhoudsbedrijf
v_count_tot := v_count_tot + 1;
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_discipline_omschrijving: ' || v_ins_srtdeel_code||'(REGEL '||v_count_import||')';
d_ins_discipline_omschrijving:='';
BEGIN
SELECT ins_discipline_key, ins_discipline_omschrijving
INTO v_discipline_key, d_ins_discipline_omschrijving
FROM ins_discipline d
WHERE UPPER(d.ins_discipline_omschrijving) = UPPER(v_ins_discipline_omschrijving) AND d.ins_discipline_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO ins_tab_discipline (ins_discipline_module,ins_discipline_omschrijving,
ins_discipline_min_level)
VALUES ('INS', v_ins_discipline_omschrijving, 1)
RETURNING ins_discipline_key
INTO v_discipline_key;
INSERT INTO ins_disc_params (ins_discipline_key,
ins_disc_params_autonum)
VALUES (v_discipline_key, 2);
d_ins_discipline_omschrijving:= v_ins_discipline_omschrijving;
END;
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtgroep_omschrijving: ' || v_ins_srtdeel_code ||'(REGEL '||v_count_import||')';
d_ins_srtgroep_omschrijving:='';
BEGIN
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtgroep_omschrijving(2): ' || v_ins_srtdeel_code ||'(REGEL '||v_count_import||')';
SELECT ins_srtgroep_key,sg.ins_srtgroep_omschrijving
INTO v_srtgroep_key, d_ins_srtgroep_omschrijving
FROM ins_srtgroep sg
WHERE UPPER(sg.ins_srtgroep_omschrijving) = UPPER(v_ins_srtgroep_omschrijving)
AND sg.ins_srtgroep_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtgroep_omschrijving(3): ' || v_ins_srtdeel_code ||'(REGEL '||v_count_import||')';
INSERT INTO ins_srtgroep (ins_discipline_key,
ins_srtgroep_module,
ins_srtgroep_omschrijving)
VALUES (v_discipline_key, 'INS', v_ins_srtgroep_omschrijving)
RETURNING ins_srtgroep_key
INTO v_srtgroep_key;
d_ins_srtgroep_omschrijving := v_ins_srtgroep_omschrijving;
END;
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtdeel_omschrijving: ' || v_ins_srtdeel_code||'(REGEL '||v_count_import||')';
d_ins_srtdeel_omschrijving:='';
BEGIN
SELECT sd.ins_srtdeel_omschrijving
INTO v_ins_srtdeel_omschrijving
FROM ins_srtdeel sd
WHERE sd.ins_srtdeel_code = v_ins_srtdeel_code AND sd.ins_srtdeel_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO ins_srtdeel (ins_srtgroep_key,
ins_srtdeel_module,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_srtdeel_binding)
VALUES (v_srtgroep_key,
'INS',
v_ins_srtdeel_code,
v_ins_srtdeel_omschrijving,
17);
d_ins_srtdeel_omschrijving := v_ins_srtdeel_omschrijving;
END;
v_errormsg := 'Fout bij toevoegen te impoteren v_alg_ruimte_nr: ' || v_alg_ruimte_nr;
-- v_alg_locatie_code:='';
--v_alg_gebouw_code :='';
--v_alg_verdieping_volgnr:=-4;
BEGIN
SELECT alg_locatie_code, alg_gebouw_upper, alg_verdieping_volgnr INTO v_alg_locatie_code,v_alg_gebouw_code, v_alg_verdieping_volgnr
FROm alg_v_ruimte_gegevens rg
WHERE UPPER(rg.alg_ruimte_nr) = UPPER(v_alg_ruimte_nr) AND rg.alg_locatie_code= v_locatie_code AND rg.alg_gebouw_upper = UPPER(v_gebouw_code) AND rg.alg_verdieping_volgnr=v_alg_verdieping_volgnr;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_alg_locatie_code:= v_locatie_code;
v_alg_gebouw_code := v_gebouw_code;
v_alg_verdieping_volgnr:=0;
v_alg_ruimte_nr:='999999';
END;
v_errormsg := 'Fout bij aanmaken aanmaal datum: ';
v_ins_deel_aanmaak:=SYSDATE;
IF v_ins_deel_aantal IS NULL OR LENGTH(v_ins_deel_aantal)<1
THEN
v_ins_deel_aantal:=1;
END IF;
v_ongeldig:=0;
IF v_ongeldig=0 THEN
v_errormsg:='Fout bij insert regel '||v_count_tot;
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
ins_srtgroep_omschrijving,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_deel_omschrijving,
ins_deel_opmerking,
alg_locatie_code,
alg_gebouw_code,
alg_verdieping_volgnr,
alg_ruimte_nr,
ins_deel_aanmaak,
ins_deel_aantal,
ins_kenmerkwaarde1, -- Code OP
ins_kenmerkwaarde2, -- Bouwjaar ?
ins_kenmerkwaarde3, -- eenheid ?
ins_kenmerkwaarde4, -- eenheid ?
ins_kenmerkwaarde5, -- eenheid ?
ins_kenmerkwaarde6, -- eenheid ?
ins_kenmerkwaarde7, -- eenheid ?
ins_kenmerkwaarde8, -- eenheid ?
ins_kenmerkwaarde9, -- eenheid ?
ins_kenmerkwaarde10, -- Srt Taak Groep
ins_kenmerkwaarde11, -- Srt Taak
ins_kenmerkwaarde12, -- Periode
ins_kenmerkwaarde13, -- Interval (4=jaarlijks)
ins_kenmerkwaarde14, -- bedrag /matriaal
ins_kenmerkwaarde15, -- Taak opm
ins_kenmerkwaarde16,
ins_kenmerkwaarde17, -- Taak opm
ins_kenmerkwaarde18, -- Taak opm
ins_kenmerkwaarde19, -- Taak opm
ins_kenmerkwaarde20) -- Taak opm
VALUES (SUBSTR(d_ins_discipline_omschrijving, 1,60),
SUBSTR(d_ins_srtgroep_omschrijving, 1, 60),
SUBSTR(v_ins_srtdeel_code,1,10),
SUBSTR(v_ins_srtdeel_omschrijving, 1, 100),
SUBSTR(v_ins_deel_omschrijving, 1, 60),
SUBSTR(v_ins_deel_opmerking, 1, 60),
SUBSTR(v_alg_locatie_code, 1, 10),
SUBSTR(v_alg_gebouw_code, 1, 12),
v_alg_verdieping_volgnr,
SUBSTR(v_alg_ruimte_nr,1,20),
SYSDATE,
to_number(v_ins_deel_aantal),
DECODE(v_kenmerk1, NULL, NULL, 'Beheerder|0='||v_kenmerk1),
v_kenmerk2,
v_kenmerk3,
v_kenmerk4,
v_kenmerk5,
v_kenmerk6,
v_kenmerk7,
DECODE(v_kenmerk8, NULL, NULL, 'Serienummer|0='||v_kenmerk8),
DECODE(v_kenmerk9, NULL, NULL, 'Kenteken|0='||v_kenmerk9),
DECODE(v_kenmerk10, NULL, NULL, 'Type|0='||v_kenmerk10),
DECODE(v_kenmerk11, NULL, NULL, 'Merk/Fabrikant|0='||v_kenmerk11),
DECODE(v_kenmerk12, NULL, NULL, 'Garantiedatum|0='||v_kenmerk12),
DECODE(v_kenmerk13, NULL, NULL, 'Leverancier|0='||v_kenmerk13),
DECODE(v_kenmerk14, NULL, NULL, 'Ontvangstdatum|0='||v_kenmerk14),
DECODE(v_kenmerk15, NULL, NULL, 'Objectstatus|0='||v_kenmerk15),
DECODE(v_kenmerk16, NULL, NULL, 'Storings afhandeling|0='||v_kenmerk16),
DECODE(v_kenmerk17, NULL, NULL, 'Bouwjaar|0='||v_kenmerk17),
DECODE(v_kenmerk18, NULL, NULL, 'Extrene referentie|0='||v_kenmerk18),
DECODE(v_kenmerk19, NULL, NULL, 'Kenmerk|0='||v_kenmerk19),
DECODE(v_kenmerk20, NULL, NULL, 'Onderhoudsbedrijf|0='||v_kenmerk20)
);
-- fac.imp_writelog (p_import_key,
-- 'S',
-- v_errormsg,
-- v_errorhint);
ELSE
v_ongeldig:=0;
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
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;
--FAC_IMPORT_INS(p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE WDKA_UPDATE_ASSETS(p_import_key IN NUMBER)
AS
CURSOR sel IS
SELECT * FROM fac_imp_ins;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
v_aanduiding VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_perslidkey NUMBER;
v_ins_srtinstallatie_key NUMBER;
v_ins_srtcontrole_niveau VARCHAR2(10);
v_srtcontrole_key NUMBER;
v_ins_srtcontrole_periode NUMBER;
v_taak1 VARCHAR2(100);
v_taak2 VARCHAR2(100);
v_taak3 VARCHAR2(100);
v_datum1 VARCHAR2(100);
v_datum2 VARCHAR2(100);
v_datum3 VARCHAR2(100);
v_cyclus1 NUMBER;
v_cyclus2 NUMBER;
v_cyclus3 NUMBER;
v_eenheid NUMBER :=3;
v_deel_key NUMBER;
v_count NUMBER;
v_aantal NUMBER;
v_groep NUMBER;
BEGIN
v_count:=1;
fac_update_ins(p_import_key);
v_groep:=3;
FOR rec IN sel
LOOP
BEGIN
v_count:=v_count+1;
v_errormsg := 'Fout FETCH te importeren rij '||v_count;
v_taak1 :='';
v_taak2 :='';
v_taak3 :='';
v_cyclus1 := 0;
v_cyclus2 := 0;
v_cyclus3 := 0;
v_groep:=-1;
v_perslidkey :=0;
BEGIN
SELECT prs_perslid_key INTO v_perslidkey FROM PRS_V_PERSLID_FULLNAMES where PRS_PERSLID_NAAM_FULL=SUBSTR(rec.ins_kenmerkwaarde1,INSTR(rec.ins_kenmerkwaarde1,'=')+1);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_perslidkey:=-1;
END;
IF v_perslidkey>0
THEN
UPDATE ins_deel set PRS_PERSLID_KEY_BEH=v_perslidkey WHERE ins_deel_omschrijving = rec.ins_deel_omschrijving;
commit;
END IF;
v_taak1 := rec.INS_KENMERKWAARDE2;
v_taak2 := rec.INS_KENMERKWAARDE4;
v_taak3 := rec.INS_KENMERKWAARDE6;
v_datum1 := COALESCE(fac.safe_to_date(rec.INS_KENMERKWAARDE3,'dd-mm-yyyy'), TO_DATE('01-01-2022','DD-MM-YYYY'));
v_datum2 := COALESCE(fac.safe_to_date(rec.INS_KENMERKWAARDE5,'dd-mm-yyyy'), TO_DATE('01-01-2022','DD-MM-YYYY'));
v_datum3 := COALESCE(fac.safe_to_date(rec.INS_KENMERKWAARDE7,'dd-mm-yyyy'), TO_DATE('01-01-2022','DD-MM-YYYY'));
v_errormsg := 'Fout ophalen object('||rec.ins_deel_omschrijving||') te importeren rij '||v_count;
SELECT ins_deel_key
INTO v_deel_key
FROM ins_deel
WHERE ins_deel_omschrijving = rec.ins_deel_omschrijving AND ins_deel_verwijder IS NULL;
IF (v_taak1 ='SKH keuring') THEN
v_cyclus1:=36;
ELSE
v_cyclus1:=12;
END IF;
IF (v_taak2 ='SKH keuring') THEN
v_cyclus2:=36;
ELSE
v_cyclus2:=12;
END IF;
IF (v_taak3 ='SKH keuring') THEN
v_cyclus3:=36;
ELSE
v_cyclus3:=12;
END IF;
v_errormsg := 'Fout FETCH discipline te importeren rij '||v_count;
SELECT ins_discipline_key, 'D'
INTO v_ins_srtinstallatie_key, v_ins_srtcontrole_niveau
FROM ins_tab_discipline
WHERE UPPER (ins_discipline_omschrijving) = UPPER (rec.ins_discipline_omschrijving)
AND ins_discipline_module = 'INS'
AND ins_discipline_verwijder IS NULL;
v_errormsg := 'Fout FETCH GROEP te importeren rij '||v_count;
SELECT ins_srtgroep_key, 'G'
INTO v_ins_srtinstallatie_key, v_ins_srtcontrole_niveau
FROM ins_srtgroep
WHERE UPPER (ins_srtgroep_omschrijving) = UPPER (rec.ins_srtgroep_omschrijving)
AND ins_srtgroep_module = 'INS'
AND ins_srtgroep_verwijder IS NULL
AND ins_discipline_key = v_ins_srtinstallatie_key;
v_errormsg := 'Fout FETCH objectsort te importeren rij '||v_count||'Object '||rec.ins_deel_omschrijving;
SELECT ins_srtdeel_key, 'S'
INTO v_ins_srtinstallatie_key, v_ins_srtcontrole_niveau
FROM ins_srtdeel
WHERE UPPER (ins_srtdeel_code) = UPPER (rec.ins_srtdeel_code)
AND ins_srtdeel_module = 'INS'
AND ins_srtdeel_verwijder IS NULL
AND ins_srtgroep_key = v_ins_srtinstallatie_key;
v_errormsg := 'Fout verwerken Taak1 '||v_count||' Object '||rec.ins_deel_omschrijving;
IF v_taak1 IS NOT NULL
AND v_taak1 <> 'Registratie'
AND v_cyclus1 IS NOT NULL
THEN
v_groep:=wdka.getCtrGroep(v_taak1);
BEGIN
v_errormsg := 'Fout Count srtcontrole Taak1 '||v_ins_srtinstallatie_key||' Object '||rec.ins_deel_omschrijving;
SELECT ins_srtcontrole_key
INTO v_srtcontrole_key
FROM ins_srtcontrole
where ins_srtinstallatie_key=v_ins_srtinstallatie_key
AND ins_srtcontrole_niveau=v_ins_srtcontrole_niveau
AND UPPER(ins_srtcontrole_omschrijving) = UPPER(v_taak1)
AND ins_srtcontrole_periode=v_cyclus1
AND ins_srtcontrole_eenheid=v_eenheid
AND ins_srtcontrole_mode=1
AND ctr_discipline_key=v_groep;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
ins_srtcontrole_niveau,
ins_srtcontrole_omschrijving,
ins_srtcontrole_periode,
ins_srtcontrole_eenheid,
ins_srtcontrole_mode,
ctr_discipline_key
)
VALUES (v_ins_srtinstallatie_key,
v_ins_srtcontrole_niveau,
v_taak1,
v_cyclus1,
v_eenheid,
1,
v_groep
)
RETURNING ins_srtcontrole_key
INTO v_srtcontrole_key;
IF v_taak1 = '11A - NEN3140'
THEN
wdka.insert_ctr_kenmerk(v_srtcontrole_key);
END IF;
END;
/* IF v_aantal=0
THEN
v_errormsg := 'Fout INSERT srtcontrole te importeren rij taak1 '||v_count;
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
ins_srtcontrole_niveau,
ins_srtcontrole_omschrijving,
ins_srtcontrole_periode,
ins_srtcontrole_eenheid,
ins_srtcontrole_mode,
ctr_discipline_key
)
VALUES (v_ins_srtinstallatie_key,
v_ins_srtcontrole_niveau,
v_taak1,
v_cyclus1,
v_eenheid,
1,
3
)
RETURNING ins_srtcontrole_key
INTO v_srtcontrole_key;
END IF;*/
IF v_datum1 IS NULL
THEN
v_datum1:=TO_DATE(SYSDATE,'DD/MM/YYYY');
ELSE
v_datum1:= wdka.getSrtControldatum(v_datum1, v_cyclus1);
END IF;
/* v_errormsg := 'Fout ophalen srtcontrole taak 1 rij '||v_count||'('||rec.ins_deel_omschrijving||')';
SELECT ins_srtcontrole_key
INTO v_srtcontrole_key
FROM ins_srtcontrole
where ins_srtinstallatie_key=v_ins_srtinstallatie_key
AND ins_srtcontrole_niveau=v_ins_srtcontrole_niveau
AND ins_srtcontrole_omschrijving = v_taak1
AND ins_srtcontrole_periode=v_cyclus1
AND ins_srtcontrole_eenheid=v_eenheid
AND ins_srtcontrole_mode=1
AND ctr_discipline_key=3;
*/
v_errormsg := 'Fout INSERT deelsrtcontrole te importeren rij taak1 '||v_count||'('||rec.ins_deel_omschrijving||')';
-- v_datum1:= wdka.getSrtControldatum(v_datum1, v_cyclus1);
INSERT INTO ins_deelsrtcontrole(ins_deel_key,
ins_srtcontrole_key,
ins_scenario_key,
ins_deelsrtcontrole_datum,
ins_controlemode_key,
ins_deelsrtcontrole_status,
ins_deelsrtcontrole_datum_org,
ins_deelsrtcontrole_freezecost,
prs_perslid_key)
VALUES(v_deel_key,
v_srtcontrole_key,
1,
v_datum1 ,
10,
6,
v_datum1,
0,
3);
END IF;
v_errormsg := 'Fout verwerken Taak2 '||v_count||' Object '||rec.ins_deel_omschrijving;
IF v_taak2 IS NOT NULL AND v_taak2 <> 'Registratie' AND v_cyclus2 IS NOT NULL
THEN
v_groep:=wdka.getCtrGroep(v_taak2);
BEGIN
v_errormsg := 'Fout Count srtcontrole Taak2 '||v_count||' Object '||rec.ins_deel_omschrijving;
SELECT ins_srtcontrole_key
INTO v_srtcontrole_key
FROM ins_srtcontrole
where ins_srtinstallatie_key=v_ins_srtinstallatie_key
AND ins_srtcontrole_niveau=v_ins_srtcontrole_niveau
AND ins_srtcontrole_omschrijving = v_taak2
AND ins_srtcontrole_periode=v_cyclus2
AND ins_srtcontrole_eenheid=v_eenheid
AND ins_srtcontrole_mode=1
AND ctr_discipline_key=v_groep;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
ins_srtcontrole_niveau,
ins_srtcontrole_omschrijving,
ins_srtcontrole_periode,
ins_srtcontrole_eenheid,
ins_srtcontrole_mode,
ctr_discipline_key
)
VALUES (v_ins_srtinstallatie_key,
v_ins_srtcontrole_niveau,
v_taak2,
v_cyclus2,
v_eenheid,
1,
v_groep
)
RETURNING ins_srtcontrole_key
INTO v_srtcontrole_key;
IF v_taak2 = '11A - NEN3140'
THEN
wdka.insert_ctr_kenmerk(v_srtcontrole_key);
END IF;
END;
/* IF v_aantal=0
THEN
v_errormsg := 'Fout INSERT srtcontrole te importeren rij taak2 '||v_count;
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
ins_srtcontrole_niveau,
ins_srtcontrole_omschrijving,
ins_srtcontrole_periode,
ins_srtcontrole_eenheid,
ins_srtcontrole_mode,
ctr_discipline_key
)
VALUES (v_ins_srtinstallatie_key,
v_ins_srtcontrole_niveau,
v_taak2,
v_cyclus2,
v_eenheid,
1,
3
)
RETURNING ins_srtcontrole_key
INTO v_srtcontrole_key;
*/
IF v_datum2 IS NULL
THEN
v_datum2:=TO_DATE(SYSDATE,'DD/MM/YYYY');
ELSE
v_datum2:= wdka.getSrtControldatum(v_datum2, v_cyclus2);
END IF;
/* v_errormsg := 'Fout ophalen srtcontrole taak 2 rij '||v_count||'('||rec.ins_deel_omschrijving||')';
SELECT ins_srtcontrole_key
INTO v_srtcontrole_key
FROM ins_srtcontrole
where ins_srtinstallatie_key=v_ins_srtinstallatie_key
AND ins_srtcontrole_niveau=v_ins_srtcontrole_niveau
AND ins_srtcontrole_omschrijving = v_taak2
AND ins_srtcontrole_periode=v_cyclus2
AND ins_srtcontrole_eenheid=v_eenheid
AND ins_srtcontrole_mode=1
AND ctr_discipline_key=3;
*/
v_errormsg := 'Fout INSERT deelsrtcontrole te importeren rij taak 2'||v_count||'('||rec.ins_deel_omschrijving||')';
INSERT INTO ins_deelsrtcontrole(ins_deel_key,
ins_srtcontrole_key,
ins_scenario_key,
ins_deelsrtcontrole_datum,
ins_controlemode_key,
ins_deelsrtcontrole_status,
ins_deelsrtcontrole_datum_org,
ins_deelsrtcontrole_freezecost,
prs_perslid_key)
VALUES(v_deel_key,
v_srtcontrole_key,
1,
v_datum2,
10,
6,
v_datum2,
0,
3);
END IF;
IF v_taak3 IS NOT NULL
AND v_taak3 <> 'Registratie'
AND v_cyclus3 IS NOT NULL
THEN
v_groep:=wdka.getCtrGroep(v_taak3);
BEGIN
v_errormsg := 'Fout Count srtcontrole Taak3 '||v_count||' Object '||rec.ins_deel_omschrijving;
SELECT ins_srtcontrole_key
INTO v_srtcontrole_key
FROM ins_srtcontrole
where ins_srtinstallatie_key=v_ins_srtinstallatie_key
AND ins_srtcontrole_niveau=v_ins_srtcontrole_niveau
AND ins_srtcontrole_omschrijving = v_taak3
AND ins_srtcontrole_periode=v_cyclus3
AND ins_srtcontrole_eenheid=v_eenheid
AND ins_srtcontrole_mode=1
AND ctr_discipline_key=v_groep;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
ins_srtcontrole_niveau,
ins_srtcontrole_omschrijving,
ins_srtcontrole_periode,
ins_srtcontrole_eenheid,
ins_srtcontrole_mode,
ctr_discipline_key
)
VALUES (v_ins_srtinstallatie_key,
v_ins_srtcontrole_niveau,
v_taak3,
v_cyclus3,
v_eenheid,
1,
v_groep
)
RETURNING ins_srtcontrole_key
INTO v_srtcontrole_key;
IF v_taak3 = '11A - NEN3140'
THEN
wdka.insert_ctr_kenmerk(v_srtcontrole_key);
END IF;
END;
/* IF v_aantal=0
THEN
v_errormsg := 'Fout INSERT srtcontrole te importeren rij taak 3 '||v_count;
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
ins_srtcontrole_niveau,
ins_srtcontrole_omschrijving,
ins_srtcontrole_periode,
ins_srtcontrole_eenheid,
ins_srtcontrole_mode,
ctr_discipline_key
)
VALUES (v_ins_srtinstallatie_key,
v_ins_srtcontrole_niveau,
v_taak3,
v_cyclus3,
v_eenheid,
1,
3
)
RETURNING ins_srtcontrole_key
INTO v_srtcontrole_key;
*/
--END IF;
IF v_datum3 IS NULL
THEN
v_datum3:=TO_DATE(SYSDATE,'DD/MM/YYYY');
ELSE
v_datum3:= wdka.getSrtControldatum(v_datum3, v_cyclus3);
END IF;
/* v_errormsg := 'Fout ophalen srtcontrole taak 3 rij '||v_count||'('||rec.ins_deel_omschrijving||')';
SELECT ins_srtcontrole_key
INTO v_srtcontrole_key
FROM ins_srtcontrole
where ins_srtinstallatie_key=v_ins_srtinstallatie_key
AND ins_srtcontrole_niveau=v_ins_srtcontrole_niveau
AND ins_srtcontrole_omschrijving = v_taak3
AND ins_srtcontrole_periode=v_cyclus3
AND ins_srtcontrole_eenheid=v_eenheid
AND ins_srtcontrole_mode=1
AND ctr_discipline_key=3; */
v_errormsg := 'Fout INSERT deelsrtcontrole te importeren rij taak3 '||v_count||'('||rec.ins_deel_omschrijving||')';
INSERT INTO ins_deelsrtcontrole(ins_deel_key,
ins_srtcontrole_key,
ins_scenario_key,
ins_deelsrtcontrole_datum,
ins_controlemode_key,
ins_deelsrtcontrole_status,
ins_deelsrtcontrole_datum_org,
ins_deelsrtcontrole_freezecost,
prs_perslid_key)
VALUES(v_deel_key,
v_srtcontrole_key,
1,
v_datum3,
10,
6,
v_datum3,
0,
3);
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
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;
END;
/
-- Import Asset migratie:
-- Concept script om import sheet objecten telaten verplaatsen naat andere objest srt/groep
-- Door nieuwe release is dit evt niet meer noodzakelijk.
CREATE OR REPLACE PROCEDURE WDKA_IMPORT_ASSET_MIGRATIE(p_import_key IN NUMBER)
AS
BEGIN
NULL;
END;
/
-- Concept script om import sheet objecten telaten verplaatsen naat andere objest srt/groep, alleen voor taak1 gebouwd rest nog maken
-- Door nieuwe release is dit evt niet meer noodzakelijk.
CREATE OR REPLACE PROCEDURE WDKA_UPDATE_ASSET_MIGRATIE(p_import_key IN NUMBER)
AS
CURSOR c
IS
SELECT fac_imp_csv_col01 ins_deel_omschrijving,
fac_imp_csv_col02 ins_deel_opmerking,
fac_imp_csv_col03 ins_discipline,
fac_imp_csv_col04 ins_srtgroep_oud,
fac_imp_csv_col05 ins_srtdeel_oud,
fac_imp_csv_col06 ins_srtgroep_nieuw,
fac_imp_csv_col07 ins_srtdeel_nieuw,
fac_imp_csv_col08 taak1,
fac_imp_csv_col09 taak1_datum,
fac_imp_csv_col08 taak2,
fac_imp_csv_col09 taak2_datum,
fac_imp_csv_col08 taak3,
fac_imp_csv_col09 taak3_datum
from fac_imp_csv
WHERE fac_import_key = p_import_key;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
v_aanduiding VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_counter NUMBER;
v_ins_deel_key NUMBER;
v_ins_srtdeel_key_now NUMBER;
v_ins_srtdeel_key_new NUMBER;
v_ins_srtgroep_key_new NUMBER;
v_srtcontrole_key NUMBER;
v_eenheid NUMBER;
v_groep NUMBER;
v_cyclus1 NUMBER;
v_cyclus2 NUMBER;
v_cyclus3 NUMBER;
v_datum1 DATE;
v_datum2 DATE;
v_datum3 DATE;
BEGIN
v_counter:=0;
v_eenheid:=3;
FOR rec IN C
LOOP
IF v_counter>0
THEN
BEGIN
v_errormsg :='Ophalen object '||rec.ins_deel_omschrijving||' gaat fout';
SELECT ins_deel_key , ins_srtdeel_key
INTO v_ins_deel_key, v_ins_srtdeel_key_now
FROM ins_deel
where ins_deel_omschrijving=rec.ins_deel_omschrijving
AND UPPER(ins_deel_opmerking) = UPPER(rec.ins_deel_opmerking)
AND ins_deel_verwijder IS NULL
AND (ins_deel_vervaldatum IS NULL
OR ins_deel_vervaldatum>SYSDATE);
v_errormsg :='Ophalen objectgroep '||rec.ins_srtgroep_nieuw||' gaat fout';
SELECT ins_srtgroep_key
INTO v_ins_srtgroep_key_new
FROM ins_srtgroep
WHERE UPPER(ins_srtgroep_omschrijving)=UPPER(rec.ins_srtgroep_nieuw)
AND ins_srtgroep_verwijder IS NULL;
v_errormsg :='Ophalen objectsoort '||rec.ins_srtdeel_nieuw||' gaat fout';
SELECT ins_srtdeel_key
INTO v_ins_srtdeel_key_new
FROM ins_srtdeel
WHERE UPPER(ins_srtdeel_omschrijving)=UPPER(rec.ins_srtdeel_nieuw)
AND ins_srtgroep_key = v_ins_srtgroep_key_new
AND ins_srtdeel_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_ins_deel_key:=-1;
v_ins_srtdeel_key_new:=-1;
fac.imp_writelog (p_import_key,
'W',
v_errormsg,
v_errorhint);
END;
IF v_ins_deel_key>0
AND v_ins_srtdeel_key_new > 0
AND v_ins_srtdeel_key_new<>v_ins_srtdeel_key_now
THEN
-- we hebben nu alles gevonden en kunnen nu de mutatie op het object doorvoeren
v_errormsg :='verplaatsen object '||rec.ins_deel_omschrijving||' van '||v_ins_srtdeel_key_now||' naar '||v_ins_srtdeel_key_new||' gaat fout.';
UPDATE ins_deel
SET ins_srtdeel_key=v_ins_srtdeel_key_new
WHERE ins_deel_key = v_ins_deel_key;
IF (rec.taak1 ='SKH keuring') THEN
v_cyclus1:=36;
ELSE
v_cyclus1:=12;
END IF;
IF (rec.taak2 ='SKH keuring') THEN
v_cyclus2:=36;
ELSE
v_cyclus2:=12;
END IF;
IF (rec.taak3 ='SKH keuring') THEN
v_cyclus3:=36;
ELSE
v_cyclus3:=12;
END IF;
-- Onder welke groep valt deze taak
IF rec.taak1 IS NOT NULL
AND rec.taak1 <> 'Registratie'
AND length(rec.taak1)>0
THEN
v_groep:=wdka.getCtrGroep(rec.taak1);
-- Object gevoiden en groep gevonden
-- Opzeok naar een taak met de aangegeven omschrijving op de nieuwe objectsoort
BEGIN
v_errormsg :='Ophalen srtcontrole '||rec.taak1||' gaat fout';
SELECT ins_srtcontrole_key
INTO v_srtcontrole_key
FROM ins_srtcontrole
where ins_srtinstallatie_key=v_ins_srtdeel_key_new
AND ins_srtcontrole_niveau='S'
AND UPPER(ins_srtcontrole_omschrijving) = UPPER(rec.taak1)
AND ins_srtcontrole_periode=v_cyclus1
AND ins_srtcontrole_eenheid=v_eenheid
AND ins_srtcontrole_mode=1
AND ctr_discipline_key=v_groep;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_srtcontrole_key:=-1;
fac.imp_writelog (p_import_key,
'W',
v_errormsg,
v_errorhint);
END;
IF v_srtcontrole_key >0 THEN
v_datum1 := fac.safe_to_date(rec.taak1_datum,'DD-MM-YYYY');
v_datum1 := wdka.getSrtControldatum(v_datum1, v_cyclus1);
-- nu gaan we de insdeelsrtcontrioeole vullen
v_errormsg := 'Fout INSERT deelsrtcontrole te importeren rij taak1 '||v_counter||'('||rec.ins_deel_omschrijving||')';
INSERT INTO ins_deelsrtcontrole(ins_deel_key,
ins_srtcontrole_key,
ins_scenario_key,
ins_deelsrtcontrole_datum,
ins_controlemode_key,
ins_deelsrtcontrole_status,
ins_deelsrtcontrole_datum_org,
ins_deelsrtcontrole_freezecost,
prs_perslid_key)
VALUES(v_ins_deel_key,
v_srtcontrole_key,
1,
v_datum1,
10,
6,
v_datum1,
0,
3);
END IF;
END IF;
END IF;
ELSE
-- Header row
v_counter:=v_counter+1;
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
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;
/
-- Einde Import Asset migratie:
CREATE OR REPLACE PROCEDURE WDKA_IMPORT_PAT_DATA(p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';';
header_is_valid NUMBER;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_newline VARCHAR2 (4000);
v_ongeldig NUMBER (1) := 0; -- 0= Goed, 1= Error, 2=Waarschuwing
v_aanduiding VARCHAR2 (1000) := '';
v_count NUMBER;
v_smartwareID VARCHAR2(50);
v_omschrijving VARCHAR2(50);
v_laatste_datum_str VARCHAR2(50);
v_laatste_datum DATE;
v_laatste_resultaat VARCHAR2(50);
v_visueel VARCHAR2(50);
v_aarde VARCHAR2(50);
v_aarde_eenheid VARCHAR2(50);
v_aarde_resultaat VARCHAR2(50);
v_lekstroom VARCHAR2(50);
v_lekstroom_eenheid VARCHAR2(50);
v_lekstroom_resultaat VARCHAR2(50);
v_aanrk_lekstroom VARCHAR2(50);
v_aanrk_lekstroom_eenheid VARCHAR2(50);
v_aanrk_lekstroom_resultaat VARCHAR2(50);
v_verv_lekstroom VARCHAR2(50);
v_verv_lekstroom_eenheid VARCHAR2(50);
v_verv_lekstroom_resultaat VARCHAR2(50);
v_isolatie VARCHAR2(50);
v_isolatie_eenheid VARCHAR2(50);
v_isolatie_resultaat VARCHAR2(50);
v_bedrading VARCHAR2(50);
v_bedrading_eenheid VARCHAR2(50);
v_bedrading_resultaat VARCHAR2(50);
v_gebruikertest VARCHAR2(50);
v_gebruikers_waarde VARCHAR2(50);
v_gebruikers_eenheid VARCHAR2(50);
v_gebruikers_resultaat VARCHAR2(50);
v_volgende_testdatum_str VARCHAR2(50);
v_volgende_testdatum DATE;
v_laatste_vis_test_str VARCHAR2(50);
v_laatste_vis_test DATE;
v_laatste_vis_resultaat VARCHAR2(50);
v_next_vis_test_str VARCHAR2(50);
v_next_vis_test DATE;
CURSOR c1 IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
v_count :=0;
v_aanduiding := 'Start inlees process';
header_is_valid := 0;
FOR rec IN c1
LOOP
BEGIN
v_aanduiding := 'Lees regel';
v_newline := REPLACE(rec.fac_imp_file_line,chr(9),'');
v_aanduiding := 'Lees velden in';
fac.imp_getfield_nr (v_newline, c_delim, 1, v_smartwareID);
fac.imp_getfield_nr (v_newline, c_delim,2, v_omschrijving);
fac.imp_getfield_nr (v_newline, c_delim,3, v_laatste_datum_str);
fac.imp_getfield_nr (v_newline, c_delim,4, v_laatste_resultaat);
-- fac.imp_getfield (v_newline, c_delim, v_visueel);
v_aanduiding := 'Lees velden in 1';
fac.imp_getfield_nr (v_newline, c_delim, 6, v_aarde);
fac.imp_getfield_nr (v_newline, c_delim, 7, v_aarde_eenheid);
fac.imp_getfield_nr (v_newline, c_delim, 8, v_aarde_resultaat);
fac.imp_getfield_nr (v_newline, c_delim, 9, v_lekstroom);
fac.imp_getfield_nr (v_newline, c_delim, 10, v_lekstroom_eenheid);
fac.imp_getfield_nr (v_newline, c_delim, 11, v_lekstroom_resultaat);
v_aanduiding := 'Lees velden in2';
fac.imp_getfield_nr (v_newline, c_delim, 12, v_aanrk_lekstroom);
fac.imp_getfield_nr (v_newline, c_delim, 13, v_aanrk_lekstroom_eenheid);
fac.imp_getfield_nr (v_newline, c_delim, 14, v_aanrk_lekstroom_resultaat);
fac.imp_getfield_nr (v_newline, c_delim, 15, v_verv_lekstroom);
fac.imp_getfield_nr (v_newline, c_delim, 16, v_verv_lekstroom_eenheid);
fac.imp_getfield_nr (v_newline, c_delim, 17, v_verv_lekstroom_resultaat);
v_aanduiding := 'Lees velden in 3';
fac.imp_getfield_nr (v_newline, c_delim, 18, v_isolatie);
fac.imp_getfield_nr (v_newline, c_delim, 19, v_isolatie_eenheid);
fac.imp_getfield_nr (v_newline, c_delim, 20, v_isolatie_resultaat);
fac.imp_getfield_nr (v_newline, c_delim, 21, v_bedrading);
fac.imp_getfield_nr (v_newline, c_delim, 23, v_bedrading_resultaat);
fac.imp_getfield_nr (v_newline, c_delim, 24, v_gebruikertest);
fac.imp_getfield_nr (v_newline, c_delim, 27, v_gebruikers_resultaat);
fac.imp_getfield_nr (v_newline, c_delim, 28, v_volgende_testdatum_str);
fac.imp_getfield_nr (v_newline, c_delim, 29, v_laatste_vis_test_str);
fac.imp_getfield_nr (v_newline, c_delim, 30, v_laatste_vis_resultaat);
-- fac.imp_getfield (v_newline, c_delim, v_bedrading_eenheid);
-- fac.imp_getfield (v_newline, c_delim, v_gebruiker_waarde);
-- fac.imp_getfield (v_newline, c_delim, v_gebruiker_eenheid);
-- fac.imp_getfield (v_newline, c_delim, v_laatste_vis_test_str);
-- fac.imp_getfield (v_newline, c_delim, v_laatste_vis_resultaat);
-- fac.imp_getfield (v_newline, c_delim, v_next_vis_test_str);
v_aanduiding := 'Valideer Headers';
v_count:=v_count+1;
IF (header_is_valid = 0)
THEN
IF UPPER (TRIM (v_smartwareID)) = 'TESTOBJECT NUMMER'
AND UPPER (TRIM (v_omschrijving)) = 'OMSCHRIJVING'
AND UPPER (TRIM (v_laatste_datum_str)) = 'LAATSTE TESTDATUM'
AND UPPER (TRIM (v_laatste_resultaat)) = 'LAATSTE TESTRESULTAAT'
AND UPPER (TRIM (v_aarde)) = 'AARDE'
AND UPPER (TRIM (v_aarde_eenheid)) = 'AARDE EENHEID'
AND UPPER (TRIM (v_aarde_resultaat)) = 'AARDE RESULTAAT'
AND UPPER (TRIM (v_lekstroom)) = 'LEKSTROOM'
AND UPPER (TRIM (v_lekstroom_eenheid)) = 'LEKSTROOM EENHEID'
AND UPPER (TRIM (v_lekstroom_resultaat)) = 'LEKSTROOM RESULTAAT'
AND UPPER (TRIM (v_aanrk_lekstroom)) = 'AANRAAK LEKSTROOM'
AND UPPER (TRIM (v_aanrk_lekstroom_eenheid)) = 'AANRAAK LEKSTROOM EENHEID'
AND UPPER (TRIM (v_aanrk_lekstroom_resultaat)) = 'AANRAAK LEKSTROOM RESULTAAT'
AND UPPER (TRIM (v_verv_lekstroom)) = 'VERVANGENDE LEKSTROOM'
AND UPPER (TRIM (v_verv_lekstroom_eenheid)) = 'VERVANGENDE LEKSTROOM EENHEID'
AND UPPER (TRIM (v_verv_lekstroom_resultaat)) = 'VERVANGENDE LEKSTROOM RESULTAAT'
AND UPPER (TRIM (v_isolatie)) = 'ISOLATIE'
AND UPPER (TRIM (v_isolatie_eenheid)) = 'ISOLATIE EENHEID'
AND UPPER (TRIM (v_isolatie_resultaat)) = 'ISOLATIE RESULTAAT'
AND UPPER (TRIM (v_bedrading)) = 'BEDRADING'
AND UPPER (TRIM (v_bedrading_resultaat)) = 'BEDRADING RESULTAAT'
AND UPPER (TRIM (v_volgende_testdatum_str)) = 'VOLGENDE TESTDATUM'
AND UPPER (TRIM (v_laatste_vis_test_str)) = 'LAATSTE VISUELE TEST'
AND UPPER (TRIM (v_laatste_vis_resultaat)) = 'LAATSTE VISUELE RESULTAAT'
THEN
header_is_valid := 1;
END IF;
ELSE
v_aanduiding :='Lees regel';
-- v_laatste_datum := fac.safe_to_date (v_laatste_datum_str,'DD-MM-YYYY');
-- v_volgende_testdatum := fac.safe_to_date (v_volgende_testdatum_str,'DD-MM-YYYY');
-- hebben een regel nu wat gaan we dan gebruiken in de wdka_imp_smartware tabel
-- v_smartwareID,v_laatste_datum, v_laatste_resultaat, v_aarde, v_aarde_resultaat,v_aanrk_lekstroom, v_aanrk_lekstroom_resultaat, v_isolatie, v_isolatie_resultaat,v_bedrading_resultaat`, v_laatste_vis_tes,v_laatste_vis_resultaat
INSERT INTO FAC_IMP_CSV(FAC_IMP_CSV_INDEX,
FAC_IMP_CSV_COL01,
FAC_IMP_CSV_COL02,
FAC_IMP_CSV_COL03,
FAC_IMP_CSV_COL04,
FAC_IMP_CSV_COL05,
FAC_IMP_CSV_COL06,
FAC_IMP_CSV_COL07,
FAC_IMP_CSV_COL08,
FAC_IMP_CSV_COL09,
FAC_IMP_CSV_COL10,
FAC_IMP_CSV_COL11,
FAC_IMP_CSV_COL12,
FAC_IMP_CSV_COL13,
FAC_IMP_CSV_COL14,
FAC_IMP_CSV_COL15,
FAC_IMP_CSV_COL16,
FAC_IMP_CSV_COL17,
FAC_IMP_CSV_COL18,
FAC_IMP_CSV_COL19,
FAC_IMP_CSV_COL20)
VALUES(v_count,
v_smartwareID,
v_laatste_datum_str,
v_laatste_resultaat,
v_aarde,
v_aarde_resultaat,
v_lekstroom,
v_lekstroom_resultaat,
v_aanrk_lekstroom,
v_aanrk_lekstroom_resultaat,
v_verv_lekstroom,
v_verv_lekstroom_resultaat,
v_isolatie,
v_isolatie_resultaat,
v_bedrading,
v_bedrading_resultaat,
v_gebruikertest,
v_gebruikers_resultaat,
v_volgende_testdatum_str,
v_laatste_vis_test_str,
v_laatste_vis_resultaat);
/* INSERT INTO WDKA_IMP_SMARTWARE(smartwareid,
test_datum,
test_resultaat,
aarde_waarde,
aarde_resultaat,
lekstroom_waarde,
lekstroom_resultaat,
aanrk_lekstrm_waarde,
aanrk_lekstrm_resultaat,
verv_lekstrm_waarde,
verv_lekstrm_resultaat,
isolatie_waarde,
isolatie_resultaat,
volgende_test)
VALUES(v_smartwareID,
v_laatste_datum,
v_laatste_resultaat,
v_aarde,
v_aarde_resultaat,
v_lekstroom,
v_lekstroom_resultaat,
v_aanrk_lekstroom,
v_aanrk_lekstroom_resultaat,
v_verv_lekstroom,
v_verv_lekstroom_resultaat,
v_isolatie,
v_isolatie_resultaat,
v_volgende_testdatum); */
END IF;
END;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| 'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
SUBSTR (v_aanduiding || v_errormsg, 1, 1000),
'Inleesproces PAT Data gaat fout!');
END;
/
CREATE OR REPLACE PROCEDURE WDKA_UPDATE_PAT_DATA(p_import_key IN NUMBER)
AS
CURSOR cs IS
SELECT FAC_IMP_CSV_COL01 smartwareID,
FAC_IMP_CSV_COL02 v_laatste_datum_str,
FAC_IMP_CSV_COL03 test_resultaat,
FAC_IMP_CSV_COL04 aarde_waarde,
FAC_IMP_CSV_COL05 aarde_resultaat,
FAC_IMP_CSV_COL06 lekstroom_waarde,
FAC_IMP_CSV_COL07 lekstroom_resultaat,
FAC_IMP_CSV_COL08 aanrk_lekstrm_waarde,
FAC_IMP_CSV_COL09 aanrk_lekstrm_resultaat,
FAC_IMP_CSV_COL10 verv_lekstrm_waarde,
FAC_IMP_CSV_COL11 verv_lekstrm_resultaat,
FAC_IMP_CSV_COL12 isolatie_waarde,
FAC_IMP_CSV_COL13 isolatie_resultaat,
FAC_IMP_CSV_COL14 bedrading,
FAC_IMP_CSV_COL15 bedrading_resultaat,
FAC_IMP_CSV_COL16 gebruikertest,
FAC_IMP_CSV_COL17 gebruikers_resultaat,
FAC_IMP_CSV_COL18 v_volgende_testdatum_str,
FAC_IMP_CSV_COL19 laatste_vis_test_str,
FAC_IMP_CSV_COL20 laatste_vis_resultaat
FROM fac_imp_csv
ORDER BY FAC_IMP_CSV_INDEX;
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_ins_key NUMBER;
v_ins_discipline_key NUMBER;
v_aanduiding VARCHAR2 (1000) := '';
v_ins_srtcontrole_key NUMBER;
v_deelsrtcontrole_key NUMBER;
v_ins_deelsrtcontrole_key NUMBER;
v_ins_kenmerk_key NUMBER;
v_count NUMBER :=0;
v_ins_count NUMBER :=0;
v_lastdate DATE;
v_newdate DATE;
v_time DATE;
v_perslid_key NUMBER;
v_test_datum DATE;
v_volgende_testdatum DATE;
v_laatste_vis_test DATE;
v_controlemode_key NUMBER;
v_insdeelstr_status NUMBER;
BEGIN
-- open cursor haal alle regels op unique per smsartwareID en max(datum) (laatste alleen zichtbaar)
-- haal object op babsi van smartware code
-- maak een ins_deelsrtcontrole regele aan met ins_deel_key, strt_controle (bv smartware) en de controle_mode (bv uitgevoerd)
-- maar per waarde een ins_kmdeelsrtcontrl aan met ins_deelsrtcontrole_key, ins_kenmerk_key, waarde.
-- al;s er een fout uis set de notificatie dat er een foute waarde inzat, en waqtbde fout was,
-- update de kenmerk wanneer de laatste import van dit object is (SYSDATE)
-- DBMS_OUTPUT.put_line ('Starting update');
v_aanduiding := 'Geen acties voor SMARTWARE IMPORT';
--v_srtcontrole:=10;
v_ins_kenmerk_key := -1;
v_ins_key:=0;
v_lastdate := NULL;
v_newdate := NULL;
v_controlemode_key := 10;
v_insdeelstr_status:=6;
SELECT prs_perslid_key INTO v_perslid_key from fac_import where fac_import_key=p_import_key;
v_count:=1;
FOR rec in cs
LOOP
v_count:=v_count+1;
v_ins_key:=0;
v_ins_count :=0;
v_newdate := NULL;
IF rec.v_laatste_datum_str IS NOT NULL AND LENGTH(rec.v_laatste_datum_str)>0
THEN
v_test_datum := fac.safe_to_date (rec.v_laatste_datum_str,'DD-MM-YYYY');
ELSIF rec.laatste_vis_test_str IS NOT NULL AND LENGTH(rec.laatste_vis_test_str)>0
THEN
v_test_datum := fac.safe_to_date (rec.laatste_vis_test_str,'DD-MM-YYYY');
ELSE
v_test_datum := TO_DATE(SYSDATE,'DD-MM-YYYY');
END IF;
-- v_volgende_testdatum := fac.safe_to_date (rec.v_volgende_testdatum_str,'DD-MM-YYYY');
v_ins_key:=-1;
v_ins_discipline_key:=-1;
BEGIN
SELECT ins_deel_key, ins_discipline_key
INTO v_ins_key, v_ins_discipline_key
FROM ins_v_deel_gegevens
WHERE ins_deel_omschrijving=rec.smartwareid;
IF v_ins_key IS NULL OR LENGTH(v_ins_key)=0
THEN
v_ins_key:=-1;
v_ins_discipline_key:=-1;
END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_ins_key:=-1;
v_ins_discipline_key:=-1;
END;
IF v_ins_key >0
THEN
v_ins_deelsrtcontrole_key:=0;
v_ins_srtcontrole_key:=0;
BEGIN
v_aanduiding := 'Ophalen ins_srtcontrole_key ('||v_count||')';
SELECT isc.INS_SRTCONTROLE_KEY
INTO v_ins_srtcontrole_key
FROM ins_deel id, ins_srtdeel isd, ins_srtcontrole isc
WHERe id.INS_DEEL_KEY=v_ins_key
AND isd.INS_SRTDEEL_KEY = id.INS_SRTDEEL_KEY
AND isc.INS_SRTINSTALLATIE_KEY=isd.ins_srtdeel_key
AND isc.ins_srtcontrole_omschrijving='11A - NEN3140';
--
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_ins_srtcontrole_key:=-1;
v_ins_deelsrtcontrole_key:=-1;
fac.imp_writelog (p_import_key,
'W',
'Er is geen 11A - NEN3140 Taak voor object met Smartware ID : '||rec.smartwareid ||' gevonden.',
'Smartware data niet verwerkt!');
END;
v_aanduiding := 'Ophalen deelsrtcontrole_key, ins_srtcontrole_key ('||v_count||')';
BEGIN
SELECT idc.ins_deelsrtcontrole_key, idc.ins_srtcontrole_key
INTO v_ins_deelsrtcontrole_key, v_ins_srtcontrole_key
FROM ins_deelsrtcontrole idc, ins_srtcontrole isc
WHERE idc.ins_deel_key=v_ins_key
AND isc.ins_srtcontrole_key = idc.ins_srtcontrole_key
AND isc.ins_srtcontrole_omschrijving='11A - NEN3140'
AND idc.ins_deelsrtcontrole_status IN (0,2); -- 0;Ingepland 2;Gestart/In behandeling dus niet 5;Afgemeld/Gereed gemeld; 6;Afgerond)
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_deelsrtcontrole_key:=-1;
END;
-- v_count:=0;
IF v_ins_deelsrtcontrole_key=-1 AND v_ins_srtcontrole_key != -1 THEN
v_aanduiding := 'Aanmaken ins_deelcontrole gaat fout ('||v_count||') voor object '||rec.smartwareid;
BEGIN
INSERT INTO ins_deelsrtcontrole(
ins_deel_key,
ins_srtcontrole_key,
ins_scenario_key,
ins_deelsrtcontrole_datum_org
)
VALUES (v_ins_key,
v_ins_srtcontrole_key,
1,
v_test_datum
)
RETURNING ins_deelsrtcontrole_key
INTO v_ins_deelsrtcontrole_key;
EXCEPTION
WHEN OTHERS
THEN
-- deze meting hebben we al ingelezen
v_ins_deelsrtcontrole_key:=-1;
END;
END IF;
IF v_ins_deelsrtcontrole_key>0 THEN
v_aanduiding := 'Update deelsrtcontrole ('||v_count||')';
BEGIN
-- Is de test succesvol of niet
IF UPPER(rec.test_resultaat)='GOED' OR UPPER(rec.laatste_vis_resultaat)='GOED' THEN
SELECT ins_controlemode_key
INTO v_controlemode_key
FROM ins_controlemode
WHERE UPPER(ins_controlemode_oms)='GOEDGEKEURD';
v_insdeelstr_status := 6;
ELSE
SELECT ins_controlemode_key
INTO v_controlemode_key
FROM ins_controlemode
WHERE UPPER(ins_controlemode_oms)='AFGEKEURD';
v_insdeelstr_status:=5;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_controlemode_key:=10; -- Uitgevoerd
END;
UPDATE ins_deelsrtcontrole
SET ins_deelsrtcontrole_status=v_insdeelstr_status,
ins_deelsrtcontrole_datum=v_test_datum,
ins_controlemode_key=v_controlemode_key,
ins_deelsrtcontrole_datum_org=v_test_datum,
ins_deelsrtcontrole_freezecost=0,
prs_perslid_key=v_perslid_key -- persoon die de import heeft gestart.
WHERE ins_deelsrtcontrole_key=v_ins_deelsrtcontrole_key;
v_aanduiding := 'Verwerken resultaten ('||v_count||')';
IF LENGTH(rec.aarde_waarde) > 0
THEN
v_aanduiding := 'Verwerken resultaten 1('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Aarde (Ohm)', rec.aarde_waarde);
--flx.setflex('INS',141,v_ins_key,rec.aarde_waarde);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Aarde (Ohm)';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_aanduiding := 'Kenmerk key Aarde niet gevonden('||v_count||')'||'-'||v_ins_srtcontrole_key;
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
v_aanduiding := 'Fout bij verwerken resultaten 1('||v_count||')-'||v_ins_key;
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.aarde_waarde, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.aarde_resultaat) > 0
THEN
v_aanduiding := 'Verwerken resultaten 2('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Aarde Resultaat', rec.aarde_resultaat);
--flx.setflex('INS',142,v_ins_key,rec.aarde_resultaat);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Aarde Resultaat';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.aarde_resultaat, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.lekstroom_waarde) > 0
THEN
v_aanduiding := 'Verwerken resultaten 3('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Lekstroom (mA)', rec.lekstroom_waarde);
--flx.setflex('INS',143,v_ins_key,rec.lekstroom_waarde);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Lekstroom (mA)';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.lekstroom_waarde, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.lekstroom_resultaat) > 0
THEN
v_aanduiding := 'Verwerken resultaten 4('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Lekstroom resultaat', rec.lekstroom_resultaat);
--flx.setflex('INS',144,v_ins_key,rec.lekstroom_resultaat);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Lekstroom resultaat';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.lekstroom_resultaat, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.aanrk_lekstrm_waarde) > 0
THEN
v_aanduiding := 'Verwerken resultaten 5('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Aanraak lekstroom (mA)', rec.aanrk_lekstrm_waarde);
--flx.setflex('INS',145,v_ins_key,rec.aanrk_lekstrm_waarde);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Aanraak lekstroom (mA)';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.aanrk_lekstrm_waarde, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.aanrk_lekstrm_resultaat) > 0
THEN
v_aanduiding := 'Verwerken resultaten 6('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Aanraak lekstroom resultaat', rec.aanrk_lekstrm_resultaat);
--lx.setflex('INS',146,v_ins_key,rec.aanrk_lekstrm_resultaat);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Aanraak lekstroom resultaat';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.aanrk_lekstrm_resultaat, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.verv_lekstrm_waarde) > 0
THEN
v_aanduiding := 'Verwerken resultaten 7('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Vervangende lekstroom (mA)', rec.verv_lekstrm_waarde);
--flx.setflex('INS',147,v_ins_key,rec.verv_lekstrm_waarde);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Vervangende lekstroom (mA)';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.verv_lekstrm_waarde, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.verv_lekstrm_resultaat) > 0
THEN
v_aanduiding := 'Verwerken resultaten 8('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Vervangende lekstroom resultaat', rec.verv_lekstrm_resultaat);
--flx.setflex('INS',148,v_ins_key,rec.verv_lekstrm_resultaat);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Vervangende lekstroom resultaat';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.verv_lekstrm_resultaat, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.isolatie_waarde) > 0
THEN
v_aanduiding := 'Verwerken resultaten 9('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Isolatie (MOhm)', rec.isolatie_waarde);
--flx.setflex('INS',149,v_ins_key,rec.isolatie_waarde);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Isolatie (MOhm)';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.isolatie_waarde, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.isolatie_resultaat) > 0
THEN
v_aanduiding := 'Verwerken resultaten 10('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Isolatie resultaat', rec.isolatie_resultaat);
--flx.setflex('INS',150,v_ins_key,rec.isolatie_resultaat);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Isolatie resultaat';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.isolatie_resultaat, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.bedrading) > 0
THEN
v_aanduiding := 'Verwerken resultaten 11('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Bedrading', rec.bedrading);
--flx.setflex('INS',150,v_ins_key,rec.bedrading);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Bedrading';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.bedrading, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.bedrading_resultaat) > 0
THEN
v_aanduiding := 'Verwerken resultaten 12('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Bedrading resultaat', rec.bedrading_resultaat);
--flx.setflex('INS',150,v_ins_key,rec.bedrading_resultaat);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Bedrading resultaat';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.bedrading_resultaat, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.gebruikertest) > 0
THEN
v_aanduiding := 'Verwerken resultaten 13('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Gebruikerstest', rec.gebruikertest);
--flx.setflex('INS',150,v_ins_key,rec.gebruikertest);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Gebruikerstest';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.gebruikertest, SYSDATE);
END IF;
END IF;
IF LENGTH(rec.gebruikers_resultaat) > 0
THEN
v_aanduiding := 'Verwerken resultaten 14('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Gebruikers resultaat', rec.gebruikers_resultaat);
--flx.setflex('INS',150,v_ins_key,rec.gebruikers_resultaat);
BEGIN
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key FROM ins_kenmerk where ins_srtinstallatie_key=v_ins_srtcontrole_key AND ins_kenmerk_niveau='C' AND ins_kenmerk_omschrijving='Gebruikers resultaat';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_ins_kenmerk_key:=-1;
END;
IF v_ins_kenmerk_key>0 THEN
INSERT into ins_kmdeelsrtcontr(ins_deelsrtcontrole_key, ins_kenmerk_key, ins_kmdeelsrtcontr_waarde, ins_kmdeelsrtcontr_aanmaak)
VALUES(v_ins_deelsrtcontrole_key, v_ins_kenmerk_key, rec.gebruikers_resultaat, SYSDATE);
END IF;
END IF;
v_aanduiding := 'Verwerken resultaten test datum en resultaat('||v_count||')-'||v_ins_key;
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Laatste test', TO_CHAR(v_test_datum,'DD-MM-YYYY'));
wdka.setKenmerkObject(v_ins_key, v_ins_discipline_key, 'Laatste resultaat', rec.test_resultaat);
-- flx.setflex('INS', 152, v_ins_key, TO_CHAR(v_test_datum,'DD-MM-YYYY'));
-- flx.setflex('INS', 153, v_ins_key, rec.test_resultaat);
fac.trackaction ('INSUPD', v_ins_key, v_perslid_key, SYSDATE,
'Object geupdate met PAT data.');
ELSE
fac.imp_writelog (p_import_key,
'W',
'Taak voor object met Smartware ID : '||rec.smartwareid ||' is niet gevonden of reeds eerder ingelezen.',
'Smartware data niet verwerkt!');
END IF;
ELSE
fac.imp_writelog (p_import_key,
'W',
'Object met Smartware ID : '||rec.smartwareid ||' is niet bekend in Facilitor.',
'Object niet gevonden!');
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| 'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
SUBSTR (v_aanduiding || v_errormsg, 1, 1000),
'Inleesproces opdrachtstatusberichten afgebroken!');
END;
/
CREATE OR REPLACE PROCEDURE WDKA_IMPORT_SMARTWARE_NOTES(p_import_key IN NUMBER)
AS
CURSOR c
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000);
v_errormsg VARCHAR2 (200);
v_errorhint VARCHAR2 (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_ins_deel_omschrijving VARCHAR2(100);
v_ins_deel_opmerking VARCHAR2(100);
v_notes1 VARCHAR2(4000);
v_notes2 VARCHAR2(4000);
v_count NUMBER;
BEGIN
v_count := 1;
FOR rec IN c
LOOP
BEGIN
v_newline := rec.fac_imp_file_line;
IF v_count > 1
THEN
v_count:=v_count+1;
v_errormsg := 'Fout FETCH te importeren rij '||v_count;
v_aanduiding := '';
-- Lees alle veldwaarden
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_ins_deel_omschrijving);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_ins_deel_opmerking);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_notes1);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_notes2);
INSERT INTO fac_imp_csv(fac_import_key,
fac_imp_csv_index,
fac_imp_csv_col01,
fac_imp_csv_col02,
fac_imp_csv_col03,
fac_imp_csv_col04)
VALUES(p_import_key,
v_count,
v_ins_deel_omschrijving,
v_ins_deel_opmerking,
REPLACE(v_notes1,'@',CHR(10)),
REPLACE(v_notes2,'@',CHR(10))
);
ELSE
v_count:=v_count+1;
END IF;
END;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| 'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
SUBSTR (v_aanduiding || v_errormsg, 1, 1000),
'Inleesproces notes gaat fout!');
END;
/
-- END WDKA_IMPORT_SMARTWARE_NOTES
CREATE OR REPLACE PROCEDURE WDKA_UPDATE_SMARTWARE_NOTES(p_import_key IN NUMBER)
AS
CURSOR sel
IS
SELECT *
FROM fac_imp_csv
WHERE fac_import_key = p_import_key;
v_newline VARCHAR2 (4000);
v_errormsg VARCHAR2 (200);
v_errorhint VARCHAR2 (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_ins_deel_omschrijving VARCHAR2(100);
v_ins_deel_key NUMBER;
BEGIN
FOR rec IN sel
LOOP
BEGIN
v_aanduiding:='Object '||rec.fac_imp_csv_col01||' niet gevonden';
v_errormsg:='Object niet gevonden';
SELECT ins_deel_key INTO v_ins_deel_key FROM ins_deel WHERE ins_deel_omschrijving = rec.fac_imp_csv_col01;
IF (LENGTH(rec.fac_imp_csv_col03)>1)
THEN
INSERT INTO ins_deel_note(ins_deel_key,
ins_deel_note_aanmaak,
ins_deel_note_omschrijving,
prs_perslid_key)
VALUES(v_ins_deel_key,
SYSDATE,
rec.fac_imp_csv_col03,
3);
END IF;
IF (LENGTH(rec.fac_imp_csv_col04)>1)
THEN
INSERT INTO ins_deel_note(ins_deel_key,
ins_deel_note_aanmaak,
ins_deel_note_omschrijving,
prs_perslid_key)
VALUES(v_ins_deel_key,
SYSDATE,
rec.fac_imp_csv_col04,
3);
END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
fac.imp_writelog (p_import_key,
'E',
SUBSTR (v_aanduiding || v_errormsg, 1, 1000),
'Object '||rec.fac_imp_csv_col01||' niet gevonden.');
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| 'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
SUBSTR (v_aanduiding || v_errormsg, 1, 1000),
'Updateesproces notes gaat fout!');
END;
/
-- END WDKA_UPDATE_SMARTWARE_NOTES
-- kenmkerdomein-view tbv. Aanvraag Objectensoort!
CREATE OR REPLACE VIEW WDKA_V_INS_SRT
(
FAC_USRDATA_KEY,
FAC_USRDATA_OMSCHR
)
AS
SELECT isd.ins_srtdeel_key, ig.ins_srtgroep_omschrijving||'>'||isd.ins_srtdeel_omschrijving
FROM ins_srtdeel isd, ins_srtgroep ig
WHERE ig.ins_srtgroep_key=isd.ins_srtgroep_key
ORDER BY ig.ins_srtgroep_omschrijving, isd.ins_srtdeel_omschrijving;
CREATE OR REPLACE VIEW WDKA_V_INS_LEVERANCIER
(
fac_usrdata_key,
omschrijving,
vervaldatum
)
AS
SELECT prs_bedrijf_key,prs_bedrijf_naam,NULL
FROM prs_bedrijf
WHERE prs_bedrijf_leverancier=1 AND prs_bedrijf_verwijder IS NULL;
CREATE OR REPLACE VIEW WDKA_V_UITVOERENDELEV
(
fac_usrdata_key,
omschrijving,
vervaldatum
)
AS
SELECT prs_bedrijf_key, prs_bedrijf_naam, NULL
FROM prs_bedrijf
WHERE prs_bedrijf_uitvoerende = 1 AND prs_bedrijf_verwijder IS NULL;
CREATE OR REPLACE VIEW wdka_v_tasks_nextmonth
AS
select id.ins_deel_omschrijving, id.ins_deel_opmerking, al.ALG_LOCATIE_CODE, algv.ALG_GEBOUW_CODE,algv.ALG_RUIMTE_NR,
CASE
WHEN aa.alg_ruimte_omschrijving LIKE '%@wedeka.nl'
THEN aa.alg_ruimte_omschrijving
ELSE (SELECT prs_perslid_email
FROM prs_perslid
WHERE prs_perslid_key=id.prs_perslid_key_beh)
END email,
i.ins_srtcontrole_omschrijving taak,
fac.nextcyclusdatedeel(id.ins_deel_key,i.ins_srtcontrole_key,0) nextdate
FROM ins_srtcontrole i, ins_deel id, alg_ruimte aa, alg_v_onroerendgoed_gegevens algv, alg_locatie al
WHERE (id.ins_deel_vervaldatum<fac.NEXTCYCLUSDATEDEEL(id.ins_deel_key,i.ins_srtcontrole_key,0) OR id.ins_deel_vervaldatum IS NULL)
AND i.ins_srtinstallatie_key = id.ins_srtdeel_key
AND fac.nextcyclusdatedeel(id.ins_deel_key,i.ins_srtcontrole_key,0) BETWEEN TRUNC(SYSDATE) AND SYSDATE+30
AND algv.alg_ruimte_key = aa.alg_ruimte_key
AND al.alg_locatie_key = algv.alg_locatie_key
AND id.ins_alg_ruimte_key=aa.alg_ruimte_key(+) order by email;
CREATE OR REPLACE VIEW wdka_v_alg_locaties
(
fac_usrdata_key,
fac_usrdata_omschr
)
AS
SELECT alg_locatie_key, alg_locatie_omschrijving||'('||alg_locatie_code||')'
FROM alg_locatie
WHERE alg_locatie_verwijder IS NULL;
CREATE OR REPLACE VIEW wdka_v_alg_gebouw
(
fac_usrdata_key,
fac_usrdata_omschr
)
AS
SELECT alg_gebouw_key, alg_gebouw_omschrijving
FROM alg_v_aanweziggebouw;
CREATE OR REPLACE VIEW WDKA_V_InactieveObjecten
(
fac_usrdata_key,
fac_usrdata_omschr
)
AS
SELECT i.ins_deel_key,
i.ins_deel_omschrijving||' - '||COALESCE(i.ins_deel_opmerking||' ','')||'('|| isd.ins_srtdeel_omschrijving||')'
FROM ins_deel i, ins_srtdeel isd
WHERE i.ins_srtdeel_key = isd.ins_srtdeel_key
AND i.ins_deel_actief=0
AND ins_deel_verwijder IS NULL;
CREATE OR REPLACE VIEW wdka_v_objectmutatie
AS
SELECT i.ins_deel_omschrijving,
i.ins_deel_opmerking,
i.ins_deel_aanmaak,
(SELECT ft.fac_tracking_datum
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey=i.ins_deel_key
AND ft.fac_srtnotificatie_key=133) wijzigingsdatum,
(SELECT iag.ins_srtgroep_omschrijving
FROM ins_v_aanwezigsrtgroep iag, ins_v_aanwezigsrtdeel iad
WHERE iad.ins_srtdeel_key=i.ins_srtdeel_key
AND iag.ins_srtgroep_key=iad.ins_srtgroep_key) groep,
(SELECT iad.ins_srtdeel_omschrijving
FROM ins_v_aanwezigsrtdeel iad
WHERE iad.ins_srtdeel_key=i.ins_srtdeel_key) objectsoort,
(SELECT p.prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames p
WHERE p.prs_perslid_key=i.prs_perslid_key_beh) beheerder,
(SELECT alg.alg_locatie_omschrijving||'('||alg.alg_locatie_code||')'
FROM alg_v_locatie_gegevens alg
WHERE alg.alg_locatie_key=aag.alg_locatie_key) locatie,
aag.alg_gebouw_naam,
aag.alg_ruimte_nr
FROM ins_deel i, alg_v_allonrgoed_gegevens aag
WHERE aag.alg_ruimte_key=i.ins_alg_ruimte_key
CREATE OR REPLACE VIEW wdka_v_object_taaklijst
AS
SELECT i.ins_deel_key,
i.ins_deel_omschrijving wedeka_nr,
i.ins_deel_opmerking beschrijving,
(SELECT isg.ins_srtgroep_omschrijving
FROM ins_srtgroep isg
WHERE isg.ins_srtgroep_key=isd.ins_srtgroep_key) groep,
isd.ins_srtdeel_omschrijving ,
isc.ins_srtcontrole_omschrijving taak ,
itd.ins_discipline_omschrijving taak_groep,
ids.ins_deelsrtcontrole_datum,
DECODE(ids.ins_deelsrtcontrole_status,0,'Ingepland', 2,'Gestart/In behandeling',5,'Afgemeld/Gereed gemeld',6,'Afgerond') taak_status,
(SELECT ic.ins_controlemode_oms
FROM ins_controlemode ic
WHERE ic.ins_controlemode_key=ids.ins_controlemode_key) keurings_status,
INS.NEXTCYCLUSDATE(i.ins_deel_key, ids.ins_srtcontrole_key,1) volgende_datum,
a.alg_ruimte_omschrijving,
ab.alg_gebouw_code||' '||ab.alg_gebouw_naam gebouw,
ab.alg_gebouw_code gebouw_code,
ab.alg_gebouw_naam gebouw_naam,
p.prs_perslid_email,
p.prs_perslid_key perslid_key
FROM ins_deel i,
ins_srtdeel isd,
ins_tab_discipline itd,
ins_srtcontrole isc,
ins_deelsrtcontrole ids ,
alg_v_allonrgoed_gegevens ab,
alg_v_aanwezigruimte a ,
prs_perslid p
WHERE i.ins_deel_verwijder IS NULL
AND i.ins_deel_actief=1
AND ids.ins_deel_key = i.ins_deel_key
AND a.alg_ruimte_key = i.ins_alg_ruimte_key
AND ab.alg_ruimte_key= a.alg_ruimte_key
AND isd.ins_srtdeel_key=i.ins_srtdeel_key
AND isc.ins_srtcontrole_key=ids.ins_srtcontrole_key
AND isc.ctr_discipline_key = itd.ins_discipline_key
AND a.alg_ruimte_omschrijving=p.prs_perslid_email(+);
CREATE OR REPLACE VIEW wdka_V_loc_man_meldingen
(
melding_key,
datum_melding,
datum_accept,
datum_afmeld,
mld_onderwerp,
mld_omschrijving,
mld_status,
object_key,
object_nr,
object_omschrijving,
aanvrager,
accpetant,
behandelaar
)
AS
SELECT m.mld_melding_key melding_key,
m.mld_melding_datum datum_melding,
(SELECT MAX(f.fac_tracking_datum)
FROM fac_tracking f
WHERE f.fac_tracking_refkey=m.mld_melding_key
AND f.fac_srtnotificatie_key=46) datum_accept,
(SELECT MAX(f.fac_tracking_datum)
FROM fac_tracking f
WHERE f.fac_tracking_refkey=m.mld_melding_key
AND f.fac_srtnotificatie_key=47) datum_afmeld,
m.mld_melding_onderwerp onderwerp,
m.mld_melding_omschrijving omschrijving,
sta.mld_statuses_omschrijving status,
ins.ins_deel_key object_key,
ins.ins_deel_omschrijving object,
ins.INS_DEEL_OPMERKING object_omschrijving,
pf2.prs_perslid_naam_friendly aanvrager,
(SELECT p.prs_perslid_naam_friendly
FROM fac_tracking f, prs_v_perslid_fullnames p
WHERE f.fac_tracking_refkey=m.mld_melding_key
AND f.fac_srtnotificatie_key=46
AND p.prs_perslid_key=f.prs_perslid_key) acceptant,
(SELECT p.prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames p
WHERE p.prs_perslid_key = m.mld_melding_behandelaar_key) behandelaar
FROM mld_melding m,
mld_stdmelding ms,
mld_v_aanwezigdiscipline mad,
mld_statuses sta,
prs_v_perslid_fullnames pf2,
ins_deel ins,
mld_melding_object mo
WHERE m.mld_stdmelding_key = ms.mld_stdmelding_key
AND ms.mld_ins_discipline_key = mad.ins_discipline_key
AND UPPER(mad.ins_discipline_omschrijving)='AANVRAAG TBV LOCATIE MANAGER'
AND sta.mld_statuses_key= m.mld_melding_status
AND pf2.prs_perslid_key = m.prs_perslid_key
AND mo.mld_melding_key = m.mld_melding_key
AND ins.ins_deel_key = mo.ins_deel_key;
CREATE OR REPLACE VIEW WDKA_V_TAAKFORMULIEREN
(
ins_srtcontrole_key,
taak_omschrijving,
objectsoort_code,
objectsoort,
formuliernaam
)
AS
SELECT isc.ins_srtcontrole_key,
isc.ins_srtcontrole_omschrijving,
isd.ins_srtdeel_code,
isd.ins_srtdeel_omschrijving,
ik.ins_kenmerk_omschrijving
FROM ins_srtcontrole isc,
ins_srtdeel isd,
ins_kenmerk ik,
ins_srtkenmerk isk
WHERE isc.ctr_discipline_key = 84
AND isd.ins_srtdeel_key = isc.ins_srtinstallatie_key
AND ik.ins_srtinstallatie_key = isc.ins_srtcontrole_key
AND UPPER(isk.ins_srtkenmerk_omschrijving) = 'BLOKTITEL'
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key;
-- notificatie jobs
CREATE OR REPLACE VIEW wdka_v_noti_taak_afgerond
(
CODE,
SENDER,
RECEIVER,
XEMAIL,
TEXT,
KEY,
XKEY,
XMOBILE
)
AS
SELECT 'CUST03' code,
NULL sender,
NULL receiver,
RTRIM(LTRIM(NVL(
(CASE
WHEN ar2.alg_ruimte_omschrijving LIKE '%@%'
THEN ar2.alg_ruimte_omschrijving
ELSE NULL
END ||
CASE
WHEN ag.prs_perslid_key_verantw IS NOT NULL
THEN (SELECT ';'||prs_perslid_email
FROM prs_perslid
WHERE prs_perslid_key = ag.prs_perslid_key_verantw)
ELSE NULL
END ||
CASE
WHEN ag.PRS_PERSLID_KEY_VERANTW2 IS NOT NULL
THEN (SELECT ';'||prs_perslid_email
FROM prs_perslid
WHERE prs_perslid_key = ag.prs_perslid_key_verantw2)
ELSE NULL
END),p.prs_perslid_email),';'),';') xemail,
'Uw apparaat ('|| i.ins_deel_omschrijving||') ligt gereed na keuring.' text,
i.ins_deel_key key,
NULL xkey,
NULL xmobile
FROM ins_deelsrtcontrole ids,
ins_srtcontrole isc,
ins_deel i,
prs_perslid p,
alg_v_allonrgoed_gegevens ar1,
alg_ruimte ar2,
alg_v_aanweziggebouw ag
WHERE ids.ins_deelsrtcontrole_datum BETWEEN SYSDATE-1 AND SYSDATE
AND ids.ins_deelsrtcontrole_status=6
AND ids.ins_srtcontrole_key = isc.ins_srtcontrole_key
AND UPPER(isc.ins_srtcontrole_omschrijving) = '63A - ONDERHOUD TD GI'
AND i.ins_deel_key=ids.ins_deel_key
AND ar1.alg_ruimte_key=i.ins_alg_ruimte_key
AND ar2.alg_ruimte_key=i.ins_alg_ruimte_key
AND ag.alg_gebouw_key= ar1.alg_gebouw_key
AND p.prs_perslid_key=i.prs_perslid_key_beh;
------ 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