ASDL#52274 Import glasmeldingen

svn path=/Customer/trunk/; revision=38139
This commit is contained in:
Sander Schepers
2018-06-11 08:44:47 +00:00
parent c185898b16
commit 0c8be288a6

View File

@@ -1,4 +1,4 @@
-- Script containing customer specific configuration sql statements for Asito Digitaal Logboek F-- Script containing customer specific configuration sql statements for Asito Digitaal Logboek
-- $Revision$ -- $Revision$
-- $Id$ -- $Id$
@@ -2322,7 +2322,7 @@ BEGIN
END; END;
END LOOP; END LOOP;
asdl_export_glasbon_melding; BEGIN ASDL_EXPORT_GLASBON_MELDING('GLASBON_MELDING',SYSDATE,'-1',''); END;
END; END;
/ /
@@ -2513,7 +2513,7 @@ AS
CREATE OR REPLACE PROCEDURE ASDL_IMPORT_GLASBON (p_import_key IN NUMBER) CREATE OR REPLACE PROCEDURE ASDL_IMPORT_GLASBON (p_import_key IN NUMBER)
IS IS
c_fielddelimitor VARCHAR2 (1) := ';'; c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); v_newline VARCHAR2 (1000);
v_header VARCHAR2 (1000); v_header VARCHAR2 (1000);
v_aanduiding VARCHAR2 (200); v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000); v_errorhint VARCHAR2 (1000);
@@ -2529,8 +2529,9 @@ IS
v_count_alglocatie NUMBER :=1; v_count_alglocatie NUMBER :=1;
v_count_weeknr NUMBER :=1; v_count_weeknr NUMBER :=1;
v_count_stationsmanager NUMBER :=1; v_count_stationsmanager NUMBER :=1;
v_count_uitvoerder NUMBER :=1;
-- De importvelden: -- De importvelden:
v_fac_import_key VARCHAR (256); v_fac_import_key VARCHAR (256);
v_fac_import_index VARCHAR (256); v_fac_import_index VARCHAR (256);
v_mld_stdmelding_key VARCHAR (256); v_mld_stdmelding_key VARCHAR (256);
v_mld_stdmelding_oms VARCHAR (256); v_mld_stdmelding_oms VARCHAR (256);
@@ -2541,11 +2542,12 @@ IS
v_uitvoerjaar VARCHAR (256); v_uitvoerjaar VARCHAR (256);
v_uitvoerweek VARCHAR (256); v_uitvoerweek VARCHAR (256);
v_uitvoerder VARCHAR (256); v_uitvoerder VARCHAR (256);
v_uitvoerdernaam VARCHAR(256);
v_serviceordernr VARCHAR (256); v_serviceordernr VARCHAR (256);
v_onderwerp VARCHAR (256); v_onderwerp VARCHAR (256);
v_omschrijving VARCHAR (256); v_omschrijving VARCHAR (256);
v_datum_melding VARCHAR (256); v_datum_melding VARCHAR (256);
v_meldingnr VARCHAR (256); v_meldingnr VARCHAR (256);
CURSOR c CURSOR c
IS IS
@@ -2553,12 +2555,12 @@ IS
FROM fac_imp_file FROM fac_imp_file
WHERE fac_import_key = p_import_key WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index; ORDER BY fac_imp_file_index;
CURSOR l CURSOR l
IS IS
SELECT * SELECT *
FROM alg_locatie; FROM alg_locatie;
BEGIN BEGIN
DELETE FROM asdl_imp_glas; DELETE FROM asdl_imp_glas;
COMMIT; COMMIT;
@@ -2566,7 +2568,7 @@ BEGIN
v_count_tot := 0; v_count_tot := 0;
v_count_import := 0; v_count_import := 0;
header_is_valid := 0; header_is_valid := 0;
FOR rec IN c FOR rec IN c
LOOP LOOP
BEGIN BEGIN
@@ -2577,7 +2579,7 @@ BEGIN
v_errorhint := 'Fout bij opvragen te importeren rij'; v_errorhint := 'Fout bij opvragen te importeren rij';
v_ongeldig := 0; v_ongeldig := 0;
v_count := 0; v_count := 0;
-- Lees alle veldwaarden -- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_fielddelimitor, v_mld_stdmelding_key); -- Soort melding key fac.imp_getfield (v_newline, c_fielddelimitor, v_mld_stdmelding_key); -- Soort melding key
fac.imp_getfield (v_newline, c_fielddelimitor, v_mld_stdmelding_oms); -- Soort melding omschrijving fac.imp_getfield (v_newline, c_fielddelimitor, v_mld_stdmelding_oms); -- Soort melding omschrijving
@@ -2588,6 +2590,7 @@ BEGIN
fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerjaar); -- Uitvoerjaar fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerjaar); -- Uitvoerjaar
fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerweek); -- Uitvoerweek fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerweek); -- Uitvoerweek
fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerder); -- Uitvoerder fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerder); -- Uitvoerder
fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerdernaam); -- Uitvoerdernaam
fac.imp_getfield (v_newline, c_fielddelimitor, v_serviceordernr); -- Nummer serviceorder fac.imp_getfield (v_newline, c_fielddelimitor, v_serviceordernr); -- Nummer serviceorder
fac.imp_getfield (v_newline, c_fielddelimitor, v_onderwerp); -- Onderwerp fac.imp_getfield (v_newline, c_fielddelimitor, v_onderwerp); -- Onderwerp
fac.imp_getfield (v_newline, c_fielddelimitor, v_omschrijving); -- Omschrijving fac.imp_getfield (v_newline, c_fielddelimitor, v_omschrijving); -- Omschrijving
@@ -2602,36 +2605,34 @@ BEGIN
|| '|' || '|'
|| v_uitvoerweek || v_uitvoerweek
|| '] '; || '] ';
v_count_tot := v_count_tot + 1; v_count_tot := v_count_tot + 1;
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen de juiste kolomkop. Ik controleer daarbij ALLE kolommen! -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd. -- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0) IF (header_is_valid = 0)
THEN THEN
IF IF
UPPER (v_mld_stdmelding_key) = 'MELDING' UPPER (v_mld_stdmelding_key) = 'MELDING'
AND UPPER (v_mld_stdmelding_oms) = 'MELDINGOMSCHRIJVING' AND UPPER (v_mld_stdmelding_oms) = 'MELDINGOMSCHRIJVING'
AND UPPER (v_alg_locatie_code) = 'LOCATIECODE' AND UPPER (v_alg_locatie_code) = 'LOCATIECODE'
AND UPPER (v_alg_locatie_oms) = 'LOCATIE' AND UPPER (v_alg_locatie_oms) = 'LOCATIE'
AND UPPER (v_stationsmanager_key) = 'SM-NR' AND UPPER (v_stationsmanager_key) = 'SMNR'
AND UPPER (v_stationsmanager) = 'STATIONSMANAGER' AND UPPER (v_stationsmanager) = 'STATIONSMANAGER'
AND UPPER (v_uitvoerjaar) = 'UITVOERJAAR' AND UPPER (v_uitvoerjaar) = 'UITVOERJAAR'
AND UPPER (v_uitvoerweek) = 'UITVOERWEEK' AND UPPER (v_uitvoerweek) = 'UITVOERWEEK'
AND UPPER (v_uitvoerder) = 'UITVOERDER' AND UPPER (v_uitvoerder) = 'UITVOERDER'
AND UPPER (v_serviceordernr) = 'NUMMER SERVICEORDER' --Lengte max 50 AND UPPER (v_uitvoerdernaam) = 'UITVOERDERNAAM'
AND UPPER (v_onderwerp) = 'ONDERWERP' --Lengte max 80 AND UPPER (v_serviceordernr) = 'SERVICEORDERNUMMER' --Lengte max 50
AND UPPER (v_onderwerp) = 'ONDERWERP' --Lengte max 80
AND UPPER (v_omschrijving) = 'OMSCHRIJVING' --Lengte max 4000 AND UPPER (v_omschrijving) = 'OMSCHRIJVING' --Lengte max 4000
THEN THEN
header_is_valid := 1; header_is_valid := 1;
END IF; END IF;
ELSE ELSE
--NOG TE MAKEN CONTROLES:
--uitvoerdatum (datum)
--Controle of de opgegeven stdmelding wel aanwezig is --Controle of de opgegeven stdmelding wel aanwezig is
SELECT COUNT ( * ) SELECT COUNT ( * )
INTO v_count_melding INTO v_count_melding
@@ -2647,11 +2648,11 @@ BEGIN
v_aanduiding || 'Meldingnummer bestaat niet', v_aanduiding || 'Meldingnummer bestaat niet',
'Melding wordt niet ingelezen!'); 'Melding wordt niet ingelezen!');
END IF; END IF;
--Controle of de opgegeven locatie (postcode) wel aanwezig is --Controle of de opgegeven locatie (postcode) wel aanwezig is
SELECT COUNT ( * ) SELECT COUNT ( * )
INTO v_count_alglocatie INTO v_count_alglocatie
FROM alg_locatie l FROM alg_locatie l
WHERE l.alg_locatie_postcode = v_alg_locatie_code; WHERE l.alg_locatie_postcode = v_alg_locatie_code;
IF v_count_alglocatie = 0 IF v_count_alglocatie = 0
@@ -2662,11 +2663,11 @@ BEGIN
v_aanduiding || 'Locatie (postcode) bestaat niet', v_aanduiding || 'Locatie (postcode) bestaat niet',
'Melding wordt niet ingelezen!'); 'Melding wordt niet ingelezen!');
END IF; END IF;
--Controle of de opgegeven stationsmanager wel aanwezig is --Controle of de opgegeven stationsmanager wel aanwezig is
SELECT COUNT ( * ) SELECT COUNT ( * )
INTO v_count_stationsmanager INTO v_count_stationsmanager
FROM asdl_v_list_locatiebeheerder lb FROM asdl_v_list_locatiebeheerder lb
WHERE lb.prs_perslid_key = v_stationsmanager_key WHERE lb.prs_perslid_key = v_stationsmanager_key
AND lb.prs_perslid_verwijder IS NULL; AND lb.prs_perslid_verwijder IS NULL;
@@ -2677,8 +2678,25 @@ BEGIN
'W', 'W',
v_aanduiding || 'Stationsmanager bestaat niet', v_aanduiding || 'Stationsmanager bestaat niet',
'Melding wordt niet ingelezen!'); 'Melding wordt niet ingelezen!');
END IF; END IF;
--Controle of de opgegeven uitvoerder wel aanwezig is
SELECT COUNT ( * )
INTO v_count_uitvoerder
FROM fac_usrdata uv
WHERE uv.fac_usrdata_key = v_uitvoerder
AND uv.fac_usrtab_key = 21
AND uv.fac_usrdata_verwijder IS NULL;
IF v_count_uitvoerder = 0
THEN v_ongeldig := 1;
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Uitvoerder bestaat niet',
'Melding wordt niet ingelezen!');
END IF;
IF LENGTH (v_serviceordernr) > 50 IF LENGTH (v_serviceordernr) > 50
THEN THEN
v_serviceordernr := SUBSTR (v_serviceordernr, 1, 50); v_serviceordernr := SUBSTR (v_serviceordernr, 1, 50);
@@ -2690,7 +2708,7 @@ BEGIN
|| v_serviceordernr || v_serviceordernr
|| ']'); || ']');
END IF; END IF;
IF LENGTH (v_onderwerp) > 80 IF LENGTH (v_onderwerp) > 80
THEN THEN
v_onderwerp := SUBSTR (v_onderwerp, 1, 80); v_onderwerp := SUBSTR (v_onderwerp, 1, 80);
@@ -2715,7 +2733,24 @@ BEGIN
|| ']'); || ']');
END IF; END IF;
IF v_uitvoerjaar <> TO_CHAR(SYSDATE, 'YYYY')
THEN v_ongeldig := 1;
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Melding niet in huidig jaar',
'Melding wordt niet ingelezen!');
END IF;
IF TO_NUMBER(v_uitvoerweek) <= TO_NUMBER(TO_CHAR(SYSDATE, 'WW'))
THEN v_ongeldig := 1;
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Melding in deze of voorgaande week',
'Melding wordt niet ingelezen!');
END IF;
-- Insert geformatteerde import record -- Insert geformatteerde import record
IF header_is_valid = 1 IF header_is_valid = 1
AND v_ongeldig = 0 AND v_ongeldig = 0
@@ -2784,7 +2819,7 @@ BEGIN
END IF; END IF;
END IF; END IF;
END; END;
END LOOP; END LOOP;
IF (header_is_valid = 0) IF (header_is_valid = 0)
THEN THEN
@@ -2829,6 +2864,7 @@ EXCEPTION
END ASDL_IMPORT_GLASBON; END ASDL_IMPORT_GLASBON;
/ /
CREATE OR REPLACE PROCEDURE ASDL_UPDATE_GLASBON (p_import_key IN NUMBER) CREATE OR REPLACE PROCEDURE ASDL_UPDATE_GLASBON (p_import_key IN NUMBER)
IS IS