UWVA#41977: KPN(_PRJ)-import/Robuuster bij dubbele aanlevering van bestanden
svn path=/Customer/trunk/; revision=35349
This commit is contained in:
@@ -21,14 +21,12 @@ SET DEFINE OFF
|
||||
-- UWVA#15040 Import van projectkostenplaatsen die niet voorkomen in de KPN import
|
||||
CREATE OR REPLACE PROCEDURE uwva_import_kpn_prj (p_import_key IN NUMBER)
|
||||
AS
|
||||
CURSOR c_cursor
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
|
||||
NEXT_RECORD c_cursor%ROWTYPE;
|
||||
CURSOR c_cursor IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
next_record c_cursor%ROWTYPE;
|
||||
|
||||
v_newline VARCHAR2 (1000); -- Input line
|
||||
v_field VARCHAR2 (100);
|
||||
@@ -37,7 +35,6 @@ AS
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
header_is_valid NUMBER;
|
||||
v_empty VARCHAR2 (100);
|
||||
v_afdeling VARCHAR2 (100);
|
||||
v_status VARCHAR2 (100);
|
||||
v_omschrijving VARCHAR2 (100);
|
||||
@@ -48,12 +45,12 @@ BEGIN
|
||||
|
||||
header_is_valid := 0;
|
||||
|
||||
DELETE FROM uwva_imp_kpn_prj;
|
||||
DELETE FROM uwva_imp_kpn_prj;
|
||||
|
||||
FOR NEXT_RECORD IN c_cursor
|
||||
LOOP
|
||||
BEGIN
|
||||
v_newline := NEXT_RECORD.FAC_IMP_FILE_LINE;
|
||||
v_newline := next_record.FAC_IMP_FILE_LINE;
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_boekingsunit);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_project);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_omschrijving);
|
||||
@@ -86,17 +83,11 @@ BEGIN
|
||||
SUBSTR (v_omschrijving, 1, 60),
|
||||
SUBSTR (v_boekingsunit, 1, 6));
|
||||
ELSE
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'E',
|
||||
'Invalid import file',
|
||||
'Er is een ongeldige Projectkostenplaats aangetroffen in het importbestand:'
|
||||
|| SUBSTR (v_project, 1, 30)
|
||||
);
|
||||
fac.imp_writelog (p_import_key, 'E', 'Invalid import file', 'Er is een ongeldige Projectkostenplaats aangetroffen in het importbestand:' || SUBSTR (v_project, 1, 30));
|
||||
|
||||
-- UWVA#23269: Hier stond uwva_imp_kpn en dat leek mij niet goed (zeker met 't
|
||||
-- vervolg in uwva_update_abs() zoals dat tegenwoordig het geval is)!!!
|
||||
DELETE FROM uwva_imp_kpn_prj; -- maak uwva_imp_kpn_prj weer leeg.
|
||||
DELETE FROM uwva_imp_kpn_prj; -- maak uwva_imp_kpn_prj weer leeg.
|
||||
EXIT; -- kostenplaats niet 6 posities; voorloopnullen kunnen weggevallen zijn.
|
||||
END IF;
|
||||
END IF;
|
||||
@@ -106,48 +97,41 @@ BEGIN
|
||||
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'E',
|
||||
'Invalid import file',
|
||||
'Er is geen geldige Header aangetroffen en in het importbestand'
|
||||
);
|
||||
fac.imp_writelog (p_import_key, 'E', 'Invalid import file', 'Er is geen geldige Header aangetroffen en in het importbestand');
|
||||
END IF;
|
||||
|
||||
-- UWVA#41977: Import robuust gemaakt tegen dubbele aanlevering van KPN_PRJ-bestand.
|
||||
DELETE FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
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_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'E', v_errormsg, '');
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE uwva_update_kpn_prj (p_import_key IN NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
NULL;
|
||||
-- update wordt door de uwva_update_kpn procedure uitgevoerd.
|
||||
NULL;
|
||||
END;
|
||||
/
|
||||
|
||||
-- UWVA#7 Import van kostenplaatsen
|
||||
-- UWVA#20021 Nu met organisatiestructuur en budgethouders + mandaten
|
||||
-- (waardoor budgethouderimport overbodig wordt)
|
||||
CREATE OR REPLACE PROCEDURE uwva_import_kpn (
|
||||
p_import_key IN NUMBER
|
||||
)
|
||||
CREATE OR REPLACE PROCEDURE uwva_import_kpn (p_import_key IN NUMBER)
|
||||
AS
|
||||
CURSOR c_cursor IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
next_record c_cursor%ROWTYPE;
|
||||
next_record c_cursor%ROWTYPE;
|
||||
|
||||
v_newline VARCHAR2 (1000); -- Input line
|
||||
v_field VARCHAR2 (100);
|
||||
@@ -180,7 +164,6 @@ BEGIN
|
||||
|
||||
FOR next_record IN c_cursor LOOP
|
||||
BEGIN
|
||||
|
||||
v_newline := next_record.FAC_IMP_FILE_LINE;
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_omschrijving);
|
||||
@@ -194,40 +177,47 @@ BEGIN
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_nr);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_mandaatcode);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_date1);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_date2);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_date2);
|
||||
|
||||
IF ( header_is_valid = 0
|
||||
AND v_afdeling = 'code_eenheid' --code_eenheid
|
||||
AND v_omschrijving = 'naam_eenheid' --naam_eenheid
|
||||
AND v_niv2_code = 'code_eenheid_niveau_2' --code_eenheid_niveau_2
|
||||
AND v_afdeling = 'code_eenheid' --code_eenheid
|
||||
AND v_omschrijving = 'naam_eenheid' --naam_eenheid
|
||||
AND v_niv2_code = 'code_eenheid_niveau_2' --code_eenheid_niveau_2
|
||||
AND v_niv2_oms = 'naam_eenheid_nivo_2' --naam_eenheid_nivo_2
|
||||
AND v_niv3_code = 'code_eenheid_niveau_3' --code_eenheid_niveau_3
|
||||
AND v_niv4_code = 'code_eenheid_niveau_4' --code_eenheid_niveau_4
|
||||
AND v_niv5_code = 'code_eenheid_niveau_5' --code_eenheid_niveau_5
|
||||
AND v_niv6_code = 'code_eenheid_niveau_6' --code_eenheid_niveau_6
|
||||
AND v_niv7_code = 'code_eenheid_niveau_7' --code_eenheid_niveau_7
|
||||
AND v_perslid_nr = 'wnr_leidinggevende' --wnr_leidinggevende
|
||||
AND v_mandaatcode = 'code_mandaat' --code_mandaat
|
||||
AND v_date1 = 'start_datum' --start_datum
|
||||
AND v_date2 = 'eind_datum' --eind_datum
|
||||
AND v_niv3_code = 'code_eenheid_niveau_3' --code_eenheid_niveau_3
|
||||
AND v_niv4_code = 'code_eenheid_niveau_4' --code_eenheid_niveau_4
|
||||
AND v_niv5_code = 'code_eenheid_niveau_5' --code_eenheid_niveau_5
|
||||
AND v_niv6_code = 'code_eenheid_niveau_6' --code_eenheid_niveau_6
|
||||
AND v_niv7_code = 'code_eenheid_niveau_7' --code_eenheid_niveau_7
|
||||
AND v_perslid_nr = 'wnr_leidinggevende' --wnr_leidinggevende
|
||||
AND v_mandaatcode = 'code_mandaat' --code_mandaat
|
||||
AND v_date1 = 'start_datum' --start_datum
|
||||
AND v_date2 = 'eind_datum' --eind_datum
|
||||
)
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
ELSE
|
||||
IF (header_is_valid = 1 AND v_afdeling != ' ')
|
||||
THEN
|
||||
IF (LENGTH(v_afdeling) >= 6) -- lengte van kostenplaats moet minimaal 6 posities zijn.
|
||||
IF (LENGTH (v_afdeling) >= 6) -- lengte van kostenplaats moet minimaal 6 posities zijn.
|
||||
THEN
|
||||
IF (SYSDATE >= TO_DATE(v_date1, 'dd-mm-yyyy') AND SYSDATE <= TO_DATE(v_date2, 'dd-mm-yyyy'))
|
||||
THEN v_status := 'A';
|
||||
ELSE v_status := 'I';
|
||||
END IF;
|
||||
IF (SYSDATE >= TO_DATE (v_date1, 'dd-mm-yyyy') AND SYSDATE <= TO_DATE (v_date2, 'dd-mm-yyyy'))
|
||||
THEN v_status := 'A';
|
||||
ELSE v_status := 'I';
|
||||
END IF;
|
||||
|
||||
INSERT INTO uwva_imp_kpn
|
||||
(afdeling, status,
|
||||
(afdeling,
|
||||
status,
|
||||
omschrijving,
|
||||
niv2_code, niv3_code, niv4_code, niv5_code, niv6_code, niv7_code,
|
||||
perslid_nr, mandaatcode
|
||||
niv2_code,
|
||||
niv3_code,
|
||||
niv4_code,
|
||||
niv5_code,
|
||||
niv6_code,
|
||||
niv7_code,
|
||||
perslid_nr,
|
||||
mandaatcode
|
||||
)
|
||||
VALUES (SUBSTR (v_afdeling, 1, 6), SUBSTR (v_status, 1, 1),
|
||||
SUBSTR (v_omschrijving, 1, 60),
|
||||
@@ -245,37 +235,29 @@ BEGIN
|
||||
SUBSTR (v_perslid_nr, 1, 16), SUBSTR(v_mandaatcode, 1, 6)
|
||||
);
|
||||
ELSE
|
||||
fac.imp_writelog
|
||||
(p_import_key,
|
||||
'E',
|
||||
'Invalid import file',
|
||||
'Er is een ongeldige Kostenplaats aangetroffen in het importbestand. Een kostenplaats moet uit 6 posities bestaan. kostenplaats:' || SUBSTR (v_afdeling, 1, 6)
|
||||
);
|
||||
DELETE FROM uwva_imp_kpn; -- maak uwva_imp_kpn weer leeg.
|
||||
EXIT; -- kostenplaats heeft geen 6 posities. Voorloopnullen kunnen weggevallen zijn.
|
||||
fac.imp_writelog (p_import_key, 'E', 'Invalid import file', 'Er is een ongeldige Kostenplaats aangetroffen in het importbestand. Een kostenplaats moet uit 6 posities bestaan. kostenplaats:' || SUBSTR (v_afdeling, 1, 6));
|
||||
DELETE FROM uwva_imp_kpn; -- maak uwva_imp_kpn weer leeg.
|
||||
EXIT; -- kostenplaats heeft geen 6 posities. Voorloopnullen kunnen weggevallen zijn.
|
||||
END IF;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
fac.imp_writelog
|
||||
(p_import_key,
|
||||
'E',
|
||||
'Invalid import file',
|
||||
'Er is geen geldige Header aangetroffen en in het importbestand'
|
||||
);
|
||||
fac.imp_writelog (p_import_key, 'E', 'Invalid import file', 'Er is geen geldige Header aangetroffen en in het importbestand');
|
||||
END IF;
|
||||
|
||||
-- UWVA#41977: Import robuust gemaakt tegen dubbele aanlevering van KPN-bestand.
|
||||
DELETE FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'E', v_errormsg, '');
|
||||
END;
|
||||
/
|
||||
@@ -6157,7 +6139,7 @@ AS
|
||||
prs_perslidwerkplek pw,
|
||||
alg_locatie l
|
||||
WHERE p.prs_perslid_nr IS NOT NULL
|
||||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||||
AND w.prs_werkplek_key(+) = pw.prs_werkplek_key
|
||||
AND p.prs_perslid_key = pw.prs_perslid_key(+)
|
||||
AND w.alg_locatie_key = l.alg_locatie_key(+)
|
||||
|
||||
Reference in New Issue
Block a user