Merge DB19 patches

svn path=/Customer/trunk/; revision=20052
This commit is contained in:
Jos Groot Lipman
2013-12-04 10:11:36 +00:00
parent 6d1ac81ecd
commit ac9a07a49b
19 changed files with 7141 additions and 1426 deletions

View File

@@ -401,7 +401,21 @@ BEGIN
AND mm.prs_perslid_key_voor = sender;
-- DBMS_OUTPUT.PUT_LINE('mld_stdmelding_key: ' || TO_CHAR(stdmelding));
IF (stdmelding IS NOT NULL) THEN -- Bestaande melding
BEGIN
SELECT mld_melding_behandelaar_key
INTO behandelaar_key
FROM mld_melding m, prs_perslid p
WHERE mld_melding_key = mldkey
AND mld_melding_behandelaar_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL;
EXCEPTION WHEN OTHERS
THEN
behandelaar_key := NULL;
END;
IF (stdmelding IS NOT NULL) AND behandelaar_key IS NOT NULL THEN -- Bestaande melding en behandelaar is bekend.
INSERT INTO mld_melding_note (mld_melding_key,
mld_melding_note_omschrijving,
prs_perslid_key,
@@ -422,18 +436,7 @@ BEGIN
-- DBMS_OUTPUT.PUT_LINE('Notitie toegevoegd.');
-- Notificatie naar behandelaar
BEGIN
SELECT mld_melding_behandelaar_key
INTO behandelaar_key
FROM mld_melding m
WHERE mld_melding_key = mldkey;
fac.putnotificationsrtprio(null, behandelaar_key, 'MLDMAI', mldkey, 'Melding ' || mldkey || ' is door de klant aangepast.', 2, null, null, null, 2, null);
EXCEPTION WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE('Geen behandelaar gevonden.');
END;
fac.putnotificationsrtprio(null, behandelaar_key, 'MLDMAI', mldkey, 'Melding ' || mldkey || ' is door de klant aangepast.', 2, null, null, null, 2, null);
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
BEGIN
@@ -586,8 +589,8 @@ EXCEPTION
fac.writelog ('PROCESSEMAIL',
'E',
'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')',
errormsg || ' afzender:' || pfrom);
'Mail kon niet ingelezen worden afzender:' || pfrom || '[' || errormsg || ']',
'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')');
END;
/
@@ -1280,7 +1283,7 @@ IS
RETURN v_waarde;
EXCEPTION WHEN OTHERS
EXCEPTION WHEN NO_DATA_FOUND
THEN
RETURN NULL;
END;
@@ -1312,77 +1315,109 @@ BEGIN
LOOP
BEGIN
v_error_hint := 'Ophalen data voor dm: ' || rec_d.dm || ' Naam:' || rec_d.achternaam;
SELECT alg_onrgoed_key
INTO v_district_key
FROM prs_perslid p,
alg_onrgoedkenmerk aog,
alg_district d
WHERE p.prs_perslid_naam = rec_d.achternaam
AND p.prs_perslid_voorletters = rec_d.voorletters
AND COALESCE(p.prs_perslid_tussenvoegsel, '.') = COALESCE(rec_d.tussenvoegsels, '.')
AND alg_kenmerk_key = 1021 -- key van districtmanager
AND prs_perslid_key = fac.safe_to_number(alg_onrgoedkenmerk_waarde)
AND aog.alg_onrgoed_key = d.alg_district_key
AND d.alg_district_verwijder IS NULL
AND aog.alg_onrgoedkenmerk_verwijder IS NULL;
BEGIN
SELECT alg_onrgoed_key
INTO v_district_key
FROM prs_perslid p,
alg_onrgoedkenmerk aog,
alg_district d
WHERE p.prs_perslid_naam = rec_d.achternaam
AND p.prs_perslid_voorletters = rec_d.voorletters
AND COALESCE(p.prs_perslid_tussenvoegsel, '.') = COALESCE(rec_d.tussenvoegsels, '.')
AND alg_kenmerk_key = 1021 -- key van districtmanager
AND prs_perslid_key = fac.safe_to_number(alg_onrgoedkenmerk_waarde)
AND aog.alg_onrgoed_key = d.alg_district_key
AND d.alg_district_verwijder IS NULL
AND aog.alg_onrgoedkenmerk_verwijder IS NULL;
FOR rec IN c(rec_a.accountcode, rec_d.dm)
LOOP
BEGIN
v_locatie_key := NULL;
-- Get BUD reference
v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
v_bud_key := get_alg_kenmerk (1060, v_district_key);
EXCEPTION WHEN NO_DATA_FOUND THEN
fac.imp_writelog (
p_import_key,
'E',
'Import locaties afgebroken, distrinctmanager niet gevonden ( district mngr:' || rec_d.dm || '(' || rec_d.voorletters || ' ' || rec_d.tussenvoegsels || ' ' || rec_d.achternaam || ')' || '- account:' || rec_a.accountcode || '-' || rec_a.accountnaam || ')',
v_error_hint);
END;
-- Get BB reference
v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
v_bb_key := get_alg_kenmerk (1020, v_district_key);
IF v_district_key IS NOT NULL THEN
FOR rec IN c(rec_a.accountcode, rec_d.dm)
LOOP
BEGIN
v_error_hint := 'Kijk of de locatie al bestaat: ' || rec.project;
SELECT alg_onrgoed_key
INTO v_locatie_key
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1040 -- projectnummer
AND alg_onrgoedkenmerk_waarde = rec.project;
EXCEPTION WHEN NO_DATA_FOUND
THEN
IF rec.code IS NULL THEN
v_locatie_code := rec.project;
ELSE
v_locatie_code := rec.code;
END IF;
INSERT INTO alg_locatie (alg_district_key, alg_locatie_code, alg_locatie_omschrijving)
VALUES (v_district_key, 'P' || v_locatie_code, SUBSTR(rec.omschrijving,1,50))
RETURNING alg_locatie_key
INTO v_locatie_key;
END;
UPDATE alg_locatie
SET alg_locatie_omschrijving = SUBSTR(rec.omschrijving,1,50),
alg_district_key = v_district_key,
alg_locatie_adres = rec.adres,
alg_locatie_postcode = rec.postcode,
alg_locatie_plaats = rec.woonplaats
WHERE alg_locatie_key = v_locatie_key;
csun_set_kenmerk ('ALG', 1006, v_locatie_key, v_bud_key, 0);
csun_set_kenmerk ('ALG', 1007, v_locatie_key, v_bb_key, 0);
csun_set_kenmerk ('ALG', 1000, v_locatie_key, v_account_key, 0);
csun_set_kenmerk ('ALG', 1040, v_locatie_key, rec.project, 0);
v_locatie_key := NULL;
-- Get BUD reference
v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
v_bud_key := get_alg_kenmerk (1060, v_district_key);
-- Get BB reference
v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
v_bb_key := get_alg_kenmerk (1020, v_district_key);
EXCEPTION WHEN OTHERS THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog (
p_import_key,
'E',
'Import locaties afgebroken (' || rec.dm || '-' || rec.accountcode || '-' || rec.project || '):' || v_errormsg,
v_error_hint);
END;
END LOOP;
BEGIN
v_error_hint := 'Kijk of de locatie al bestaat: ' || rec.project;
SELECT alg_onrgoed_key
INTO v_locatie_key
FROM alg_onrgoedkenmerk, alg_locatie
WHERE alg_kenmerk_key = 1040 -- projectnummer
AND alg_onrgoedkenmerk_waarde = rec.project
AND alg_onrgoed_key = alg_locatie_key
AND alg_locatie_verwijder IS NULL;
EXCEPTION WHEN NO_DATA_FOUND
THEN
-- Kijk of de locatieomschrijving al voorkomt. Als dat het geval is mogen we de
-- nieuwe locatie niet aanmaken.
SELECT count(*)
INTO v_count
FROM alg_locatie
WHERE alg_locatie_upper = UPPER(SUBSTR(rec.omschrijving,1,50))
AND alg_locatie_verwijder IS NULL;
IF v_count = 0 THEN
IF rec.code IS NULL THEN
v_locatie_code := rec.project;
ELSE
v_locatie_code := rec.code;
END IF;
INSERT INTO alg_locatie (alg_district_key, alg_locatie_code, alg_locatie_omschrijving)
VALUES (v_district_key, 'P' || v_locatie_code, SUBSTR(rec.omschrijving,1,50))
RETURNING alg_locatie_key
INTO v_locatie_key;
ELSE
fac.imp_writelog (
p_import_key,
'E',
'Import locaties afgebroken, locatie omschrijving bestaat al ( district mngr:' || rec_d.dm || '(' || rec_d.voorletters || ' ' || rec_d.tussenvoegsels || ' ' || rec_d.achternaam || ')' || '- account:' || rec_a.accountcode || '-' || rec_a.accountnaam || ' Projectnr: ' || rec.project || ')',
v_error_hint);
END IF;
END;
IF v_locatie_key IS NOT NULL THEN
UPDATE alg_locatie
SET alg_locatie_omschrijving = SUBSTR(rec.omschrijving,1,50),
alg_district_key = v_district_key,
alg_locatie_adres = rec.adres,
alg_locatie_postcode = rec.postcode,
alg_locatie_plaats = rec.woonplaats
WHERE alg_locatie_key = v_locatie_key;
csun_set_kenmerk ('ALG', 1006, v_locatie_key, v_bud_key, 0);
csun_set_kenmerk ('ALG', 1007, v_locatie_key, v_bb_key, 0);
csun_set_kenmerk ('ALG', 1000, v_locatie_key, v_account_key, 0);
csun_set_kenmerk ('ALG', 1040, v_locatie_key, rec.project, 0);
END IF;
EXCEPTION WHEN OTHERS THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog (
p_import_key,
'E',
'Import locaties afgebroken ( district mngr:' || rec_d.dm || '(' || rec_d.voorletters || ' ' || rec_d.tussenvoegsels || ' ' || rec_d.achternaam || ')' || '- account:' || rec_a.accountcode || '-' || rec_a.accountnaam || ' Projectnr: ' || rec.project || '):' || v_errormsg,
v_error_hint);
END;
END LOOP;
END IF;
EXCEPTION WHEN OTHERS THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
@@ -1390,7 +1425,7 @@ BEGIN
fac.imp_writelog (
p_import_key,
'E',
'Import locaties afgebroken (' || rec_d.dm || '-' || rec_a.accountcode || '):' || v_errormsg,
'Import locaties afgebroken ( district mngr:' || rec_d.dm || '(' || rec_d.voorletters || ' ' || rec_d.tussenvoegsels || ' ' || rec_d.achternaam || ')' || '- account:' || rec_a.accountcode || '-' || rec_a.accountnaam || '):' || v_errormsg,
v_error_hint);
END;
END LOOP;
@@ -1573,7 +1608,7 @@ BEGIN
|| v_correction);
RETURN 9 * ( (5 * v_week) + v_mod - v_holidays) + v_correction;
EXCEPTION
WHEN OTHERS
WHEN NO_DATA_FOUND
THEN
RETURN NULL;
END;