10 Commits

Author SHA1 Message Date
Erik Groener
e91fab1a47 FZKH#88392 Probleem bij importeren verbruiksartikelen zonder kostensoort
Regels met niet bestaande kostensoort omschrijvingen worden niet in importtabel gezet.

svn path=/Database/branches/DB50/; revision=68689
2025-04-08 12:57:12 +00:00
Erik Groener
86eb532a2d FZKH#88392 Probleem bij importeren verbruiksartikelen zonder kostensoort
svn path=/Database/branches/DB50/; revision=68678
2025-04-08 08:01:39 +00:00
Jos Groot Lipman
8110221e43 VNOG#88326 Veranderde e-mailnotificaties na update versie 2025.1
svn path=/Database/branches/DB50/; revision=68619
2025-04-01 14:55:36 +00:00
Jos Groot Lipman
a7c9068806 MARX#88269 Opdrachten via mail i.p.v. premium koppeling
svn path=/Database/branches/DB50/; revision=68551
2025-03-26 12:01:40 +00:00
Jos Groot Lipman
24855f1e1e MARX#88269 Opdrachten via mail i.p.v. premium koppeling
svn path=/Database/branches/DB50/; revision=68532
2025-03-25 15:05:35 +00:00
Jos Groot Lipman
ddc1067bf7 HCAS#88267 Inefficiëntie in Putorders door BEZDON notificatie triggers
svn path=/Database/branches/DB50/; revision=68530
2025-03-25 15:02:14 +00:00
Jos Groot Lipman
d6881fe219 SGGR#87834 Vier settings voor aantal licensed users toegevoegd
svn path=/Database/branches/DB50/; revision=68453
2025-03-19 12:27:20 +00:00
Jos Groot Lipman
11020748a0 FCLT#88153 prs_perslid_systeemadres deprecated-->technisch adres
svn path=/Database/branches/DB50/; revision=68449
2025-03-19 11:16:11 +00:00
Jos Groot Lipman
061e44885d FCLT#85890 fac_v_noti_facorderqueuefails notificaties ook baseren op nieuwe notificatie queue gebeuren
svn path=/Database/branches/DB50/; revision=68442
2025-03-18 14:18:30 +00:00
Erik Groener
ba9603a62c WRTH#87857 Probleem bij importeren contractheaders in 2025.1 versie
svn path=/Database/branches/DB50/; revision=68440
2025-03-18 13:29:57 +00:00
8 changed files with 378 additions and 434 deletions

View File

