Merge 2025.1 DB50f patches (ongoing)

svn path=/Database/trunk/; revision=68713
This commit is contained in:
2025-04-09 15:03:29 +00:00
parent 9701c0e170
commit 866640c689
5 changed files with 244 additions and 315 deletions

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;
@@ -3851,7 +3852,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
@@ -3862,6 +3863,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
@@ -4980,6 +4992,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;
@@ -5064,6 +5077,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

@@ -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

@@ -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;