YKPN#63398 -- Toevoegen budgethouder en leidinggevende aan import

YKPN#64329 -- Koppeling met SABA realiseren voor inkoop werkplekinrichting
YKPN#64379 -- Fiatteurs voor facturen wijzigen

svn path=/Customer/trunk/; revision=48509
This commit is contained in:
Arthur Egberink
2020-10-19 07:56:58 +00:00
parent 73fb17aa8a
commit 05bb3480fa

View File

@@ -1040,6 +1040,8 @@ AS
v_opdr_key mld_opdr.mld_opdr_key%TYPE;
v_contract_key cnt_contract.cnt_contract_key%TYPE;
v_bestelopdr_key bes_bestelopdr.bes_bestelopdr_key%TYPE;
v_eerste_fiatteur prs_perslid.prs_perslid_key%TYPE;
v_tweede_fiatteur prs_perslid.prs_perslid_key%TYPE;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
@@ -1047,6 +1049,9 @@ AS
oracle_err_mes VARCHAR2 (200);
BEGIN
v_eerste_fiatteur := 93969; -- Rob Grevenstette
v_tweede_fiatteur := 92323; -- Walter van der Wilt
v_errorhint := 'Bepaal type factuur';
-- Laten we eens eerst kijken of we het over een contract of een opdracht hebben
SELECT mld_opdr_key, cnt_contract_key, bes_bestelopdr_key, fin_factuur_statuses_key, fin_factuur_totaal
@@ -1116,25 +1121,25 @@ AS
-- geen goedkeuring nodig
NULL;
ELSE
-- Heeft Walter van der Wilt 92323 de factuur al goedgekeurd?
v_errorhint := 'Heeft Walter van der Wilt 92323 de factuur al goedgekeurd?';
-- Heeft de eerste fiatteur de factuur al goedgekeurd?
v_errorhint := 'Heeft de eerste fiatteur de factuur al goedgekeurd?';
SELECT COUNT (*)
INTO v_count
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code = 'FINGOE'
AND t.prs_perslid_key = 92323
AND t.prs_perslid_key = v_eerste_fiatteur
AND t.fac_tracking_refkey = p_factuur_key;
IF v_count = 0
THEN
-- bedrag is groter dan 5000 en Walter heeft nog niet goedgekeurd
v_perslid_key_goedkeur := 92323;
v_perslid_key_goedkeur := v_eerste_fiatteur;
ELSIF v_factuur_totaal > 50000
THEN
-- Walter heeft goedgekeurd maar het bedrag is hoger dan 50000, dus William Toma moet ook goedkeuren
-- Heeft william toma 44464 (voorloping sander nievergeld) de factuur al goedgekeurd?
-- De eerste fiatteur heeft goedgekeurd maar het bedrag is hoger dan 50000, dus de tweede fiatteur moet ook goedkeuren
-- Heeft de tweede fiatteur de factuur al goedgekeurd?
v_errorhint := 'Bedrag is hoger dan 50000';
SELECT COUNT (*)
INTO v_count
@@ -1142,13 +1147,13 @@ AS
WHERE t.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code = 'FINGOE'
AND t.prs_perslid_key = 44464
AND t.prs_perslid_key = v_tweede_fiatteur
AND t.fac_tracking_refkey = p_factuur_key;
IF v_count = 0
THEN
-- William heeft nog niet goedgekeurd
v_perslid_key_goedkeur := 44464;
v_perslid_key_goedkeur := v_tweede_fiatteur;
END IF;
END IF;
END IF;
@@ -1376,6 +1381,7 @@ AS
v_email VARCHAR2 (200);
v_voornaam VARCHAR2 (200);
v_achternaam VARCHAR2 (200);
v_besteller_key NUMBER;
BEGIN
DELETE imp_log WHERE imp_log_applicatie = 'MAIL_WERKPLEKINRICHTING' AND imp_log_datum < SYSDATE - 14;
@@ -1391,6 +1397,21 @@ AS
fac.writelog ('MAIL_WERKPLEKINRICHTING', 'I', 'v_voornaam:' || v_voornaam, '');
fac.writelog ('MAIL_WERKPLEKINRICHTING', 'I', 'v_achternaam:' || v_achternaam, '');
v_errorhint := 'Zoek de persoon op adhv de ruisnaam: ' || v_ruisnaam;
SELECT prs_perslid_key
INTO v_besteller_key
FROM prs_v_aanwezigperslid
WHERE prs_perslid_oslogin = UPPER(v_ruisnaam);
v_errorhint := 'Voeg de persoon toe aan de autorisatiegroep: ' || v_ruisnaam || '-' || v_besteller_key;
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 2741, v_besteller_key
FROM DUAL
WHERE NOT EXISTS (SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 2741
AND prs_perslid_key = v_besteller_key);
v_errorhint := 'Toevoegen resultaat';
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
@@ -1406,12 +1427,16 @@ AS
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('MAIL_WERKPLEKINRICHTING', 'E', v_errormsg, v_errorhint);
DELETE fac_rapport WHERE fac_rapport_node = 'WERKPLEKINR' AND fac_rapport_volgnr < TO_CHAR(SYSDATE-100, 'YYMMDDHH24MI');
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel)
VALUES ('WERKPLEKINR', TO_CHAR(SYSDATE, 'YYMMDDHH24MI'), 'Onbekende besteller:'||v_ruisnaam || '-' || v_email || '-' || v_voornaam || '-' || v_achternaam);
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'errormsg',
'Fout bij inleze mail werkplekinrichting: ' || v_errorhint);
'Fout bij inlezen mail werkplekinrichting: ' || v_ruisnaam);
END;
END;
/
@@ -2271,6 +2296,7 @@ AS
v_dpt_tree VARCHAR2 (100);
v_dpt_name_long VARCHAR2 (100);
v_dpt_code VARCHAR2 (100);
v_budgethouder VARCHAR2 (100);
CURSOR c
IS
@@ -2301,6 +2327,7 @@ BEGIN
fac.imp_getfield (v_newline, c_fielddelimitor, v_dpt_tree);
fac.imp_getfield (v_newline, c_fielddelimitor, v_dpt_name_long);
fac.imp_getfield (v_newline, c_fielddelimitor, v_dpt_code);
fac.imp_getfield (v_newline, c_fielddelimitor, v_budgethouder);
v_aanduiding := v_dpt_id || '|' || v_dpt_name_long || '|' || v_dpt_code || '| ';
@@ -2335,12 +2362,14 @@ BEGIN
prs_afdeling_naam_parent,
prs_afdeling_omschrijving,
prs_kostenplaats_nr,
prs_budgethouder,
fac_imp_file_index)
VALUES ('KPN',
v_dpt_id,
v_dpt_parent_dep_id,
v_dpt_name_long,
v_dpt_code,
v_budgethouder,
rec.fac_imp_file_index);
END IF;
END;
@@ -2409,6 +2438,7 @@ AS
v_prs_kostenplaats_key NUMBER;
v_prs_afdeling_key NUMBER;
v_prs_afd_niveau_parent NUMBER;
v_budgethouder_key NUMBER;
v_count NUMBER;
v_newcount NUMBER;
v_oldcount NUMBER;
@@ -2434,6 +2464,26 @@ BEGIN
WHERE UPPER (prs_bedrijf_naam) = UPPER (rec.prs_bedrijf_naam)
AND prs_bedrijf_verwijder IS NULL;
BEGIN
IF rec.prs_budgethouder IS NOT NULL
THEN
v_errorhint := 'Zoek de budgethouder van de kostenplaats op: ' || rec.prs_budgethouder;
SELECT prs_perslid_key
INTO v_budgethouder_key
FROM prs_v_aanwezigperslid
WHERE prs_perslid_nr = rec.prs_budgethouder;
ELSE
v_budgethouder_key := NULL;
END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint || '-' || v_aanduiding);
v_budgethouder_key := NULL;
END;
v_errorhint := 'Kijk of kostenplaats al bestaat';
IF rec.prs_kostenplaats_nr IS NOT NULL
THEN
@@ -2709,7 +2759,7 @@ BEGIN
-- de functie wordt tijdelijk gevuld met de key van het record. Puur om een waarde
-- erin te hebben staan.
UPDATE fac_imp_file SET fac_imp_file_line = REPLACE(fac_imp_file_line, 'NULL') WHERE fac_import_key = p_import_key;
v_seq_of_columns := '14;14;0;0;0;0;8;6;5;24;4;17;16;20;0;11;0;9;0;2;1;3;0;0;0;0;1;0;23;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0';
v_seq_of_columns := '14;14;0;0;0;0;8;6;5;24;4;17;16;20;0;11;0;9;0;2;1;3;0;0;0;0;1;0;23;24;25;26;0;0;0;0;0;0;0;0;0;0;0;0;0;0';
prs.import_perslid(p_import_key, v_seq_of_columns, 'emp_cbl_number;emp_number;emp_ruis_id;prs_name_initials;prs_name_prefix;prs_name_last;emp_sup_name;emp_dep_code;emp_email;emp_active;emp_phone;emp_mobile;emp_sms_authentication;emp_loc_code;emp_date_termination;prs_name_partner_prefix;prs_name_partner_last;prs_umra_name_prefix;prs_umra_name_last;prs_name_last_pref;emp_dep_name;emp_fnc_code;emp_fnc_name;prs_name_call%');
-- Maak standaard verdieping aan voor de werkplek
@@ -2871,6 +2921,11 @@ END;
CREATE OR REPLACE PROCEDURE ykpn_update_perslid_sched (p_import_key IN NUMBER)
AS
CURSOR c_kenmerk IS
SELECT p.prs_perslid_key, i.prs_kenmerk5 leidingg, i.prs_kenmerk6 bhv
FROM prs_v_aanwezigperslid p, fac_imp_perslid i
WHERE p.prs_perslid_nr = i.prs_perslid_nr;
CURSOR c_del IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full, p.prs_perslid_oslogin
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
@@ -2891,6 +2946,8 @@ AS
WHERE alg_kenmerk_key = 1360;
v_perslid_nr PRS_PERSLID.PRS_PERSLID_NR%TYPE;
v_leidingg_key NUMBER;
v_bhv NUMBER;
v_errormsg VARCHAR2 (1000);
v_hint VARCHAR2 (1000);
oracle_err_num NUMBER;
@@ -2939,6 +2996,36 @@ BEGIN
prs.update_perslid (p_import_key, 'NR', 'A');
-- Vul de kenmerken bhv en leidinggevende
FOR rec IN c_kenmerk
LOOP
BEGIN
v_hint := 'Bepaal de leidinggevende: ' || rec.leidingg;
SELECT prs_perslid_key
INTO v_leidingg_key
FROM prs_v_aanwezigperslid
WHERE prs_perslid_nr = rec.leidingg;
v_hint := 'Vul het kenmerk leidinggevende: ' || rec.prs_perslid_key || '-' || v_leidingg_key;
ykpn.set_kenmerk('PRS', 1160, rec.prs_perslid_key, v_leidingg_key, 0);
v_hint := 'Vul het kenmerk BHV: ' || rec.prs_perslid_key || '-' || rec.bhv;
v_bhv := 0;
IF rec.bhv = 'BHV'
THEN
v_bhv := 1;
END IF;
ykpn.set_kenmerk('PRS', 1161, rec.prs_perslid_key, v_bhv, 0);
EXCEPTION WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_hint);
END;
END LOOP;
-- Iedereen mag op elke kostenplaats boeken.
INSERT INTO prs_perslidkostenplaats (prs_perslid_key, prs_perslidkostenplaats_boeken)
SELECT prs_perslid_key, 1