1645 lines
71 KiB
SQL
1645 lines
71 KiB
SQL
-- Script containing customer specific configuration sql statements for NFIT Nefit Buderus Deventer
|
||
-- (c) 2010-2006 SG|facilitor bv
|
||
-- $Revision$
|
||
-- $Id$
|
||
--
|
||
-- Support: +31 53 4800700
|
||
|
||
set echo on
|
||
SPOOL xNFIT.LST
|
||
|
||
-- View van opdrachten die inmiddels afgemeld zijn, zodat de berichten uit de statusinformatie verwijderd kunnen worden
|
||
CREATE OR REPLACE VIEW nfit_v_statusinf_del (webusermesskey,
|
||
opdracht)
|
||
AS
|
||
SELECT DISTINCT wum.web_user_message_key webusermesskey,
|
||
sd.ins_srtdiscipline_prefix || o.mld_melding_key opdracht
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
web_user_messages wum
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND o.mld_statusopdr_key IN (6, 7) -- afgemeld of verwerkt
|
||
AND wum.prs_perslid_key_receiver = m.prs_perslid_key
|
||
AND 'Opdracht ' || sd.ins_srtdiscipline_prefix || o.mld_melding_key
|
||
|| ' dient te worden afgemeld.' = wum.web_user_mess_dsc
|
||
ORDER BY 2;
|
||
|
||
/* Formatted on 20-7-2010 10:31:47 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE FORCE 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' || b.bes_bestelling_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,
|
||
bes_srtdeel isd,
|
||
bes_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.bes_srtdeel_key = bi.bes_srtdeel_key
|
||
AND itd.ins_discipline_key = isg.ins_discipline_key
|
||
AND isg.bes_srtgroep_key = isd.bes_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 = std.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 = std.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, ins_tab_discipline di
|
||
WHERE kst.prs_kostensoort_key = di.prs_kostensoort_key
|
||
AND di.ins_discipline_key = std.mld_ins_discipline_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, mld_stdmelding std
|
||
WHERE mo.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_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 fac.gettrackinguserkey ('MLDNEW', m1.mld_melding_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_statusinf_del (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
-- View heeft alles al. geen acties nodig
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
-- Export voor het verwijderen van berichten uit de statusinformatie, van opdrachten die inmiddels afgemeld zijn
|
||
CREATE OR REPLACE PROCEDURE nfit_export_statusinf_del (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
DELETE FROM web_user_messages
|
||
WHERE web_user_message_key IN (SELECT webusermesskey FROM nfit_v_statusinf_del);
|
||
END;
|
||
/
|
||
|
||
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;
|
||
/
|
||
|
||
/* Formatted on 20-4-2012 13:00:15 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW nfit_v_export_iqbs
|
||
(
|
||
RESULT,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT bestelopdrnummer
|
||
|| ';'
|
||
|| crediteurennummer
|
||
|| ';'
|
||
|| bedrag
|
||
|| ';'
|
||
|| projectnummer
|
||
|| ';'
|
||
|| kostensoort
|
||
|| ';'
|
||
|| kostenplaats
|
||
|| ';'
|
||
|| budget
|
||
|| ';'
|
||
|| afdelingscode
|
||
regel,
|
||
ROWNUM
|
||
FROM nfit_v_iqbs;
|
||
|
||
/* Formatted on 20-4-2012 13:16:44 (QP5 v5.115.810.9015) */
|
||
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_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
l_cnt NUMBER;
|
||
BEGIN
|
||
l_cnt := 0;
|
||
|
||
FOR expregel IN exportregels
|
||
LOOP
|
||
BEGIN
|
||
IF (SUBSTR (expregel.regel, 1, 2) = '11') -- catalogus bestelling
|
||
THEN
|
||
-- Aantal te exporteren aanpassen
|
||
-- Deze moet gelijk worden aan het aantal dat is ontvangen
|
||
-- TODO, maar hoe? Of is dit gewoon goed zo?
|
||
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
|
||
bes.updatebestelopdrstatus (expregel.bestellingkey, NULL);
|
||
|
||
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)
|
||
bes.setbestelopdrstatus (expregel.bestelopdrkey, 7, NULL);
|
||
-- Bestelling_items AV verklaren als bestelopdracht AV is
|
||
-- Bestelling AV verklaren als bestel_items AV is
|
||
bes.updatebestellingstatus (expregel.bestellingkey, NULL);
|
||
|
||
COMMIT;
|
||
END IF;
|
||
ELSIF expregel.status = 6 -- incidentele bestelling meldingen
|
||
THEN
|
||
-- Meldingsopdracht AV verklaren als status is 6 (Geleverd TV)
|
||
mld.setopdrachtstatus (expregel.bestelopdrkey, 7, NULL);
|
||
|
||
COMMIT;
|
||
END IF;
|
||
|
||
l_cnt := l_cnt + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'(ORACLE error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (p_applname,
|
||
'E',
|
||
v_errormsg,
|
||
'');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname,
|
||
'I',
|
||
'Aantal geschreven records: ' || l_cnt,
|
||
'');
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname,
|
||
'E',
|
||
v_errormsg,
|
||
'');
|
||
COMMIT;
|
||
END;
|
||
/
|
||
-- IMPORT NFIT#005
|
||
|
||
-- View van de import/export logging
|
||
CREATE OR REPLACE VIEW NFIT_V_IMPLOG
|
||
AS
|
||
SELECT COALESCE (ia.fac_import_app_code, l.imp_log_applicatie)
|
||
fclt_f_applicatie,
|
||
l.imp_log_datum log_datum,
|
||
l.imp_log_status fclt_f_status,
|
||
l.imp_log_omschrijving omschrijving,
|
||
l.imp_log_hint hint
|
||
FROM imp_log l,
|
||
( SELECT fac_import_app_key, MAX (fac_import_key) fac_import_key
|
||
FROM fac_import
|
||
GROUP BY fac_import_app_key) i,
|
||
fac_import_app ia
|
||
WHERE l.fac_import_key = i.fac_import_key
|
||
AND i.fac_import_app_key = ia.fac_import_app_key;
|
||
|
||
-- NFIT#15424
|
||
-- View van contracten met financiele details
|
||
CREATE OR REPLACE VIEW nfit_v_cntlijst_fin (hide_f_cnt_contract_key,
|
||
contract_nummer,
|
||
fclt_f_contract_soort,
|
||
beschrijving,
|
||
fclt_f_uitvoerder,
|
||
fclt_f_eigenaar,
|
||
fclt_f_status,
|
||
einddatum,
|
||
financiele_verplichting,
|
||
fclt_f_termijn,
|
||
fclt_3d_discipline_key
|
||
)
|
||
AS
|
||
SELECT c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern contract_nummer,
|
||
d.ins_discipline_omschrijving,
|
||
c.cnt_contract_omschrijving omschrijving,
|
||
COALESCE (b.prs_bedrijf_naam, afd2.prs_afdeling_naam) uitvoerder,
|
||
afd.prs_afdeling_naam eigenaar,
|
||
CASE cnt.cnt_contract_status (c.cnt_contract_looptijd_van,
|
||
cnt.cnt_getrappeldatum (c.cnt_contract_key),
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
c.cnt_contract_looptijd_tot)
|
||
WHEN 0 THEN 'Aankomend'
|
||
WHEN 1 THEN 'Actueel'
|
||
WHEN 2 THEN 'Rappel'
|
||
WHEN 3 THEN 'In opzegtermijn'
|
||
WHEN 4 THEN 'Verlopen'
|
||
END status,
|
||
TO_CHAR (c.cnt_contract_looptijd_tot, 'DD-MM-YYYY') einddatum,
|
||
fac.safe_to_number ((SELECT kc.cnt_kenmerkcontract_waarde
|
||
FROM cnt_kenmerkcontract kc,
|
||
cnt_kenmerk ck
|
||
WHERE kc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_srtkenmerk_key = 90
|
||
AND kc.cnt_contract_key = c.cnt_contract_key)) financiele_verplichting,
|
||
COALESCE((SELECT fud.fac_usrdata_omschr
|
||
FROM cnt_kenmerkcontract kc,
|
||
cnt_kenmerk ck,
|
||
fac_usrdata fud
|
||
WHERE kc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_srtkenmerk_key = 34
|
||
AND kc.cnt_contract_key = c.cnt_contract_key
|
||
AND FAC.SAFE_TO_NUMBER(kc.cnt_kenmerkcontract_waarde) = fud.fac_usrdata_key), ' ') termijn,
|
||
d.ins_discipline_key fclt_3d_discipline_key
|
||
FROM prs_v_aanwezigbedrijf b,
|
||
cnt_v_aanwezigcontract c,
|
||
prs_v_aanwezigafdeling afd,
|
||
prs_v_aanwezigafdeling afd2,
|
||
cnt_v_aanwezigdiscipline d
|
||
WHERE b.prs_bedrijf_key(+) = c.cnt_prs_bedrijf_key
|
||
AND c.cnt_prs_afdeling_key = afd2.prs_afdeling_key(+)
|
||
AND afd.prs_afdeling_key(+) = c.prs_afdeling_key_eig
|
||
AND c.ins_discipline_key = d.ins_discipline_key;
|
||
|
||
-- Importeren leveranciersgegevens
|
||
/* Formatted on 20-4-2012 12:02:24 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE PROCEDURE nfit_import_baan (p_import_key IN NUMBER)
|
||
AS
|
||
v_newline VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
c_fielddelimitor VARCHAR2 (1) := '|'; -- Field seperator
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid BOOLEAN;
|
||
-- 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);
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
header_is_valid := TRUE; -- No header present
|
||
|
||
DELETE FROM nfit_imp_baan;
|
||
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_bedrijfsnaam);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_post_adres);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_post_postcode);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_post_plaats);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_post_land);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_telefoon);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_contactpersoon);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_leveranciersnummer);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_bezoek_adres);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_bezoek_postcode);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_bezoek_plaats);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_bezoek_land);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_fax);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_branche_code);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_betalingsconditie);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taal);
|
||
|
||
IF (header_is_valid = FALSE)
|
||
THEN
|
||
header_is_valid := TRUE;
|
||
ELSE
|
||
IF 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 (TRIM (v_bedrijfsnaam), 1, 60),
|
||
SUBSTR (TRIM (v_post_adres), 1, 35),
|
||
SUBSTR (TRIM (v_post_postcode), 1, 12),
|
||
SUBSTR (TRIM (v_post_plaats), 1, 35),
|
||
SUBSTR (TRIM (v_post_land), 1, 30),
|
||
SUBSTR (TRIM (v_telefoon), 1, 20),
|
||
SUBSTR (TRIM (v_contactpersoon), 1, 30),
|
||
SUBSTR (TRIM (v_leveranciersnummer), 1, 20),
|
||
SUBSTR (TRIM (v_bezoek_adres), 1, 35),
|
||
SUBSTR (TRIM (v_bezoek_postcode), 1, 12),
|
||
SUBSTR (TRIM (v_bezoek_plaats), 1, 30),
|
||
SUBSTR (TRIM (v_bezoek_land), 1, 30),
|
||
SUBSTR (TRIM (v_fax), 1, 20),
|
||
SUBSTR (TRIM (v_branche_code), 1, 30),
|
||
SUBSTR (TRIM (v_betalingsconditie), 1, 30),
|
||
SUBSTR (TRIM (v_taal), 1, 30));
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF (header_is_valid = FALSE)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Ongeldig importbestand',
|
||
'Geen header of header niet volgens specificatie!');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
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_errormsg,
|
||
'');
|
||
COMMIT;
|
||
END nfit_import_baan;
|
||
/
|
||
|
||
|
||
-- Updaten leveranciersgegevens
|
||
CREATE OR REPLACE PROCEDURE nfit_update_baan (p_import_key IN NUMBER)
|
||
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_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
|
||
v_update := TRUE;
|
||
|
||
SELECT MAX (fac_module_version)
|
||
INTO currentversion
|
||
FROM fac_module;
|
||
|
||
fac.imp_writelog (p_import_key, 'I', 'Facilitor Crediteuren import version ' || currentversion, '$Revision$');
|
||
|
||
-- #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_import_key, '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_import_key,
|
||
'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_import_key, '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_import_key, '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_import_key, '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_import_key, '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_import_key, '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_import_key, '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_import_key,
|
||
'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_import_key, '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_import_key, '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_import_key, '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_import_key,
|
||
'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_import_key,
|
||
'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_import_key, '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_import_key,
|
||
'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_import_key, '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_import_key, '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_import_key,
|
||
'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_import_key, '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 NFIT_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 (cnt.cnt_getOpzegdatum(c.cnt_contract_key), 'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd.' bericht,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getOpzegdatum(c.cnt_contract_key),
|
||
NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND (SYSDATE BETWEEN cnt.cnt_getRappeldatum(c.cnt_contract_key) AND cnt.cnt_getOpzegdatum(c.cnt_contract_key))
|
||
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 (cnt.cnt_getOpzegdatum(c.cnt_contract_key), 'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd.' bericht,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getOpzegdatum(c.cnt_contract_key),
|
||
NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND (SYSDATE BETWEEN cnt.cnt_getRappeldatum(c.cnt_contract_key) AND cnt.cnt_getOpzegdatum(c.cnt_contract_key))
|
||
UNION
|
||
-- Sabine of Erwin
|
||
SELECT '', '',
|
||
(SELECT p.prs_perslid_key
|
||
FROM cnt_kenmerkcontract kc,
|
||
cnt_kenmerk ck,
|
||
fac_usrdata fud,
|
||
prs_v_aanwezigperslid 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 (cnt.cnt_getOpzegdatum(c.cnt_contract_key), 'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd.' bericht,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getOpzegdatum(c.cnt_contract_key),
|
||
NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND (SYSDATE BETWEEN cnt.cnt_getRappeldatum(c.cnt_contract_key) AND cnt.cnt_getOpzegdatum(c.cnt_contract_key));
|
||
|
||
|
||
-- NFIT#12639: Notificatiejob voor afmelden van incidentele bestelling (2 dagen na verwachte leverdatum)
|
||
-- kenmerkkey van afleverdatum is 59 voor NFIT
|
||
/* Formatted on 20-7-2010 10:33:50 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE FORCE VIEW nfit_v_noti_mldopdr_afm
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT 'ORDAFM',
|
||
'',
|
||
m.prs_perslid_key melder,
|
||
'Opdracht ' || sd.ins_srtdiscipline_prefix || m.mld_melding_key || ' dient te worden afgemeld. '
|
||
|| (SELECT vsk.mld_srtkenmerk_omschrijving || ': ' || v.mld_kenmerkopdr_waarde
|
||
FROM mld_kenmerkopdr v, mld_kenmerk vk, mld_srtkenmerk vsk
|
||
WHERE v.mld_opdr_key = o.mld_opdr_key
|
||
AND vk.mld_srtkenmerk_key = 21
|
||
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
||
AND vk.mld_srtkenmerk_key = vsk.mld_srtkenmerk_key)
|
||
|| ', '
|
||
|| (SELECT vsk.mld_srtkenmerk_omschrijving || ': ' || b.prs_bedrijf_naam
|
||
FROM mld_kenmerkopdr v, mld_kenmerk vk, mld_srtkenmerk vsk, prs_bedrijf b
|
||
WHERE v.mld_opdr_key = o.mld_opdr_key
|
||
AND vk.mld_srtkenmerk_key = 24
|
||
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
||
AND vk.mld_srtkenmerk_key = vsk.mld_srtkenmerk_key
|
||
AND v.mld_kenmerkopdr_waarde = b.prs_bedrijf_key)
|
||
melding,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_key
|
||
FROM mld_opdr o, mld_kenmerkopdr ko, mld_melding m, mld_stdmelding std, 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 m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND md.ins_discipline_key = std.mld_ins_discipline_key
|
||
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_statusopdr_key IN (5,8)
|
||
AND NOT EXISTS
|
||
(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. '
|
||
|| (SELECT vsk.mld_srtkenmerk_omschrijving
|
||
|| ': '
|
||
|| v.mld_kenmerkopdr_waarde
|
||
FROM mld_kenmerkopdr v, mld_kenmerk vk, mld_srtkenmerk vsk
|
||
WHERE v.mld_opdr_key = o.mld_opdr_key
|
||
AND vk.mld_srtkenmerk_key = 21
|
||
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
||
AND vk.mld_srtkenmerk_key = vsk.mld_srtkenmerk_key)
|
||
|| ', '
|
||
|| (SELECT vsk.mld_srtkenmerk_omschrijving || ': ' || b.prs_bedrijf_naam
|
||
FROM mld_kenmerkopdr v,
|
||
mld_kenmerk vk,
|
||
mld_srtkenmerk vsk,
|
||
prs_bedrijf b
|
||
WHERE v.mld_opdr_key = o.mld_opdr_key
|
||
AND vk.mld_srtkenmerk_key = 24
|
||
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
||
AND vk.mld_srtkenmerk_key = vsk.mld_srtkenmerk_key
|
||
AND v.mld_kenmerkopdr_waarde = b.prs_bedrijf_key) = web_user_mess_dsc);
|
||
|
||
|
||
-- NFIT#12562: Notificatiejob voor het registreren van een incidentele bestelling
|
||
-- Eens per uur (is minimum) checken of er nieuwe incidentele bestellingen zijn geregistreerd
|
||
-- kenmerkkey van interne_besteller is 21 voor NFIT
|
||
-- kenmerkkey van gewenste_leverancier is 24 voor NFIT
|
||
-- Voor een goede werking van deze notificatiejob dient de notificatie MLDNEW uitgeschakeld te worden
|
||
CREATE OR REPLACE VIEW NFIT_V_NOTI_MLD_REG
|
||
(CODE, SENDER, RECEIVER, TEXT, KEY, XKEY)
|
||
AS
|
||
SELECT 'MLDNEW',
|
||
'',
|
||
m.prs_perslid_key melder,
|
||
'Uw melding '
|
||
|| sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| ' ('
|
||
|| md.ins_discipline_omschrijving
|
||
|| '/'
|
||
|| sd.ins_srtdiscipline_omschrijving
|
||
|| ') is geregistreerd, '
|
||
|| (SELECT vsk.mld_srtkenmerk_omschrijving
|
||
|| ': '
|
||
|| v.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding v,
|
||
mld_kenmerk vk,
|
||
mld_srtkenmerk vsk
|
||
WHERE v.mld_melding_key = m.mld_melding_key
|
||
AND vk.mld_srtkenmerk_key = 21
|
||
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
||
AND vk.mld_srtkenmerk_key = vsk.mld_srtkenmerk_key)
|
||
|| ', '
|
||
|| (SELECT vsk.mld_srtkenmerk_omschrijving || ': '
|
||
|| b.prs_bedrijf_naam
|
||
FROM mld_kenmerkmelding v,
|
||
mld_kenmerk vk,
|
||
mld_srtkenmerk vsk,
|
||
prs_bedrijf b
|
||
WHERE v.mld_melding_key = m.mld_melding_key
|
||
AND vk.mld_srtkenmerk_key = 24
|
||
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
||
AND vk.mld_srtkenmerk_key = vsk.mld_srtkenmerk_key
|
||
AND v.mld_kenmerkmelding_waarde = b.prs_bedrijf_key) text,
|
||
m.mld_melding_key,
|
||
m.mld_melding_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd
|
||
WHERE sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND m.mld_melding_datum >
|
||
( COALESCE
|
||
((SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view LIKE 'NFIT_V_NOTI_MLD_REG'),
|
||
SYSDATE
|
||
)
|
||
- (SELECT fac_notificatie_job_interval
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view LIKE 'NFIT_V_NOTI_MLD_REG')/24
|
||
)
|
||
AND 1 NOT IN (
|
||
SELECT 1
|
||
FROM web_user_messages
|
||
WHERE prs_perslid_key_receiver = m.prs_perslid_key
|
||
AND 'Uw melding '
|
||
|| sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| ' ('
|
||
|| md.ins_discipline_omschrijving
|
||
|| '/'
|
||
|| sd.ins_srtdiscipline_omschrijving
|
||
|| ') is geregistreerd' = web_user_mess_dsc);
|
||
|
||
-- NFIT#16975
|
||
CREATE OR REPLACE FORCE VIEW nfit_v_leverancier (prs_bedrijf_key, leverancier)
|
||
AS
|
||
SELECT prs_bedrijf_key, prs_bedrijf_naam || '-' || prs_bedrijf_bezoek_plaats leverancier
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE prs_bedrijf_leverancier = 1 AND prs_bedrijf_naam NOT LIKE 'INACTIEF%';
|
||
|
||
-- Dit is de bonusversie (omdat men niet zo netjes is met de bedrijfsnamen)
|
||
-- Wordt nog niet gebruikt, maar zou kunnen (vooruitzien is..)
|
||
CREATE OR REPLACE FORCE VIEW nfit_v_leverancieric (prs_bedrijf_key, leverancier)
|
||
AS
|
||
SELECT prs_bedrijf_key, INITCAP(prs_bedrijf_naam) || '-' || prs_bedrijf_bezoek_plaats leverancier
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE prs_bedrijf_leverancier = 1 AND prs_bedrijf_naam NOT LIKE 'INACTIEF%';
|
||
|
||
BEGIN fac.registercustversion('NFIT', 23); END;
|
||
/
|
||
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
||
/
|
||
COMMIT;
|
||
SPOOL OFF
|