EIND#80433 Meldingen kunnen accorderen - savepoint

svn path=/Database/trunk/; revision=62661
This commit is contained in:
Peter Feij
2023-11-22 14:53:24 +00:00
parent e377636419
commit 39c06696f8
4 changed files with 140 additions and 12 deletions

View File

@@ -2002,6 +2002,8 @@ DEF_FAC_SRTNOT('MLDAP1', 3, 'lcl_noti_MLDAP1', 'mld/mld_opdr.asp?opdr_key=', '
DEF_FAC_SRTNOT('MLDINF', 2, 'lcl_noti_MLDINF', 'mld/mld_melding.asp?mld_key=', '0', 'melding', 10);
DEF_FAC_SRTNOT('MLDING', 0, 'lcl_noti_MLDING', 'mld/mld_melding.asp?mld_key=', '0', 'melding', 10);
DEF_FAC_SRTNOT('MLDNEW', 1, 'lcl_noti_MLDNEW', 'mld/mld_melding.asp?mld_key=', '0', 'melding', 60);
DEF_FAC_SRTNOT('MLDCON', 1, 'lcl_noti_MLDCON', 'mld/mld_melding.asp?mld_key=', '0', 'melding', 60);
DEF_FAC_SRTNOT('MLD2CO', 3, 'lcl_noti_MLD2CO', 'mld/mld_melding.asp?mld_key=', '0', 'melding', 10);
DEF_FAC_SRTNOT('MLDNW3', 2, 'lcl_noti_MLDNW3', 'mld/mld_melding.asp?mld_key=', '0', 'melding', 300);
DEF_FAC_SRTNOT('MLDREJ', 9, 'lcl_noti_MLDREJ', 'mld/mld_melding.asp?mld_key=', '0', 'melding', 10);
DEF_FAC_SRTNOT('MLDUPD', 1, 'lcl_noti_MLDUPD', 'mld/mld_melding.asp?mld_key=', '0', 'melding', 60);

View File

@@ -803,6 +803,7 @@ FAC_LCL('lcl_mld_is_mldbeh_none', 'Behandelaar is nu onbekend', 'Call is now una
FAC_LCL('lcl_mld_is_mldabh', 'Toegewezen aan behandelaar', 'Assigned to handler')
FAC_LCL('lcl_mld_is_mldabh_to', 'Actieve behandeling is toegewezen aan ', 'Processing has been assigned to ')
FAC_LCL('lcl_mld_is_mldabh_none', 'Behandelaar is nu onbekend', 'Handler is now unknown')
FAC_LCL('lcl_mld_is_mldcon', 'Melding is geregistreerd en wacht op instemming', 'Call is registered for consent')
FAC_LCL('lcl_mld_is_mldnew', 'Melding is geregistreerd', 'Call is registered')
FAC_LCL('lcl_mld_is_mldupd', 'Melding is gewijzigd', 'Call is updated')
FAC_LCL('lcl_mld_is_mldupdtrack', 'Melding {0} is gewijzigd', 'Call {0} is updated')
@@ -943,6 +944,12 @@ FAC_LCL('lcl_mld_enddate', 'Gereed', 'Complete')
FAC_LCL('lcl_mld_actiondate', 'Actiedatum', 'Next action')
FAC_LCL('lcl_mld_closedate', 'Afmelddatum', 'Closing date')
FAC_LCL('lcl_mld_date_time', 'Geregistreerd', 'Registered')
FAC_LCL('lcl_mld_conceptstatus', 'Instemming', 'Consent')
FAC_LCL('lcl_mld_conceptstatus_0', 'Geen instemming nodig', 'No consent needed')
FAC_LCL('lcl_mld_conceptstatus_1', 'Wacht op budgethouder', 'Waiting for budgetholder')
FAC_LCL('lcl_mld_conceptstatus_2', 'Wacht op objectbeheerder', 'Waiting for objectmanager')
FAC_LCL('lcl_mld_conceptstatus_4', 'Wacht op afdelingsverantwoordelijke', 'Waiting for departmentmanager')
FAC_LCL('lcl_mld_conceptstatus_8', 'Wacht op persoonlijk leidinggevende', 'Waiting for personal manager')
FAC_LCL('lcl_mld_publiek', 'Openbaar', 'Public')
FAC_LCL('lcl_mld_issuer_search', 'Plaats van de aanvrager', 'Place of the issuer')
FAC_LCL('lcl_mld_references', ' > ', ' > ')
@@ -2302,6 +2309,12 @@ FAC_LCL('lcl_mld_onzichtbaar', 'Onzichtbaar', 'Invisible')
FAC_LCL('lcl_mld_optioneel', 'Optioneel', 'Optional')
FAC_LCL('lcl_mld_verplicht', 'Verplicht', 'Mandatory')
FAC_LCL('lcl_mld_afmeldtext', 'Tekst bij afmelden', 'Text when closing')
FAC_LCL('lcl_mld_stdconceptstatus', 'Instemming vooraf', 'Upfront consent')
FAC_LCL('lcl_mld_stdconceptstatus_0', 'Geen instemming nodig', 'No consent needed')
FAC_LCL('lcl_mld_stdconceptstatus_1', 'Instemming door budgethouder', 'Consent by budget holder')
FAC_LCL('lcl_mld_stdconceptstatus_2', 'Instemming door objectbeheerder', 'Consent by objectmanager')
FAC_LCL('lcl_mld_stdconceptstatus_4', 'Instemming door afdelingsverantwoordelijke', 'Consent by department manager')
FAC_LCL('lcl_mld_stdconceptstatus_8', 'Instemming door persoonlijk leidinggevende', 'Consent by personal manager')
FAC_LCL('lcl_mld_directklaar', 'Kan door frontoffice worden behandeld', 'Can be processed by front office')
FAC_LCL('lcl_mld_initieel_fo', 'Initieel ook eerst naar de front office', 'Initially to the front office')
FAC_LCL('lcl_mld_afhankelijk_vakgroep', 'Afhankelijk van vakgroep', 'Depending on discipline')
@@ -6706,6 +6719,7 @@ FAC_LCL('prs_kostensoortgrp_key', 'Kostensoortgroep', 'Cost category group
FAC_LCL('prs_kostensoort_doorbelasten', 'Doorbelasten', 'Charge')
FAC_LCL('prs_kostensoort_btw', 'Inclusief BTW', 'VAT included')
FAC_LCL('prs_kostenplaats_key', 'Leverende kostenplaats', 'Delivering cost centre')
FAC_LCL('prs_kostensoort_eind', 'Einddatum', 'End date')
FAC_LCL('prs_kostensoortgrp', 'Kostensoortgroep', 'Cost category group')
FAC_LCL('prs_kostensoortgrp_m', 'Kostensoortgroepen', 'Cost category groups')
@@ -7476,6 +7490,8 @@ FAC_LCL('lcl_noti_MLDAFR', 'Uw melding ##KEY## (##DISC##/##STDMLD##) is definiti
FAC_LCL('lcl_noti_MLDAP1', 'Voor een opdracht is uw goedkeuring vereist', 'Your approval is requested for this order')
FAC_LCL('lcl_noti_MLDINF', 'Uw melding ##KEY## (##DISC##/##STDMLD##) is afgehandeld', 'Your call ##KEY## (##DISC##/##STDMLD##) is processed')
FAC_LCL('lcl_noti_MLDING', 'Uw melding ##KEY## (##DISC##/##STDMLD##) is ingezien', 'Your call ##KEY## (##DISC##/##STDMLD##) is seen')
FAC_LCL('lcl_noti_MLDCON', 'Uw melding ##KEY## (##DISC##/##STDMLD##) wacht op instemming', 'Your call ##KEY## (##DISC##/##STDMLD##) is waiting for consent')
FAC_LCL('lcl_noti_MLD2CO', 'Voor melding ##KEY## (##DISC##/##STDMLD##) van ##MELDER## is uw instemming nodig', 'Your consent for ##MELDER##''s call ##KEY## (##DISC##/##STDMLD##) is needed')
FAC_LCL('lcl_noti_MLDNEW', 'Uw melding ##KEY## (##DISC##/##STDMLD##) is geregistreerd', 'Your call ##KEY## (##DISC##/##STDMLD##) is registered')
FAC_LCL('lcl_noti_MLDREJ', 'Uw melding ##KEY## (##DISC##/##STDMLD##) is afgewezen', 'Your call ##KEY## (##DISC##/##STDMLD##) is rejected')
FAC_LCL('lcl_noti_MLDUPD', 'Uw melding ##KEY## (##DISC##/##STDMLD##) is gewijzigd', 'Your call ##KEY## (##DISC##/##STDMLD##) is changed')

View File

@@ -19,6 +19,7 @@ CREATE OR REPLACE PACKAGE mld AS
PROCEDURE notifybackoffice (pmeldingkey IN NUMBER, pcode IN VARCHAR2, pdisc_level IN NUMBER DEFAULT 1);
PROCEDURE notifyprio (pmeldingkey IN NUMBER, prio IN NUMBER, pperslid_key IN NUMBER, pdisc_level IN NUMBER DEFAULT 1);
PROCEDURE notifyopdrgoedkeurders (popdrkey IN NUMBER);
PROCEDURE notifyinstemmer (pmldkey IN NUMBER);
FUNCTION mld_besteed_budget_pgb (p_prs_key IN NUMBER, p_disc_key IN NUMBER)
RETURN NUMBER;
FUNCTION mld_besteed_budget_agb (p_kp_key IN NUMBER)
@@ -199,6 +200,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
currentstatus mld_melding.mld_melding_status%TYPE;
activiteit_key mld_melding.fac_activiteit_key%TYPE;
newstatus mld_melding.mld_melding_status%TYPE;
conceptstatus mld_melding.mld_melding_conceptstatus%TYPE;
eventcode VARCHAR2(10); -- tabelsize is 6
clear_on_close NUMBER(2); -- +1 = Attentie, +2 = Behandelaar , +4 = Behandelteam, +8 = Actieve behandelaar
actiecode mld_melding.mld_melding_actiecode%TYPE;
@@ -212,8 +214,12 @@ CREATE OR REPLACE PACKAGE BODY mld AS
FROM mld_melding
WHERE mld_melding_parentkey = pmeldingkey;
BEGIN
SELECT mld_melding_status, fac_activiteit_key, mld_melding_actiecode, mld_melding_behandelaar_key, mld_ins_discipline_key, mld_melding_behandelaar2_key
INTO currentstatus, activiteit_key, actiecode, behandelaar_key, discipline_key, behandelaar2_key
SELECT mld_melding_status, fac_activiteit_key, mld_melding_actiecode,
mld_melding_behandelaar_key, mld_ins_discipline_key, mld_melding_behandelaar2_key,
mld_melding_conceptstatus
INTO currentstatus, activiteit_key, actiecode,
behandelaar_key, discipline_key, behandelaar2_key,
conceptstatus
FROM mld_melding
WHERE mld_melding_key = pmeldingkey;
@@ -255,10 +261,15 @@ CREATE OR REPLACE PACKAGE BODY mld AS
END IF;
WHEN 2 -- Ingevoerd
THEN
IF currentstatus IS NULL OR currentstatus = 1
IF currentstatus IS NULL OR currentstatus = 1 OR (currentstatus = 2 AND conceptstatus = 0)
THEN
newstatus := pstatus;
eventcode := 'MLDNEW';
IF conceptstatus = 0
THEN
eventcode := 'MLDNEW';
ELSE
eventcode := 'MLDCON'; -- eerst Concept
END IF;
ELSIF currentstatus = 0
THEN
newstatus := pstatus;
@@ -1305,6 +1316,96 @@ CREATE OR REPLACE PACKAGE BODY mld AS
RETURN;
END;
END;
PROCEDURE notifyinstemmer (pmldkey IN NUMBER)
AS
l_conceptstatus mld_melding.mld_melding_conceptstatus%TYPE;
l_kp_key mld_melding.prs_kostenplaats_key%TYPE;
l_melder_key mld_melding.prs_perslid_key%TYPE;
l_afd_key mld_melding.prs_afdeling_key%TYPE;
l_receiver_key NUMBER;
BEGIN
SELECT mld_melding_conceptstatus, prs_kostenplaats_key, prs_perslid_key
INTO l_conceptstatus, l_kp_key, l_melder_key
FROM mld_melding
WHERE mld_melding_key = pmldkey;
CASE l_conceptstatus -- ooit misschien nog BITAND voor meerlaagse instemming
WHEN 0
THEN
l_receiver_key := NULL; -- dat wassie ook al
WHEN 1
THEN
-- de budgetverantwoordelijke moet instemmen
IF l_kp_key IS NOT NULL
THEN
l_receiver_key := prs.getkpverantwoordelijke (l_kp_key, NULL, NULL);
IF l_receiver_key < 0 -- kan misschien ook -1 opleveren ipv null
THEN
l_receiver_key := NULL;
END IF;
ELSE
l_receiver_key := NULL; -- dat wassie ook al
END IF;
WHEN 2
THEN
--objectbeheerder, kies er maar een als er meer zijn..
BEGIN
SELECT MAX (d.prs_perslid_key_beh)
INTO l_receiver_key
FROM mld_melding_object mo, ins_deel d
WHERE mo.ins_deel_key = d.ins_deel_key AND mo.mld_melding_key = pmldkey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_receiver_key := NULL;
END;
WHEN 4 --afdelingshoofd
THEN
SELECT d.prs_perslid_key_verantw
INTO l_receiver_key
FROM prs_afdeling d, mld_melding m, prs_perslid p
WHERE d.prs_afdeling_key = COALESCE (m.prs_afdeling_key, p.prs_afdeling_key)
AND m.prs_perslid_key = p.prs_perslid_key
AND mld_melding_key = pmldkey;
WHEN 8 --een individuele verantwoordelijke
THEN
SELECT p.prs_perslid_key_verantw
INTO l_receiver_key
FROM mld_melding m, prs_perslid p
WHERE m.prs_perslid_key = p.prs_perslid_key AND mld_melding_key = pmldkey;
WHEN 16 --future use
THEN
NULL;
END CASE;
IF l_receiver_key IS NOT NULL
THEN
fac.putnotificationsrtprio (NULL,
l_receiver_key,
'MLD2CO',
pmldkey,
NULL, --bericht,
NULL,
NULL,
NULL,
NULL,
2, -- prio
l_melder_key); -- sender
ELSE
-- we kunnen niemand vinden; voor de voortgang zeggen we:
-- dan is er dus geen expliciete instemming nodig en gaan we direct door
UPDATE mld_melding
SET mld_melding_conceptstatus = 0 -- bij BITAND alleen de beschouwde bits wissen
WHERE mld_melding_key = pmldkey;
mld.setmeldingstatus (pmldkey,
2,
l_melder_key,
0);
END IF;
END;
FUNCTION mld_besteed_budget_pgb (p_prs_key IN NUMBER, p_disc_key IN NUMBER)
RETURN NUMBER
@@ -3710,13 +3811,14 @@ CREATE OR REPLACE PACKAGE BODY mld AS
s := ps;
-- We do support substitution of placeholders in the messages
-- ##DISC## = ins_discipline_omschrijving
-- ##STDMLD## = mld_stdmelding_omschrijving
-- ##KEY## = ins_srtdiscipline_prefix+key
-- ##PLAATS## = plaatsaanduidig van plaats service
-- ##DISC## = ins_discipline_omschrijving
-- ##STDMLD## = mld_stdmelding_omschrijving
-- ##KEY## = ins_srtdiscipline_prefix+key
-- ##PLAATS## = plaatsaanduidig van plaats service
-- ##SUBJECT## = mld_melding_onderwerp
-- ##SPOED## = 'SPOED' indien spoed, anders ''
-- ##EXTNR## = extern nummer
-- ##SPOED## = 'SPOED' indien spoed, anders ''
-- ##EXTNR## = extern nummer
-- ##MELDER## = melder
IF INSTR (s, '#') > 0
THEN
SELECT lcl.x ('mld_stdmelding_omschrijving',
@@ -3729,6 +3831,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
m.mld_alg_onroerendgoed_keys,
m.mld_melding_spoed,
m.mld_melding_onderwerp,
pf.prs_perslid_naam_friendly,
m.mld_melding_externnr
INTO varstdmld,
vardisc,
@@ -3736,12 +3839,15 @@ CREATE OR REPLACE PACKAGE BODY mld AS
varonroerendgoedkeys,
varspoed,
varonderwerp,
varmelder,
varextnr
FROM mld_stdmelding stdm,
ins_tab_discipline d,
ins_srtdiscipline sd,
mld_melding m
mld_melding m,
prs_v_perslid_fullnames_all pf
WHERE d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.prs_perslid_key_voor = pf.prs_perslid_key -- voor wie is evt relevanter
AND stdm.mld_ins_discipline_key = d.ins_discipline_key
AND stdm.mld_stdmelding_key = m.mld_stdmelding_key
AND m.mld_melding_key = p_melding_key;
@@ -3749,11 +3855,12 @@ CREATE OR REPLACE PACKAGE BODY mld AS
s :=
REPLACE (
REPLACE (
REPLACE (REPLACE (REPLACE (s,
REPLACE (REPLACE (REPLACE (REPLACE (s,
'##DISC##', vardisc),
'##STDMLD##', varstdmld),
'##KEY##', varsrtdisc || TO_CHAR (p_melding_key)),
'##EXTNR##', varextnr),
'##MELDER##', varmelder),
'##SUBJECT##', varonderwerp);
IF varspoed <= 2

View File

@@ -105,6 +105,9 @@ ALTER TABLE prs_perslid ADD prs_perslid_key_verantw
// TODO nagaan of er nog extra indexen bij moeten (aanvullend op reference)
// vermoedelijk op mld_melding_conceptstatus
DEF_FAC_SRTNOT('MLDCON', 0, 'lcl_noti_MLDCON', 'mld/mld_melding.asp?mld_key=', '0', 'melding', 60);
DEF_FAC_SRTNOT('MLD2CO', 3, 'lcl_noti_MLD2CO', 'mld/mld_melding.asp?mld_key=', '0', 'melding', 10);
/////////////////////////////////////////////////////////////////////////////////////////// PCHD#80318
ALTER TABLE prs_kostensoort ADD prs_kostensoort_eind DATE;
ALTER TABLE prs_kostensoort ADD prs_kostensoort_verwijder DATE;