FCLT#63760: Automatisch opdrachten aanmaken ook in de workflow.

svn path=/Database/trunk/; revision=52429
This commit is contained in:
Maykel Geerdink
2021-07-20 07:52:59 +00:00
parent ef498ab578
commit 377bc0c445

View File

@@ -1894,61 +1894,14 @@ CREATE OR REPLACE PACKAGE BODY mld AS
cnd.process_mjb_score_effects(p_melding_key, NULL);
END IF;
-- Nu de diverse flexfiles van de melding naar de opdracht kopieren
-- voor zover het kenmerksoort overeenstemt
-- CopyFlexFolders("MLD", "M", mld_key, "O", opdr_key, flexsql) met flexsql hieronder
BEGIN
FOR ref_kenmerken IN (SELECT k_old.mld_kenmerk_key k_old, k_new.mld_kenmerk_key k_new
FROM mld_srtkenmerk t,
mld_kenmerk k_old,
mld_kenmerk k_new,
mld_stdmelding s_old,
mld_typeopdr s_new,
mld_discipline d_old
WHERE s_old.mld_stdmelding_key = l_mld_stdmelding_key
AND ( s_new.mld_typeopdr_key = l_mld_typeopdr_key
OR s_new.mld_typeopdr_key IS NULL)
AND s_old.mld_ins_discipline_key = d_old.ins_discipline_key
AND t.mld_srtkenmerk_kenmerktype IN ('F', 'E', 'M')
AND ( ( k_old.mld_stdmelding_key IS NULL
AND k_old.mld_kenmerk_niveau = 'A')
OR ( k_old.mld_stdmelding_key = s_old.mld_stdmelding_key
AND k_old.mld_kenmerk_niveau = 'S')
OR ( k_old.mld_stdmelding_key = s_old.mld_ins_discipline_key
AND k_old.mld_kenmerk_niveau = 'D')
OR ( k_old.mld_stdmelding_key = d_old.ins_srtdiscipline_key
AND k_old.mld_kenmerk_niveau = 'T'))
AND k_new.mld_typeopdr_key = s_new.mld_typeopdr_key(+)
AND k_new.mld_kenmerk_niveau IN ('P', 'O')
AND k_old.mld_kenmerk_verwijder IS NULL
AND k_new.mld_kenmerk_verwijder IS NULL
AND k_old.mld_srtkenmerk_key = t.mld_srtkenmerk_key
AND k_new.mld_srtkenmerk_key = t.mld_srtkenmerk_key
AND t.mld_srtkenmerk_verwijder IS NULL
AND k_old.mld_kenmerk_groep = k_new.mld_kenmerk_groep)
LOOP
BEGIN
FOR bijlagen IN (SELECT r.fac_bijlagen_key
, r.fac_bijlagen_disk_directory
FROM fac_bijlagen c
, fac_bijlagen r
WHERE c.fac_bijlagen_root_key = r.fac_bijlagen_key
AND c.fac_bijlagen_verwijder IS NULL
AND c.fac_bijlagen_refkey = p_melding_key
AND c.fac_bijlagen_kenmerk_key = ref_kenmerken.k_old
AND c.fac_bijlagen_module = 'MLD')
LOOP
BEGIN
flx.copyflexbijlage('MLD', l_new_opdr_key, ref_kenmerken.k_new, bijlagen.fac_bijlagen_key);
END;
END LOOP;
END;
END LOOP;
END;
-- Bij workflow meldingen worden de bijlagen niet gekopieerd.
-- De bijlagen van de parent melding worden bij de onderliggende workflow melding weergegeven (in de show mode)
-- als de instelling/setting "mld_show_parent_attachments" is gezet.
-- Bij het automatisch aanmaken van de opdracht bij een workflowmelding hoeven dus ook geen bijlagen te worden gekopieerd.
-- Bij het automatisch aanmaken van een opdracht bij een melding is alleen de melding_key doorgegeven en dus niet de melding kenmerken.
-- Deze kenmerken zijn dus ook niet opgeslagen.
-- De melding kenmerken die overeenkomen met de opdracht kenmerken ophalen en opslaan voor de nieuwe opdracht.
-- De melding kenmerken die overeenkomen met de opdracht kenmerken (dezelfde omschrijving en srtkenmerk) ophalen en opslaan voor de nieuwe opdracht.
INSERT INTO mld_kenmerkopdr (mld_opdr_key
, mld_kenmerk_key
, mld_kenmerkopdr_waarde)
@@ -1963,7 +1916,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
AND vk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND vk.mld_kenmerk_groep = k.mld_kenmerk_groep
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
AND v.mld_kenmerkmelding_verwijder IS NULL),
AND v.mld_kenmerkmelding_verwijder IS NULL
AND COALESCE(vk.mld_kenmerk_omschrijving, vt.mld_srtkenmerk_omschrijving) = COALESCE(k.mld_kenmerk_omschrijving, t.mld_srtkenmerk_omschrijving)),
k.mld_kenmerk_default) kenmerk_waarde
FROM mld_srtkenmerk t
, mld_kenmerk k
@@ -1986,7 +1940,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
AND vk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND vk.mld_kenmerk_groep = k.mld_kenmerk_groep
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
AND v.mld_kenmerkmelding_verwijder IS NULL),
AND v.mld_kenmerkmelding_verwijder IS NULL
AND COALESCE(vk.mld_kenmerk_omschrijving, vt.mld_srtkenmerk_omschrijving) = COALESCE(k.mld_kenmerk_omschrijving, t.mld_srtkenmerk_omschrijving)),
k.mld_kenmerk_default) IS NOT NULL
AND COALESCE((SELECT MIN(v.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding v
@@ -1997,7 +1952,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
AND vk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND vk.mld_kenmerk_groep = k.mld_kenmerk_groep
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
AND v.mld_kenmerkmelding_verwijder IS NULL),
AND v.mld_kenmerkmelding_verwijder IS NULL
AND COALESCE(vk.mld_kenmerk_omschrijving, vt.mld_srtkenmerk_omschrijving) = COALESCE(k.mld_kenmerk_omschrijving, t.mld_srtkenmerk_omschrijving)),
k.mld_kenmerk_default) NOT LIKE '%##EXPR##%';