From c4b3bd660dbcd7270ea40153e02f052c9e9e5caf Mon Sep 17 00:00:00 2001 From: Suzan Wiegerinck Date: Mon, 4 Nov 2024 08:20:51 +0000 Subject: [PATCH] FCLT#81526 Cust procedures PCBO voor MJOB import verwijderd uit cust sql svn path=/Customer/trunk/; revision=66844 --- PCBO/PCBO.sql | 1207 ------------------------------------------------- 1 file changed, 1207 deletions(-) diff --git a/PCBO/PCBO.sql b/PCBO/PCBO.sql index f0a3fdccc..55b04b6be 100644 --- a/PCBO/PCBO.sql +++ b/PCBO/PCBO.sql @@ -214,1213 +214,6 @@ END; / ----------------------------------------------------------------------------- ------------------- BEGIN MBJOB IMPORT -------------------------------------- ----------------------------------------------------------------------------- -CREATE OR REPLACE PROCEDURE pcbo_import_insp_mjob (p_import_key IN NUMBER) -IS - c_fielddelimitor VARCHAR2 (1) := ';'; - - v_newline VARCHAR2 (4000); -- Input line - v_errormsg VARCHAR (1000); - v_hint VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_ongeldig NUMBER (1); - v_aanduiding VARCHAR2 (200); - v_header_is_valid NUMBER (1); - v_dummy VARCHAR2 (1000); - v_count NUMBER; - v_count_rec NUMBER := 0 ; -- totaal aantal record in csv - v_count_verwerk NUMBER ; -- aantal te verwerken regels - v_count_n_taak NUMBER ; -- aantal nieuw aan te maken basistaken - v_count_n_taakobject NUMBER ; -- aantal nieuw aan te maken objecttaken - v_count_w_taak NUMBER ; -- aantal bestaande taken te wijzigen - - -- De importvelden: - v_locatiecode VARCHAR2(1000); - v_objectomschrijving VARCHAR2(1000); - v_objectaanteh VARCHAR2(1000); - v_objectaantal VARCHAR2(1000); - v_taakcategorie VARCHAR2(1000); - v_taakomschrijving VARCHAR2(1000); - v_taakomschrijving_nieuw VARCHAR2(1000); -- Vullen we in kolom extra_veld5 - v_taakopmerking VARCHAR2(1000); - v_taakgroep VARCHAR2(1000); - v_taakprioriteit VARCHAR2(1000); - v_taakobjectpercentage VARCHAR2(1000); - v_taakobjectopmerking VARCHAR2(1000); - v_taakobjectperiode VARCHAR2(1000); - v_taakobjectstartjaar VARCHAR2(1000); -- Startjaar uit CSV - v_taakobjectstartjaar_d DATE; - v_object_aanmaak DATE; -- Datum aanmaak van Object - - v_taakobjecteindjaar VARCHAR2(1000); - v_taakobjecteindjaar_d DATE; - v_taakobjectmateriaal VARCHAR2(1000); - v_taakobjectkosten VARCHAR2(1000); - v_taakobjecteenheid VARCHAR2(1000); - v_taakobjecthoeveelheid VARCHAR2(1000); - v_taakdienst VARCHAR2(1000); - v_deel_key NUMBER(10); - v_deel_aant NUMBER(10); - v_discipline_key NUMBER(10); - v_ismjob NUMBER; - v_taak_geschiedenis NUMBER (10); -- Vullen we in kolom extra_veld4 - - v_srtcontrole_key NUMBER(10); - v_srtcontrole_teller NUMBER(10); - v_ins_srtdeel_key NUMBER(10); - v_ins_srtdeel_code VARCHAR2(10); - v_ins_srtcontroledl_xcp_key NUMBER(10); - v_taakobject_startjaar_d DATE; -- Startjaar van de reeds in Facilitor gekoppelde objecttaak - - CURSOR c - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; - -BEGIN - -- Eerst opruiming - - DELETE FROM tmp_imp_mjb; - - COMMIT; - - v_header_is_valid := 0; - v_ongeldig := 0; - - FOR rec IN c - LOOP - - BEGIN - v_ongeldig := 0; - v_taak_geschiedenis := NULL ; - v_deel_key := NULL ; - v_ins_srtdeel_key := NULL ; - v_ins_srtdeel_code := NULL ; - v_srtcontrole_key := NULL ; - v_ins_srtcontroledl_xcp_key := NULL; - - v_errormsg := 'Fout FETCH te importeren rij'; - v_newline := rec.fac_imp_file_line; - - v_errormsg := 'Fout opvragen te importeren rij:' || SUBSTR (v_newline, 1, 200); - v_aanduiding := ''; - - IF (REPLACE(UPPER (v_newline), ' ') LIKE 'OBJECTIDENTIFICATIE;OBJECTAANTEH;OBJECTAANTAL;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN;DIENST;TAAKOMSCHRIJVINGNIEUW%') - THEN - - v_header_is_valid := 1; - ELSE - -- Lees alle veldwaarden - v_count_rec := v_count_rec + 1 ; - - v_errormsg := 'Fout opvragen te importeren rij (object)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_objectomschrijving); - - v_errormsg := 'Fout opvragen te importeren rij (object eehnheid)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_objectaanteh); - - v_errormsg := 'Fout opvragen te importeren rij (object aantal)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_objectaantal); - - v_errormsg := 'Fout opvragen te importeren rij (discipline)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakcategorie); - - v_errormsg := 'Fout opvragen te importeren rij (taakomschrijving)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving); - - v_errormsg := 'Fout opvragen te importeren rij (taakopmerking)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakopmerking); - - v_errormsg := 'Fout opvragen te importeren rij (taakgroep)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakgroep); - - v_errormsg := 'Fout opvragen te importeren rij (prioriteit)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakprioriteit); - - v_errormsg := 'Fout opvragen te importeren rij (percentage)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectpercentage); - - v_errormsg := 'Fout opvragen te importeren rij (opmerking)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectopmerking); - - v_errormsg := 'Fout opvragen te importeren rij (eenheid)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteenheid); - - v_errormsg := 'Fout opvragen te importeren rij (periode)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectperiode); - - v_errormsg := 'Fout opvragen te importeren rij (startjaar)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectstartjaar); - - v_errormsg := 'Fout opvragen te importeren rij (eindjaar)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteindjaar); - - v_errormsg := 'Fout opvragen te importeren rij (materiaal)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectmateriaal); - - v_errormsg := 'Fout opvragen te importeren rij (dienst)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakdienst); - - v_errormsg := 'Fout opvragen te importeren rij (taakomschrijvingnieuw)'; - fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving_nieuw); - - - IF v_header_is_valid = 1 THEN -- Als geldige header gepasseerd en csv-recordvelden gevuld dan gaan we eerst checken of data klopt - - -- Controleer of het object bestaat - -- Controleer of object er meerdere keren in staat (valt terug naar OTHERS, regel 300) - BEGIN - v_errormsg := - 'Fout bij opzoeken object: ' || v_objectomschrijving ||' komt vaker dan 1 keer voor'; - - SELECT ins_deel_key, ins_deel_aantal - INTO v_deel_key, v_deel_aant - FROM ins_deel - WHERE UPPER (ins_deel_omschrijving) = UPPER (v_objectomschrijving) - AND ins_deel_verwijder IS NULL; - EXCEPTION WHEN NO_DATA_FOUND - THEN - fac.imp_writelog ( - p_import_key, 'E', 'Object bestaat niet - Regel wordt niet verwerkt ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving); - v_ongeldig := 1; - END; - -- wijkt het aantal in de import uit van het aantal dat bij het object staat? - -- Zo nee: dan nemen we aantal en eenheid NIET over in het xcp record - IF v_deel_aant = fac.safe_to_number(v_objectaantal) - THEN - v_objectaantal := NULL; - v_objectaanteh := NULL; - END IF; - - -- Controleer de taakcategorie - v_errormsg := - 'Fout bij controleren taakcategorie ' ; - BEGIN - SELECT ins_discipline_key, ctr_disc_params_ismjob - INTO v_discipline_key, v_ismjob - FROM ins_tab_discipline d, ctr_disc_params dp - WHERE dp.ctr_ins_discipline_key = d.ins_discipline_key - AND UPPER (d.ins_discipline_omschrijving) = TRIM(UPPER(v_taakcategorie)); - EXCEPTION WHEN NO_DATA_FOUND - THEN - fac.imp_writelog ( - p_import_key, 'E', 'Inspectie discipline niet gevonden - Regel wordt niet verwerkt ', - rec.fac_imp_file_index || ' - ' || v_taakcategorie); - v_ongeldig := 1; - END; - - -- Controleer de eenheid - IF v_ismjob = 1 - THEN - v_taakobjecteenheid := '4'; -- jaar - END IF; - - IF v_taakobjecteenheid IS NOT NULL AND v_taakobjecteenheid NOT IN ('1', '2', '3', '4') - THEN - fac.imp_writelog ( - p_import_key, 'E', 'Eenheid is niet correct gevuld (of leeg of 1,2,3,4) - Regel wordt niet verwerkt ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjecteenheid); - v_ongeldig := 1; - END IF; - - -- Controleer dienst - v_errormsg := - 'Fout controleren dienst '; - - IF v_taakdienst IS NOT NULL - THEN - SELECT count(*) - INTO v_count - FROM prs_dienst - WHERE UPPER(prs_dienst_omschrijving) = UPPER(v_taakdienst); - - IF v_count = 0 - THEN - fac.imp_writelog ( - p_import_key, 'W', 'Dienst onbekend - zal bij verwerken aangemaakt worden.. ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakdienst); - END IF; - END IF; - - -- Controleer de kosten - leeg of numeriek - v_errormsg := - 'Fout controleren kosten '; - - IF v_taakobjectmateriaal IS NOT NULL AND fac.safe_to_number (REPLACE (v_taakobjectmateriaal, ',', '.')) IS NULL - THEN - fac.imp_writelog ( - p_import_key, 'E', 'Kosten taakobject niet goed ingevuld - Regel wordt niet verwerkt.. ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving || 'Kosten csv: ' || v_taakobjectmateriaal); - v_ongeldig := 1; - END IF; - - -- Controleer de taakperiode - Leeg of numeriek - v_errormsg := - 'Fout controleren taakperiode '; - - IF v_taakobjectperiode IS NOT NULL AND fac.safe_to_number (v_taakobjectperiode) IS NULL - THEN - fac.imp_writelog ( - p_import_key, 'E', 'Ongeldige taakobjectperiode - Regel wordt niet verwerkt ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjectperiode); - v_ongeldig := 1; - END IF; - - -- Controleer de taakprioriteit - Leeg of numeriek - v_errormsg := - 'Fout controleren taakprioriteit '; - - IF v_taakprioriteit IS NOT NULL AND fac.safe_to_number (v_taakprioriteit) IS NULL - THEN - fac.imp_writelog ( - p_import_key, 'E', 'Prioriteit taak niet goed ingevuld - Regel wordt niet verwerkt.. ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving || 'Kosten csv: ' || v_taakprioriteit); - v_ongeldig := 1; - END IF; - - -- Controleer de startdatum - v_errormsg := - 'Fout bij controle startdatum '; - - -- In geval jaar-invoer op datum zetten.. - IF LENGTH (v_taakobjectstartjaar) = 4 - THEN - v_taakobjectstartjaar := '01-01-' || v_taakobjectstartjaar; - END IF; - - IF v_taakobjectstartjaar IS NOT NULL AND fac.safe_to_date (v_taakobjectstartjaar, 'dd-mm-yyyy') IS NULL - THEN - fac.imp_writelog ( - p_import_key, 'E', 'Startdatum ongeldige invoer - Regel wordt niet verwerkt.. ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjectstartjaar); - v_ongeldig := 1; - ELSE - v_taakobjectstartjaar_d := fac.safe_to_date(v_taakobjectstartjaar, 'dd-mm-yyyy') ; - END IF; - - -- Hier controleren of de startdatum voor de Objectregisratiedatum ligt - v_errormsg := - 'Fout bij controle start- en objectregistratiedatum '; - - IF v_deel_key IS NOT NULL AND v_ongeldig = 0 - THEN - - SELECT ins_deel_aanmaak - INTO v_object_aanmaak - FROM ins_deel - WHERE ins_deel_key = v_deel_key ; - END IF; - - -- Controleer de einddatum - v_errormsg := - 'Fout bij controle einddatum '; - - -- In geval jaar-invoer op datum zetten.. - IF LENGTH (v_taakobjecteindjaar) = 4 - THEN - v_taakobjecteindjaar := '31-12-' || v_taakobjecteindjaar; - END IF; - - IF v_taakobjecteindjaar IS NOT NULL AND fac.safe_to_date (v_taakobjecteindjaar, 'dd-mm-yyyy') IS NULL - THEN - fac.imp_writelog ( - p_import_key, 'E', 'Einddatum ongeldige invoer - Regel wordt niet verwerkt.. ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjecteindjaar); - v_ongeldig := 1; - ELSE - v_taakobjecteindjaar_d := fac.safe_to_date(v_taakobjecteindjaar, 'dd-mm-yyyy') ; - END IF; - - -- Hier controleren of de taak al bestaat... - v_errormsg := - 'Fout controleren nieuwe of bestaande taak ' || rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving ; - - IF v_deel_key IS NOT NULL AND v_ongeldig = 0 - THEN - - -- Eerst ins_srtdeel_code bepalen - SELECT d.ins_srtdeel_key, sd.ins_srtdeel_code - INTO v_ins_srtdeel_key, v_ins_srtdeel_code - FROM ins_deel d, ins_srtdeel sd - WHERE d.ins_deel_key = v_deel_key - AND d.ins_srtdeel_key = sd.ins_srtdeel_key - AND ins_deel_verwijder IS NULL; - - -- Vervolgens kijken of er al een taak op aangemaakt is - - SELECT count(*) - INTO v_srtcontrole_teller - FROM ins_srtcontrole - WHERE LOWER(ins_srtcontrole_omschrijving) = - SUBSTR ( - TRIM ( - v_ins_srtdeel_code - || ' - ' - || LOWER(v_taakomschrijving)), - 1, - 60); - - -- Zo ja, dan gaan we de srt_controle_key vullen - --- Ps. Komt soms bij heyday voor dat eenzelfde basistaak er meer dan 1 keer in staat (per ongeluk) en daarom pakken we hier dan de max(key). - IF v_srtcontrole_teller >0 THEN - - SELECT max(ins_srtcontrole_key) - INTO v_srtcontrole_key - FROM ins_srtcontrole - WHERE LOWER(ins_srtcontrole_omschrijving) = - SUBSTR ( - TRIM ( - v_ins_srtdeel_code - || ' - ' - || LOWER(v_taakomschrijving)), - 1, - 60) ; - - ELSE -- Zo niet, dan is het dus geen bestaande standaard taak en gaan we straks in de update NIEUWE taak aanmaken - - -- En passen dan ook maar gelijk taakomschrijving goed aan - v_errormsg := 'Fout bij aanpassen taakomschrijving '; - - IF (LENGTH (TRIM(v_ins_srtdeel_code)) + 3 + LENGTH(TRIM(v_taakomschrijving))) > 60 - THEN - fac.imp_writelog ( - p_import_key, 'W', 'Nieuwe taak - Aangepast ivm lengte groter dan 60 ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving || ' wordt: ' || SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving), 1, 60) ); - END IF; - - v_taakomschrijving := SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving), 1, 60) ; - - END IF; - END IF; - - -- Hier controleren of voor de bestaande taak ook de objecttaak al bestaat... - v_errormsg := - 'Fout controleren nieuwe of bestaande objecttaak ' || rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving ; - - IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_srtcontrole_key IS NOT NULL THEN - - SELECT max(t.ins_srtcontroledl_xcp_key), max(t.ins_srtcontroledl_xcp_startdat) - INTO v_ins_srtcontroledl_xcp_key, v_taakobject_startjaar_d - FROM ins_srtcontroledl_xcp t - WHERE t.ins_srtcontrole_key = v_srtcontrole_key AND t.ins_deel_key = v_deel_key ; - - END IF; - - -- Hier controleren of alle verplichte velden voor de nieuwe objecttaak correct zijn gevuld - ---- Dit zijn: Startdatum + Eenheid + Periode + Taakgroep(?) + Percentage (?) + Kosten (?) - v_errormsg := 'Fout controleren verplichte velden bij nieuwe objecttaak '; - - IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_ins_srtcontroledl_xcp_key IS NULL THEN - - -- startdatum mag ook leeg zijn, dan is het automatich object registratie + cyclus - -- IF v_taakobjectstartjaar IS NULL THEN - -- fac.imp_writelog ( - -- p_import_key, 'E', 'Startdatum niet ingevuld - Regel wordt niet verwerkt.. ', - -- rec.fac_imp_file_index || ' - ' || v_objectomschrijving); - -- v_ongeldig := 1; - -- END IF; - - IF v_taakobjecteenheid IS NULL or v_taakobjecteenheid NOT IN ('1', '2', '3', '4') THEN - fac.imp_writelog ( - p_import_key, 'E', 'Geen of ongeldige eenheid gevonden - Regel wordt niet verwerkt ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjecteenheid); - v_ongeldig := 1; - END IF; - - IF (v_taakobjectperiode IS NULL) OR (v_taakobjectperiode IS NOT NULL AND fac.safe_to_number (v_taakobjectperiode) IS NULL) THEN - fac.imp_writelog ( - p_import_key, 'E', 'Geen of ongeldige taakobjectperiode - Regel wordt niet verwerkt ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjectperiode); - v_ongeldig := 1; - END IF; - - END IF; - - -- Hier controleren of er al geschiedenis op de objecttaak zit en de startdatum afwijkt van degene meegegeven in csv - v_errormsg := - 'Fout controleren geschiedenis op objecttaak '; - - IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_srtcontrole_key IS NOT NULL AND v_ins_srtcontroledl_xcp_key IS NOT NULL THEN - - v_taak_geschiedenis := 0; - - SELECT count(*) - INTO v_taak_geschiedenis - FROM ins_deelsrtcontrole - WHERE ins_deel_key = v_deel_key and ins_srtcontrole_key = v_srtcontrole_key ; - - IF v_taak_geschiedenis > 0 AND v_taakobjectstartjaar IS NOT NULL AND v_taakobjectstartjaar_d <> v_taakobject_startjaar_d - THEN - - fac.imp_writelog ( - p_import_key, 'W', 'Op deze objecttaak zit al geschiedenis - afwijkende startdatum zal niet aangepast worden.. ', - rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving || ' - ' || v_taakobjectstartjaar_d || ' vs. ' || v_taakobject_startjaar_d) ; - - END IF; - END IF; - - -- Aangezien de taken altijd een startdatum hebben, en objecten niet altijd een aanmaakdatum, gaan we die hier gelijk trekken. - -- Daarna maken we de taak startdatum leeg, zodat de cyclus gaat lopen vanaf de bijgewerkte ins_deel_aanmaak. - -- Zo blijft het mogelijk om taken in de MJOB console te verslepen naar jaartallen eerder dan het aangegeven startjaar. - - IF v_taakobjectstartjaar_d < SYSDATE - THEN - UPDATE ins_deel - SET ins_deel_aanmaak = v_taakobjectstartjaar_d - WHERE ins_deel_key = v_deel_key; - END IF; - - -- v_taakobjectstartjaar_d := NULL; - - -- Nu kunnen we de tussentabel vullen - v_errormsg := - 'Fout bij toevoegen regel aan tabel ' - || v_objectomschrijving; - - IF v_ongeldig = 0 - THEN - - INSERT INTO tmp_imp_mjb (locatiecode, - objectomschrijving , - objectaanteh, - objectaantal, - taakcategorie, - taakomschrijving, - taakopmerking, - taakgroep, - taakprioriteit, - taakobjectpercentage, - taakobjectopmerking, - taakobjectperiode, - taakobjectstartjaar, - taakobjecteindjaar, - taakobjectmateriaal, - taakobjecteenheid, - taakdienst, - extra_veld4, -- Gebruiken voor taakgeschiedenis - extra_veld5, -- Gebruiken voor taakomschrijving_nieuw - deel_key, - discipline_key, - ismjob, - ins_srtcontrole_key, - ins_srtcontroledl_xcp_key, - ins_srtdeel_key) - VALUES (v_locatiecode, - v_objectomschrijving, - v_objectaanteh, - v_objectaantal, - v_taakcategorie, - v_taakomschrijving, - v_taakopmerking, - v_taakgroep, - v_taakprioriteit, - v_taakobjectpercentage, - v_taakobjectopmerking, - v_taakobjectperiode, - v_taakobjectstartjaar_d, - v_taakobjecteindjaar_d, - v_taakobjectmateriaal, - v_taakobjecteenheid, - v_taakdienst, - v_taak_geschiedenis, - v_taakomschrijving_nieuw, - v_deel_key, - v_discipline_key, - v_ismjob, - v_srtcontrole_key, - v_ins_srtcontroledl_xcp_key, - v_ins_srtdeel_key); - - END IF; - END IF; - END IF; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - v_hint := v_errormsg; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; - fac.imp_writelog (p_import_key, 'E', v_errormsg, v_hint); - END; - END LOOP; - - -- Aantallen tellen voor logging - v_errormsg := 'Fout bij tellen aantallen voor logging ' ; - - v_count_verwerk := 0 ; -- aantal te verwerken regels - v_count_n_taak := 0 ; -- aantal nieuw aan te maken basistaken - v_count_n_taakobject := 0 ; -- aantal nieuw aan te maken objecttaken - v_count_w_taak := 0 ; -- aantal bestaande (object)taken te wijzigen - - SELECT count(*) INTO v_count_verwerk FROM tmp_imp_mjb ; - SELECT count(*) INTO v_count_n_taak FROM (SELECT DISTINCT(taakomschrijving) FROM tmp_imp_mjb WHERE ins_srtcontrole_key IS NULL) v ; - SELECT count(*) INTO v_count_n_taakobject FROM tmp_imp_mjb WHERE ins_srtcontroledl_xcp_key IS NULL ; - SELECT count(*) INTO v_count_w_taak FROM tmp_imp_mjb WHERE ins_srtcontrole_key IS NOT NULL AND ins_srtcontroledl_xcp_key IS NOT NULL ; - - - IF v_header_is_valid = 0 - THEN - ROLLBACK; - fac.imp_writelog (p_import_key, 'E', v_aanduiding || 'Ongeldig importbestand', 'Toelichting: Verkeerde header. Niet conform specs. '); - ELSE - fac.imp_writelog ( - p_import_key, - 'S', - 'IMPORT TAKEN: aantal te verwerken regels: ' || TO_CHAR (v_count_verwerk) || ' (van de ' || TO_CHAR (v_count_rec) || ' records in csv)' - || CHR(13) || CHR(10) - || 'Aantal nieuwe taken: ' || TO_CHAR (v_count_n_taak) - || CHR(13) || CHR(10) - || 'Aantal nieuwe objecttaken: ' || TO_CHAR (v_count_n_taakobject) - || CHR(13) || CHR(10) - || 'Aantal bestaande, te wijzigen (object)taken: ' || TO_CHAR (v_count_w_taak), - ''); - END IF; - COMMIT; - -EXCEPTION - WHEN OTHERS - THEN - ROLLBACK; - oracle_err_num := SQLCODE; - v_hint := v_errormsg; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; - fac.imp_writelog (p_import_key, 'E', v_errormsg, v_hint); -END pcbo_import_insp_mjob; -/ - -CREATE OR REPLACE PROCEDURE pcbo_update_insp_mjob (p_import_key IN NUMBER) -AS - CURSOR c_n -- nieuwe taken en objecttaken aanmaken.. - IS - SELECT i.* - FROM tmp_imp_mjb i - WHERE i.ins_srtcontrole_key IS NULL; - - CURSOR c_no -- nieuwe objecttaken aanmaken.. - IS - SELECT i.* - FROM tmp_imp_mjb i - WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NULL; - - CURSOR c_m -- bestaande taak en/of objecttaak wijzigen - IS - SELECT i.* - FROM tmp_imp_mjb i - WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NOT NULL; - - v_errormsg VARCHAR2 (4000); - v_error_hint VARCHAR2 (4000); - oracle_err_mes VARCHAR2 (4000); - oracle_err_num VARCHAR2 (4000); - v_aanduiding VARCHAR2 (1000); - v_aanduiding_objecttaak VARCHAR2 (1000); - v_ongeldig NUMBER (1); - v_ins_srtcontrole_key NUMBER (10); - v_dienst_key NUMBER (10); - v_taak_al_aangemaakt NUMBER(10); - - v_count_verwerk NUMBER := 0 ; -- aantal verwerkte records - v_count_n_taak NUMBER := 0 ; -- aantal nieuw aangemaakte basistaken - v_count_n_taakobject NUMBER := 0 ; -- aantal nieuw aangemaakte objecttaken - v_count_w_taak NUMBER := 0 ; -- aantal bestaande basistaken gewijzigd - v_count_w_taakobject NUMBER := 0 ; -- aantal bestaande object-taken gewijzigd - v_count_taak NUMBER := 0 ; - v_count_taakobject NUMBER := 0 ; - - - -- Velden - v_taakomschrijving VARCHAR2(1000); - v_ins_srtdeel_code VARCHAR2(10); - v_taakomschrijving_nieuw VARCHAR2(1000); - v_taakopmerking VARCHAR2(1000); - v_taakgroep VARCHAR2(1000); - v_taakdienst_key NUMBER(10); - v_taakdienst VARCHAR2(1000); - v_taakprioriteit NUMBER(3); - v_percentage NUMBER(3); - v_objecttaakopmerking VARCHAR2(1000); - v_eenheid NUMBER(3); - v_periode NUMBER(3); - v_startjaar DATE; - v_eindjaar DATE; - v_materiaalkosten NUMBER(10); - -BEGIN - v_ongeldig := 0; - - FOR rec IN c_n - LOOP - - BEGIN - v_aanduiding := - rec.objectomschrijving - || ' / ' - || rec.taakcategorie - || ' - ' - || rec.taakomschrijving; - - -- Eenzelfde basistaak kan meerdere keren in CSV zitten. - -- Daarom gaan we in deze cursor eerst kijken of de basistaak er in deze LOOP al ingezet is. - -- Zo ja, dan kunnen we door naar de Objecttaak. Zo niet, dan gaan we eerst de basis - v_errormsg := 'Opzoeken basistaak ' || v_aanduiding; - v_taak_al_aangemaakt:=0; - - SELECT count(*) - INTO v_taak_al_aangemaakt - FROM ins_srtcontrole - WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving; - - -- Als basistaak al in loop was aangemaakt nog even de key erbij zoeken - IF v_taak_al_aangemaakt >0 - THEN - - SELECT max(ins_srtcontrole_key) - INTO v_ins_srtcontrole_key - FROM ins_srtcontrole - WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving; - - END IF; - - -- Basistaak aanmaken - IF v_taak_al_aangemaakt = 0 - THEN - - -- We gaan we eerst op zoek naar de dienst. - v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding; - v_dienst_key := NULL; - IF rec.taakdienst IS NOT NULL - THEN - BEGIN - SELECT prs_dienst_key - INTO v_dienst_key - FROM prs_dienst - WHERE UPPER(prs_dienst_omschrijving) = UPPER(SUBSTR(rec.taakdienst, 1,60)); - EXCEPTION WHEN NO_DATA_FOUND - THEN - INSERT INTO prs_dienst (prs_dienst_omschrijving) - VALUES (SUBSTR(rec.taakdienst,1,60)) - RETURNING prs_dienst_key INTO v_dienst_key; - END; - END IF; - - v_count_verwerk := v_count_verwerk + 1 ; - v_count_n_taak := v_count_n_taak +1 ; - - v_errormsg := 'Aanmaken taak ' || v_aanduiding; - INSERT INTO ins_srtcontrole ( - ins_srtinstallatie_key, - ins_srtcontrole_niveau, - ins_srtcontrole_omschrijving, - ctr_discipline_key, - ins_srtcontrole_info, - ins_srtcontrole_periode, - ins_srtcontrole_eenheid, - ins_srtcontrole_mode, - ins_srtcontrole_level, - ins_srtcontrole_opmerking, - prs_dienst_key) - VALUES ( - rec.ins_srtdeel_key, - 'S', - rec.taakomschrijving, - rec.discipline_key, - NULL, - 0, - rec.taakobjecteenheid, - 1, - COALESCE (rec.taakprioriteit, '0'), - rec.taakopmerking, - v_dienst_key) - RETURNING ins_srtcontrole_key - INTO v_ins_srtcontrole_key; - - fac.trackaction('CTRSUP', v_ins_srtcontrole_key, 4, NULL, 'Periodieke taak toegevoegd - Via taakimport '); - - END IF; - - -- Nu kunnen we de objectaak aanmaken - v_count_n_taakobject := v_count_n_taakobject +1 ; - - v_errormsg := 'Aanmaken taak object ' || v_aanduiding || ' [' - || rec.deel_key || '|' - || v_ins_srtcontrole_key || '|' - || rec.taakobjectperiode || '|' - || rec.taakobjecteenheid || '|' - || fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) || '|' - || ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))) || '|' - || rec.taakgroep || '|' - || rec.taakobjectopmerking || ']'; - - INSERT INTO ins_srtcontroledl_xcp ( - ins_deel_key, - ins_srtcontrole_key, - ins_srtcontroledl_xcp_periode, - ins_srtcontroledl_xcp_eenheid, - ins_srtcontroledl_xcp_materia, - ins_srtcontroledl_xcp_perc, - ins_srtcontroledl_xcp_groep, - ins_srtcontroledl_xcp_opmerk, - ins_srtcontroledl_xcp_startdat) - VALUES ( - rec.deel_key, - v_ins_srtcontrole_key, - rec.taakobjectperiode, - rec.taakobjecteenheid, - fac.safe_to_number ( - REPLACE (rec.taakobjectmateriaal, ',', '.')), - ROUND(fac.safe_to_number ( - REPLACE (rec.taakobjectpercentage, ',', '.'))), - rec.taakgroep, - rec.taakobjectopmerking, - rec.taakobjectstartjaar - ); - EXCEPTION - WHEN OTHERS - THEN - v_error_hint := v_errormsg; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - v_errormsg - || 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - v_error_hint); - v_ongeldig := 1; - END; - v_aanduiding := 'Einde loop ' || v_aanduiding; - END LOOP; - - FOR rec IN c_no - LOOP - BEGIN - - v_aanduiding := - rec.objectomschrijving - || ' / ' - || rec.taakcategorie - || ' - ' - || rec.taakomschrijving; - - -- We kunnen direct objectaak aanmaken - v_count_verwerk := v_count_verwerk + 1 ; - v_count_n_taakobject := v_count_n_taakobject +1 ; - - v_errormsg := 'Aanmaken taak object ' || v_aanduiding || ' [' - || rec.deel_key || '|' - || rec.ins_srtcontrole_key || '|' - || rec.taakobjectperiode || '|' - || rec.taakobjecteenheid || '|' - || fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) || '|' - || ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))) || '|' - || rec.taakgroep || '|' - || rec.taakobjectopmerking || ']'; - INSERT INTO ins_srtcontroledl_xcp ( - ins_deel_key, - ins_srtcontrole_key, - ins_srtcontroledl_xcp_periode, - ins_srtcontroledl_xcp_eenheid, - ins_srtcontroledl_xcp_materia, - ins_srtcontroledl_xcp_perc, - ins_srtcontroledl_xcp_groep, - ins_srtcontroledl_xcp_opmerk) - VALUES ( - rec.deel_key, - rec.ins_srtcontrole_key, - rec.taakobjectperiode, - rec.taakobjecteenheid, - fac.safe_to_number ( - REPLACE (rec.taakobjectmateriaal, ',', '.')), - ROUND(fac.safe_to_number ( - REPLACE (rec.taakobjectpercentage, ',', '.'))), - rec.taakgroep, - rec.taakobjectopmerking); - EXCEPTION - WHEN OTHERS - THEN - v_error_hint := v_errormsg; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - v_errormsg - || 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - v_error_hint); - v_ongeldig := 1; - END; - v_aanduiding := 'Einde loop ' || v_aanduiding; - END LOOP; - - FOR rec IN c_m - LOOP - BEGIN - v_count_verwerk := v_count_verwerk + 1 ; - - v_aanduiding := - rec.objectomschrijving - || ' / ' - || rec.taakcategorie - || ' - ' - || rec.taakomschrijving; - - -- Basis-taak - Taakomschrijving - v_errormsg := 'Fout taakomschrijving wijzigen '; - v_taakomschrijving := '' ; -- huidige taakomschrijving - v_taakomschrijving_nieuw := '' ; - - IF rec.extra_veld5 IS NOT NULL - THEN - - -- Eerst de objectsrt-code ophalen en nieuwe taakomschrijving bepalen - SELECT ins_srtdeel_code_upper - INTO v_ins_srtdeel_code - FROM ins_srtdeel - WHERE ins_srtdeel_key = rec.ins_srtdeel_key ; - - v_taakomschrijving_nieuw := SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || rec.extra_veld5), 1, 60) ; - - -- Huidige omschrijving ophalen - SELECT ins_srtcontrole_omschrijving - INTO v_taakomschrijving - FROM ins_srtcontrole - WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key; - - IF v_taakomschrijving <> v_taakomschrijving_nieuw - THEN - - UPDATE ins_srtcontrole - SET ins_srtcontrole_omschrijving = v_taakomschrijving_nieuw - WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key; - v_count_taak:= 1 ; - - fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Taakomschrijving: ' || v_taakomschrijving || '-->' || v_taakomschrijving_nieuw); - END IF; - - END IF; - - -- Basis-taak - Taakopmerking - v_errormsg := 'Fout taakopmerking wijzigen '; - - SELECT ins_srtcontrole_opmerking - INTO v_taakopmerking - FROM ins_srtcontrole - WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key; - - IF v_taakopmerking IS NULL THEN v_taakopmerking := '' ; - END IF; - - IF v_taakopmerking <> rec.taakopmerking AND rec.taakopmerking IS NOT NULL - THEN - - UPDATE ins_srtcontrole - SET ins_srtcontrole_opmerking = rec.taakopmerking - WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key; - v_count_taak:= 1 ; - - fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Taakopmerking: ' || v_taakopmerking || '-->' || rec.taakopmerking); - - END IF; - - -- Basis-taak - Taakprioriteit - v_errormsg := 'Fout prioriteit wijzigen '; - - SELECT ins_srtcontrole_level - INTO v_taakprioriteit - FROM ins_srtcontrole - WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key; - - IF rec.taakprioriteit IS NOT NULL AND v_taakprioriteit <> fac.safe_to_number(rec.taakprioriteit) - THEN - - UPDATE ins_srtcontrole - SET ins_srtcontrole_level = fac.safe_to_number(rec.taakprioriteit) - WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key; - v_count_taak:= 1 ; - - fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Prioriteit: ' || v_taakprioriteit || '-->' || rec.taakprioriteit); - - END IF; - - -- Basis-taak - Dienst - v_errormsg := 'Fout dienst wijzigen ' || v_aanduiding; - v_taakdienst_key := NULL ; - v_taakdienst := '' ; - - -- Eerst huidige dienstkey en omschrijving ophalen - BEGIN - - SELECT max(t.prs_dienst_key), max(d.prs_dienst_omschrijving) - INTO v_taakdienst_key, v_taakdienst - FROM ins_srtcontrole t, prs_dienst d - WHERE t.ins_srtcontrole_key = rec.ins_srtcontrole_key AND t.prs_dienst_key = d.prs_dienst_key AND t.prs_dienst_key IS NOT NULL ; - - IF v_taakdienst IS NULL THEN v_taakdienst := '' ; END IF; - IF v_taakdienst_key IS NULL THEN v_taakdienst_key := -1 ; END IF; - - END; - - -- Dan gaan we kijken of de dienst meegegeven in csv al bestaat - v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding; - v_dienst_key := NULL; - IF rec.taakdienst IS NOT NULL - THEN - BEGIN - SELECT prs_dienst_key - INTO v_dienst_key - FROM prs_dienst - WHERE UPPER(prs_dienst_omschrijving) = UPPER(SUBSTR(rec.taakdienst, 1,60)); - EXCEPTION WHEN NO_DATA_FOUND - THEN - INSERT INTO prs_dienst (prs_dienst_omschrijving) - VALUES (SUBSTR(rec.taakdienst,1,60)) - RETURNING prs_dienst_key INTO v_dienst_key; - END; - END IF; - - IF v_taakdienst_key <> v_dienst_key AND rec.taakdienst IS NOT NULL - THEN - - UPDATE ins_srtcontrole - SET prs_dienst_key = v_dienst_key - WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key; - v_count_taak:= 1 ; - - fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd taakdienst: ' || v_taakdienst || '-->' || rec.taakdienst); - - END IF; - - IF v_count_taak = 1 THEN - v_count_w_taak := v_count_w_taak +1 ; - END IF; - - -- Gaan nu de object-taken aanpassen - v_aanduiding_objecttaak := rec.taakcategorie || ' - ' || v_ins_srtdeel_code || rec.taakomschrijving || CHR(13) || CHR(10) ; - - -- Object-taak - Percentage - v_errormsg := 'Fout percentage wijzigen '; - - SELECT COALESCE(ins_srtcontroledl_xcp_perc, 0) - INTO v_percentage - FROM ins_srtcontroledl_xcp - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - - IF rec.taakobjectpercentage IS NOT NULL AND v_percentage <> rec.taakobjectpercentage - THEN - - UPDATE ins_srtcontroledl_xcp - SET ins_srtcontroledl_xcp_perc = ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))) - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - v_count_taakobject:= 1 ; - - fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Percentage: (' || v_percentage || ') --> ' || rec.taakobjectpercentage ); - - END IF; - - -- Object-taak - Opmerking - v_errormsg := 'Fout opmerking objecttaak wijzigen '; - - SELECT ins_srtcontroledl_xcp_opmerk - INTO v_objecttaakopmerking - FROM ins_srtcontroledl_xcp - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - - IF v_objecttaakopmerking IS NULL THEN v_objecttaakopmerking := '' ; - END IF; - - IF rec.taakobjectopmerking IS NOT NULL AND v_objecttaakopmerking <> rec.taakobjectopmerking - THEN - - UPDATE ins_srtcontroledl_xcp - SET ins_srtcontroledl_xcp_opmerk = rec.taakobjectopmerking - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - v_count_taakobject:= 1 ; - - fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Taakopmerking: (' || v_objecttaakopmerking || ') --> ' || rec.taakobjectopmerking ); - - END IF; - - -- Object-taak - Eenheid - v_errormsg := 'Fout eenheid wijzigen '; - - SELECT COALESCE(ins_srtcontroledl_xcp_eenheid,0) - INTO v_eenheid - FROM ins_srtcontroledl_xcp - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - - IF rec.taakobjecteenheid IS NOT NULL AND fac.safe_to_number(rec.taakobjecteenheid) <> v_eenheid AND rec.ismjob = 0 - THEN - - UPDATE ins_srtcontroledl_xcp - SET ins_srtcontroledl_xcp_eenheid = fac.safe_to_number(rec.taakobjecteenheid) - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - v_count_taakobject:= 1 ; - - fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Eenheid: (' || v_eenheid || ') --> ' || rec.taakobjecteenheid ); - - END IF; - - -- Object-taak - Periode - v_errormsg := 'Fout periode wijzigen '; - - SELECT COALESCE(ins_srtcontroledl_xcp_periode,0) - INTO v_periode - FROM ins_srtcontroledl_xcp - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - - IF rec.taakobjectperiode IS NOT NULL AND fac.safe_to_number(rec.taakobjectperiode) <> v_periode - THEN - - UPDATE ins_srtcontroledl_xcp - SET ins_srtcontroledl_xcp_periode = fac.safe_to_number(rec.taakobjectperiode) - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - v_count_taakobject:= 1 ; - - fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Periode: (' || v_periode || ') --> ' || rec.taakobjectperiode ); - - END IF; - - -- Object-taak - Taakgroep - v_errormsg := 'Fout taakgroep wijzigen '; - - SELECT ins_srtcontroledl_xcp_groep - INTO v_taakgroep - FROM ins_srtcontroledl_xcp - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - - IF v_taakgroep IS NULL THEN v_taakgroep := '' ; - END IF; - - IF v_taakgroep <> rec.taakgroep AND rec.taakgroep IS NOT NULL - THEN - - UPDATE ins_srtcontroledl_xcp - SET ins_srtcontroledl_xcp_groep = rec.taakgroep - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - v_count_taakobject:= 1 ; - - fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Taakgroep: (' || v_taakgroep || ') --> ' || rec.taakgroep ); - - END IF; - - -- Object-taak - Eindjaar - v_errormsg := 'Fout eindjaar wijzigen '; - - SELECT ins_srtcontroledl_xcp_eind - INTO v_eindjaar - FROM ins_srtcontroledl_xcp - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - - -- IF v_eindjaar IS NULL THEN v_eindjaar := TO_DATE(01-01-1900, 'DD-MM-YYYY'); END IF; - - IF (v_eindjaar IS NULL and rec.taakobjecteindjaar IS NOT NULL) OR (v_eindjaar IS NOT NULL AND rec.taakobjecteindjaar IS NOT NULL AND v_eindjaar <> rec.taakobjecteindjaar) - THEN - - UPDATE ins_srtcontroledl_xcp - SET ins_srtcontroledl_xcp_eind = rec.taakobjecteindjaar - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - v_count_taakobject:= 1 ; - - fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Eindjaar: (' || v_eindjaar || ') --> ' || rec.taakobjecteindjaar ); - - END IF; - - -- Object-taak - Kosten - v_errormsg := 'Fout kosten wijzigen '; - - SELECT COALESCE(max(ins_srtcontroledl_xcp_materia),0) - INTO v_materiaalkosten - FROM ins_srtcontroledl_xcp - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - - IF v_materiaalkosten <> fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) AND rec.taakobjectmateriaal IS NOT NULL - THEN - - UPDATE ins_srtcontroledl_xcp - SET ins_srtcontroledl_xcp_materia = fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) - WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ; - v_count_taakobject:= 1 ; - - fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Kosten: (' || v_materiaalkosten || ') --> ' || rec.taakobjectmateriaal ); - - END IF; - - IF v_count_taakobject = 1 THEN - v_count_w_taakobject := v_count_w_taakobject + 1 ; - END IF; - - EXCEPTION - WHEN OTHERS - THEN - v_error_hint := v_errormsg; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - v_errormsg - || 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - v_error_hint); - v_ongeldig := 1; - END; - v_aanduiding := 'Einde loop ' || v_aanduiding; - END LOOP; - - v_ongeldig := 0; - - IF v_ongeldig = 0 - THEN - COMMIT; - - fac.imp_writelog ( - p_import_key, - 'S', - 'IMPORT TAKEN: aantal verwerkte regels: ' || TO_CHAR (v_count_verwerk) - || CHR(13) || CHR(10) - || 'Aantal nieuwe taken ingelezen: ' || TO_CHAR (v_count_n_taak) - || CHR(13) || CHR(10) - || 'Aantal nieuwe objecttaken ingelezen: ' || TO_CHAR (v_count_n_taakobject) - || CHR(13) || CHR(10) - || 'Aantal bestaande basistaken gewijzigd: ' || TO_CHAR (v_count_w_taak) - || CHR(13) || CHR(10) - || 'Aantal bestaande objecttaken gewijzigd: ' || TO_CHAR (v_count_w_taakobject), - ''); - - ELSE - ROLLBACK; - - END IF; - -END; -/ - ----------------------------------------------------------------------------- ------------------- EINDE MBJOB IMPORT -------------------------------------- ----------------------------------------------------------------------------- - ------ payload end ------ SET DEFINE OFF