YKPN#64558 -- Kunstobject - workflow (opdracht aanmaken)

YKPN#64629 -- Pandbudget met factuur rapportage aanpassen

svn path=/Customer/trunk/; revision=48691
This commit is contained in:
Arthur Egberink
2020-11-03 13:10:39 +00:00
parent 50e5aa4b25
commit e64b532804

View File

@@ -86,6 +86,8 @@ AS
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
pemailkey IN NUMBER);
PROCEDURE autoorder;
END;
/
@@ -1438,6 +1440,145 @@ AS
'errormsg',
'Fout bij inlezen mail werkplekinrichting: ' || v_ruisnaam);
END;
PROCEDURE autoorder
AS
CURSOR c IS
SELECT m.mld_melding_key,
m.prs_kostenplaats_key,
m.mld_melding_omschrijving,
MAX (bdl.prs_bedrijf_key) prs_bedrijf_key,
std.mld_typeopdr_key,
m.mld_melding_einddatum,
m.mld_melding_status
FROM mld_melding m,
mld_stdmelding std,
prs_dienst d,
prs_bedrijfdienstlocatie bdl
WHERE m.mld_melding_status IN (2, 3, 4) -- Ingevoerd, Ingezien, Geaccepteerd
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_stdmelding_autoorder = 1
AND std.prs_dienst_key = bdl.prs_dienst_key
AND mld_melding_datum > SYSDATE - 1 -- voorkom dat oude meldingen ineens verstuurd gaan worden
AND mld_melding_datum < SYSDATE - (1 / 96) -- voorkom dat meldingen die nog bezig zijn met aanmaken al aangepast worden.
AND std.mld_typeopdr_key IS NOT NULL
AND NOT EXISTS
(SELECT mld_melding_key
FROM mld_opdr o
WHERE mld_melding_key = m.mld_melding_key)
GROUP BY mld_melding_key,
prs_kostenplaats_key,
mld_melding_omschrijving,
mld_typeopdr_key,
mld_melding_einddatum,
mld_melding_status;
CURSOR c_flex (c_melding_key NUMBER)
IS
SELECT sk.mld_srtkenmerk_kenmerktype,
sk.mld_srtkenmerk_omschrijving,
DECODE (
sk.mld_srtkenmerk_kenmerktype,
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key,
mld_kenmerkmelding_waarde),
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key,
mld_kenmerkmelding_waarde),
mld_kenmerkmelding_waarde) waarde
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
WHERE mld_melding_key = c_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
ORDER BY k.mld_kenmerk_volgnummer;
v_opdr_key NUMBER;
v_notificatie_code VARCHAR2 (20);
v_mld_opdr_bedrijfopdr_volgnr NUMBER;
v_melding_omschrijving VARCHAR2 (4000);
BEGIN
FOR rec IN c
LOOP
BEGIN
-- eerst even de status naar geaccepteerd zetten.
IF rec.mld_melding_status <> 4
THEN
MLD.setmeldingstatus (rec.mld_melding_key, 4, 3); -- Geaccepteerd, Facilitor
END IF;
v_melding_omschrijving := NULL;
FOR rec_flex IN c_flex (rec.mld_melding_key)
LOOP
BEGIN
v_melding_omschrijving :=
v_melding_omschrijving
|| rec_flex.mld_srtkenmerk_omschrijving
|| ': '
|| rec_flex.waarde
|| CHR (10);
END;
END LOOP;
v_mld_opdr_bedrijfopdr_volgnr :=
mld.BepaalOpdrMeldingVolgnr (rec.mld_melding_key);
INSERT INTO mld_opdr (mld_melding_key,
prs_kostenplaats_key,
mld_typeopdr_key,
prs_perslid_key,
mld_uitvoerende_keys,
mld_opdr_datumbegin,
mld_opdr_einddatum,
mld_opdr_module,
mld_opdr_omschrijving,
mld_opdr_bedrijfopdr_volgnr,
mld_opdr_teverzenden)
VALUES (
rec.mld_melding_key,
rec.prs_kostenplaats_key,
rec.mld_typeopdr_key,
3 -- facilitor
,
rec.prs_bedrijf_key,
SYSDATE,
rec.mld_melding_einddatum,
'MLD',
v_melding_omschrijving || rec.mld_melding_omschrijving,
v_mld_opdr_bedrijfopdr_volgnr,
1)
RETURNING mld_opdr_key
INTO v_opdr_key;
MLD.setopdrachtstatus (v_opdr_key, 5, 3); -- uitgegeven, Facilitor
SELECT DECODE (u.TYPE, 'P', 'ORDMLI', 'ORDMLE')
INTO v_notificatie_code
FROM mld_v_uitvoerende u
WHERE u.mld_uitvoerende_key = rec.prs_bedrijf_key;
FAC.trackaction (v_notificatie_code,
v_opdr_key,
3,
NULL,
NULL);
-- update melding status
MLD.updatemeldingstatus (rec.mld_melding_key, 0, 3); -- facilitor
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (
'AutoOrder',
'E',
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')',
'Fout bij aanmaken opdracht: ' || rec.mld_melding_key);
END;
END LOOP;
END;
END;
/
@@ -2239,6 +2380,10 @@ BEGIN
YKPN.cleanup_room_dep_contracts;
-- maak opdrachten aan die volgens autoorder aangemaakt hadden moeten worden
-- onder workflowmeldingen.
YKPN.autoorder;
EXCEPTION
WHEN OTHERS
THEN
@@ -8832,6 +8977,7 @@ AS
fin_factuur_statuses_key
FROM fin_factuur f, fin_factuurregel fr
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND f.fin_factuur_verwijder IS NULL
GROUP BY mld_opdr_key,
f.fin_factuur_key,
fin_factuur_statuses_key) fgg) fg
@@ -8954,6 +9100,7 @@ AS
fin_factuur_statuses_key
FROM fin_factuur f, fin_factuurregel fr
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND f.fin_factuur_verwijder IS NULL
GROUP BY mld_opdr_key,
f.fin_factuur_key,
fin_factuur_statuses_key) fgg) fg,