AAGB#74170 -- Implementatie Alliance Automotive Groep Benelux B.V.

svn path=/Customer/trunk/; revision=58555
This commit is contained in:
Arthur Egberink
2023-01-06 13:52:00 +00:00
parent cc1360441b
commit 3a89a22c0d

View File

@@ -87,6 +87,312 @@ AS
END;
/
-- Tijdelijke importroutine voor contactpersonen
CREATE OR REPLACE PROCEDURE aagb_import_contactpersoon (
p_import_key IN NUMBER)
IS
c_delim VARCHAR2 (2) := fac.import_delimiter (p_import_key);
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR (200);
-- De importvelden
v_prs_bedrijf_naam VARCHAR2 (255); -- VARCHAR2(60),
v_prs_leverancier_nr VARCHAR2 (255); -- VARCHAR2(50),
v_prs_bedrijf_key NUMBER (10);
v_prs_bedrijfadres_type VARCHAR2 (255); -- VARCHAR2(1),
v_mld_typeopdr_omschrijving VARCHAR2 (255); -- NUMBER(10),
v_mld_typeopdr_key NUMBER (10);
v_prs_bedrijfadres_url VARCHAR2 (1000); -- VARCHAR2(512),
v_prs_bedrijfadres_ordermode VARCHAR2 (255); -- NUMBER(3),
v_prs_bedrijfadres_certificate VARCHAR2 (1000); -- VARCHAR2(255),
v_prs_bedrijfadres_xsl VARCHAR2 (1000); -- VARCHAR2(256),
v_prs_bedrijfadres_ext VARCHAR2 (255); -- VARCHAR2(10),
v_prs_bedrijfadres_attachfile VARCHAR2 (1000); -- VARCHAR2(256),
v_prs_bedrijfadres_username VARCHAR2 (255); -- VARCHAR2(32),
v_prs_bedrijfadres_password VARCHAR2 (1000); -- VARCHAR2(320)),
v_prs_bedrijfadres_sender VARCHAR2 (1000); -- VARCHAR2(512),
v_prs_bedrijfadres_lockuser VARCHAR2 (255); -- NUMBER(10),
v_lockuser_key NUMBER (10);
v_prs_bedrijfadres_lockexpire VARCHAR2 (255);
CURSOR c1 IS
SELECT fac_imp_csv_col01 prs_bedrijf_naam,
fac_imp_csv_col02 prs_leverancier_nr,
fac_imp_csv_col03 prs_persoonmatch_code,
fac_imp_csv_col04 prs_persoonmatch_waarde,
fac_imp_csv_col05 prs_achternaam,
fac_imp_csv_col06 prs_tussenvoegsel,
fac_imp_csv_col07 prs_voorletters,
fac_imp_csv_col08 prs_voornaam,
fac_imp_csv_col09 prs_titel,
fac_imp_csv_col10 prs_aanhef,
fac_imp_csv_col11 prs_telefoonnummer,
fac_imp_csv_col12 prs_mobiel,
fac_imp_csv_col13 prs_email,
fac_imp_csv_col14 prs_functie,
fac_imp_csv_col15 prs_opmerking,
fac_imp_csv_col16 prs_link_portal,
fac_imp_csv_col17 prs_locatie_code,
fac_imp_csv_key
FROM fac_imp_csv
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_csv_key;
BEGIN
--
fac_import_genericcsv (p_import_key);
-- Eerst opruiming
v_count_tot := 0;
v_count_import := 0;
header_is_valid := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_aanduiding :=
'['
|| rec1.prs_bedrijf_naam -- bedrijfsnaam
|| '|'
|| rec1.prs_achternaam -- achternaam
|| '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (rec1.prs_bedrijf_naam) = 'BEDRIJFSNAAM'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Bedrijf niet gevonden';
BEGIN
SELECT prs_bedrijf_key
INTO v_prs_bedrijf_key
FROM prs_bedrijf
WHERE COALESCE (prs_bedrijf_intern, 0) <> 1
AND prs_bedrijf_verwijder IS NULL
AND UPPER (prs_leverancier_nr) =
UPPER (TRIM (rec1.prs_leverancier_nr));
EXCEPTION
WHEN NO_DATA_FOUND
THEN
BEGIN
SELECT prs_bedrijf_key
INTO v_prs_bedrijf_key
FROM prs_bedrijf
WHERE COALESCE (prs_bedrijf_intern, 0) <> 1
AND prs_bedrijf_verwijder IS NULL
AND UPPER (prs_bedrijf_naam) =
UPPER (TRIM (rec1.prs_bedrijf_naam));
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen');
v_ongeldig := 1;
END;
END;
v_errormsg := 'Achternaam niet ingevuld';
IF rec1.prs_achternaam IS NULL
THEN
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen');
v_ongeldig := 1;
END IF;
IF v_ongeldig = 0
THEN
UPDATE fac_imp_csv
SET fac_imp_csv_col18 = v_prs_bedrijf_key
WHERE fac_imp_csv_key = rec1.fac_imp_csv_key;
COMMIT;
v_count_import := v_count_import + 1;
END IF;
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;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (
p_import_key,
'S',
'Adressen/aantal ingelezen importregels: '
|| TO_CHAR (v_count_tot),
'');
fac.imp_writelog (
p_import_key,
'S',
'Adressen/aantal ongeldige niet ingelezen importregels: '
|| TO_CHAR (v_count_tot - v_count_import),
'');
END IF;
COMMIT;
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,
'Inleesproces adressen afgebroken!');
END aagb_import_contactpersoon;
/
-- Notificatie om een mail te versturen als de einddatum van een locatie bereikt is.
CREATE OR REPLACE VIEW aagb_v_noti_loc_einddatum
(
sender,
receiver,
text,
code,
key,
xkey,
xsender,
xemail,
xmobile,
attachments
)
AS
SELECT NULL,
NULL,
'Locatie '
|| alg_locatie_code
|| ' - '
|| alg_locatie_omschrijving
|| ' heeft de einddatum bereikt',
'CUST01',
l.alg_locatie_key,
NULL,
NULL,
'arthur.egberink@aareon.nl',
NULL,
NULL
FROM alg_locatie l, alg_onrgoedkenmerk aogk
WHERE l.alg_locatie_key = aogk.alg_onrgoed_key
AND aogk.alg_kenmerk_key = 1160 -- einddatum
AND fac.safe_to_date (aogk.alg_onrgoedkenmerk_waarde,
'dd-mm-yyyy') =
TRUNC (SYSDATE);
-- Gestyled rapport met locatiegegevens. De kenmerken worden er bij gejoined zodat er per kenmerk een regel komt.
-- In de stylesheet kunnen we dan kiezen welke kenmerken er getoond worden.
CREATE OR REPLACE VIEW aagb_v_locatie_gegevens
AS
SELECT k.alg_locatie_key,
k.alg_locatie_code,
k.vm_email,
k.vm_telefoonnr,
k.rm_email,
k.rm_telefoonnr,
k.alg_locatie_omschrijving,
k.alg_locatie_adres,
k.alg_locatie_postcode,
k.alg_locatie_plaats,
k.alg_locatie_verantw_tel,
k.alg_kenmerk_key,
k.alg_kenmerk_omschrijving,
k.alg_kenmerk_volgnr,
k.alg_kenmerk_kenmerktype,
aog.alg_onrgoedkenmerk_waarde
FROM (SELECT l.*,
k.alg_kenmerk_key,
k.alg_kenmerk_omschrijving,
k.alg_kenmerk_volgnr,
k.alg_kenmerk_kenmerktype,
vm.prs_perslid_email vm_email,
vm.prs_perslid_telefoonnr vm_telefoonnr,
rm.prs_perslid_email rm_email,
rm.prs_perslid_telefoonnr rm_telefoonnr
FROM alg_kenmerk k,
alg_locatie l,
(SELECT prs_perslid_email,
prs_perslid_telefoonnr,
vmk.alg_onrgoed_key alg_locatie_key
FROM prs_perslid p, alg_onrgoedkenmerk vmk
WHERE vmk.alg_kenmerk_key = 1141
AND FAC.safe_to_number (vmk.alg_onrgoedkenmerk_waarde) =
p.prs_perslid_key) vm,
(SELECT prs_perslid_email,
prs_perslid_telefoonnr,
rmk.alg_onrgoed_key alg_locatie_key
FROM prs_perslid p, alg_onrgoedkenmerk rmk
WHERE rmk.alg_kenmerk_key = 1142
AND FAC.safe_to_number (rmk.alg_onrgoedkenmerk_waarde) =
p.prs_perslid_key) rm
WHERE alg_locatie_verwijder IS NULL
AND k.alg_kenmerk_niveau = 'L'
AND k.alg_kenmerk_kenmerktype NOT IN ('M', 'l')
AND k.alg_kenmerk_verwijder IS NULL
AND l.alg_locatie_key = vm.alg_locatie_key(+)
AND l.alg_locatie_key = rm.alg_locatie_key(+)) k
LEFT JOIN
(SELECT aog.alg_kenmerk_key,
aog.alg_onrgoed_key,
DECODE (
ak.alg_kenmerk_kenmerktype,
'R', FLX.getdomeinwaarde (ak.fac_kenmerkdomein_key,
alg_onrgoedkenmerk_waarde),
'S', FLX.getdomeinwaarde (ak.fac_kenmerkdomein_key,
alg_onrgoedkenmerk_waarde),
alg_onrgoedkenmerk_waarde) alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk aog, alg_kenmerk ak
WHERE aog.alg_kenmerk_key = ak.alg_kenmerk_key) aog
ON k.alg_kenmerk_key = aog.alg_kenmerk_key
AND k.alg_locatie_key = aog.alg_onrgoed_key;
CREATE OR REPLACE PROCEDURE aagb_daily
AS
BEGIN