@@ -2492,7 +2492,7 @@ DEF_IMPORT('WEB_PRSSYS', 'FLEX', 'TRANSPORT: Flexkenmerken',
DEF_IMPORT('WEB_PRSSYS', 'USRDATA', 'FIP: Eigen tabellen', 'FIP: Own tables', 0)
DEF_IMPORT('WEB_PRSSYS', 'SLE', 'FIP: Sleutels', 'FIP: Keys', 0)
DEF_IMPORT('WEB_PRSSYS', 'FAQ', 'FIP: Kennisbank', 'FIP: Knowledge base', 0)
DEF_IMPORT('WEB_PRSSYS', 'CNT', 'FIP: Contracten', 'FIP: Contracts', 0)
DEF_IMPORT('WEB_PRSSYS', 'CNT', 'FIP: Contracten', 'FIP: Contracts', 1)
DEF_IMPORT('WEB_PRSSYS', 'MLDAFMTXT', 'FIP: Afmeldteksten', 'FIP: Standard texts', 0)
DEF_IMPORT('WEB_PRSSYS', 'BEDRIJFADRES', 'FIP: Aanvullen technische bedrijfadressen', 'FIP: Add company technical addresses', 0)
DEF_IMPORT('WEB_LCLSYS', 'TRANSLATION', 'Import of FACILITOR translation file', 'Import of FACILITOR translation file', 0)

View File

@@ -163,6 +163,7 @@ CREATE OR REPLACE PACKAGE fac
plocatie_key NUMBER DEFAULT NULL,
pdiscipline_key NUMBER DEFAULT NULL,
ptypeopdr_key NUMBER DEFAULT NULL,
pbedrijf_key2 NUMBER DEFAULT NULL,
pdisc_key NUMBER DEFAULT NULL);
FUNCTION gettrackingdate (peventcode IN VARCHAR2, pkey IN number) RETURN date;
FUNCTION gettrackinguserkey (peventcode IN VARCHAR2, pkey IN number) RETURN number;
@@ -2293,6 +2294,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
oldersmode fac_srtnotificatie.fac_srtnotificatie_mode%TYPE;
susermode fac_srtnotificatie.fac_srtnotificatie_usermode%TYPE;
lmode fac_srtnotificatie.fac_srtnotificatie_mode%TYPE;
any_tech NUMBER;
skey fac_srtnotificatie.fac_srtnotificatie_key%TYPE;
l_srtnoti_delay fac_srtnotificatie.fac_srtnotificatie_delay%TYPE;
lemail fac_notificatie.fac_notificatie_receiver_email%TYPE;
@@ -2340,13 +2342,14 @@ CREATE OR REPLACE PACKAGE BODY fac AS
NULL;
END;
END IF;
IF smode IS NULL OR smode = 0
THEN
RETURN; -- Geen kanaal om te notificeren
END IF;
-- Misschien komt er nog een technisch adres
--IF smode IS NULL OR smode = 0
--THEN
-- RETURN; -- Geen kanaal om te notificeren
--END IF;
ELSE
-- Wel status meegegeven; die is dan vast
-- Als status=2 en pcode=xxxMAI, dan moet de mail altijd vertuurd worden.
-- Als status=2 en pcode=xxxMAI, dan moet de mail altijd verstuurd worden.
smode := poptstatus;
IF ((SUBSTR(pcode, -3) = 'MAI' AND poptstatus = 2) OR pcode = 'PRSREG')
THEN
@@ -2409,59 +2412,70 @@ CREATE OR REPLACE PACKAGE BODY fac AS
IF pbedrijfadreskey IS NULL
THEN -- Mogelijk naar technische adressen van het (interne) bedrijf waar deze persoon onder valt
FOR bedrijfadresrec
IN (SELECT ba.prs_bedrijfadres_key
FROM prs_perslid p,
prs_v_afdeling aa,
prs_bedrijfadres ba,
prs_bedrijfadres_srtnoti basrt
WHERE p.prs_perslid_key = pto
AND aa.prs_afdeling_key = p.prs_afdeling_key
AND ba.prs_bedrijf_key = aa.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'S' // Systeem notificaties
AND basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key
AND basrt.fac_srtnotificatie_key = skey
)
LOOP
notbefore := SYSDATE;
delaymode := fac.safe_to_number(fac.getsetting('noti_delay_mode'));
IF delaymode = 1 -- default uit, naar technische adres zonder vertraging
THEN
notbefore := notbefore + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0);
ELSIF delaymode > 1 -- fixed delay
THEN
notbefore := notbefore + delaymode / 60/ 60/ 24;
END IF;
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
prs_perslid_key_sender,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit,
fac_notificatie_sender_email,
fac_notificatie_lang,
fac_notificatie_systeemadres,
fac_notificatie_attachments,
prs_bedrijfadres_key,
fac_notificatie_notbefore)
VALUES (skey,
0,
pfrom,
soms,
pref,
pxref,
pprio,
psender,
llang,
lsysteem,
pattach,
bedrijfadresrec.prs_bedrijfadres_key, -- enige bijzondere, rest gewoon blind doorgeven,
notbefore);
END LOOP;
END IF;
FOR bedrijfadresrec
IN (SELECT ba.prs_bedrijfadres_key
FROM prs_perslid p,
prs_v_afdeling_boom aa,
prs_bedrijfadres ba,
prs_bedrijfadres_srtnoti basrt
WHERE p.prs_perslid_key = pto
AND BITAND(prs_perslid_flags, 1) = 1 -- System user, voorkomt dat het naar elke user onder dit bedrijf gaat
AND prs_perslid_verwijder IS NULL
AND aa.prs_afdeling_key = p.prs_afdeling_key
AND ba.prs_bedrijf_key = aa.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'S' -- Systeem notificaties
AND basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key
AND basrt.fac_srtnotificatie_key = skey
)
LOOP
DBMS_OUTPUT.PUT_LINE('Notify systeembedrijf-adres: ' || bedrijfadresrec.prs_bedrijfadres_key);
IF (pto = pfrom) -- Toch maar niet
THEN
DBMS_OUTPUT.PUT_LINE('Maar ik ga niet naar mezelf terugsturen');
CONTINUE;
END IF;
notbefore := SYSDATE;
delaymode := fac.safe_to_number(fac.getsetting('noti_delay_mode'));
IF delaymode = 1 -- default uit, naar technische adres zonder vertraging
THEN
notbefore := notbefore + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0);
ELSIF delaymode > 1 -- fixed delay
THEN
notbefore := notbefore + delaymode / 60/ 60/ 24;
END IF;
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
prs_perslid_key_sender,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit,
fac_notificatie_sender_email,
fac_notificatie_lang,
fac_notificatie_attachments,
prs_bedrijfadres_key,
fac_notificatie_notbefore)
VALUES (skey, -- deze is eerder al bepaald
0, -- nooit via andere opties versturen
pfrom,
soms,
pref,
pxref,
pprio,
psender,
llang,
pattach,
bedrijfadresrec.prs_bedrijfadres_key, -- enige bijzondere, rest gewoon blind doorgeven,
notbefore);
END LOOP;
END IF;
END IF;
IF smode IS NULL OR smode = 0
THEN
RETURN; -- Geen kanaal om te notificeren
END IF;
lmode := smode;
@@ -3834,7 +3848,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
lcode := pcode;
loms := poms;
IF SUBSTR(lcode,1,1) = '#'
IF SUBSTR(lcode,1,1) = '#' -- later niemand notificeren
THEN
lcode := SUBSTR(lcode, 2);
IF poms IS NULL
@@ -3845,6 +3859,17 @@ CREATE OR REPLACE PACKAGE BODY fac AS
END IF;
END IF;
IF SUBSTR(lcode,1,1) = '@' -- later niet naar technische adressen notificeren
THEN
lcode := SUBSTR(lcode, 2);
IF poms IS NULL
THEN
loms := '@';
ELSE
loms := '@' || SUBSTR(loms, 1, 2047);
END IF;
END IF;
SELECT fac_srtnotificatie_key
INTO tkey
FROM fac_srtnotificatie
@@ -4963,6 +4988,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
plocatie_key NUMBER DEFAULT NULL,
pdiscipline_key NUMBER DEFAULT NULL,
ptypeopdr_key NUMBER DEFAULT NULL,
pbedrijf_key2 NUMBER DEFAULT NULL,
pdisc_key NUMBER DEFAULT NULL) -- future use
AS
l_bdradr_key prs_bedrijfadres.prs_bedrijfadres_key%TYPE;
@@ -4993,9 +5019,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
FROM fac_tracking ft
WHERE ft.fac_tracking_key = ptrackingkey;
-- als de tracking.prs_perslid_key een systeem contactpersoon is van prs_bedrijf
-- dan geen notificatie terugsturen (Arai/van Dorp case)
-- als de tracking.prs_perslid_key een systeem contactpersoon is van het prs_bedrijf
-- dan geen notificatie terugsturen (ARAI/van Dorp case)
SELECT COUNT(*)
INTO aantal
FROM prs_contactpersoon pcp
@@ -5004,6 +5029,23 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND prs_contactpersoon_systeem = 1;
IF aantal > 0
THEN
DBMS_OUTPUT.put_line ('NOT sending notification initiated by System contact person');
RETURN;
END IF;
-- als de tracking.prs_perslid_key zelf een system user is en van het prs_bedrijf
-- dan ook geen notificatie terugsturen
SELECT COUNT(*)
INTO aantal
FROM prs_perslid p,
prs_v_afdeling_boom aa
WHERE p.prs_perslid_key = l_perslid_key
AND BITAND(p.prs_perslid_flags, 1) = 1 -- System user
AND aa.prs_afdeling_key = p.prs_afdeling_key
AND aa.prs_bedrijf_key = pbedrijf_key;
IF aantal > 0
THEN
DBMS_OUTPUT.put_line ('NOT sending notification initiated by System user');
RETURN;
END IF;
END IF;
@@ -5031,6 +5073,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND (ba.mld_typeopdr_key = ptypeopdr_key OR ba.mld_typeopdr_key IS NULL)
AND (ba.ins_discipline_key = pdiscipline_key OR ba.ins_discipline_key IS NULL)
AND (ba.alg_locatie_key = plocatie_key OR ba.alg_locatie_key IS NULL)
AND (ba.prs_bedrijf_key2 = pbedrijf_key2 OR ba.prs_bedrijf_key2 IS NULL)
AND (ba.ins_discipline_key = pdisc_key OR ba.ins_discipline_key IS NULL)
AND ( ba.alg_district_key = (SELECT d.alg_district_key
FROM alg_locatie d

View File

@@ -11848,57 +11848,31 @@ BEGIN
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_discipline_oms);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_kostensoort_oms);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_nr);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_res_artikel_omschrijving
);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_omschrijving);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_eenheid);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_prijs);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_res_artikel_prijs_vast
);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_res_artikel_inkoopprijs
);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_res_artikel_kostenpersoneel
);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_res_artikel_kostenalgemeen
);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_prijs_vast);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_inkoopprijs);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_kostenpersoneel);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_kostenalgemeen);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_btw);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_res_artikel_opmerking
);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_opmerking);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_groep);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_res_artikel_volgnummer
);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_volgnummer);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_ingangsdatum);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_vervaldatum);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_artikel_minimum);
v_aanduiding :=
'importregel: ('
|| v_res_artikel_key
|| '|'
|| v_res_discipline_oms
|| '|'
|| v_res_artikel_nr
|| '|'
|| v_res_artikel_omschrijving
|| ')';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer alle kolommen..
-- Ik negeer alles totdat ik een geldige header gepasseerd ben
IF (header_is_valid = 0)
THEN
v_aanduiding := 'importregel: (' || v_res_artikel_key
|| '|' || v_res_discipline_oms
|| '|' || v_res_artikel_nr
|| '|' || v_res_artikel_omschrijving
|| ')';
IF UPPER (v_res_artikel_key) = 'ARTIKELKEY'
AND UPPER (v_res_discipline_oms) = 'CATALOGUSNAAM'
AND UPPER (v_res_kostensoort_oms) = 'CATALOGUSKOSTENSOORT'
@@ -11908,10 +11882,8 @@ BEGIN
AND UPPER (v_res_artikel_prijs) = 'ARTIKELPRIJS'
AND UPPER (v_res_artikel_prijs_vast) = 'ARTIKELPRIJSVAST'
AND UPPER (v_res_artikel_inkoopprijs) = 'ARTIKELINKOOPPRIJS'
AND UPPER (v_res_artikel_kostenpersoneel) =
'ARTIKELPERSONEELKOSTEN'
AND UPPER (v_res_artikel_kostenalgemeen) =
'ARTIKELALGEMENEKOSTEN'
AND UPPER (v_res_artikel_kostenpersoneel) = 'ARTIKELPERSONEELKOSTEN'
AND UPPER (v_res_artikel_kostenalgemeen) = 'ARTIKELALGEMENEKOSTEN'
AND UPPER (v_res_artikel_btw) = 'ARTIKELBTW'
AND UPPER (v_res_artikel_opmerking) = 'ARTIKELOPMERKING'
AND UPPER (v_res_artikel_groep) = 'ARTIKELGROEP'
@@ -11924,9 +11896,14 @@ BEGIN
END IF;
ELSE
v_count_tot := v_count_tot + 1;
v_aanduiding := 'importregel ' || TO_CHAR(v_count_tot) || ': (' || v_res_artikel_key
|| '|' || v_res_discipline_oms
|| '|' || v_res_artikel_nr
|| '|' || v_res_artikel_omschrijving
|| ')';
-- Controleer alle veldwaarde
IF LTRIM (RTRIM (v_res_artikel_key)) IS NOT NULL
IF TRIM (v_res_artikel_key) IS NOT NULL
THEN
IF fac.safe_to_number (v_res_artikel_key) IS NOT NULL
THEN
@@ -11938,38 +11915,46 @@ BEGIN
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.imp_writelog (p_import_key,
'I',
fac.imp_writelog (p_import_key, 'I',
v_aanduiding,
'Catalogus is nieuw'
);
END;
ELSE
fac.imp_writelog (p_import_key,
'E',
fac.imp_writelog (p_import_key, 'E',
v_aanduiding,
'Artikel key niet gevonden'
'Artikel key ongeldig'
);
v_ongeldig := 1;
END IF;
END IF;
BEGIN
SELECT ins_discipline_key
INTO v_res_discipline_key
FROM res_discipline
WHERE ins_discipline_omschrijving = v_res_discipline_oms
AND ins_discipline_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.imp_writelog (p_import_key,
'I',
v_aanduiding,
'Catalogus ' || v_res_discipline_oms || ' is nieuw'
);
END;
v_res_discipline_oms := TRIM (v_res_discipline_oms);
IF v_res_discipline_oms IS NOT NULL
THEN
BEGIN
SELECT ins_discipline_key
INTO v_res_discipline_key
FROM res_discipline
WHERE ins_discipline_omschrijving = v_res_discipline_oms
AND ins_discipline_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.imp_writelog (p_import_key, 'I',
v_aanduiding,
'Catalogus ' || v_res_discipline_oms || ' is nieuw'
);
END;
ELSE
fac.imp_writelog (p_import_key, 'E',
v_aanduiding,
'Catalogus ontbreekt'
);
v_ongeldig := 1;
END IF;
v_res_kostensoort_oms := TRIM (v_res_kostensoort_oms);
IF v_res_kostensoort_oms IS NOT NULL
THEN
BEGIN
@@ -11981,76 +11966,68 @@ BEGIN
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.imp_writelog (p_import_key,
'I',
fac.imp_writelog (p_import_key, 'E',
v_aanduiding,
'Kostensoort ' || v_res_kostensoort_oms || ' is nieuw'
'Kostensoort ' || v_res_kostensoort_oms || ' niet gevonden'
);
v_ongeldig := 1;
END;
END IF;
v_res_artikel_nr := TRIM (v_res_artikel_nr);
IF LENGTH (v_res_artikel_nr) > 10
THEN
v_res_artikel_nr := SUBSTR (TRIM (v_res_artikel_nr), 1, 10);
fac.imp_writelog (p_import_key,
'W',
v_res_artikel_nr := SUBSTR (v_res_artikel_nr, 1, 10);
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Artikelnummer wordt afgebroken tot ['
|| v_res_artikel_nr
|| ']'
'Artikelnummer wordt afgebroken tot [' || v_res_artikel_nr || ']'
);
END IF;
v_res_artikel_omschrijving := TRIM (v_res_artikel_omschrijving);
IF LENGTH (v_res_artikel_omschrijving) > 40
THEN
v_res_artikel_omschrijving :=
SUBSTR (TRIM (v_res_artikel_omschrijving), 1, 40);
fac.imp_writelog
(p_import_key,
'W',
v_aanduiding,
'Artikelomschrijving wordt afgebroken tot ['
|| v_res_artikel_omschrijving
|| ']'
);
v_res_artikel_omschrijving := SUBSTR (v_res_artikel_omschrijving, 1, 40);
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Artikelomschrijving wordt afgebroken tot [' || v_res_artikel_omschrijving || ']'
);
END IF;
IF v_res_artikel_omschrijving IS NULL
THEN
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Artikelomschrijving ontbreekt'
);
v_ongeldig := 1;
END IF;
v_res_artikel_eenheid := TRIM (v_res_artikel_eenheid);
IF LENGTH (v_res_artikel_eenheid) > 10
THEN
v_res_artikel_eenheid :=
SUBSTR (TRIM (v_res_artikel_eenheid), 1, 10);
fac.imp_writelog (p_import_key,
'W',
v_res_artikel_eenheid := SUBSTR (v_res_artikel_eenheid, 1, 10);
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Artikeleenheid wordt afgebroken tot ['
|| v_res_artikel_eenheid
|| ']'
'Artikeleenheid wordt afgebroken tot [' || v_res_artikel_eenheid || ']'
);
END IF;
v_res_artikel_prijs := REPLACE (v_res_artikel_prijs, ',', '.');
IF v_res_artikel_prijs IS NOT NULL
AND fac.safe_to_number (v_res_artikel_prijs) IS NULL
THEN
fac.imp_writelog (p_import_key,
'W',
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Ongeldige artikelprijs ['
|| v_res_artikel_prijs
|| ']'
'Ongeldige artikelprijs [' || v_res_artikel_prijs || ']'
);
END IF;
IF ( v_res_artikel_prijs_vast <> '0'
AND v_res_artikel_prijs_vast <> '1')
THEN
fac.imp_writelog (p_import_key,
'W',
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Ongeldige artikel_prijs_vast ['
|| v_res_artikel_prijs_vast
|| '] --> [0|1]'
'Ongeldige artikel_prijs_vast [' || v_res_artikel_prijs_vast || '] --> [0|1]'
);
END IF;
-- Doe een poging er de juiste waarde van te maken.
@@ -12060,88 +12037,63 @@ BEGIN
v_res_artikel_prijs_vast := '0';
END IF;
v_res_artikel_inkoopprijs :=
REPLACE (v_res_artikel_inkoopprijs, ',', '.');
v_res_artikel_inkoopprijs := REPLACE (v_res_artikel_inkoopprijs, ',', '.');
IF v_res_artikel_inkoopprijs IS NOT NULL
AND fac.safe_to_number (v_res_artikel_inkoopprijs) IS NULL
THEN
fac.imp_writelog (p_import_key,
'W',
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Ongeldige inkoopprijs ['
|| v_res_artikel_inkoopprijs
|| ']'
'Ongeldige inkoopprijs [' || v_res_artikel_inkoopprijs || ']'
);
END IF;
v_res_artikel_kostenpersoneel :=
REPLACE (v_res_artikel_kostenpersoneel, ',', '.');
v_res_artikel_kostenpersoneel := REPLACE (v_res_artikel_kostenpersoneel, ',', '.');
IF v_res_artikel_kostenpersoneel IS NOT NULL
AND fac.safe_to_number (v_res_artikel_kostenpersoneel) IS NULL
THEN
fac.imp_writelog (p_import_key,
'W',
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Ongeldige personeelskosten ['
|| v_res_artikel_kostenpersoneel
|| ']'
'Ongeldige personeelskosten [' || v_res_artikel_kostenpersoneel || ']'
);
END IF;
v_res_artikel_kostenalgemeen :=
REPLACE (v_res_artikel_kostenalgemeen, ',', '.');
v_res_artikel_kostenalgemeen := REPLACE (v_res_artikel_kostenalgemeen, ',', '.');
IF v_res_artikel_kostenalgemeen IS NOT NULL
AND fac.safe_to_number (v_res_artikel_kostenalgemeen) IS NULL
THEN
fac.imp_writelog (p_import_key,
'W',
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Ongeldige algemene kosten ['
|| v_res_artikel_kostenalgemeen
|| ']'
'Ongeldige algemene kosten [' || v_res_artikel_kostenalgemeen || ']'
);
END IF;
v_res_artikel_btw := REPLACE (v_res_artikel_btw, ',', '.');
IF v_res_artikel_btw IS NOT NULL
AND fac.safe_to_number (v_res_artikel_btw) IS NULL
THEN
fac.imp_writelog (p_import_key,
'W',
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Ongeldige BTW tarief ['
|| v_res_artikel_btw
|| ']'
'Ongeldige BTW tarief [' || v_res_artikel_btw || ']'
);
END IF;
v_res_artikel_opmerking := TRIM (v_res_artikel_opmerking);
IF LENGTH (v_res_artikel_opmerking) > 2000
THEN
v_res_artikel_opmerking :=
SUBSTR (TRIM (v_res_artikel_opmerking), 1, 2000);
fac.imp_writelog (p_import_key,
'W',
v_res_artikel_opmerking := SUBSTR (v_res_artikel_opmerking, 1, 2000);
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Artikelopmerking wordt afgebroken tot ['
|| v_res_artikel_opmerking
|| ']'
'Artikelopmerking wordt afgebroken tot [' || v_res_artikel_opmerking || ']'
);
END IF;
v_res_artikel_groep := TRIM (v_res_artikel_groep);
IF LENGTH (v_res_artikel_groep) > 10
THEN
v_res_artikel_groep :=
SUBSTR (TRIM (v_res_artikel_groep), 1, 10);
fac.imp_writelog (p_import_key,
'W',
v_res_artikel_groep := SUBSTR (v_res_artikel_groep, 1, 10);
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Artikelgroep wordt afgebroken tot ['
|| v_res_artikel_groep
|| ']'
'Artikelgroep wordt afgebroken tot [' || v_res_artikel_groep || ']'
);
END IF;
@@ -12150,12 +12102,9 @@ BEGIN
IF LENGTH (v_res_artikel_volgnummer) > 3
OR fac.safe_to_number (v_res_artikel_volgnummer) IS NULL
THEN
fac.imp_writelog (p_import_key,
'W',
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Ongeldig artikelvolgnummer ['
|| v_res_artikel_volgnummer
|| ']'
'Ongeldig artikelvolgnummer [' || v_res_artikel_volgnummer || ']'
);
v_res_artikel_volgnummer := NULL;
END IF;
@@ -12166,24 +12115,18 @@ BEGIN
IF v_res_artikel_ingangsdatum IS NOT NULL
AND fac.safe_to_date (v_res_artikel_ingangsdatum, 'yyyymmdd') IS NULL
THEN
fac.imp_writelog (p_import_key,
'W',
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Ongeldige ingangsdatum ['
|| v_res_artikel_ingangsdatum
|| ']'
'Ongeldige ingangsdatum [' || v_res_artikel_ingangsdatum || ']'
);
END IF;
IF v_res_artikel_vervaldatum IS NOT NULL
AND fac.safe_to_date (v_res_artikel_vervaldatum, 'yyyymmdd') IS NULL
THEN
fac.imp_writelog (p_import_key,
'W',
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Ongeldige vervaldatum ['
|| v_res_artikel_vervaldatum
|| ']'
'Ongeldige vervaldatum [' || v_res_artikel_vervaldatum || ']'
);
END IF;
@@ -12192,12 +12135,9 @@ BEGIN
IF LENGTH (v_res_artikel_minimum) > 3
OR fac.safe_to_number (v_res_artikel_minimum) IS NULL
THEN
fac.imp_writelog (p_import_key,
'W',
fac.imp_writelog (p_import_key, 'W',
v_aanduiding,
'Ongeldig artikelminimum ['
|| v_res_artikel_minimum
|| ']'
'Ongeldig artikelminimum [' || v_res_artikel_minimum || ']'
);
v_res_artikel_minimum := NULL;
END IF;
@@ -12237,10 +12177,8 @@ BEGIN
fac.safe_to_number (v_res_artikel_prijs),
fac.safe_to_number (v_res_artikel_prijs_vast),
fac.safe_to_number (v_res_artikel_inkoopprijs),
fac.safe_to_number
(v_res_artikel_kostenpersoneel),
fac.safe_to_number
(v_res_artikel_kostenalgemeen),
fac.safe_to_number (v_res_artikel_kostenpersoneel),
fac.safe_to_number (v_res_artikel_kostenalgemeen),
fac.safe_to_number (v_res_artikel_btw),
v_res_artikel_opmerking, v_res_artikel_groep,
fac.safe_to_number (v_res_artikel_volgnummer),
@@ -12256,13 +12194,10 @@ BEGIN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := ' ORACLE (' || oracle_err_mes || ')';
fac.imp_writelog
(p_import_key,
'E',
v_aanduiding,
'Ingelezen regel kan niet weggeschreven worden: fout bij toevoegen regel aan importtabel FAC_IMP_RES_ARTIKEL_SYNC. '
|| v_errormsg
);
fac.imp_writelog (p_import_key, 'E',
v_aanduiding,
'Ingelezen regel kan niet weggeschreven worden: fout bij toevoegen regel aan importtabel FAC_IMP_RES_ARTIKEL_SYNC. ' || v_errormsg
);
END;
END IF;
END IF;
@@ -12271,26 +12206,19 @@ BEGIN
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key,
'E',
fac.imp_writelog (p_import_key, 'E',
v_aanduiding || 'Ongeldig importbestand',
'Toelichting: ... '
);
ELSE
fac.imp_writelog
(p_import_key,
'S',
'Reserveringen: aantal ingelezen catering regels: '
|| TO_CHAR (v_count_tot),
''
);
fac.imp_writelog
(p_import_key,
'S',
'Reserveringen: aantal ongeldige niet ingelezen importregels: <b>'
|| TO_CHAR (v_count_tot - v_count_import),
''
);
fac.imp_writelog (p_import_key, 'S',
'Reserveringen: aantal ingelezen catering regels: ' || TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (p_import_key, 'S',
'Reserveringen: aantal ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import),
''
);
END IF;
COMMIT;
@@ -12299,10 +12227,8 @@ EXCEPTION
THEN
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_import_key,
'E',
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E',
v_errormsg,
'Inleesproces verbruiksartikelen afgebroken!'
);
@@ -12369,141 +12295,119 @@ BEGIN
END;
END IF;
BEGIN
SELECT ins_discipline_key
INTO v_res_discipline_key
FROM res_discipline
WHERE ins_discipline_omschrijving = rec.res_discipline_oms
AND ins_discipline_min_level = 2
AND ins_discipline_verwijder IS NULL;
IF v_res_kostensoort_key IS NOT NULL
THEN
BEGIN
SELECT ins_discipline_key
INTO v_res_discipline_key
FROM res_discipline
WHERE ins_discipline_omschrijving = rec.res_discipline_oms
AND ins_discipline_min_level = 2
AND ins_discipline_verwijder IS NULL;
IF v_res_kostensoort_key IS NOT NULL
THEN
UPDATE ins_tab_discipline
SET prs_kostensoort_key = v_res_kostensoort_key
WHERE ins_discipline_key = v_res_discipline_key;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO ins_tab_discipline
(ins_discipline_module,
ins_discipline_omschrijving,
ins_discipline_min_level,
prs_kostensoort_key
)
VALUES ('RES',
rec.res_discipline_oms,
2,
v_res_kostensoort_key
)
RETURNING ins_discipline_key
INTO v_res_discipline_key;
INSERT INTO res_disc_params
(res_ins_discipline_key
)
VALUES (v_res_discipline_key
);
END;
IF rec.res_artikel_key IS NULL
UPDATE ins_tab_discipline
SET prs_kostensoort_key = v_res_kostensoort_key
WHERE ins_discipline_key = v_res_discipline_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO res_artikel
(res_discipline_key, res_artikel_nr,
res_artikel_omschrijving,
res_artikel_eenheid, res_artikel_prijs,
res_artikel_prijs_vast,
res_artikel_inkoopprijs, res_artikel_btw,
res_artikel_opmerking, res_artikel_groep,
res_artikel_kostenpersoneel,
res_artikel_kostenalgemeen,
res_artikel_volgnummer,
res_artikel_ingangsdatum,
res_artikel_vervaldatum,
res_artikel_minimum
INSERT INTO ins_tab_discipline
(ins_discipline_module,
ins_discipline_omschrijving,
ins_discipline_min_level,
prs_kostensoort_key
)
VALUES (v_res_discipline_key, rec.res_artikel_nr,
rec.res_artikel_omschrijving,
rec.res_artikel_eenheid, rec.res_artikel_prijs,
rec.res_artikel_prijs_vast,
rec.res_artikel_inkoopprijs, rec.res_artikel_btw,
rec.res_artikel_opmerking, rec.res_artikel_groep,
rec.res_artikel_kostenpersoneel,
rec.res_artikel_kostenalgemeen,
rec.res_artikel_volgnummer,
rec.res_artikel_ingangsdatum,
rec.res_artikel_vervaldatum,
rec.res_artikel_minimum
VALUES ('RES',
rec.res_discipline_oms,
2,
v_res_kostensoort_key
)
RETURNING ins_discipline_key
INTO v_res_discipline_key;
INSERT INTO res_disc_params
(res_ins_discipline_key
)
VALUES (v_res_discipline_key
);
END;
v_count_ins := v_count_ins + 1;
ELSE
UPDATE res_artikel
SET res_discipline_key = v_res_discipline_key,
res_artikel_nr = rec.res_artikel_nr,
res_artikel_omschrijving = rec.res_artikel_omschrijving,
res_artikel_eenheid = rec.res_artikel_eenheid,
res_artikel_prijs = rec.res_artikel_prijs,
res_artikel_prijs_vast = rec.res_artikel_prijs_vast,
res_artikel_inkoopprijs = rec.res_artikel_inkoopprijs,
res_artikel_kostenpersoneel = rec.res_artikel_kostenpersoneel,
res_artikel_kostenalgemeen = rec.res_artikel_kostenalgemeen,
res_artikel_btw = rec.res_artikel_btw,
res_artikel_opmerking = rec.res_artikel_opmerking,
res_artikel_groep = rec.res_artikel_groep,
res_artikel_volgnummer = rec.res_artikel_volgnummer,
res_artikel_ingangsdatum = rec.res_artikel_ingangsdatum,
res_artikel_vervaldatum = rec.res_artikel_vervaldatum,
res_artikel_minimum = rec.res_artikel_minimum
WHERE res_artikel_key = rec.res_artikel_key;
IF rec.res_artikel_key IS NULL
THEN
INSERT INTO res_artikel
(res_discipline_key, res_artikel_nr,
res_artikel_omschrijving,
res_artikel_eenheid, res_artikel_prijs,
res_artikel_prijs_vast,
res_artikel_inkoopprijs, res_artikel_btw,
res_artikel_opmerking, res_artikel_groep,
res_artikel_kostenpersoneel,
res_artikel_kostenalgemeen,
res_artikel_volgnummer,
res_artikel_ingangsdatum,
res_artikel_vervaldatum,
res_artikel_minimum
)
VALUES (v_res_discipline_key, rec.res_artikel_nr,
rec.res_artikel_omschrijving,
rec.res_artikel_eenheid, rec.res_artikel_prijs,
rec.res_artikel_prijs_vast,
rec.res_artikel_inkoopprijs, rec.res_artikel_btw,
rec.res_artikel_opmerking, rec.res_artikel_groep,
rec.res_artikel_kostenpersoneel,
rec.res_artikel_kostenalgemeen,
rec.res_artikel_volgnummer,
rec.res_artikel_ingangsdatum,
rec.res_artikel_vervaldatum,
rec.res_artikel_minimum
);
v_count_update := v_count_update + 1;
END IF;
v_count_ins := v_count_ins + 1;
ELSE
UPDATE res_artikel
SET res_discipline_key = v_res_discipline_key,
res_artikel_nr = rec.res_artikel_nr,
res_artikel_omschrijving = rec.res_artikel_omschrijving,
res_artikel_eenheid = rec.res_artikel_eenheid,
res_artikel_prijs = rec.res_artikel_prijs,
res_artikel_prijs_vast = rec.res_artikel_prijs_vast,
res_artikel_inkoopprijs = rec.res_artikel_inkoopprijs,
res_artikel_kostenpersoneel = rec.res_artikel_kostenpersoneel,
res_artikel_kostenalgemeen = rec.res_artikel_kostenalgemeen,
res_artikel_btw = rec.res_artikel_btw,
res_artikel_opmerking = rec.res_artikel_opmerking,
res_artikel_groep = rec.res_artikel_groep,
res_artikel_volgnummer = rec.res_artikel_volgnummer,
res_artikel_ingangsdatum = rec.res_artikel_ingangsdatum,
res_artikel_vervaldatum = rec.res_artikel_vervaldatum,
res_artikel_minimum = rec.res_artikel_minimum
WHERE res_artikel_key = rec.res_artikel_key;
v_count_update := v_count_update + 1;
END IF;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Reserveringen: aantal artikelregels: '
|| TO_CHAR (v_count_tot),
''
fac.imp_writelog (p_import_key, 'S',
'Reserveringen: aantal artikelregels: ' || TO_CHAR (v_count_tot), ''
);
IF v_count_ins <> 0
THEN
fac.imp_writelog
(p_import_key,
'S',
'Reserveringen: aantal artikelregels toegevoegd: '
|| TO_CHAR (v_count_ins),
''
);
fac.imp_writelog (p_import_key, 'S',
'Reserveringen: aantal artikelregels toegevoegd: ' || TO_CHAR (v_count_ins), ''
);
END IF;
IF v_count_update <> 0
THEN
fac.imp_writelog (p_import_key,
'S',
'Reserveringen: aantal artikelregels aangepast: '
|| TO_CHAR (v_count_update),
''
fac.imp_writelog (p_import_key, 'S',
'Reserveringen: aantal artikelregels aangepast: ' || TO_CHAR (v_count_update), ''
);
END IF;
IF (v_count_tot > (v_count_ins + v_count_update))
THEN
fac.imp_writelog
(p_import_key,
'S',
'Reserveringen: aantal artikelregels overgeslagen: '
|| TO_CHAR (v_count_tot - v_count_ins - v_count_update),
''
);
fac.imp_writelog (p_import_key, 'S',
'Reserveringen: aantal artikelregels overgeslagen: ' || TO_CHAR (v_count_tot - v_count_ins - v_count_update), ''
);
END IF;
COMMIT;

View File

@@ -65,6 +65,11 @@ DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'sys_ip_restrict_internal'
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_imagecharts_account_id' , 'string' , '' , 'Image-charts account_id (future use)')
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_imagecharts_secret_key' , 'string' , '' , 'Image-charts secret_key (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_fe_users' , 'number' , '0' , 'Number of licensed frontend users')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_key_users' , 'number' , '0' , 'Number of licensed key users')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_device_users' , 'number' , '0' , 'Number of licensed device users')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_passive_users' , 'number' , '0' , 'Number of licensed passive users')
DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_master_schema' , 'string' , '' , 'Tasker master schema name (not necessarily customerId)')
DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_extra_folders' , 'array' , '' , 'Tasker extra folders to start CUST tasks (future use))')
DEFINE_SETTING('FAC', 0000, 'WEB_FACTAB', 'noti_delay_mode' , 'number' , '0' , '0=Notification to bedrijfadres always zero delay, 1=honor fac_srtnotificatie_delay, >1=fixed delay in seconds (eg. 5)')

View File

@@ -407,7 +407,7 @@ CREATE_TRIGGER(fac_t_fac_notificatie_A_IU)
BEGIN
IF INSERTING OR UPDATING ('fac_notificatie_notbefore')
THEN
IF BITAND(:NEW.fac_notificatie_status, 255 - 64) > 0 -- Alleen custom-queue negeren we
IF BITAND(:NEW.fac_notificatie_status, 2 + 4 + 32) > 0 -- Alleen EMAIL, SMS of APPPUSH
OR :NEW.prs_bedrijfadres_key IS NOT NULL
OR :NEW.fac_notificatie_systeemadres IS NOT NULL
THEN
@@ -596,16 +596,21 @@ CREATE_TRIGGER(fac_t_fac_tracking_b_i)
END IF;
-- dit event moet mogelijk ook actief worden genotificeerd,
-- dat kan expliciet worden onderdrukt door de omschrijving te prefixen met een #
-- dat kan expliciet worden onderdrukt door de omschrijving te prefixen met een # of @
IF SUBSTR(:new.fac_tracking_oms, 1, 1) = '#'
THEN
-- bedoeld om te onderdrukken, maar moeten we wel weer verwijderen
:new.fac_tracking_oms := SUBSTR(:new.fac_tracking_oms, 2);
-- En nu dus niet notificeren
NULL;
ELSIF SUBSTR(:new.fac_tracking_oms, 1, 1) = '@' -- Technische adressen niet notificeren, wel personen
THEN
:new.fac_tracking_oms := SUBSTR(:new.fac_tracking_oms, 2);
fac.notifytracking(:new.fac_srtnotificatie_key, :new.prs_perslid_key, :new.fac_tracking_oms, :new.fac_tracking_refkey, :new.fac_tracking_key);
-- geen newkey assignment zodat zo geen fac.notifytrackingbedrijven volgt
ELSE
fac.notifytracking(:new.fac_srtnotificatie_key, :new.prs_perslid_key, :new.fac_tracking_oms, :new.fac_tracking_refkey, :new.fac_tracking_key);
newkey := :new.fac_tracking_key;
fac.notifytracking(:new.fac_srtnotificatie_key, :new.prs_perslid_key, :new.fac_tracking_oms, :new.fac_tracking_refkey, :new.fac_tracking_key);
newkey := :new.fac_tracking_key;
END IF;
END BEFORE EACH ROW;

View File

@@ -619,67 +619,48 @@ AS
-- Notificatie voor opdrachten in de queue die al meer dan S(puo_failalert_threshold) minuten gefaald zijn
CREATE_VIEW(fac_v_noti_facorderqueuefails, 0)
(
sender,
receiver,
text,
par1,
code,
key,
xkey, xemail, xmobile, fac_srtnotificatie_key, attachments, xsender, prs_bedrijfadres_key
text
)
AS
SELECT '',
wg.prs_perslid_key,
LTRIM(lcl.L('lcl_facilitor_appl')) || ' alert: transmission of '
|| DECODE (
fac_srtnotificatie_code,
'ORDSNX',
'Order '
|| (SELECT mld_melding_key
|| '/'
|| mld_opdr_bedrijfopdr_volgnr
|| ' to '
|| COALESCE (prs_bedrijf_naam, '??')
FROM mld_opdr o, prs_bedrijf b
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key(+) AND mld_opdr_key = key),
'BES2SX',
'Procurement order '
|| (SELECT bes_bestelopdr_id || ' to ' || prs_bedrijf_naam
FROM bes_bestelopdr o, prs_bedrijf b
WHERE o.prs_bedrijf_key = b.prs_bedrijf_key AND bes_bestelopdr_key = key),
key)
|| ' has failed '
|| COUNT ( * )
|| ' times since '
|| TO_CHAR (MIN (ft.fac_tracking_datum), 'DD-MM-YYYY HH24:MI')
|| ' (' || MIN(fac_version_cust) || ')',
NULL,
NULL,
NULL,
NULL
, NULL xemail
, NULL xmobile
, NULL fac_srtnotificatie_key
, NULL attachments
, NULL xsender
, NULL prs_bedrijfadres_key
FROM fac_v_orderqueue q,
fac_tracking ft,
fac_srtnotificatie fs,
fac_functie f,
fac_v_webgebruiker wg,
fac_version
WHERE f.fac_functie_key = wg.fac_functie_key
AND f.fac_functie_code = 'WEB_PRSSYS'
AND ft.fac_srtnotificatie_key = fs.fac_srtnotificatie_key
AND ft.fac_tracking_refkey = q.key
AND fac_srtnotificatie_code IN ('ORDSNX', 'BES2SX')
GROUP BY xmlnode,
key,
fac_srtnotificatie_code,
wg.prs_perslid_key
HAVING (SYSDATE - MIN (ft.fac_tracking_datum)) * 24 * 60 > fac.getSetting('puo_failalert_threshold');
SELECT wg.prs_perslid_key,
LTRIM (lcl.L ('lcl_facilitor_appl'))
|| ' alert: transmission of '
|| DECODE (fac_srtnotificatie_xmlnode,
'opdracht', 'Order '
|| (SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr
FROM mld_opdr o
WHERE mld_opdr_key = fac_notificatie_refkey),
'bestelopdr', 'Procurement order '
|| (SELECT bes_bestelopdr_id
FROM bes_bestelopdr o
WHERE bes_bestelopdr_key = fac_notificatie_refkey),
fac_notificatie_refkey)
|| ' to '
|| COALESCE ((SELECT (prs_bedrijf_naam)
FROM prs_bedrijf b, prs_bedrijfadres pba
WHERE b.prs_bedrijf_key = pba.prs_bedrijf_key
AND pba.prs_bedrijfadres_key = q.prs_bedrijfadres_key),
'??')
|| ' has failed '
|| fac_notificatie_failcount
|| ' times since '
|| TO_CHAR (q.fac_notificatie_datum, 'DD-MM-YYYY HH24:MI')
|| ' ('
|| fac_version_cust
|| ')'
FROM fac_notificatie q,
fac_srtnotificatie fs,
fac_functie f,
fac_v_webgebruiker wg,
fac_version
WHERE f.fac_functie_key = wg.fac_functie_key
AND f.fac_functie_code = 'WEB_PRSSYS'
AND q.fac_srtnotificatie_key = fs.fac_srtnotificatie_key
AND BITAND (q.fac_notificatie_status, 64) = 0
AND (q.prs_bedrijfadres_key IS NOT NULL OR q.fac_notificatie_systeemadres IS NOT NULL)
AND q.fac_notificatie_failcount > 0
AND (SYSDATE - q.fac_notificatie_datum) * 24 * 60 > fac.getSetting ('puo_failalert_threshold');
-- dagelijkse notificatie voor verwoede inlogpogingen (1 regel per user beetje veel misschien)
CREATE OR REPLACE FORCE VIEW fac_v_noti_auditfail_day

View File

@@ -528,9 +528,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
THEN
newstatus := pstatus;
eventcode := 'ORDNEW';
IF teverzenden IS NULL OR teverzenden = 0 -- gebruiker heeft aangegeven 'niet versturen'
IF l_notificeren = 1 AND (teverzenden IS NULL OR teverzenden = 0) -- gebruiker heeft aangegeven 'niet versturen'
THEN
l_notificeren := 0;
l_notificeren := 2; -- alleen niet naar technisch adres
END IF;
END IF;
WHEN 6 -- Proces Technisch voltooid (TV) (Afgemeld)
@@ -603,6 +603,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
THEN
eventcode := '#' || eventcode;
END IF;
IF l_notificeren = 2 AND eventcode IS NOT NULL
THEN
eventcode := '@' || eventcode; -- Niet naar technisch adres, wel naar personen
END IF;
fac.trackaction (eventcode, popdrachtkey, puserkey, NULL, NULL, new_fac_tracking_key);
IF popdr_note_key IS NOT NULL
THEN
@@ -1473,6 +1477,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
plocatie_key => bedrijfrec.alg_locatie_key,
pdisc_key => bedrijfrec.mld_opdr_discipline_key,
psender => bedrijfrec.alg_locatie_email,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
pnotidelay => pnotidelay);
END LOOP;
END;

View File

@@ -465,6 +465,7 @@ BEGIN
ptypeopdr_key => :NEW.mld_typeopdr_key,
plocatie_key => bedrijfrec.alg_locatie_key,
pdisc_key => :NEW.mld_opdr_discipline_key,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
psender => bedrijfrec.alg_locatie_email);
END LOOP;
END IF;