-- -- $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; -- 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_level NUMBER:=0; 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 alg_ruimte_key INTO v_alg_ruimte_key FROM ALG_V_ALLONRGOED_GEGEVENS WHERE alg_ruimte_nr='999999' AND alg_gebouw_key=(SELECT 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 €'; EXCEPTION WHEN NO_DATA_FOUND THEN v_aanschafprijs:=NULL; v_aanschafprijs_key:=-1; 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_aanmaak, ins_srtdeel_key, ins_deel_actief, ins_alg_ruimte_key, ins_alg_ruimte_type) VALUES(v_objectNr, 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; 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; -- 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_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), 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 DELETE FROM fac_imp_csv; fac_import_genericcsv(p_import_key); 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; DELETE FROM FAC_IMP_CSV; COMMIT; 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; DELETE FROM fac_imp_csv; 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