ALLI#25105: Nieuw veld bedrijfsonderdeel in import en visitekaartje

svn path=/Customer/trunk/; revision=16247
This commit is contained in:
Marcel Bourseau
2012-12-07 13:14:45 +00:00
parent 1ac63756ec
commit 597109e5a8

View File

@@ -49,7 +49,8 @@ IS
v_prs_perslid_mobiel VARCHAR2 (256);
v_prs_perslid_email VARCHAR2 (256);
v_prs_perslid_oslogin VARCHAR2 (256);
v_prs_perslid_bedrijfsdeel VARCHAR2 (256);
-- Overig:
v_alg_locatie_code VARCHAR2 (256);
v_alg_gebouw_code VARCHAR2 (256);
@@ -102,9 +103,14 @@ BEGIN
-- 10 - Mobiel van medewerker
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel);
-- 11 - Mobiel van medewerker
-- 11 - Telenr (035) van medewerker
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
-- 12 - Bedrijfsonderdeel van medewerker
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_bedrijfsdeel);
-------------------------------------------------------------------------
-- xx - Usernaam/login
-- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
v_prs_perslid_oslogin := NULL;
@@ -117,7 +123,7 @@ BEGIN
-- xx - Gebouwcode werkplek van medewerker
--fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_gebouw_code);
v_alg_gebouw_code := NULL;
-------------------------------------------------------------------------
@@ -455,7 +461,32 @@ BEGIN
END IF;
v_errorhint := 'Ongeldig bedrijfsonderdeel';
v_prs_perslid_bedrijfsdeel := TRIM (v_prs_perslid_bedrijfsdeel);
IF LENGTH (v_prs_perslid_bedrijfsdeel) > 60
THEN
v_prs_perslid_bedrijfsdeel := SUBSTR (v_prs_perslid_bedrijfsdeel, 1, 60);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Bedrijfsonderdeel te lang',
'Bedrijfsonderdeel wordt afgebroken tot ['
|| v_prs_perslid_bedrijfsdeel
|| ']'
);
ELSE
IF (v_prs_perslid_bedrijfsdeel IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog
(p_import_key,
'E',
v_aanduiding || 'Bedrijfsonderdeel onbekend',
'Bedrijfsonderdeel is verplicht; regel wordt overgeslagen!'
);
END IF;
END IF;
COMMIT;
-- Insert geformatteerde import record
@@ -477,7 +508,8 @@ BEGIN
prs_perslid_telefoonnr,
prs_perslid_mobiel,
prs_perslid_email,
prs_perslid_oslogin
prs_perslid_oslogin,
prs_perslid_bedrijfsdeel
)
VALUES (v_prs_perslid_nr, v_prs_perslid_naam,
v_prs_perslid_tussenvoegsel,
@@ -490,7 +522,8 @@ BEGIN
v_prs_perslid_telefoonnr,
v_prs_perslid_mobiel,
v_prs_perslid_email,
v_prs_perslid_oslogin
v_prs_perslid_oslogin,
v_prs_perslid_bedrijfsdeel
);
COMMIT;
v_count_import := v_count_import + 1;
@@ -584,6 +617,7 @@ IS
--
v_perslid_key NUMBER (10);
v_afdeling_key NUMBER (10);
v_fac_usrdata_key NUMBER (10);
v_srtperslid_key NUMBER (10);
v_oslogin VARCHAR2 (30);
v_wachtwoord VARCHAR2 (30);
@@ -623,7 +657,11 @@ IS
FROM alli_imp_prs
GROUP BY UPPER (prs_afdeling_code);
CURSOR c_bedrijf
IS
SELECT distinct (prs_perslid_bedrijfsdeel) prs_perslid_bedrijfsdeel
FROM alli_imp_prs;
CURSOR cperslid
IS
SELECT *
@@ -905,7 +943,6 @@ BEGIN
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Afdeling: verwerkte regels zonder foutmelding: '
@@ -919,6 +956,68 @@ BEGIN
''
);
COMMIT;
v_count_tot := 0;
v_count_error := 0;
FOR recbedrijf IN c_bedrijf
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding := recbedrijf.prs_perslid_bedrijfsdeel;
v_errorhint := 'Fout bij bepalen bedrijfsonderdeel';
SELECT COUNT (*)
INTO v_count
FROM fac_usrdata
WHERE UPPER (fac_usrdata_omschr) = UPPER (recbedrijf.prs_perslid_bedrijfsdeel)
AND fac_usrtab_key= 121
AND fac_usrdata_verwijder IS NULL;
IF (v_count = 0)
THEN
v_errorhint := 'Fout bij toevoegen bedrijfsonderdeel';
INSERT INTO fac_usrdata
(fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
VALUES (121, SUBSTR(recbedrijf.prs_perslid_bedrijfsdeel,1,30), recbedrijf.prs_perslid_bedrijfsdeel);
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Bedrijfsonderdeel: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (p_import_key,
'S',
'Bedrijfsonderdeel: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
v_count_tot := 0;
v_count_error := 0;
@@ -957,6 +1056,20 @@ BEGIN
AND UPPER (prs_afdeling_naam) = UPPER (recperslid.prs_afdeling_code)
AND prs_bedrijf_key = 5;
v_errorhint :=
'Fout bij bepalen bedrijfsonderdeel ['
|| recperslid.prs_perslid_bedrijfsdeel
|| ']';
SELECT fac_usrdata_key
INTO v_fac_usrdata_key
FROM fac_usrdata
WHERE UPPER (fac_usrdata_omschr) = UPPER (recperslid.prs_perslid_bedrijfsdeel)
AND fac_usrtab_key= 121
AND fac_usrdata_verwijder IS NULL;
v_errorhint := 'Fout bij bepalen persoon';
SELECT COUNT (*), MAX (prs_perslid_key)
@@ -1021,6 +1134,37 @@ BEGIN
COMMIT;
END IF;
-- Bedrijfsonderdeel als flexprop inserten of updaten....
-- prs_kenmerk_key = 1060 is het bedrijfsonderdeel flexprop bij persoon (prs_perslid)
SELECT COUNT (*)
INTO v_count
FROM prs_kenmerklink
WHERE prs_link_key = v_perslid_key
AND prs_kenmerklink_niveau = 'P'
AND prs_kenmerk_key = 1060
AND prs_kenmerklink_verwijder IS NULL;
IF (v_count = 0)
THEN
v_errorhint := 'Fout bij toevoegen kenmerk bedrijfsonderdeel';
INSERT INTO prs_kenmerklink
(prs_link_key, prs_kenmerklink_niveau, prs_kenmerk_key, prs_kenmerklink_waarde)
VALUES (v_perslid_key, 'P', 1060, v_fac_usrdata_key );
COMMIT;
ELSE
v_errorhint := 'Fout bij bijwerken kenmerk bedrijfsonderdeel';
UPDATE prs_kenmerklink
SET prs_kenmerklink_waarde = v_fac_usrdata_key
WHERE prs_link_key = v_perslid_key
AND prs_kenmerklink_niveau = 'P'
AND prs_kenmerk_key = 1060
AND prs_kenmerklink_verwijder IS NULL;
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
@@ -1959,6 +2103,7 @@ CREATE OR REPLACE VIEW alli_v_visitekaartje (prs_perslid_key,
voornaam,
naam,
functie,
bedrijfsonderdeel,
gebouwcode,
adres,
postcode,
@@ -1980,6 +2125,15 @@ AS
p.prs_perslid_tussenvoegsel || ' ')
|| prs_perslid_naam naam,
prs_srtperslid_omschrijving functie,
( SELECT fac_usrdata_omschr
FROM prs_kenmerklink, fac_usrdata ud
WHERE fac_usrtab_key=121
AND ud.fac_usrdata_key = fac.safe_to_number(prs_kenmerklink_waarde)
AND prs_link_key = p.prs_perslid_key
AND prs_kenmerklink_niveau = 'P'
AND prs_kenmerk_key = 1060
AND prs_kenmerklink_verwijder IS NULL
) bedrijfsonderdeel,
pgl.alg_gebouw_code,
l.alg_locatie_adres adres,
l.alg_locatie_postcode postcode,