diff --git a/ASDL/asdl.sql b/ASDL/asdl.sql index 55c7a05aa..15e5cf45f 100644 --- a/ASDL/asdl.sql +++ b/ASDL/asdl.sql @@ -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