DSMA#81802 Uitgifte/inname formulier

svn path=/Customer/trunk/; revision=64332
This commit is contained in:
Maarten van der Heide
2024-04-19 11:24:06 +00:00
parent 5b16eb6ec3
commit 34316519d9

View File

@@ -429,7 +429,7 @@ CREATE OR REPLACE PROCEDURE DSMA_SELECT_BASE27 (p_applname IN VARCHAR2,
AS
-- Nieuwe notitie(s) sinds laatste sync!
-- TODO:Aanname is nooit tegelijk Notitie(s) op zowel melding als opdracht!
CURSOR c_sync
CURSOR c_dsm2base
IS
SELECT '[' || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || '] '
aanduiding,
@@ -455,7 +455,26 @@ AS
n.reftype,
n.refkey,
COALESCE (o.mld_opdr_externsyncdate, TRUNC (SYSDATE));
/*
-- Nieuwe notitie(s) sinds laatste sync!
-- Deze sync blijkt Facilitor automatisch te doen (of doet Base27 het), mij
-- niet geheel duidelijk???
CURSOR c_base2mld
IS
SELECT '[' || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || '] '
aanduiding,
o.mld_melding_key,
n.mld_opdr_note_omschrijving,
n.mld_opdr_note_key
FROM mld_opdr o,
mld_opdr_note n
WHERE o.mld_uitvoerende_keys = 681 -- Base27
AND o.mld_typeopdr_key = 61 -- Base27
AND o.mld_statusopdr_key IN (5, 8) -- Toegekend/Geaccepteerd
AND o.mld_opdr_key = n.mld_opdr_key
AND n.mld_opdr_note_aanmaak > fac.safe_to_date ('01-02-2023', 'dd-mm-yyyy') -- Sync-en vanaf 01-02-2023!
AND n.mld_opdr_note_aanmaak = mld_opdr_note_wijzigdatum;
*/
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
@@ -463,11 +482,11 @@ AS
BEGIN
v_count := 0;
-- Sync-en wijziging(en)!
FOR rec IN c_sync
-- Sync-en notities door DSM in opdracht of melding naar Base27!
FOR rec IN c_dsm2base
LOOP
BEGIN
v_errormsg := 'Fout sync-en wijziging(en)';
v_errormsg := 'Fout dsm2base-sync';
-- TRUC: Zet wijzigdatum van te notificeren notities op syncdate_new!
-- Bij 1 notitie zal gelden syncdate_new = wijzigdatum (en wijzigt er
@@ -516,7 +535,45 @@ BEGIN
END;
END LOOP;
fac.writelog (p_applname, 'S', 'Opdrachten/#sync: ' || TO_CHAR (v_count), '');
fac.writelog (p_applname, 'S', 'DSM-notities to Base27/#sync: ' || TO_CHAR (v_count), '');
/*
v_count := 0;
-- Sync-en notities door Base27 in opdracht naar parent-melding!
FOR rec IN c_base2mld
LOOP
BEGIN
v_errormsg := 'Fout base2mld-sync';
INSERT INTO mld_melding_note (mld_melding_key,
prs_perslid_key,
mld_melding_note_omschrijving,
mld_melding_note_flag)
VALUES (rec.mld_melding_key,
682, -- API-user tbv. Base27
rec.mld_opdr_note_omschrijving,
0);
UPDATE mld_opdr_note
SET mld_opdr_note_wijzigdatum = SYSDATE -- Obscure truc!
WHERE mld_opdr_note_key = rec.mld_opdr_note_key;
fac.trackaction ('MLDUPD', rec.refkey, NULL, NULL, 'Notities geplaatst door Base27');
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'Base27-notities to MLD/#sync: ' || TO_CHAR (v_count), '');
*/
EXCEPTION
WHEN OTHERS
THEN
@@ -682,6 +739,7 @@ CREATE OR REPLACE VIEW DSMA_V_RAP_BEZITTINGEN
verwijderdatum, -- Geen toegevoegde waarde voor DSMA (gekopieerd van SVRZ)
tonen, -- Geen toegevoegde waarde voor DSMA (gekopieerd van SVRZ)
uitgiftedatum,
innamedatum,
redeninactief
)
AS
@@ -690,12 +748,19 @@ AS
pf.prs_perslid_naam_friendly,
d.ins_deel_omschrijving,
sd.ins_srtdeel_omschrijving,
x.kenmerken,
--x.kenmerken,
DECODE (d.ins_srtdeel_key,
4, d.ins_deel_opmerking, -- SLEUTEL=Sleutel, dan nooit kenmerken!
8, d.ins_deel_opmerking, -- BTAG=Blauwe tag, dan nooit kenmerken!
261, d.ins_deel_opmerking, -- ALARM=Persoonlijke alarmcode, dan nooit kenmerken!
x.kenmerken)
beschrijving,
d.ins_deel_aanmaak,
d.ins_deel_verwijder,
DECODE (d.ins_deel_verwijder, NULL, DECODE (SIGN (ADD_MONTHS (d.ins_deel_vervaldatum, 1) - SYSDATE), -1, 0, 1), 0)
tonen,
ud.uitgiftedatum,
du.uitgiftedatum,
di.innamedatum,
ri.redeninactief
FROM ins_deel d, -- Inclusief recent verwijderde objecten!
prs_v_perslid_fullnames_all pf,
@@ -708,7 +773,7 @@ AS
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND (sk.ins_srtkenmerk_key IN (3, 5, 6, 7, 8, 9)
AND (sk.ins_srtkenmerk_key IN (3, 5, 6, 7, 8, 9, 741, 742) -- Type/Laptop tas/Laptop standaard/Toetsenbord/Muis/Overig/Screenprotector mobiel/Beschermhoesje mobiel
OR kd.ins_kenmerk_key IN (65, 67))) -- Model igv. Dock/Monitor
GROUP BY ins_deel_key) x,
(SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde uitgiftedatum
@@ -717,7 +782,14 @@ AS
(SELECT 1
FROM ins_v_aanwezigkenmerk
WHERE ins_srtkenmerk_key = 1 -- Uitgifte datum
AND ins_kenmerk_key = kd.ins_kenmerk_key)) ud,
AND ins_kenmerk_key = kd.ins_kenmerk_key)) du,
(SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde innamedatum
FROM ins_v_aanwezigkenmerkdeel kd
WHERE EXISTS
(SELECT 1
FROM ins_v_aanwezigkenmerk
WHERE ins_srtkenmerk_key = 2 -- Inname datum
AND ins_kenmerk_key = kd.ins_kenmerk_key)) di,
(SELECT kd.ins_deel_key, ud.fac_usrdata_omschr redeninactief
FROM ins_v_aanwezigkenmerkdeel kd, fac_v_aanwezigusrdata ud
WHERE EXISTS
@@ -731,7 +803,8 @@ AS
AND COALESCE (d.ins_deel_verwijder, SYSDATE) >= TRUNC (SYSDATE - 1)
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND d.ins_deel_key = x.ins_deel_key(+)
AND d.ins_deel_key = ud.ins_deel_key(+)
AND d.ins_deel_key = du.ins_deel_key(+)
AND d.ins_deel_key = di.ins_deel_key(+)
AND d.ins_deel_key = ri.ins_deel_key(+);
------ payload end ------