PLGP#80738 -- Aanpassing oprognose import tbv fondsen

svn path=/Customer/trunk/; revision=68859
This commit is contained in:
Norbert Wassink
2025-04-25 09:12:06 +00:00
parent 11d1affbd8
commit bad8bd8ebe

View File

@@ -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