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$
-- $Id$
@@ -2322,7 +2322,7 @@ BEGIN
END;
END LOOP;
asdl_export_glasbon_melding;
BEGIN ASDL_EXPORT_GLASBON_MELDING('GLASBON_MELDING',SYSDATE,'-1',''); END;
END;
/
@@ -2513,7 +2513,7 @@ AS
CREATE OR REPLACE PROCEDURE ASDL_IMPORT_GLASBON (p_import_key IN NUMBER)
IS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000);
v_newline VARCHAR2 (1000);
v_header VARCHAR2 (1000);
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
@@ -2529,8 +2529,9 @@ IS
v_count_alglocatie NUMBER :=1;
v_count_weeknr NUMBER :=1;
v_count_stationsmanager NUMBER :=1;
v_count_uitvoerder NUMBER :=1;
-- De importvelden:
v_fac_import_key VARCHAR (256);
v_fac_import_key VARCHAR (256);
v_fac_import_index VARCHAR (256);
v_mld_stdmelding_key VARCHAR (256);
v_mld_stdmelding_oms VARCHAR (256);
@@ -2541,11 +2542,12 @@ IS
v_uitvoerjaar VARCHAR (256);
v_uitvoerweek VARCHAR (256);
v_uitvoerder VARCHAR (256);
v_uitvoerdernaam VARCHAR(256);
v_serviceordernr VARCHAR (256);
v_onderwerp VARCHAR (256);
v_omschrijving VARCHAR (256);
v_datum_melding VARCHAR (256);
v_meldingnr VARCHAR (256);
v_meldingnr VARCHAR (256);
CURSOR c
IS
@@ -2553,12 +2555,12 @@ IS
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
CURSOR l
IS
SELECT *
FROM alg_locatie;
BEGIN
DELETE FROM asdl_imp_glas;
COMMIT;
@@ -2566,7 +2568,7 @@ BEGIN
v_count_tot := 0;
v_count_import := 0;
header_is_valid := 0;
FOR rec IN c
LOOP
BEGIN
@@ -2577,7 +2579,7 @@ BEGIN
v_errorhint := 'Fout bij opvragen te importeren rij';
v_ongeldig := 0;
v_count := 0;
-- 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_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_uitvoerweek); -- Uitvoerweek
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_onderwerp); -- Onderwerp
fac.imp_getfield (v_newline, c_fielddelimitor, v_omschrijving); -- Omschrijving
@@ -2602,36 +2605,34 @@ BEGIN
|| '|'
|| v_uitvoerweek
|| '] ';
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 negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF
IF
UPPER (v_mld_stdmelding_key) = 'MELDING'
AND UPPER (v_mld_stdmelding_oms) = 'MELDINGOMSCHRIJVING'
AND UPPER (v_alg_locatie_code) = 'LOCATIECODE'
AND UPPER (v_alg_locatie_oms) = 'LOCATIE'
AND UPPER (v_stationsmanager_key) = 'SM-NR'
AND UPPER (v_stationsmanager) = 'STATIONSMANAGER'
AND UPPER (v_alg_locatie_oms) = 'LOCATIE'
AND UPPER (v_stationsmanager_key) = 'SMNR'
AND UPPER (v_stationsmanager) = 'STATIONSMANAGER'
AND UPPER (v_uitvoerjaar) = 'UITVOERJAAR'
AND UPPER (v_uitvoerweek) = 'UITVOERWEEK'
AND UPPER (v_uitvoerder) = 'UITVOERDER'
AND UPPER (v_serviceordernr) = 'NUMMER SERVICEORDER' --Lengte max 50
AND UPPER (v_onderwerp) = 'ONDERWERP' --Lengte max 80
AND UPPER (v_uitvoerdernaam) = 'UITVOERDERNAAM'
AND UPPER (v_serviceordernr) = 'SERVICEORDERNUMMER' --Lengte max 50
AND UPPER (v_onderwerp) = 'ONDERWERP' --Lengte max 80
AND UPPER (v_omschrijving) = 'OMSCHRIJVING' --Lengte max 4000
THEN
header_is_valid := 1;
END IF;
ELSE
--NOG TE MAKEN CONTROLES:
--uitvoerdatum (datum)
--Controle of de opgegeven stdmelding wel aanwezig is
SELECT COUNT ( * )
INTO v_count_melding
@@ -2647,11 +2648,11 @@ BEGIN
v_aanduiding || 'Meldingnummer bestaat niet',
'Melding wordt niet ingelezen!');
END IF;
--Controle of de opgegeven locatie (postcode) wel aanwezig is
SELECT COUNT ( * )
INTO v_count_alglocatie
FROM alg_locatie l
FROM alg_locatie l
WHERE l.alg_locatie_postcode = v_alg_locatie_code;
IF v_count_alglocatie = 0
@@ -2662,11 +2663,11 @@ BEGIN
v_aanduiding || 'Locatie (postcode) bestaat niet',
'Melding wordt niet ingelezen!');
END IF;
--Controle of de opgegeven stationsmanager wel aanwezig is
SELECT COUNT ( * )
INTO v_count_stationsmanager
FROM asdl_v_list_locatiebeheerder lb
FROM asdl_v_list_locatiebeheerder lb
WHERE lb.prs_perslid_key = v_stationsmanager_key
AND lb.prs_perslid_verwijder IS NULL;
@@ -2677,8 +2678,25 @@ BEGIN
'W',
v_aanduiding || 'Stationsmanager bestaat niet',
'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
THEN
v_serviceordernr := SUBSTR (v_serviceordernr, 1, 50);
@@ -2690,7 +2708,7 @@ BEGIN
|| v_serviceordernr
|| ']');
END IF;
IF LENGTH (v_onderwerp) > 80
THEN
v_onderwerp := SUBSTR (v_onderwerp, 1, 80);
@@ -2715,7 +2733,24 @@ BEGIN
|| ']');
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
IF header_is_valid = 1
AND v_ongeldig = 0
@@ -2784,7 +2819,7 @@ BEGIN
END IF;
END IF;
END;
END LOOP;
END LOOP;
IF (header_is_valid = 0)
THEN
@@ -2829,6 +2864,7 @@ EXCEPTION
END ASDL_IMPORT_GLASBON;
/
CREATE OR REPLACE PROCEDURE ASDL_UPDATE_GLASBON (p_import_key IN NUMBER)
IS