1550 lines
65 KiB
SQL
1550 lines
65 KiB
SQL
-- Script containing customer specific configuration sql statements for NFIT Nefit Buderus Deventer
|
||
-- (c) 2006 Facilitor/Dijkoraad IT bv
|
||
-- $Revision: 14 $
|
||
-- $Modtime: 19-05-08 16:54 $
|
||
--
|
||
-- Support: +31 53 4800700
|
||
|
||
set echo on
|
||
SPOOL xNFIT.LST
|
||
|
||
CREATE OR REPLACE VIEW nfit_v_iqbs (bestellingkey,
|
||
bestelopdrkey,
|
||
bestelopdrprefix,
|
||
bestelopdrnummer,
|
||
crediteurennummer,
|
||
bedrag,
|
||
projectnummer,
|
||
kostensoort,
|
||
kostenplaats,
|
||
budget,
|
||
afdelingscode,
|
||
status,
|
||
teexporteren
|
||
)
|
||
AS
|
||
SELECT b.bes_bestelling_key bestellingkey,
|
||
bo.bes_bestelopdr_key bestelopdrkey,
|
||
'11' bestelopdrprefix,
|
||
'11'
|
||
|| bo.bes_bestelopdr_key bestelopdrnummer,
|
||
(SELECT b.prs_leverancier_nr
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key) crediteurennummer,
|
||
to_char(SUM ( (NVL (boi.bes_bestelopdr_item_aantalontv, 0) - NVL (boi.bes_bestelopdr_item_aantalexp, 0))
|
||
* NVL (boi.bes_bestelopdr_item_prijs, 0)
|
||
), '9999999990.99') bedrag,
|
||
(SELECT kbl.bes_kenmerkbestell_waarde
|
||
FROM bes_kenmerkbestell kbl, bes_kenmerk bk
|
||
WHERE kbl.bes_kenmerk_key = bk.bes_kenmerk_key
|
||
AND bk.bes_srtkenmerk_key = 2
|
||
AND kbl.bes_bestelling_key = b.bes_bestelling_key) projectnummer,
|
||
NVL ((SELECT ks.prs_kostensoort_oms
|
||
FROM bes_kenmerkbestell kbl, prs_kostensoort ks, bes_kenmerk bk
|
||
WHERE kbl.bes_kenmerkbestell_waarde = ks.prs_kostensoort_key
|
||
AND kbl.bes_kenmerk_key = bk.bes_kenmerk_key
|
||
AND bk.bes_srtkenmerk_key = 27
|
||
AND kbl.bes_bestelling_key = b.bes_bestelling_key),
|
||
(SELECT prs_kostensoort_oms
|
||
FROM prs_kostensoort kst
|
||
WHERE kst.prs_kostensoort_key = itd.prs_kostensoort_key)
|
||
) kostensoort,
|
||
(SELECT k.prs_kostenplaats_nr
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = b.prs_kostenplaats_key) kostenplaats,
|
||
(SELECT kbl.bes_kenmerkbestell_waarde
|
||
FROM bes_kenmerkbestell kbl, bes_kenmerk bk
|
||
WHERE kbl.bes_kenmerk_key = bk.bes_kenmerk_key
|
||
AND bk.bes_srtkenmerk_key = 23
|
||
AND kbl.bes_bestelling_key = b.bes_bestelling_key) budget,
|
||
(SELECT a.prs_afdeling_naam
|
||
FROM prs_afdeling a, prs_perslid p
|
||
WHERE p.prs_perslid_key = b.prs_perslid_key AND a.prs_afdeling_key = p.prs_afdeling_key) afdelingscode,
|
||
bo.bes_bestelopdr_status status,
|
||
(SELECT fud.fac_usrdata_omschr
|
||
FROM bes_kenmerkbestell kbl, fac_usrdata fud, bes_kenmerk bk
|
||
WHERE kbl.bes_kenmerkbestell_waarde = fud.fac_usrdata_key
|
||
AND kbl.bes_kenmerk_key = bk.bes_kenmerk_key
|
||
AND bk.bes_srtkenmerk_key = 28
|
||
AND kbl.bes_bestelling_key = b.bes_bestelling_key) teexporteren
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelopdr bo,
|
||
ins_srtdeel isd,
|
||
ins_srtgroep isg,
|
||
ins_tab_discipline itd
|
||
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND isd.ins_srtdeel_key = bi.ins_srtdeel_key
|
||
AND itd.ins_discipline_key = isg.ins_discipline_key
|
||
AND isg.ins_srtgroep_key = isd.ins_srtgroep_key
|
||
AND bo.bes_bestelopdr_status IN (4, 6)
|
||
AND (SELECT fud.fac_usrdata_omschr
|
||
FROM bes_kenmerkbestell kbl, fac_usrdata fud, bes_kenmerk bk
|
||
WHERE kbl.bes_kenmerkbestell_waarde = fud.fac_usrdata_key
|
||
AND kbl.bes_kenmerk_key = bk.bes_kenmerk_key
|
||
AND bk.bes_srtkenmerk_key = 28
|
||
AND kbl.bes_bestelling_key = b.bes_bestelling_key) = 'Ja' -- te_exporteren
|
||
AND (NVL (boi.bes_bestelopdr_item_aantalontv, 0) - NVL (boi.bes_bestelopdr_item_aantalexp, 0)) > 0
|
||
AND (SELECT a1.prs_afdeling_key1
|
||
FROM bes_bestelling b1,
|
||
prs_perslid p1,
|
||
prs_v_afdeling_boom a1
|
||
WHERE b1.prs_perslid_key = p1.prs_perslid_key
|
||
AND p1.prs_afdeling_key = a1.prs_afdeling_key
|
||
AND b1.bes_bestelling_key = b.bes_bestelling_key) = 3 -- business unit TTNL
|
||
GROUP BY b.bes_bestelling_key,
|
||
bo.bes_bestelopdr_key,
|
||
b.prs_kostenplaats_key,
|
||
b.prs_perslid_key,
|
||
bo.bes_bestelopdr_status,
|
||
bo.prs_bedrijf_key,
|
||
itd.prs_kostensoort_key
|
||
UNION
|
||
SELECT m.mld_melding_key bestellingkey,
|
||
mo.mld_opdr_key bestelopdrkey,
|
||
(SELECT sd.ins_srtdiscipline_prefix
|
||
FROM mld_discipline md, ins_srtdiscipline sd
|
||
WHERE sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND md.ins_discipline_key = m.mld_ins_discipline_key) bestelopdrprefix,
|
||
(SELECT sd.ins_srtdiscipline_prefix
|
||
FROM mld_discipline md, ins_srtdiscipline sd
|
||
WHERE sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND md.ins_discipline_key = m.mld_ins_discipline_key)
|
||
|| mo.mld_melding_key bestelopdrnummer,
|
||
(SELECT b.prs_leverancier_nr
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = mo.mld_uitvoerende_keys) crediteurennummer,
|
||
to_char(mld_opdr_kosten, '9999999990.99') bedrag,
|
||
(SELECT v.mld_kenmerkopdr_waarde
|
||
FROM mld_kenmerkopdr v, mld_kenmerk mk
|
||
WHERE v.mld_kenmerk_key = mk.mld_kenmerk_key
|
||
AND mk.mld_srtkenmerk_key = 53
|
||
AND v.mld_opdr_key = mo.mld_opdr_key) projectnummer,
|
||
NVL ((SELECT ks.prs_kostensoort_oms
|
||
FROM mld_kenmerkopdr v, prs_kostensoort ks, mld_kenmerk mk
|
||
WHERE v.mld_kenmerkopdr_waarde = ks.prs_kostensoort_key
|
||
AND v.mld_kenmerk_key = mk.mld_kenmerk_key
|
||
AND mk.mld_srtkenmerk_key = 29
|
||
AND v.mld_opdr_key = mo.mld_opdr_key),
|
||
NVL ((SELECT prs_kostensoort_oms
|
||
FROM prs_kostensoort kst, mld_stdmelding stdm
|
||
WHERE kst.prs_kostensoort_key = stdm.prs_kostensoort_key
|
||
AND stdm.mld_stdmelding_key = m.mld_stdmelding_key),
|
||
(SELECT prs_kostensoort_oms
|
||
FROM prs_kostensoort kst, mld_stdmelding stdm, ins_tab_discipline di
|
||
WHERE kst.prs_kostensoort_key = di.prs_kostensoort_key
|
||
AND di.ins_discipline_key = stdm.mld_ins_discipline_key
|
||
AND stdm.mld_stdmelding_key = m.mld_stdmelding_key)
|
||
)
|
||
) kostensoort,
|
||
(SELECT k.prs_kostenplaats_nr
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = mo.prs_kostenplaats_key) kostenplaats,
|
||
(SELECT v.mld_kenmerkopdr_waarde
|
||
FROM mld_kenmerkopdr v, mld_kenmerk mk
|
||
WHERE v.mld_kenmerk_key = mk.mld_kenmerk_key
|
||
AND mk.mld_srtkenmerk_key = 52
|
||
AND v.mld_opdr_key = mo.mld_opdr_key) budget,
|
||
(SELECT a.prs_afdeling_naam
|
||
FROM prs_afdeling a, prs_perslid p
|
||
WHERE p.prs_perslid_key = m.prs_perslid_key AND a.prs_afdeling_key = p.prs_afdeling_key) afdelingscode,
|
||
mo.mld_statusopdr_key status,
|
||
(SELECT fud.fac_usrdata_omschr
|
||
FROM mld_kenmerkopdr v, fac_usrdata fud, mld_kenmerk mk
|
||
WHERE v.mld_kenmerkopdr_waarde = fud.fac_usrdata_key
|
||
AND v.mld_kenmerk_key = mk.mld_kenmerk_key
|
||
AND mk.mld_srtkenmerk_key = 30
|
||
AND v.mld_opdr_key = mo.mld_opdr_key) teexporteren
|
||
FROM mld_melding m, mld_opdr mo
|
||
WHERE mo.mld_melding_key = m.mld_melding_key
|
||
AND mo.mld_statusopdr_key IN (6) -- 5 niet voor meldingen
|
||
AND (SELECT fud.fac_usrdata_omschr
|
||
FROM mld_kenmerkopdr v, fac_usrdata fud, mld_kenmerk mk
|
||
WHERE v.mld_kenmerkopdr_waarde = fud.fac_usrdata_key
|
||
AND v.mld_kenmerk_key = mk.mld_kenmerk_key
|
||
AND mk.mld_srtkenmerk_key = 30
|
||
AND v.mld_opdr_key = mo.mld_opdr_key) = 'Ja' -- te_exporteren
|
||
AND (SELECT a1.prs_afdeling_key1
|
||
FROM mld_melding m1,
|
||
prs_perslid p1,
|
||
prs_v_afdeling_boom a1
|
||
WHERE m1.mld_melding_user_key = p1.prs_perslid_key
|
||
AND p1.prs_afdeling_key = a1.prs_afdeling_key
|
||
AND m1.mld_melding_key = m.mld_melding_key) = 3 -- business unit TTNL
|
||
ORDER BY 3, 1;
|
||
|
||
CREATE OR REPLACE PROCEDURE nfit_select_iqbs (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
-- View heeft alles al. geen acties nodig
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE nfit_export_iqbs (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR exportregels
|
||
IS
|
||
SELECT bestellingkey, bestelopdrkey, bestelopdrnummer,
|
||
bestelopdrnummer
|
||
|| ';'
|
||
|| crediteurennummer
|
||
|| ';'
|
||
|| bedrag
|
||
|| ';'
|
||
|| projectnummer
|
||
|| ';'
|
||
|| kostensoort
|
||
|| ';'
|
||
|| kostenplaats
|
||
|| ';'
|
||
|| budget
|
||
|| ';'
|
||
|| afdelingscode regel,
|
||
status
|
||
FROM nfit_v_iqbs;
|
||
|
||
v_filehandle UTL_FILE.file_type;
|
||
v_newline VARCHAR2 (1000);
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
l_cnt NUMBER;
|
||
lp_filename VARCHAR2 (200);
|
||
BEGIN
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname
|
||
AND imp_log_datum < SYSDATE - 365; -- Logging blijft nu 1 jaar bewaard.
|
||
|
||
l_cnt := 0;
|
||
v_filehandle := UTL_FILE.fopen (p_filedir, p_filename, 'w');
|
||
fac.imp_writelog (p_applname,
|
||
p_applrun,
|
||
'I',
|
||
'Export naar ' || p_filedir || '\' || lp_filename,
|
||
''
|
||
);
|
||
|
||
FOR expregel IN exportregels
|
||
LOOP
|
||
BEGIN
|
||
v_newline := expregel.regel;
|
||
UTL_FILE.put_line (v_filehandle, v_newline);
|
||
|
||
IF (SUBSTR (expregel.regel, 1, 2) = '11') -- catalogus bestelling
|
||
THEN
|
||
-- Aantal te exporteren aanpassen
|
||
-- Deze moet gelijk worden aan het aantal dat is ontvangen
|
||
UPDATE bes_bestelopdr_item
|
||
SET bes_bestelopdr_item_aantalexp = bes_bestelopdr_item_aantalontv
|
||
WHERE bes_bestelopdr_key = expregel.bestelopdrkey;
|
||
|
||
COMMIT;
|
||
|
||
-- Als van een item alles geleverd is dan kan status ook op AV
|
||
-- Eerst op TV zodat ook bestelaanvragen op TV komen door trigger
|
||
UPDATE bes_bestelopdr_item
|
||
SET bes_bestelopdr_item_status = 6
|
||
WHERE bes_bestelopdr_key = expregel.bestelopdrkey
|
||
AND bes_bestelopdr_item_aantal = bes_bestelopdr_item_aantalexp;
|
||
|
||
COMMIT;
|
||
|
||
UPDATE bes_bestelopdr_item
|
||
SET bes_bestelopdr_item_status = 7
|
||
WHERE bes_bestelopdr_key = expregel.bestelopdrkey
|
||
AND bes_bestelopdr_item_aantal = bes_bestelopdr_item_aantalexp;
|
||
|
||
COMMIT;
|
||
|
||
-- Dit gaat niet automatisch als alle items op AV staan
|
||
IF (expregel.status = 6) -- status bestelopdr is "geleverd TV"
|
||
THEN
|
||
-- Bestelopdracht AV verklaren als status is 6 (Geleverd TV)
|
||
UPDATE bes_bestelopdr
|
||
SET bes_bestelopdr_status = 7
|
||
WHERE bes_bestelopdr_key = expregel.bestelopdrkey;
|
||
|
||
COMMIT;
|
||
|
||
--
|
||
-- Bestelling_items AV verklaren als bestelopdracht AV is
|
||
UPDATE bes_bestelling_item
|
||
SET bes_bestelling_item_status = 7
|
||
WHERE bes_bestelling_key = expregel.bestellingkey
|
||
AND bes_bestelling_item_aantal = bes_bestelling_item_aantalontv;
|
||
|
||
COMMIT;
|
||
|
||
-- Bestelling AV verklaren als bestel_items AV is
|
||
UPDATE bes_bestelling
|
||
SET bes_bestelling_status = 7
|
||
WHERE bes_bestelling_key = expregel.bestellingkey
|
||
AND bes_bestelling_item_cnt = bes_bestelling_item_cnt_lev;
|
||
|
||
UPDATE bes_bestelling
|
||
SET bes_bestelling_verwerkt = SYSDATE
|
||
WHERE bes_bestelling_key = expregel.bestellingkey
|
||
AND bes_bestelling_item_cnt = bes_bestelling_item_cnt_lev;
|
||
|
||
COMMIT;
|
||
END IF;
|
||
ELSIF expregel.status = 6 -- incidentele bestelling meldingen
|
||
THEN
|
||
-- Meldingsopdracht AV verklaren als status is 6 (Geleverd TV)
|
||
UPDATE mld_opdr
|
||
SET mld_statusopdr_key = 7
|
||
WHERE mld_opdr_key = expregel.bestelopdrkey;
|
||
|
||
COMMIT;
|
||
END IF;
|
||
|
||
l_cnt := l_cnt + 1;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
-- EOF reached ?? er wordt geen file uitgelezen???
|
||
EXIT;
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_applname,
|
||
p_applrun,
|
||
'I',
|
||
'Aantal geschreven records: ' || l_cnt,
|
||
''
|
||
);
|
||
UTL_FILE.fclose (v_filehandle); -- close file
|
||
COMMIT; -- voor de zekerheid
|
||
EXCEPTION
|
||
WHEN UTL_FILE.invalid_operation
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'UTL_FILE.INVALID_OPERATION (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_applname,
|
||
p_applrun,
|
||
'E',
|
||
v_errormsg,
|
||
'Controleer bestandsnaam van importbestand'
|
||
);
|
||
WHEN UTL_FILE.invalid_filehandle
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'UTL_FILE.INVALID_FILEHANDLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
|
||
WHEN UTL_FILE.invalid_path
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'UTL_FILE.INVALID_PATH (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog
|
||
(p_applname,
|
||
p_applrun,
|
||
'E',
|
||
v_errormsg,
|
||
'Controleer directory van importbestand (init.ora bevat utl_file_dir setting om te beschrijven welke directories te gebruiken zijn'
|
||
);
|
||
WHEN UTL_FILE.read_error
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'UTL_FILE.READ_ERROR (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
|
||
WHEN OTHERS
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
|
||
END;
|
||
/
|
||
|
||
-- IMPORT NFIT#005
|
||
|
||
-- View van de import/export logging
|
||
CREATE OR REPLACE VIEW NFIT_V_IMPLOG
|
||
(FCLT_F_APPLICATIE, LOG_DATUM, FCLT_F_STATUS, OMSCHRIJVING, HINT)
|
||
AS
|
||
SELECT imp_log_applicatie, imp_log_datum, imp_log_status, imp_log_omschrijving, imp_log_hint
|
||
FROM imp_log;
|
||
|
||
-- Importeren leveranciersgegevens
|
||
CREATE OR REPLACE PROCEDURE nfit_import_baan (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
v_filehandle UTL_FILE.file_type;
|
||
v_newline VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
-- De importvelden
|
||
v_bedrijfsnaam VARCHAR2 (100);
|
||
v_post_adres VARCHAR2 (100);
|
||
v_post_postcode VARCHAR2 (100);
|
||
v_post_plaats VARCHAR2 (100);
|
||
v_post_land VARCHAR2 (100);
|
||
v_telefoon VARCHAR2 (100);
|
||
v_contactpersoon VARCHAR2 (100);
|
||
v_leveranciersnummer VARCHAR2 (100);
|
||
v_bezoek_adres VARCHAR2 (100);
|
||
v_bezoek_postcode VARCHAR2 (100);
|
||
v_bezoek_plaats VARCHAR2 (100);
|
||
v_bezoek_land VARCHAR2 (100);
|
||
v_fax VARCHAR2 (100);
|
||
v_branche_code VARCHAR2 (100);
|
||
v_betalingsconditie VARCHAR2 (100);
|
||
v_taal VARCHAR2 (100);
|
||
header_is_valid BOOLEAN;
|
||
v_controle_res VARCHAR2 (30);
|
||
BEGIN
|
||
-- Clear my old logs
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
v_filehandle := UTL_FILE.fopen (p_filedir, p_filename, 'r');
|
||
v_fielddelimitor := '|';
|
||
header_is_valid := TRUE; -- No header present
|
||
|
||
DELETE FROM nfit_imp_baan;
|
||
|
||
LOOP
|
||
BEGIN
|
||
UTL_FILE.get_line (v_filehandle, v_newline);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
-- EOF reached
|
||
fac.imp_writelog (p_applname, p_applrun, 'I', 'EOF reached', '');
|
||
EXIT;
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
|
||
END;
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijfsnaam);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_post_adres);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_post_postcode);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_post_plaats);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_post_land);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_telefoon);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_leveranciersnummer);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bezoek_adres);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bezoek_postcode);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bezoek_plaats);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bezoek_land);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_fax);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_branche_code);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_betalingsconditie);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_taal);
|
||
|
||
IF (header_is_valid = FALSE)
|
||
THEN
|
||
header_is_valid := TRUE;
|
||
ELSE
|
||
IF header_is_valid = TRUE AND v_leveranciersnummer IS NOT NULL
|
||
THEN
|
||
INSERT INTO nfit_imp_baan
|
||
(bedrijfsnaam,
|
||
post_adres,
|
||
post_postcode,
|
||
post_plaats,
|
||
post_land,
|
||
telefoon,
|
||
contactpersoon,
|
||
leveranciersnummer,
|
||
bezoek_adres,
|
||
bezoek_postcode,
|
||
bezoek_plaats,
|
||
bezoek_land,
|
||
fax,
|
||
branche_code,
|
||
betalingsconditie,
|
||
taal
|
||
)
|
||
VALUES (SUBSTR (LTRIM(RTRIM(v_bedrijfsnaam)), 1, 60),
|
||
SUBSTR (LTRIM(RTRIM(v_post_adres)), 1, 35),
|
||
SUBSTR (LTRIM(RTRIM(v_post_postcode)), 1, 12),
|
||
SUBSTR (LTRIM(RTRIM(v_post_plaats)), 1, 35),
|
||
SUBSTR (LTRIM(RTRIM(v_post_land)), 1, 30),
|
||
SUBSTR (LTRIM(RTRIM(v_telefoon)), 1, 20),
|
||
SUBSTR (LTRIM(RTRIM(v_contactpersoon)), 1, 30),
|
||
SUBSTR (LTRIM(RTRIM(v_leveranciersnummer)), 1, 20),
|
||
SUBSTR (LTRIM(RTRIM(v_bezoek_adres)), 1, 35),
|
||
SUBSTR (LTRIM(RTRIM(v_bezoek_postcode)), 1, 12),
|
||
SUBSTR (LTRIM(RTRIM(v_bezoek_plaats)), 1, 30),
|
||
SUBSTR (LTRIM(RTRIM(v_bezoek_land)), 1, 30),
|
||
SUBSTR (LTRIM(RTRIM(v_fax)), 1, 20),
|
||
SUBSTR (LTRIM(RTRIM(v_branche_code)), 1, 30),
|
||
SUBSTR (LTRIM(RTRIM(v_betalingsconditie)), 1, 30),
|
||
SUBSTR (LTRIM(RTRIM(v_taal)), 1, 30)
|
||
);
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
IF (header_is_valid = FALSE)
|
||
THEN
|
||
fac.imp_writelog
|
||
(p_applname,
|
||
p_applrun,
|
||
'E',
|
||
'Invalid import file',
|
||
'Er is geen geldige Header aangetroffen in het importbestand'
|
||
);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN UTL_FILE.invalid_operation
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'UTL_FILE.INVALID_OPERATION (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_applname,
|
||
p_applrun,
|
||
'E',
|
||
v_errormsg,
|
||
'Controleer bestandsnaam van importbestand'
|
||
);
|
||
WHEN UTL_FILE.invalid_filehandle
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'UTL_FILE.INVALID_FILEHANDLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
|
||
WHEN UTL_FILE.invalid_path
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'UTL_FILE.INVALID_PATH (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog
|
||
(p_applname,
|
||
p_applrun,
|
||
'E',
|
||
v_errormsg,
|
||
'Controleer directory van importbestand (init.ora bevat utl_file_dir setting om te beschrijven welke directories te gebruiken zijn'
|
||
);
|
||
WHEN UTL_FILE.read_error
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'UTL_FILE.READ_ERROR (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
|
||
WHEN OTHERS
|
||
THEN
|
||
UTL_FILE.fclose (v_filehandle);
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
|
||
END;
|
||
/
|
||
|
||
|
||
-- Updaten leveranciersgegevens
|
||
CREATE OR REPLACE PROCEDURE nfit_update_baan (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
/*
|
||
1. Technische documentatie: FSN#1426.doc (09-10-2006)
|
||
*/
|
||
-- Constanten
|
||
c_maxvariation NUMBER := 20;
|
||
c_commitbuffer NUMBER := 1000;
|
||
-- om de zoveel committen
|
||
v_buffercount NUMBER := 0;
|
||
|
||
CURSOR c_bedr_del
|
||
IS
|
||
SELECT b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,b.prs_bedrijf_intern
|
||
FROM prs_bedrijf b,
|
||
nfit_imp_baan bn
|
||
WHERE b.prs_leverancier_nr = bn.leveranciersnummer(+)
|
||
AND b.prs_bedrijf_naam IS NOT NULL
|
||
AND bn.bedrijfsnaam IS NULL
|
||
AND b.prs_bedrijf_leverancier IS NOT NULL
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
ORDER BY 2, 1;
|
||
|
||
CURSOR c_bedr_upd
|
||
IS
|
||
SELECT b.prs_bedrijf_key prs_bedrijf_key,
|
||
bn.bedrijfsnaam prs_bedrijf_naam,
|
||
bn.post_postcode prs_bedrijf_post_postcode,
|
||
bn.post_adres prs_bedrijf_post_adres,
|
||
bn.post_plaats prs_bedrijf_post_plaats,
|
||
bn.post_land prs_bedrijf_post_land,
|
||
bn.telefoon prs_bedrijf_telefoon,
|
||
bn.contactpersoon prs_bedrijf_contact_persoon,
|
||
bn.leveranciersnummer prs_leverancier_nr,
|
||
bn.bezoek_adres prs_bedrijf_bezoek_adres,
|
||
bn.bezoek_postcode prs_bedrijf_bezoek_postcode,
|
||
bn.bezoek_plaats prs_bedrijf_bezoek_plaats,
|
||
bn.bezoek_land prs_bedrijf_bezoek_land,
|
||
bn.fax prs_bedrijf_fax,
|
||
bn.branche_code branche_code,
|
||
bn.betalingsconditie betalingsconditie,
|
||
bn.taal taal
|
||
FROM nfit_imp_baan bn,
|
||
prs_bedrijf b
|
||
WHERE bn.leveranciersnummer = b.prs_leverancier_nr(+)
|
||
AND b.prs_bedrijf_verwijder(+) IS NULL
|
||
--AND bn.leveranciersnummer LIKE 'AC0016'
|
||
ORDER BY bn.bedrijfsnaam, b.prs_leverancier_nr;
|
||
|
||
|
||
v_kenmerk_branche_code_key NUMBER (10);
|
||
v_kenmerk_bconditie_key NUMBER (10);
|
||
v_kenmerk_taal_key NUMBER (10);
|
||
v_bedrijf_key NUMBER (10);
|
||
v_kenmerklink_branche_key NUMBER (10);
|
||
v_kenmerklink_bconditie_key NUMBER (10);
|
||
v_kenmerklink_taal_key NUMBER (10);
|
||
v_find NUMBER (10);
|
||
|
||
rec_bedr_del c_bedr_del%ROWTYPE;
|
||
rec_bedr_upd c_bedr_upd%ROWTYPE;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (1024);
|
||
v_errorhint VARCHAR2 (1024);
|
||
v_action VARCHAR (10);
|
||
v_count NUMBER (10);
|
||
v_update BOOLEAN;
|
||
v_filehandle UTL_FILE.file_type;
|
||
v_aktie VARCHAR (10);
|
||
v_bedrijf_count_imp NUMBER;
|
||
v_bedrijf_count_fclt NUMBER;
|
||
v_bedrijf_newcount_fclt NUMBER;
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
l_validatie NUMBER;
|
||
BEGIN
|
||
-- Clear my old logs
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname
|
||
AND imp_log_run <> p_applrun;
|
||
COMMIT;
|
||
|
||
v_update := TRUE;
|
||
|
||
SELECT MAX (fac_module_version)
|
||
INTO currentversion
|
||
FROM fac_module;
|
||
|
||
fac.imp_writelog (p_applname, p_applrun, 'I', 'Facilitor Crediteuren import version ' || currentversion, '$Revision: 14 $');
|
||
|
||
-- #Import
|
||
SELECT DECODE (COUNT (*), 0, 1, COUNT (*)) -- DECODE ivm vermijden deling door 0
|
||
INTO v_bedrijf_count_imp
|
||
FROM nfit_imp_baan;
|
||
|
||
-- Informatieve logging, zien we gelijk hoe laat het was
|
||
fac.imp_writelog (p_applname, p_applrun, 'S', 'Aantal ingelezen crediteuren: ' || TO_CHAR (v_bedrijf_count_imp), '');
|
||
|
||
-- #Actieve crediteuren
|
||
SELECT DECODE (COUNT (*), 0, 1, COUNT (*)) -- DECODE ivm vermijden deling door 0
|
||
INTO v_bedrijf_count_fclt
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND prs_bedrijf_naam NOT LIKE 'INACTIEF:%';
|
||
|
||
-- v_baan_count_fclt = 1 bij initiele situatie (of er is maar 1 crediteur aanwezig = > ook doorgaan!)
|
||
-- IF v_baan_count_imp = 1
|
||
-- OR 100 * ABS (v_baan_count_imp - v_baan_count_fclt) / v_baan_count_fclt > c_maxvariation
|
||
IF ((v_bedrijf_count_fclt <> 1) AND 1=2
|
||
AND ((v_bedrijf_count_imp = 1)
|
||
OR (100 * ABS (v_bedrijf_count_imp - v_bedrijf_count_fclt) / v_bedrijf_count_fclt > c_maxvariation)))
|
||
THEN
|
||
fac.imp_writelog (p_applname,
|
||
p_applrun,
|
||
'E',
|
||
'Het verschil tussen de actieve crediteuren ('
|
||
|| TO_CHAR (v_bedrijf_count_fclt)
|
||
|| ') en te importeren aantallen ('
|
||
|| TO_CHAR (v_bedrijf_count_imp)
|
||
|| ') is te groot',
|
||
'Zie Specificaties: De afwijking is teveel en bedraagt '
|
||
|| TO_CHAR (100 * ABS (v_bedrijf_count_fclt - v_bedrijf_count_imp) / v_bedrijf_count_fclt,
|
||
'9999999D9'
|
||
)
|
||
|| '%.'
|
||
);
|
||
RETURN;
|
||
END IF;
|
||
|
||
-- Controle: kenmerk "Branchecode" aanwezig?
|
||
IF v_update
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'kenmerk "Branchecode" bestaat niet';
|
||
|
||
-- Bepaal de key van kenmerk "Branchecode"
|
||
-- kenmerk_key is 1023
|
||
SELECT prs_kenmerk_key
|
||
INTO v_kenmerk_branche_code_key
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_omschrijving = 'Branchecode'
|
||
AND prs_kenmerk_niveau = 'B'
|
||
AND prs_kenmerk_kenmerktype = 'C';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint := 'kenmerk "Branchecode" aanmaken';
|
||
fac.imp_writelog (p_applname, p_applrun, 'I', v_errormsg, v_errorhint);
|
||
|
||
-- Kenmerk bestaat kennelijk niet, maak 'm maar aan
|
||
INSERT INTO prs_kenmerk
|
||
(prs_kenmerk_niveau,
|
||
prs_kenmerk_volgnr,
|
||
prs_kenmerk_omschrijving,
|
||
prs_kenmerk_hint,
|
||
prs_kenmerk_kenmerktype,
|
||
prs_kenmerk_lengte
|
||
)
|
||
VALUES ('B',
|
||
110,
|
||
'Branchecode',
|
||
'Branchecode',
|
||
'C',
|
||
30
|
||
);
|
||
COMMIT;
|
||
|
||
-- Wat is de key van deze nieuwe geworden?
|
||
SELECT prs_kenmerk_key
|
||
INTO v_kenmerk_branche_code_key
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_omschrijving = 'Branchecode'
|
||
AND prs_kenmerk_niveau = 'B'
|
||
AND prs_kenmerk_kenmerktype = 'C'
|
||
AND prs_kenmerk_verwijder IS NULL;
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := 'kenmerk_key van kenmerk "Branchecode" kan niet bepaald worden';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_errorhint);
|
||
v_update := FALSE;
|
||
END;
|
||
END IF;
|
||
|
||
|
||
-- Controle: kenmerk "Betalingsconditie" aanwezig?
|
||
IF v_update
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'kenmerk "Betalingsconditie" bestaat niet';
|
||
|
||
-- Bepaal de key van kenmerk "Betalingsconditie"
|
||
-- kenmerk_key is 1022
|
||
SELECT prs_kenmerk_key
|
||
INTO v_kenmerk_bconditie_key
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_omschrijving = 'Betalingsconditie'
|
||
AND prs_kenmerk_niveau = 'B'
|
||
AND prs_kenmerk_kenmerktype = 'C';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint := 'kenmerk "Betalingsconditie" aanmaken';
|
||
fac.imp_writelog (p_applname, p_applrun, 'I', v_errormsg, v_errorhint);
|
||
|
||
-- Kenmerk bestaat kennelijk niet, maak 'm maar aan
|
||
INSERT INTO prs_kenmerk
|
||
(prs_kenmerk_niveau,
|
||
prs_kenmerk_volgnr,
|
||
prs_kenmerk_omschrijving,
|
||
prs_kenmerk_hint,
|
||
prs_kenmerk_kenmerktype,
|
||
prs_kenmerk_lengte
|
||
)
|
||
VALUES ('B',
|
||
100,
|
||
'Betalingsconditie',
|
||
'Betalingsvoorwaarde',
|
||
'C',
|
||
30
|
||
);
|
||
COMMIT;
|
||
|
||
-- Wat is de key van deze nieuwe geworden?
|
||
SELECT prs_kenmerk_key
|
||
INTO v_kenmerk_bconditie_key
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_omschrijving = 'Betalingsconditie'
|
||
AND prs_kenmerk_niveau = 'B'
|
||
AND prs_kenmerk_kenmerktype = 'C'
|
||
AND prs_kenmerk_verwijder IS NULL;
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := 'kenmerk_key van kenmerk "Betalingsconditie" kan niet bepaald worden';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_errorhint);
|
||
v_update := FALSE;
|
||
END;
|
||
END IF;
|
||
|
||
|
||
-- Controle: kenmerk "Taal" aanwezig?
|
||
IF v_update
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'kenmerk "Taal" bestaat niet';
|
||
|
||
-- Bepaal de key van kenmerk "Taal"
|
||
-- kenmerk_key is 1042
|
||
SELECT prs_kenmerk_key
|
||
INTO v_kenmerk_taal_key
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_omschrijving = 'Taal'
|
||
AND prs_kenmerk_niveau = 'B'
|
||
AND prs_kenmerk_kenmerktype = 'C';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint := 'kenmerk "Taal" aanmaken';
|
||
fac.imp_writelog (p_applname, p_applrun, 'I', v_errormsg, v_errorhint);
|
||
|
||
-- Kenmerk bestaat kennelijk niet, maak 'm maar aan
|
||
INSERT INTO prs_kenmerk
|
||
(prs_kenmerk_niveau,
|
||
prs_kenmerk_volgnr,
|
||
prs_kenmerk_omschrijving,
|
||
prs_kenmerk_hint,
|
||
prs_kenmerk_kenmerktype,
|
||
prs_kenmerk_lengte
|
||
)
|
||
VALUES ('B',
|
||
120,
|
||
'Taal',
|
||
'Taal',
|
||
'C',
|
||
30
|
||
);
|
||
COMMIT;
|
||
|
||
-- Wat is de key van deze nieuwe geworden?
|
||
SELECT prs_kenmerk_key
|
||
INTO v_kenmerk_taal_key
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_omschrijving = 'Taal'
|
||
AND prs_kenmerk_niveau = 'B'
|
||
AND prs_kenmerk_kenmerktype = 'C'
|
||
AND prs_kenmerk_verwijder IS NULL;
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := 'kenmerk_key van kenmerk "Taal" kan niet bepaald worden';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_errorhint);
|
||
v_update := FALSE;
|
||
END;
|
||
END IF;
|
||
|
||
|
||
-- Delete
|
||
v_errormsg := 'Try to open cursor';
|
||
v_action := 'DELETE';
|
||
|
||
FOR rec_bedr_del IN c_bedr_del
|
||
LOOP
|
||
BEGIN
|
||
v_bedrijf_key := rec_bedr_del.prs_bedrijf_key;
|
||
v_errormsg := 'Inactiveren van het bedrijf is NIET gelukt';
|
||
v_errorhint := 'Inactiveren van het bedrijf is NIET gelukt. Bedrijf met bedrijfsnaam ' || rec_bedr_del.prs_bedrijf_naam;
|
||
|
||
UPDATE prs_bedrijf
|
||
SET prs_bedrijf_naam = SUBSTR ('INACTIEF: ' || prs_bedrijf_naam, 1, 60)
|
||
WHERE prs_bedrijf_key = v_bedrijf_key
|
||
AND prs_bedrijf_naam NOT LIKE 'INACTIEF:%';
|
||
COMMIT;
|
||
|
||
fac.imp_writelog (p_applname,
|
||
p_applrun,
|
||
'C',
|
||
'Bedrijf als INACTIEF gemarkeerd of was al INACTIEF, bedrijfscode: ' || rec_bedr_del.prs_bedrijf_naam,
|
||
''
|
||
);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_errorhint);
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
COMMIT;
|
||
-- Update
|
||
v_errormsg := 'Try to open cursor';
|
||
v_action := 'UPDATE';
|
||
|
||
FOR rec_bedr_upd IN c_bedr_upd
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Het bedrijf kan niet bepaald worden ' || rec_bedr_upd.prs_bedrijf_naam;
|
||
-- Init
|
||
v_update := TRUE;
|
||
v_bedrijf_key := 0;
|
||
|
||
IF rec_bedr_upd.prs_bedrijf_key IS NULL
|
||
THEN
|
||
v_aktie := 'INSERT';
|
||
v_errormsg := 'Bedrijfsgegevens kunnen niet toegevoegd worden';
|
||
ELSE
|
||
v_aktie := 'UPDATE';
|
||
v_errormsg := 'Bedrijfsgegevens kunnen niet gewijzigd worden';
|
||
END IF;
|
||
|
||
-- *** Controle verplichte gegevens + ophalen extra informatie ***
|
||
-- Controle: PRS_LEVERANCIER_NR
|
||
IF v_update AND rec_bedr_upd.prs_leverancier_nr IS NULL
|
||
THEN
|
||
v_errorhint := 'Bedrijf heeft geen prs_leverancier_nr; bedrijfsnaam: ' || rec_bedr_upd.prs_bedrijf_naam;
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_errorhint);
|
||
v_update := FALSE;
|
||
END IF;
|
||
|
||
-- Controle: PRS_BEDRIJF_NAAM
|
||
IF rec_bedr_upd.prs_bedrijf_naam IS NULL
|
||
THEN
|
||
v_errorhint := 'Bedrijf heeft geen bedrijfsnaam; bedrijfsnaam/leveranciersnummer: '
|
||
|| rec_bedr_upd.prs_bedrijf_naam
|
||
|| '/'
|
||
|| rec_bedr_upd.prs_leverancier_nr;
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_errorhint);
|
||
v_update := FALSE;
|
||
END IF;
|
||
|
||
-- *** Daadwerkelijk insert/update prs_bedrijf ***
|
||
IF v_update
|
||
THEN
|
||
BEGIN
|
||
IF v_aktie = 'INSERT'
|
||
THEN
|
||
v_errormsg := 'Bedrijf kan niet worden toegevoegd';
|
||
|
||
-- De volgende flexkenmerken toevoegen
|
||
-- bedr.branche_code,
|
||
-- bedr.betalingsconditie,
|
||
-- bedr.taal.
|
||
INSERT INTO prs_bedrijf
|
||
(prs_bedrijf_naam,
|
||
prs_bedrijf_post_adres,
|
||
prs_bedrijf_post_postcode,
|
||
prs_bedrijf_post_plaats,
|
||
prs_bedrijf_post_land,
|
||
prs_bedrijf_telefoon,
|
||
prs_bedrijf_contact_persoon,
|
||
prs_leverancier_nr,
|
||
prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_bezoek_land,
|
||
prs_bedrijf_fax,
|
||
prs_bedrijf_leverancier,
|
||
prs_bedrijf_uitvoerende,
|
||
prs_bedrijf_contract
|
||
)
|
||
VALUES (rec_bedr_upd.prs_bedrijf_naam,
|
||
rec_bedr_upd.prs_bedrijf_post_adres,
|
||
rec_bedr_upd.prs_bedrijf_post_postcode,
|
||
rec_bedr_upd.prs_bedrijf_post_plaats,
|
||
rec_bedr_upd.prs_bedrijf_post_land,
|
||
rec_bedr_upd.prs_bedrijf_telefoon,
|
||
rec_bedr_upd.prs_bedrijf_contact_persoon,
|
||
rec_bedr_upd.prs_leverancier_nr,
|
||
rec_bedr_upd.prs_bedrijf_bezoek_adres,
|
||
rec_bedr_upd.prs_bedrijf_bezoek_postcode,
|
||
rec_bedr_upd.prs_bedrijf_bezoek_plaats,
|
||
rec_bedr_upd.prs_bedrijf_bezoek_land,
|
||
rec_bedr_upd.prs_bedrijf_fax,
|
||
1,
|
||
1,
|
||
1
|
||
);
|
||
COMMIT;
|
||
|
||
fac.imp_writelog (p_applname,
|
||
p_applrun,
|
||
'C',
|
||
'Nieuw bedrijf toegevoegd',
|
||
'bedrijfsnaam/leveranciersnummer: '
|
||
|| rec_bedr_upd.prs_bedrijf_naam
|
||
|| '/'
|
||
|| rec_bedr_upd.prs_leverancier_nr
|
||
);
|
||
|
||
-- Wat is de key van deze nieuwe geworden?
|
||
SELECT prs_bedrijf_key
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijf
|
||
WHERE prs_leverancier_nr = rec_bedr_upd.prs_leverancier_nr
|
||
AND prs_bedrijf_naam = rec_bedr_upd.prs_bedrijf_naam
|
||
AND prs_bedrijf_verwijder IS NULL;
|
||
ELSE -- v_aktie = 'UPDATE'
|
||
v_errormsg := 'Bedrijf kan niet worden gewijzigd';
|
||
|
||
UPDATE prs_bedrijf
|
||
SET prs_bedrijf_naam = rec_bedr_upd.prs_bedrijf_naam,
|
||
prs_bedrijf_post_adres = rec_bedr_upd.prs_bedrijf_post_adres,
|
||
prs_bedrijf_post_postcode = rec_bedr_upd.prs_bedrijf_post_postcode,
|
||
prs_bedrijf_post_plaats = rec_bedr_upd.prs_bedrijf_post_plaats,
|
||
prs_bedrijf_post_land = rec_bedr_upd.prs_bedrijf_post_land,
|
||
prs_bedrijf_telefoon = rec_bedr_upd.prs_bedrijf_telefoon,
|
||
prs_bedrijf_contact_persoon = rec_bedr_upd.prs_bedrijf_contact_persoon,
|
||
prs_bedrijf_bezoek_adres = rec_bedr_upd.prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_postcode = rec_bedr_upd.prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_plaats = rec_bedr_upd.prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_bezoek_land = rec_bedr_upd.prs_bedrijf_bezoek_land,
|
||
prs_bedrijf_fax = rec_bedr_upd.prs_bedrijf_fax,
|
||
prs_bedrijf_leverancier = 1,
|
||
prs_bedrijf_uitvoerende = 1,
|
||
prs_bedrijf_contract = 1
|
||
WHERE prs_bedrijf_key = rec_bedr_upd.prs_bedrijf_key
|
||
AND prs_leverancier_nr = rec_bedr_upd.prs_leverancier_nr;
|
||
/* AND ( prs_bedrijf_naam <> rec_bedr_upd.prs_bedrijf_naam
|
||
OR prs_bedrijf_post_adres <> rec_bedr_upd.prs_bedrijf_post_adres
|
||
OR prs_bedrijf_post_postcode <> rec_bedr_upd.prs_bedrijf_post_postcode
|
||
OR prs_bedrijf_post_plaats <> rec_bedr_upd.prs_bedrijf_post_plaats
|
||
OR prs_bedrijf_post_land <> rec_bedr_upd.prs_bedrijf_post_land
|
||
OR prs_bedrijf_telefoon <> rec_bedr_upd.prs_bedrijf_telefoon
|
||
OR prs_bedrijf_contact_persoon <> rec_bedr_upd.prs_bedrijf_contact_persoon
|
||
OR prs_bedrijf_bezoek_adres <> rec_bedr_upd.prs_bedrijf_bezoek_adres
|
||
OR prs_bedrijf_bezoek_postcode <> rec_bedr_upd.prs_bedrijf_bezoek_postcode
|
||
OR prs_bedrijf_bezoek_plaats <> rec_bedr_upd.prs_bedrijf_bezoek_plaats
|
||
OR prs_bedrijf_bezoek_land <> rec_bedr_upd.prs_bedrijf_bezoek_land
|
||
OR prs_bedrijf_fax <> rec_bedr_upd.prs_bedrijf_fax
|
||
OR prs_bedrijf_naam IS NULL
|
||
OR prs_bedrijf_post_adres IS NULL
|
||
OR prs_bedrijf_post_postcode IS NULL
|
||
OR prs_bedrijf_post_plaats IS NULL
|
||
OR prs_bedrijf_post_land IS NULL
|
||
OR prs_bedrijf_telefoon IS NULL
|
||
OR prs_bedrijf_contact_persoon IS NULL
|
||
OR prs_bedrijf_bezoek_adres IS NULL
|
||
OR prs_bedrijf_bezoek_postcode IS NULL
|
||
OR prs_bedrijf_bezoek_plaats IS NULL
|
||
OR prs_bedrijf_bezoek_land IS NULL
|
||
OR prs_bedrijf_fax IS NULL
|
||
); */
|
||
COMMIT;
|
||
|
||
fac.imp_writelog (p_applname,
|
||
p_applrun,
|
||
'C',
|
||
'Bedrijven bijgewerkt (indien nodig)',
|
||
'bedrijfsnaam/leveranciersnummer: '
|
||
|| rec_bedr_upd.prs_bedrijf_naam
|
||
|| '/'
|
||
|| rec_bedr_upd.prs_leverancier_nr
|
||
);
|
||
|
||
-- Wat is de key van dit bedrijf?
|
||
v_bedrijf_key := rec_bedr_upd.prs_bedrijf_key;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
v_errorhint := ' {' || v_errormsg || '}; bedrijfsnaam/leveranciersnummer: '
|
||
|| rec_bedr_upd.prs_bedrijf_naam
|
||
|| '/'
|
||
|| rec_bedr_upd.prs_leverancier_nr;
|
||
v_update := FALSE;
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_errorhint);
|
||
END;
|
||
END IF;
|
||
|
||
-- *** insert/update van de drie kenmerken van de bedrijf ***
|
||
IF v_update
|
||
THEN
|
||
BEGIN
|
||
IF v_aktie = 'INSERT'
|
||
THEN
|
||
v_errormsg := 'Kenmerken kunnen niet worden toegevoegd';
|
||
|
||
-- De volgende flexkenmerken toevoegen
|
||
-- bedr.branche_code,
|
||
-- bedr.betalingsconditie,
|
||
-- bedr.taal.
|
||
IF rec_bedr_upd.branche_code IS NOT NULL
|
||
THEN
|
||
INSERT INTO prs_kenmerklink
|
||
(prs_link_key,
|
||
prs_kenmerklink_niveau,
|
||
prs_kenmerk_key,
|
||
prs_kenmerklink_waarde
|
||
)
|
||
VALUES (v_bedrijf_key,
|
||
'B',
|
||
v_kenmerk_branche_code_key,
|
||
rec_bedr_upd.branche_code
|
||
);
|
||
COMMIT;
|
||
END IF;
|
||
|
||
IF rec_bedr_upd.betalingsconditie IS NOT NULL
|
||
THEN
|
||
INSERT INTO prs_kenmerklink
|
||
(prs_link_key,
|
||
prs_kenmerklink_niveau,
|
||
prs_kenmerk_key,
|
||
prs_kenmerklink_waarde
|
||
)
|
||
VALUES (v_bedrijf_key,
|
||
'B',
|
||
v_kenmerk_bconditie_key,
|
||
rec_bedr_upd.betalingsconditie
|
||
);
|
||
COMMIT;
|
||
END IF;
|
||
|
||
IF rec_bedr_upd.taal IS NOT NULL
|
||
THEN
|
||
INSERT INTO prs_kenmerklink
|
||
(prs_link_key,
|
||
prs_kenmerklink_niveau,
|
||
prs_kenmerk_key,
|
||
prs_kenmerklink_waarde
|
||
)
|
||
VALUES (v_bedrijf_key,
|
||
'B',
|
||
v_kenmerk_taal_key,
|
||
rec_bedr_upd.taal
|
||
);
|
||
COMMIT;
|
||
END IF;
|
||
|
||
fac.imp_writelog (p_applname,
|
||
p_applrun,
|
||
'C',
|
||
'Nieuwe kenmerken toegevoegd (indien waarde aanwezig) ',
|
||
'bedrijfsnaam/leveranciersnummer: '
|
||
|| rec_bedr_upd.prs_bedrijf_naam
|
||
|| '/'
|
||
|| rec_bedr_upd.prs_leverancier_nr
|
||
);
|
||
|
||
ELSE -- v_aktie = 'UPDATE'(kenmerkenlinken kunnen aanwezig zijn)
|
||
v_errormsg := 'Kenmerk(en) kunnen niet worden gewijzigd';
|
||
|
||
v_find := 1;
|
||
BEGIN
|
||
-- Bepaal de key van het kenmerk "Branche_code"
|
||
SELECT prs_kenmerklink_key
|
||
INTO v_kenmerklink_branche_key
|
||
FROM prs_kenmerklink
|
||
WHERE prs_link_key = v_bedrijf_key
|
||
AND prs_kenmerk_key = v_kenmerk_branche_code_key
|
||
AND prs_kenmerklink_niveau = 'B';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_find := 0;
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := 'Fout bij het aanmaken van kenmerklink "Branche_code"'
|
||
|| TO_CHAR(v_kenmerk_branche_code_key)
|
||
|| 'bedrijfsnaam/leveranciersnummer: '
|
||
|| rec_bedr_upd.prs_bedrijf_naam
|
||
|| '/'
|
||
|| rec_bedr_upd.prs_leverancier_nr;
|
||
v_update := FALSE;
|
||
END;
|
||
|
||
IF v_update AND v_find = 1
|
||
THEN
|
||
IF rec_bedr_upd.branche_code IS NOT NULL
|
||
THEN
|
||
UPDATE prs_kenmerklink
|
||
SET prs_kenmerklink_waarde = rec_bedr_upd.branche_code
|
||
WHERE prs_kenmerklink_key = v_kenmerklink_branche_key
|
||
AND prs_kenmerklink_waarde <> rec_bedr_upd.branche_code;
|
||
COMMIT;
|
||
ELSE
|
||
DELETE prs_kenmerklink
|
||
WHERE prs_kenmerklink_key = v_kenmerklink_branche_key;
|
||
COMMIT;
|
||
END IF;
|
||
ELSE
|
||
-- Kenmerklink bestaat kennelijk niet, maak 'm aan
|
||
IF rec_bedr_upd.branche_code IS NOT NULL AND v_find = 0
|
||
THEN
|
||
INSERT INTO prs_kenmerklink
|
||
(prs_link_key,
|
||
prs_kenmerklink_niveau,
|
||
prs_kenmerk_key,
|
||
prs_kenmerklink_waarde
|
||
)
|
||
VALUES (v_bedrijf_key,
|
||
'B',
|
||
v_kenmerk_branche_code_key,
|
||
rec_bedr_upd.branche_code
|
||
);
|
||
COMMIT;
|
||
END IF;
|
||
END IF;
|
||
|
||
|
||
v_find := 1;
|
||
BEGIN
|
||
-- Bepaal de key van het kenmerk "Betalingsconditie"
|
||
SELECT prs_kenmerklink_key
|
||
INTO v_kenmerklink_bconditie_key
|
||
FROM prs_kenmerklink
|
||
WHERE prs_link_key = v_bedrijf_key
|
||
AND prs_kenmerk_key = v_kenmerk_bconditie_key
|
||
AND prs_kenmerklink_niveau = 'B';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_find := 0;
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := 'Fout bij het aanmaken van kenmerklink "Betalingsconditie" '
|
||
|| TO_CHAR(v_kenmerk_bconditie_key)
|
||
|| 'bedrijfsnaam/leveranciersnummer: '
|
||
|| rec_bedr_upd.prs_bedrijf_naam
|
||
|| '/'
|
||
|| rec_bedr_upd.prs_leverancier_nr;
|
||
v_update := FALSE;
|
||
END;
|
||
|
||
IF v_update AND v_find = 1
|
||
THEN
|
||
IF rec_bedr_upd.betalingsconditie IS NOT NULL
|
||
THEN
|
||
UPDATE prs_kenmerklink
|
||
SET prs_kenmerklink_waarde = rec_bedr_upd.betalingsconditie
|
||
WHERE prs_kenmerklink_key = v_kenmerklink_bconditie_key
|
||
AND prs_kenmerklink_waarde <> rec_bedr_upd.betalingsconditie;
|
||
COMMIT;
|
||
ELSE
|
||
DELETE prs_kenmerklink
|
||
WHERE prs_kenmerklink_key = v_kenmerklink_bconditie_key;
|
||
COMMIT;
|
||
END IF;
|
||
ELSE
|
||
-- Kenmerklink bestaat kennelijk niet, maak 'm aan
|
||
IF rec_bedr_upd.betalingsconditie IS NOT NULL AND v_find = 0
|
||
THEN
|
||
INSERT INTO prs_kenmerklink
|
||
(prs_link_key,
|
||
prs_kenmerklink_niveau,
|
||
prs_kenmerk_key,
|
||
prs_kenmerklink_waarde
|
||
)
|
||
VALUES (v_bedrijf_key,
|
||
'B',
|
||
v_kenmerk_bconditie_key,
|
||
rec_bedr_upd.betalingsconditie
|
||
);
|
||
COMMIT;
|
||
END IF;
|
||
END IF;
|
||
|
||
v_find := 1;
|
||
BEGIN
|
||
-- Bepaal de key van het kenmerk "Taal"
|
||
SELECT prs_kenmerklink_key
|
||
INTO v_kenmerklink_taal_key
|
||
FROM prs_kenmerklink
|
||
WHERE prs_link_key = v_bedrijf_key
|
||
AND prs_kenmerk_key = v_kenmerk_taal_key
|
||
AND prs_kenmerklink_niveau = 'B';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_find := 0;
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := 'Fout bij het aanmaken van kenmerklink "Taal"'
|
||
|| TO_CHAR(v_kenmerk_taal_key)
|
||
|| 'bedrijfsnaam/leveranciersnummer: '
|
||
|| rec_bedr_upd.prs_bedrijf_naam
|
||
|| '/'
|
||
|| rec_bedr_upd.prs_leverancier_nr;
|
||
v_update := FALSE;
|
||
END;
|
||
|
||
IF v_update AND v_find = 1
|
||
THEN
|
||
IF rec_bedr_upd.taal IS NOT NULL
|
||
THEN
|
||
UPDATE prs_kenmerklink
|
||
SET prs_kenmerklink_waarde = rec_bedr_upd.taal
|
||
WHERE prs_kenmerklink_key = v_kenmerklink_taal_key
|
||
AND prs_kenmerklink_waarde <> rec_bedr_upd.taal;
|
||
COMMIT;
|
||
ELSE
|
||
DELETE prs_kenmerklink
|
||
WHERE prs_kenmerklink_key = v_kenmerklink_taal_key;
|
||
COMMIT;
|
||
END IF;
|
||
ELSE
|
||
-- Kenmerklink bestaat kennelijk niet, maak 'm aan
|
||
IF rec_bedr_upd.taal IS NOT NULL AND v_find = 0
|
||
THEN
|
||
INSERT INTO prs_kenmerklink
|
||
(prs_link_key,
|
||
prs_kenmerklink_niveau,
|
||
prs_kenmerk_key,
|
||
prs_kenmerklink_waarde
|
||
)
|
||
VALUES (v_bedrijf_key,
|
||
'B',
|
||
v_kenmerk_taal_key,
|
||
rec_bedr_upd.taal
|
||
);
|
||
COMMIT;
|
||
END IF;
|
||
END IF;
|
||
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
v_errorhint := ' {' || v_errormsg || '}; bedrijfsnaam/leveranciersnummer: '
|
||
|| rec_bedr_upd.prs_bedrijf_naam
|
||
|| '/'
|
||
|| rec_bedr_upd.prs_leverancier_nr;
|
||
|
||
v_update := FALSE;
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_errorhint);
|
||
END;
|
||
END IF;
|
||
|
||
v_buffercount := v_buffercount + 1;
|
||
|
||
IF v_buffercount >= c_commitbuffer
|
||
THEN
|
||
COMMIT;
|
||
v_buffercount := 0;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errorhint := v_errorhint || ' {' || v_errormsg || '}';
|
||
v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_errorhint);
|
||
END;
|
||
END LOOP;
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_bedrijf_newcount_fclt
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND prs_bedrijf_naam NOT LIKE 'INACTIEF:%';
|
||
|
||
fac.imp_writelog (p_applname,
|
||
p_applrun,
|
||
'S',
|
||
'Aantal actieve crediteuren vooraf: '
|
||
|| TO_CHAR (v_bedrijf_count_fclt)
|
||
|| ' nu: '
|
||
|| TO_CHAR (v_bedrijf_newcount_fclt),
|
||
''
|
||
);
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errorhint := v_errorhint || ' {' || v_errormsg || '}';
|
||
v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_errorhint);
|
||
END;
|
||
/
|
||
|
||
-- NFIT#12061 view voor notificatie op het moment dat het contract de rappeldatum bereikt naar:
|
||
-- de beheerder van het contract,
|
||
-- de budgethouder van de kostenplaats van de afdeling van het contract
|
||
-- en naar Erwin of Sabine (Inkoper)
|
||
CREATE OR REPLACE VIEW FAC_V_NOTI_CNTREMINDER
|
||
(CODE, SENDER, RECEIVER, TEXT, KEY,
|
||
PAR1, PAR2, XKEY)
|
||
AS
|
||
SELECT '', '',
|
||
c.prs_perslid_key_beh naam,
|
||
'Rapp<EFBFBD>l: Contract '
|
||
|| c.cnt_contract_nummer_intern
|
||
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (c.cnt_contract_opzegdatum, 'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd.' bericht,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_opzegdatum,
|
||
NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND (SYSDATE BETWEEN c.cnt_contract_rappeldatum AND c.cnt_contract_opzegdatum)
|
||
UNION
|
||
SELECT '', '',
|
||
(SELECT kp.prs_perslid_key
|
||
FROM prs_afdeling a,
|
||
prs_kostenplaats kp
|
||
WHERE a.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND a.prs_afdeling_key = c.prs_afdeling_key_eig) naam,
|
||
'Rapp<EFBFBD>l: Contract '
|
||
|| c.cnt_contract_nummer_intern
|
||
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (c.cnt_contract_opzegdatum, 'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd.' bericht,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_opzegdatum,
|
||
NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND (SYSDATE BETWEEN c.cnt_contract_rappeldatum AND c.cnt_contract_opzegdatum)
|
||
UNION
|
||
-- Sabine of Erwin
|
||
SELECT '', '',
|
||
(SELECT p.prs_perslid_key
|
||
FROM cnt_kenmerkcontract kc,
|
||
cnt_kenmerk ck,
|
||
fac_usrdata fud,
|
||
prs_perslid p
|
||
WHERE c.cnt_contract_key = kc.cnt_contract_key
|
||
AND kc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND kc.cnt_kenmerkcontract_waarde = fud.fac_usrdata_key
|
||
AND p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam = fud.fac_usrdata_omschr
|
||
AND kc.cnt_contract_key = c.cnt_contract_key
|
||
AND ck.cnt_srtkenmerk_key = 21) naam,
|
||
'Rapp<EFBFBD>l: Contract '
|
||
|| c.cnt_contract_nummer_intern
|
||
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (c.cnt_contract_opzegdatum, 'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd.' bericht,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_opzegdatum,
|
||
NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND (SYSDATE BETWEEN c.cnt_contract_rappeldatum AND c.cnt_contract_opzegdatum);
|
||
|
||
|
||
-- NFIT#12639: Notificatiejob voor afmelden van incidentele bestelling (2 dagen na verwachte leverdatum)
|
||
-- kenmerkkey van afleverdatum is 59 voor NFIT
|
||
CREATE OR REPLACE VIEW FAC_V_NOTI_MLDOPDR_AFM
|
||
(CODE, SENDER, RECEIVER, TEXT, KEY, XKEY)
|
||
AS
|
||
SELECT '',
|
||
'',
|
||
m.prs_perslid_key melder,
|
||
'Opdracht ' || sd.ins_srtdiscipline_prefix || m.mld_melding_key
|
||
|| ' dient te worden afgemeld.' melding,
|
||
o.mld_opdr_key,
|
||
o.mld_melding_key
|
||
FROM mld_opdr o,
|
||
mld_kenmerkopdr ko,
|
||
mld_melding m,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd
|
||
WHERE o.mld_opdr_key = ko.mld_opdr_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND md.ins_discipline_key = m.mld_ins_discipline_key
|
||
AND o.mld_opdr_datumfiat_nok IS NULL
|
||
AND ko.mld_kenmerk_key = 59
|
||
AND TO_DATE(ko.mld_kenmerkopdr_waarde||' 00:00:00','dd-mm-yyyy hh24:mi:ss') + 2 <= SYSDATE
|
||
AND o.mld_opdr_datumuitgevoerd IS NULL
|
||
AND 1 NOT IN (SELECT 1
|
||
FROM web_user_messages
|
||
WHERE prs_perslid_key_receiver = m.prs_perslid_key
|
||
AND 'Opdracht ' || sd.ins_srtdiscipline_prefix || m.mld_melding_key
|
||
|| ' dient te worden afgemeld.' = web_user_mess_dsc);
|
||
|
||
SPOOL OFF
|