AAGB#74170 -- Implementatie Alliance Automotive Groep Benelux B.V.
svn path=/Customer/trunk/; revision=58555
This commit is contained in:
306
AAGB/aagb.sql
306
AAGB/aagb.sql
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user