HMOD#58494 -- Implementatie Humanitas Onder Dak - Koppelingen voor personen koffersysteem

svn path=/Customer/trunk/; revision=45274
This commit is contained in:
Jos Migo
2019-12-18 15:46:26 +00:00
parent 3a88715ba8
commit 63b92ee4ce

View File

@@ -181,7 +181,277 @@ EXCEPTION
END hmod_update_perslid; END hmod_update_perslid;
/ /
CREATE OR REPLACE PROCEDURE hmod_import_koffer (p_import_key IN NUMBER)
AS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count NUMBER;
v_ongeldig NUMBER (1);
v_mode NUMBER (1);
v_aanduiding VARCHAR2 (200);
-- v_all_null BOOLEAN;
v_count_error NUMBER (10);
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
-- De importvelden:
v_versiedatum VARCHAR2 (15);
v_omschrijving VARCHAR2 (250);
v_code VARCHAR2 (30);
v_token VARCHAR2 (20);
v_mob VARCHAR2 (20);
v_hit VARCHAR2 (20);
v_lap_en_sim VARCHAR2 (20);
v_lapt VARCHAR2 (20);
v_tnc VARCHAR2 (20);
v_tnc_omschrijving VARCHAR2 (100);
v_facilitor VARCHAR2 (20);
v_adp VARCHAR2 (20);
v_absentiemanager VARCHAR2 (20);
v_regas VARCHAR2 (20);
v_checks VARCHAR2 (20);
v_accountview VARCHAR2 (20);
v_elvy VARCHAR2 (20);
v_hodnet VARCHAR2 (20);
v_proactive VARCHAR2 (20);
CURSOR c
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
-- Vorige inlees eerst verwijderen
---- Voor hmod_koffersysteem geldt dat je inlezen op dezelfde dag mag/kunt overschrijven. Voorgaande versiedatums blijven staan.
DELETE FROM hmod_imp_koffersysteem
WHERE versiedatum = TO_CHAR(TRUNC (SYSDATE),'DD-MM-YYYY');
COMMIT;
header_is_valid := 0;
v_ongeldig := 0;
v_count_error := 0;
header_is_valid := 0;
v_count_tot := 0;
v_count_import := 0;
FOR rec IN c
LOOP
BEGIN
v_newline := rec.fac_imp_file_line;
v_errormsg := 'Fout opvragen te importeren rij';
v_aanduiding := '';
-- Lees alle veldwaarden: versiedatum;omschrijving;code;token;mob;hit;lap_en_sim;lapt;tnc;tnc omschrijving;facilitor;adp;absentiemanager;regas;checks;accountview;elvy;hodnet;proactive
v_errormsg := 'Fout opvragen te importeren kolom/rij 1';
fac.imp_getfield (v_newline, c_fielddelimitor, v_versiedatum);
v_errormsg := 'Fout opvragen te importeren kolom/rij 2';
fac.imp_getfield (v_newline, c_fielddelimitor, v_omschrijving);
v_errormsg := 'Fout opvragen te importeren kolom/rij 3';
fac.imp_getfield (v_newline, c_fielddelimitor, v_code);
fac.imp_getfield (v_newline, c_fielddelimitor, v_token);
fac.imp_getfield (v_newline, c_fielddelimitor, v_mob);
fac.imp_getfield (v_newline, c_fielddelimitor, v_hit);
fac.imp_getfield (v_newline, c_fielddelimitor, v_lap_en_sim);
fac.imp_getfield (v_newline, c_fielddelimitor, v_lapt);
fac.imp_getfield (v_newline, c_fielddelimitor, v_tnc);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_tnc_omschrijving);
fac.imp_getfield (v_newline, c_fielddelimitor, v_facilitor);
fac.imp_getfield (v_newline, c_fielddelimitor, v_adp);
fac.imp_getfield (v_newline, c_fielddelimitor, v_absentiemanager);
fac.imp_getfield (v_newline, c_fielddelimitor, v_regas);
fac.imp_getfield (v_newline, c_fielddelimitor, v_checks);
fac.imp_getfield (v_newline, c_fielddelimitor, v_accountview);
fac.imp_getfield (v_newline, c_fielddelimitor, v_elvy);
fac.imp_getfield (v_newline, c_fielddelimitor, v_hodnet);
fac.imp_getfield (v_newline, c_fielddelimitor, v_proactive);
v_aanduiding :=
v_versiedatum || '|' || v_omschrijving || '|' || v_code;
v_count_tot := v_count_tot + 1;
-- Skip until the header is found
IF header_is_valid = 0
THEN
IF v_versiedatum = 'versiedatum'
AND v_omschrijving = 'omschrijving'
AND v_code = 'code'
AND v_token = 'token'
AND v_mob = 'mob'
AND v_hit = 'hit'
AND v_lap_en_sim = 'lap_en_sim'
AND v_lapt = 'lapt'
AND v_tnc = 'tnc'
AND v_tnc_omschrijving = 'tnc omschrijving'
AND v_facilitor = 'facilitor'
AND v_adp = 'adp'
AND v_absentiemanager = 'absentiemanager'
AND v_regas = 'regas'
AND v_checks = 'checks'
AND v_accountview = 'accountview'
AND v_elvy = 'elvy'
AND v_hodnet = 'hodnet'
AND v_proactive = 'proactive'
THEN
header_is_valid := 1;
END IF;
ELSE -- Header OK. Vanaf hier in de LOOP eventueel variabele vullen.
BEGIN
v_errormsg := 'Versiedatum wordt sysdatum ';
SELECT TO_CHAR (TRUNC (SYSDATE), 'DD-MM-YYYY')
INTO v_versiedatum
FROM DUAL;
END;
INSERT INTO hmod_imp_koffersysteem (versiedatum,
omschrijving,
code,
token,
mob,
hit,
lap_en_sim,
lapt,
tnc,
tnc_omschrijving,
facilitor,
adp,
absentiemanager,
regas,
checks,
accountview,
elvy,
hodnet,
proactive)
VALUES (v_versiedatum,
v_omschrijving,
v_code,
v_token,
v_mob,
v_hit,
v_lap_en_sim,
v_lapt,
v_tnc,
v_tnc_omschrijving,
v_facilitor,
v_adp,
v_absentiemanager,
v_regas,
v_checks,
v_accountview,
v_elvy,
v_hodnet,
v_proactive);
END IF;
END;
END LOOP;
IF header_is_valid = 0
THEN
fac.imp_writelog (p_import_key,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!');
ELSE
-- Afsluiting: Rollback/Delete tabel als er fouten in csv zitten. Initieel voor import koffersysteem nog zonder foutcheck opgezet, dus ook geen v_ongeldig aan het vullen...
IF v_ongeldig > 0
THEN
ROLLBACK;
-- Met rollback haalt hij ook al mijn errors en warnings weg!?? Daarom een DELETE
-- delete from hmod_imp_contractscope where <alleen de ingelzen versiedatum ;
COMMIT;
fac.imp_writelog (
p_import_key,
'E',
'Niet ingelezen. Staan aantal ongeldige regels in csv-bestand. Zie bovenstaande ERRORS. Pas deze eerst aan!',
'');
ELSE
COMMIT;
fac.imp_writelog (
p_import_key,
'S',
'Aantal ingelezen regels: ' || TO_CHAR (v_count_import),
'');
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
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 || ' - Check !!!! : ' || v_aanduiding,
'');
END hmod_import_koffer;
/
CREATE OR REPLACE PROCEDURE hmod_update_koffer (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_mes VARCHAR2 (150);
currentversion fac_module.fac_module_version%TYPE;
v_aanduiding VARCHAR (100);
v_count NUMBER;
BEGIN
-- hmod_update_koffer (p_import_key);
NULL;
END hmod_update_koffer;
/
CREATE OR REPLACE VIEW hmod_v_koffersysteem
(
OMSCHRIJVING_TOTAAL,
VERSIEDATUM,
OMSCHRIJVING,
CODE,
TOKEN,
MOB,
HIT,
LAP_EN_SIM,
TNC,
TNC_OMSCHRIJVING,
FACILITOR,
ADP,
ABSENTIEMANAGER,
REGAS,
CHECKS,
ACCOUNTVIEW,
ELVY,
HODNET,
PROACTIVE
)
AS
SELECT OMSCHRIJVING || ' (' || code || ')' AS omschrijving_totaal,
versiedatum,
omschrijving,
code,
token,
mob,
hit,
lap_en_sim,
tnc,
tnc_omschrijving,
facilitor,
adp,
absentiemanager,
regas,
checks,
accountview,
elvy,
hodnet,
proactive
FROM hmod_imp_koffersysteem;
------ payload end ------ ------ payload end ------