WDKA#82091 -- TD-keuringchecklisten digitaal in Facilitor
svn path=/Customer/trunk/; revision=63583
This commit is contained in:
353
WDKA/WDKA.sql
353
WDKA/WDKA.sql
@@ -664,6 +664,336 @@ BEGIN
|
||||
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
|
||||
@@ -2987,6 +3317,29 @@ AS
|
||||
AND ins.ins_deel_key = mo.ins_deel_key;
|
||||
|
||||
|
||||
CREATE OR REPLACE VIEW WDKA_V_TAAKFORMULIEREN
|
||||
(
|
||||
ins_srtcontrole_key,
|
||||
taak_omschrijving,
|
||||
objectsoort_code,
|
||||
objectsoort,
|
||||
formuliernaam
|
||||
)
|
||||
AS
|
||||
SELECT isc.ins_srtcontrole_key,
|
||||
isc.ins_srtcontrole_omschrijving,
|
||||
isd.ins_srtdeel_code,
|
||||
isd.ins_srtdeel_omschrijving,
|
||||
ik.ins_kenmerk_omschrijving
|
||||
FROM ins_srtcontrole isc,
|
||||
ins_srtdeel isd,
|
||||
ins_kenmerk ik,
|
||||
ins_srtkenmerk isk
|
||||
WHERE isc.ctr_discipline_key = 84
|
||||
AND isd.ins_srtdeel_key = isc.ins_srtinstallatie_key
|
||||
AND ik.ins_srtinstallatie_key = isc.ins_srtcontrole_key
|
||||
AND UPPER(isk.ins_srtkenmerk_omschrijving) = 'BLOKTITEL'
|
||||
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key;
|
||||
|
||||
-- notificatie jobs
|
||||
|
||||
|
||||
Reference in New Issue
Block a user