diff --git a/PLGP/PLGP.sql b/PLGP/PLGP.sql index 7288007b2..86cae9057 100644 --- a/PLGP/PLGP.sql +++ b/PLGP/PLGP.sql @@ -791,7 +791,7 @@ BEGIN fac.imp_getfield (v_newline, c_delim, v_ins_deel_aantal); -- Aantal fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde7); -- Eenheid aantal fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde8); -- Bouwjaar - fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde9); + fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde9); -- Foto fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde10); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde11); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde12); @@ -871,7 +871,8 @@ BEGIN 'EENHEID CAP: ' || UPPER (v_ins_kenmerkwaarde6) || CHR(10) || 'DEEL_AANTAL: ' || UPPER (v_ins_deel_aantal) || CHR(10) || 'EENHEID AANTAL: ' || UPPER (v_ins_kenmerkwaarde7) || CHR(10) || - 'BOUWJAAR: ' || UPPER (v_ins_kenmerkwaarde8)); + 'BOUWJAAR: ' || UPPER (v_ins_kenmerkwaarde8) || CHR(10) || + 'FOTO: ' || UPPER (v_ins_kenmerkwaarde9)); END IF; END IF; ELSE @@ -923,7 +924,7 @@ BEGIN END; -- - v_errormsg := 'Bepaal objectsoort'; + /* v_errormsg := 'Bepaal objectsoort'; BEGIN v_ins_srtdeel_code := TRIM(v_ins_srtdeel_code); SELECT ins_srtdeel_omschrijving, ins_srtdeel_key, ins_srtgroep_key @@ -977,6 +978,47 @@ BEGIN THEN v_ins_srtgroep_omschrijving := SUBSTR(v_ins_srtdeel_code, 1, 2) || '- Onbekend'; END; + END; */ + + + v_errormsg := 'Bepaal objectsoort'; + + BEGIN + v_ins_srtdeel_code := TRIM(v_ins_srtdeel_code); + SELECT ins_srtdeel_omschrijving, ins_srtdeel_key, ins_srtgroep_key + INTO v_ins_srtdeel_omschrijving, v_ins_srtdeel_key, v_ins_srtgroep_key + FROM ins_srtdeel + WHERE ins_srtdeel_verwijder IS NULL + AND ins_srtdeel_code = SUBSTR(v_ins_srtdeel_code,1,4); + + v_errormsg := 'Bepaal objectgroep'; + SELECT ins_srtgroep_omschrijving, ins_discipline_key + INTO v_ins_srtgroep_omschrijving, v_ins_discipline_key + FROM ins_srtgroep + WHERE ins_srtgroep_key = v_ins_srtgroep_key; + + v_errormsg := 'Bepaal discipline'; + SELECT ins_discipline_omschrijving + INTO v_ins_discipline_omschrijving + FROM ins_discipline + WHERE ins_discipline_key = v_ins_discipline_key; + + EXCEPTION WHEN NO_DATA_FOUND + THEN + v_errormsg := 'Nieuwe NL/SfB code'; + v_ins_discipline_omschrijving := 'MJOB'; + v_ins_srtdeel_omschrijving := SUBSTR(v_ins_srtdeel_code,1,4) || '-Onbekend'; + BEGIN + SELECT ins_srtgroep_omschrijving + INTO v_ins_srtgroep_omschrijving + FROM ins_v_srtgroep_gegevens + WHERE ins_discipline_omschrijving = 'MJOB' + AND SUBSTR(v_ins_srtdeel_code, 1, 2) = SUBSTR(ins_srtgroep_omschrijving, 1,2); + + EXCEPTION WHEN NO_DATA_FOUND + THEN + v_ins_srtgroep_omschrijving := SUBSTR(v_ins_srtdeel_code, 1, 2) || '-Onbekend'; + END; END; BEGIN @@ -1291,7 +1333,8 @@ IS v_ins_srtcontroledl_xcp_startdat VARCHAR2 (255); --DATE, v_ins_srtcontroledl_xcp_periode VARCHAR2 (255); --NUMBER(6,2) v_ins_srtcontroledl_xcp_perc VARCHAR2 (255); --NUMBER(3) - v_ins_srtcontroledl_xcp_eenh VARCHAR2 (255); + v_ins_srtcontroledl_xcp_eenheid VARCHAR2 (255); + v_ins_srtcontroledl_xcp_fonds VARCHAR2 (255); v_file_index NUMBER; @@ -1330,7 +1373,9 @@ BEGIN fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_startdat); fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_periode); fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_perc); - fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_eenh); + fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_eenheid); + fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_fonds); + v_aanduiding := '[' @@ -1358,6 +1403,8 @@ BEGIN AND UPPER (v_ins_srtcontroledl_xcp_startdat) = 'SRTCONTROLE_STARTJAAR' AND UPPER (v_ins_srtcontroledl_xcp_periode) = 'SRTCONTROLE_PERIODE' AND UPPER (v_ins_srtcontroledl_xcp_perc) = 'SRTCONTROLE_PERCENTAGE' + AND UPPER (v_ins_srtcontroledl_xcp_fonds) = 'SRTCONTROLE_FONDS' + AND UPPER (v_ins_srtcontroledl_xcp_eenheid) = 'SRTCONTROLE_EENHEID' THEN header_is_valid := 1; ELSE @@ -1376,7 +1423,9 @@ BEGIN 'SRTCONTROLE_LEVEL: ' || UPPER (v_ins_srtcontrole_level) || CHR(10) || 'SRTCONTROLE_STARTJAAR: ' || UPPER (v_ins_srtcontroledl_xcp_startdat) || CHR(10) || 'SRTCONTROLE_PERIODE: ' || UPPER (v_ins_srtcontroledl_xcp_periode) || CHR(10) || - 'SRTCONTROLE_PERCENTAGE: ' || UPPER (v_ins_srtcontroledl_xcp_perc)); + 'SRTCONTROLE_PERCENTAGE: ' || UPPER (v_ins_srtcontroledl_xcp_perc) || CHR(10) || + 'SRTCONTROLE_EENHEID: ' || UPPER (v_ins_srtcontroledl_xcp_eenheid) || CHR(10) || + 'SRTCONTROLE_FONDS: ' || UPPER (v_ins_srtcontroledl_xcp_fonds)); END IF; END IF; ELSE @@ -1530,7 +1579,8 @@ BEGIN fac_imp_csv_col08, fac_imp_csv_col09, fac_imp_csv_col10, - fac_imp_csv_col11) + fac_imp_csv_col11, + fac_imp_csv_col12) VALUES ( p_import_key, v_file_index, SUBSTR(v_alg_gebouw_code,1,12), @@ -1543,7 +1593,8 @@ BEGIN '01-01-' || v_ins_srtcontroledl_xcp_startdat, v_ins_srtcontroledl_xcp_periode, FAC.safe_to_number(v_ins_srtcontroledl_xcp_perc), - v_ins_srtcontroledl_xcp_eenh); + v_ins_srtcontroledl_xcp_eenheid, + SUBSTR(v_ins_srtcontroledl_xcp_fonds,1,60)); COMMIT; v_count_import := v_count_import + 1; @@ -1624,7 +1675,8 @@ IS fac_imp_csv_col08 ins_srtcontroledl_xcp_startdat, fac_imp_csv_col09 ins_srtcontroledl_xcp_periode, fac_imp_csv_col10 ins_srtcontroledl_xcp_perc, - fac_imp_csv_col11 ins_srtcontroledl_xcp_eenh + fac_imp_csv_col11 ins_srtcontroledl_xcp_eenh, + fac_imp_csv_col12 ins_srtcontroledl_xcp_fonds FROM fac_imp_csv WHERE fac_import_key=p_import_key; @@ -1651,246 +1703,263 @@ IS v_refdate DATE; BEGIN + + v_aanduiding := 'Kijk of de MJOB Taak groep'; + v_errormsg:=' Taagroep niet gevonden'; SELECT MIN(ctr_ins_discipline_key) INTO v_ctr_discipline_key FROM ctr_disc_params WHERE ctr_disc_params_ismjob = 1; + IF v_ctr_discipline_key>0 + THEN -- controleer op verwijderde records - FOR rec IN c - LOOP - BEGIN - v_ins_deel_key := NULL; - v_aanduiding := rec.alg_gebouw_code || '|' || rec.ins_deel_omschrijving || '|' || rec.ins_deel_externnr || '|' || rec.ins_srtcontrole_omschrijving; - v_errormsg := 'Gebouwcode kan niet gevonden worden'; - + FOR rec IN c + LOOP + v_ongeldig := 0; BEGIN - SELECT alg_gebouw_key - INTO v_alg_gebouw_key - FROM alg_gebouw g - WHERE alg_gebouw_verwijder IS NULL - AND UPPER(alg_gebouw_code) = rec.alg_gebouw_code; - EXCEPTION WHEN NO_DATA_FOUND - THEN - fac.imp_writelog ( - p_import_key, - 'E', - v_aanduiding || v_errormsg, - 'Gebouw is niet gevonden' - ); - END; + v_ins_deel_key := NULL; + v_aanduiding := rec.alg_gebouw_code || '|' || rec.ins_deel_omschrijving || '|' || rec.ins_deel_externnr || '|' || rec.ins_srtcontrole_omschrijving; + v_errormsg := 'Gebouwcode kan niet gevonden worden'; - v_errormsg := 'Objectid kan niet gevonden worden'; - IF rec.ins_deel_omschrijving IS NOT NULL - THEN BEGIN - SELECT dg.ins_deel_key, - sd.ins_srtdeel_key, - sd.ins_srtdeel_code, - dg.ins_deel_aantal, - ken.ins_kenmerkdeel_waarde - INTO v_ins_deel_key, v_ins_srtdeel_key, v_ins_srtdeel_code, v_ins_deel_aantal, v_ins_deel_eenheid - FROM ins_v_deel_gegevens dg, - ins_srtdeel sd, - (SELECT ikd.ins_deel_key, ikd.ins_kenmerkdeel_waarde - FROM ins_kenmerkdeel ikd, ins_kenmerk ik - WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_kenmerk_code = 'MJOB_EENHEID_AANTAL' - AND ikd.ins_kenmerkdeel_verwijder IS NULL) ken - WHERE dg.ins_srtdeel_key = sd.ins_srtdeel_key - AND UPPER(dg.ins_deel_omschrijving) = UPPER(rec.ins_deel_omschrijving) - AND ken.ins_deel_key(+) = dg.ins_deel_key - AND dg.alg_gebouw_upper = UPPER(rec.alg_gebouw_code); + SELECT alg_gebouw_key + INTO v_alg_gebouw_key + FROM alg_gebouw g + WHERE alg_gebouw_verwijder IS NULL + AND UPPER(alg_gebouw_code) = rec.alg_gebouw_code; + EXCEPTION WHEN NO_DATA_FOUND + THEN + fac.imp_writelog ( + p_import_key, + 'E', + v_aanduiding || v_errormsg, + 'Gebouw is niet gevonden' + ); + END; + + v_errormsg := 'Objectid kan niet gevonden worden'; + IF rec.ins_deel_omschrijving IS NOT NULL + THEN + BEGIN + SELECT dg.ins_deel_key, + sd.ins_srtdeel_key, + sd.ins_srtdeel_code, + dg.ins_deel_aantal, + ken.ins_kenmerkdeel_waarde + INTO v_ins_deel_key, v_ins_srtdeel_key, v_ins_srtdeel_code, v_ins_deel_aantal, v_ins_deel_eenheid + FROM ins_v_deel_gegevens dg, + ins_srtdeel sd, + (SELECT ikd.ins_deel_key, ikd.ins_kenmerkdeel_waarde + FROM ins_kenmerkdeel ikd, ins_kenmerk ik + WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key + AND ik.ins_kenmerk_code = 'MJOB_EENHEID_AANTAL' + AND ikd.ins_kenmerkdeel_verwijder IS NULL) ken + WHERE dg.ins_srtdeel_key = sd.ins_srtdeel_key + AND UPPER(dg.ins_deel_omschrijving) = UPPER(rec.ins_deel_omschrijving) + AND ken.ins_deel_key(+) = dg.ins_deel_key + AND dg.alg_gebouw_upper = UPPER(rec.alg_gebouw_code); + + EXCEPTION WHEN NO_DATA_FOUND + THEN + fac.imp_writelog ( + p_import_key, + 'E', + v_aanduiding || v_errormsg, + 'Object is niet gevonden op id ' + ); + v_ongeldig := 1; + END; + END IF; + + v_errormsg := 'Object externnr kan niet gevonden worden'; + IF rec.ins_deel_externnr IS NOT NULL AND v_ins_deel_key IS NULL + THEN + BEGIN + SELECT d.ins_deel_key, sd.ins_srtdeel_key, sd.ins_srtdeel_code, d.ins_deel_aantal + INTO v_ins_deel_key, v_ins_srtdeel_key, v_ins_srtdeel_code, v_ins_deel_aantal + FROM ins_v_deel_gegevens dg, ins_deel d, ins_srtdeel sd + WHERE dg.ins_deel_key = d.ins_deel_key + AND d.ins_srtdeel_key = sd.ins_srtdeel_key + AND UPPER(d.ins_deel_externnr) = UPPER(rec.ins_deel_externnr) + AND dg.alg_gebouw_upper = UPPER(rec.alg_gebouw_code); + EXCEPTION WHEN NO_DATA_FOUND + THEN + fac.imp_writelog ( + p_import_key, + 'E', + v_aanduiding || v_errormsg, + 'Object is niet gevonden op extern id ' + ); + v_ongeldig := 1; + END; + END IF; + + IF v_ongeldig=0 + THEN + -- kijk of de srtcontrole al bestaat + v_errormsg := 'Kijk of de taak al bestaat'; + BEGIN + SELECT ins_srtcontrole_key + INTO v_ins_srtcontrole_key + FROM ins_srtcontrole + WHERE ins_srtinstallatie_key = v_ins_srtdeel_key + AND ins_srtcontrole_niveau = 'S' + AND ins_srtcontrole_omschrijving = SUBSTR(v_ins_srtdeel_code || ' - ' || rec.ins_srtcontrole_omschrijving, 1, 60) + AND ctr_discipline_key = v_ctr_discipline_key; + + UPDATE ins_srtcontrole + SET ins_srtcontrole_level = rec.ins_srtcontrole_level + WHERE ins_srtcontrole_key = v_ins_srtcontrole_key; + + EXCEPTION WHEN NO_DATA_FOUND + THEN + v_errormsg := 'Aanmaken nieuwe taak'; + INSERT INTO ins_srtcontrole (ins_srtinstallatie_key, + ins_srtcontrole_niveau, + ins_srtcontrole_omschrijving, + ctr_discipline_key, + ins_srtcontrole_periode, + ins_srtcontrole_eenheid, + ins_srtcontrole_level, + ins_srtcontrole_materiaal, + ins_srtcontrole_percentage) + VALUES (v_ins_srtdeel_key, + 'S', + SUBSTR(v_ins_srtdeel_code || ' - ' || rec.ins_srtcontrole_omschrijving, 1, 60), + v_ctr_discipline_key, + 0, -- periode wordt in het xcp record opgegeven + 4, -- standaard jaar voor MJOB + rec.ins_srtcontrole_level, + 0, -- kosten worden in het xcp record vermeld. + 100) + RETURNING ins_srtcontrole_key INTO v_ins_srtcontrole_key; + END; - EXCEPTION WHEN NO_DATA_FOUND - THEN - fac.imp_writelog ( - p_import_key, - 'E', - v_aanduiding || v_errormsg, - 'Object is niet gevonden op id ' - ); - v_ongeldig := 1; - END; - END IF; + v_ins_srtcontroledl_xcp_perc:=FAC.safe_to_number(rec.ins_srtcontroledl_xcp_perc)*100; + + + IF v_ins_srtcontroledl_xcp_perc < 100 THEN + v_ins_srtcontroledl_xcp_aantal:=NULL; + ELSE + IF rec.ins_srtcontroledl_xcp_aantal <> v_ins_deel_aantal THEN + v_ins_srtcontroledl_xcp_aantal:=FAC.safe_to_number(rec.ins_srtcontroledl_xcp_aantal); + ELSE + v_ins_srtcontroledl_xcp_aantal:=NULL; + END IF; + + END IF; + + + -- wat is het aantal op de taak (in de oprognose staat een hvh_reken die we hier gebruiken ipv de ins_deel_aantal) + -- v_ins_srtcontroledl_xcp_aantal := FAC.safe_to_number(rec.ins_srtcontroledl_xcp_aantal); + -- IF (v_ins_srtcontroledl_xcp_aantal=1 AND v_ins_deel_aantal>1) + -- THEN + -- v_ins_srtcontroledl_xcp_aantal:= v_ins_deel_aantal; + -- END IF; + + - v_errormsg := 'Object externnr kan niet gevonden worden'; - IF rec.ins_deel_externnr IS NOT NULL AND v_ins_deel_key IS NULL - THEN - BEGIN - SELECT d.ins_deel_key, sd.ins_srtdeel_key, sd.ins_srtdeel_code, d.ins_deel_aantal - INTO v_ins_deel_key, v_ins_srtdeel_key, v_ins_srtdeel_code, v_ins_deel_aantal - FROM ins_v_deel_gegevens dg, ins_deel d, ins_srtdeel sd - WHERE dg.ins_deel_key = d.ins_deel_key - AND d.ins_srtdeel_key = sd.ins_srtdeel_key - AND UPPER(d.ins_deel_externnr) = UPPER(rec.ins_deel_externnr) - AND dg.alg_gebouw_upper = UPPER(rec.alg_gebouw_code); - EXCEPTION WHEN NO_DATA_FOUND - THEN - fac.imp_writelog ( - p_import_key, - 'E', - v_aanduiding || v_errormsg, - 'Object is niet gevonden op extern id ' - ); - v_ongeldig := 1; - END; - END IF; + -- Ophalen freeze jaar en eerst stardatum + v_ins_srtcontroledl_xcp_startdat:=FAC.safe_to_date(rec.ins_srtcontroledl_xcp_startdat, 'dd-mm-yyyy'); + v_refdate := FAC.safe_to_date('01-01-'||fac.getsetting('mjb_start_year'),'DD-MM-YYYY'); + + IF (v_ins_srtcontroledl_xcp_startdat<=v_refdate) + THEN + v_ins_srtcontroledl_xcp_startdat := plgp.getfirststartdate(v_ins_srtcontroledl_xcp_startdat, v_refdate,rec.ins_srtcontroledl_xcp_periode); + END IF; + + + --IF FAC.safe_to_number(rec.ins_srtcontroledl_xcp_perc)<1 THEN + -- v_ins_srtcontroledl_xcp_perc:=FAC.safe_to_number(rec.ins_srtcontroledl_xcp_perc)*100; + --ELSE + -- v_ins_srtcontroledl_xcp_perc:=FAC.safe_to_number(rec.ins_srtcontroledl_xcp_perc); + --END IF; + + -- kijk of de taak uitzondering al bestaat + + v_errormsg := 'Kijk of de XCP taak al bestaat'; + BEGIN + + + SELECT ins_srtcontroledl_xcp_key + INTO v_ins_srtcontroledl_xcp_key + FROM ins_srtcontroledl_xcp + WHERE ins_deel_key = v_ins_deel_key + AND ins_srtcontrole_key = v_ins_srtcontrole_key; - -- kijk of de srtcontrole al bestaat - v_errormsg := 'Kijk of de taak al bestaat'; - BEGIN - SELECT ins_srtcontrole_key - INTO v_ins_srtcontrole_key - FROM ins_srtcontrole - WHERE ins_srtinstallatie_key = v_ins_srtdeel_key - AND ins_srtcontrole_niveau = 'S' - AND ins_srtcontrole_omschrijving = SUBSTR(v_ins_srtdeel_code || ' - ' || rec.ins_srtcontrole_omschrijving, 1, 60) - AND ctr_discipline_key = v_ctr_discipline_key; + UPDATE ins_srtcontroledl_xcp + SET ins_srtcontroledl_xcp_periode = FAC.safe_to_number(rec.ins_srtcontroledl_xcp_periode), + ins_srtcontroledl_xcp_aantal = v_ins_srtcontroledl_xcp_aantal, + ins_srtcontroledl_xcp_materia = FAC.safe_to_number(rec.ins_srtcontroledl_xcp_materia), + ins_srtcontroledl_xcp_perc = v_ins_srtcontroledl_xcp_perc, + ins_srtcontroledl_xcp_startdat = v_ins_srtcontroledl_xcp_startdat, + ins_srtcontroledl_xcp_aanteh = rec.ins_srtcontroledl_xcp_eenh, + ins_srtcontroledl_xcp_groep = rec.ins_srtcontroledl_xcp_fonds + WHERE ins_srtcontroledl_xcp_key = v_ins_srtcontroledl_xcp_key; - UPDATE ins_srtcontrole - SET ins_srtcontrole_level = rec.ins_srtcontrole_level - WHERE ins_srtcontrole_key = v_ins_srtcontrole_key; - - EXCEPTION WHEN NO_DATA_FOUND - THEN - v_errormsg := 'Aanmaken nieuwe taak'; - INSERT INTO ins_srtcontrole (ins_srtinstallatie_key, - ins_srtcontrole_niveau, - ins_srtcontrole_omschrijving, - ctr_discipline_key, - ins_srtcontrole_periode, - ins_srtcontrole_eenheid, - ins_srtcontrole_level, - ins_srtcontrole_materiaal, - ins_srtcontrole_percentage) - VALUES (v_ins_srtdeel_key, - 'S', - SUBSTR(v_ins_srtdeel_code || ' - ' || rec.ins_srtcontrole_omschrijving, 1, 60), - v_ctr_discipline_key, - 0, -- periode wordt in het xcp record opgegeven - 4, -- standaard jaar voor MJOB - rec.ins_srtcontrole_level, - 0, -- kosten worden in het xcp record vermeld. - 100) - RETURNING ins_srtcontrole_key INTO v_ins_srtcontrole_key; - END; - - v_ins_srtcontroledl_xcp_perc:=FAC.safe_to_number(rec.ins_srtcontroledl_xcp_perc)*100; - - - IF v_ins_srtcontroledl_xcp_perc < 100 THEN - v_ins_srtcontroledl_xcp_aantal:=NULL; - ELSE - IF rec.ins_srtcontroledl_xcp_aantal <> v_ins_deel_aantal THEN - v_ins_srtcontroledl_xcp_aantal:=FAC.safe_to_number(rec.ins_srtcontroledl_xcp_aantal); - ELSE - v_ins_srtcontroledl_xcp_aantal:=NULL; - END IF; - - END IF; - - - -- wat is het aantal op de taak (in de oprognose staat een hvh_reken die we hier gebruiken ipv de ins_deel_aantal) - -- v_ins_srtcontroledl_xcp_aantal := FAC.safe_to_number(rec.ins_srtcontroledl_xcp_aantal); - -- IF (v_ins_srtcontroledl_xcp_aantal=1 AND v_ins_deel_aantal>1) - -- THEN - -- v_ins_srtcontroledl_xcp_aantal:= v_ins_deel_aantal; - -- END IF; - - - - -- Ophalen freeze jaar en eerst stardatum - v_ins_srtcontroledl_xcp_startdat:=FAC.safe_to_date(rec.ins_srtcontroledl_xcp_startdat, 'dd-mm-yyyy'); - v_refdate := FAC.safe_to_date('01-01-'||fac.getsetting('mjb_start_year'),'DD-MM-YYYY'); - - IF (v_ins_srtcontroledl_xcp_startdat<=v_refdate) - THEN - v_ins_srtcontroledl_xcp_startdat := plgp.getfirststartdate(v_ins_srtcontroledl_xcp_startdat, v_refdate,rec.ins_srtcontroledl_xcp_periode); - END IF; - - - --IF FAC.safe_to_number(rec.ins_srtcontroledl_xcp_perc)<1 THEN - -- v_ins_srtcontroledl_xcp_perc:=FAC.safe_to_number(rec.ins_srtcontroledl_xcp_perc)*100; - --ELSE - -- v_ins_srtcontroledl_xcp_perc:=FAC.safe_to_number(rec.ins_srtcontroledl_xcp_perc); - --END IF; - - -- kijk of de taak uitzondering al bestaat - - v_errormsg := 'Kijk of de XCP taak al bestaat'; - BEGIN - - - SELECT ins_srtcontroledl_xcp_key - INTO v_ins_srtcontroledl_xcp_key - FROM ins_srtcontroledl_xcp - WHERE ins_deel_key = v_ins_deel_key - AND ins_srtcontrole_key = v_ins_srtcontrole_key; - - UPDATE ins_srtcontroledl_xcp - SET ins_srtcontroledl_xcp_periode = FAC.safe_to_number(rec.ins_srtcontroledl_xcp_periode), - ins_srtcontroledl_xcp_aantal = v_ins_srtcontroledl_xcp_aantal, - ins_srtcontroledl_xcp_materia = FAC.safe_to_number(rec.ins_srtcontroledl_xcp_materia), - ins_srtcontroledl_xcp_perc = FAC.safe_to_number(rec.ins_srtcontroledl_xcp_perc), - ins_srtcontroledl_xcp_startdat = v_ins_srtcontroledl_xcp_startdat - WHERE ins_srtcontroledl_xcp_key = v_ins_srtcontroledl_xcp_key; - - EXCEPTION WHEN NO_DATA_FOUND - THEN - v_errormsg := 'Aanmaken nieuwe taak uitzondering '; - INSERT INTO ins_srtcontroledl_xcp (ins_deel_key, - ins_srtcontrole_key, - ins_srtcontroledl_xcp_periode, - ins_srtcontroledl_xcp_aantal, - ins_srtcontroledl_xcp_materia, - ins_srtcontroledl_xcp_perc, - ins_srtcontroledl_xcp_startdat, - ins_srtcontroledl_xcp_aanteh) - VALUES (v_ins_deel_key, - v_ins_srtcontrole_key, - FAC.safe_to_number(rec.ins_srtcontroledl_xcp_periode), - v_ins_srtcontroledl_xcp_aantal, - FAC.safe_to_number(rec.ins_srtcontroledl_xcp_materia), - v_ins_srtcontroledl_xcp_perc, - v_ins_srtcontroledl_xcp_startdat, - rec.ins_srtcontroledl_xcp_eenh) - RETURNING ins_srtcontroledl_xcp_key INTO v_ins_srtcontroledl_xcp_key; - END; - - -- Moeten we nu kijken welke XCP taken er zijn aangemaakt en of deze al afgerond hadden moeten zijn zodat ze niet worden doorgeschoven naar het volgene jaar ? - - - - - - - - fac.imp_writelog (p_import_key, 'I', v_aanduiding || 'Taak is aangemaakt: ' || v_aanduiding, ''); - COMMIT; - - -- TODO moeten we ook taken gaan verwijderen? - - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 200); - v_errormsg := - v_errormsg - || ' ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - ''); - COMMIT; - END; - END LOOP; + EXCEPTION WHEN NO_DATA_FOUND + THEN + v_errormsg := 'Aanmaken nieuwe taak uitzondering '; + INSERT INTO ins_srtcontroledl_xcp (ins_deel_key, + ins_srtcontrole_key, + ins_srtcontroledl_xcp_periode, + ins_srtcontroledl_xcp_aantal, + ins_srtcontroledl_xcp_materia, + ins_srtcontroledl_xcp_perc, + ins_srtcontroledl_xcp_startdat, + ins_srtcontroledl_xcp_aanteh, + ins_srtcontroledl_xcp_groep) + VALUES (v_ins_deel_key, + v_ins_srtcontrole_key, + FAC.safe_to_number(rec.ins_srtcontroledl_xcp_periode), + v_ins_srtcontroledl_xcp_aantal, + FAC.safe_to_number(rec.ins_srtcontroledl_xcp_materia), + v_ins_srtcontroledl_xcp_perc, + v_ins_srtcontroledl_xcp_startdat, + rec.ins_srtcontroledl_xcp_eenh, + rec.ins_srtcontroledl_xcp_fonds) + RETURNING ins_srtcontroledl_xcp_key INTO v_ins_srtcontroledl_xcp_key; + END; + + + + fac.imp_writelog (p_import_key, 'I', v_aanduiding || 'Taak is aangemaakt: ' || v_aanduiding, ''); + COMMIT; + ELSE + fac.imp_writelog (p_import_key, + 'E', + v_aanduiding || v_errormsg, + ''); + END IF; + + EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 200); + v_errormsg := + v_errormsg + || ' ORACLE (error ' + || oracle_err_num + || '/' + || oracle_err_mes + || ')'; + fac.imp_writelog (p_import_key, + 'E', + v_aanduiding || v_errormsg, + ''); + COMMIT; + END; + + END LOOP; + ELSE + fac.imp_writelog (p_import_key, + 'E', + v_aanduiding || v_errormsg, + ''); + END IF; END; / -- EIND MJOB Taken