BVB1#87767 Toevoegen import functie voor AV middelen

svn path=/Customer/trunk/; revision=69560
This commit is contained in:
Arthur Egberink
2025-06-26 12:32:48 +00:00
parent a3f92fe583
commit 21e464e807

View File

@@ -32,6 +32,10 @@ AS
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
pemailkey IN NUMBER);
PROCEDURE RM_update_folders;
PROCEDURE RM_update_equipment;
END;
/
@@ -172,14 +176,14 @@ AS
fac_result_waarde)
VALUES (psessionid,
'kenmerkpath',
'MLD\M' || to_char( TRUNC(newkey/1000), 'FM0000') || '___\M' || newkey || '\' || kkey_att || '\');
'MLD\M' || to_char( TRUNC(newkey/1000), 'FM0000') || '___\M' || newkey || CHR(92) || kkey_att || CHR(92));
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'kenmerkorgmailpath',
'MLD\M' || TO_CHAR (TRUNC (newkey / 1000), 'FM0000') || '___\M' || newkey || '\' || kkey_mail || '\');
'MLD\M' || TO_CHAR (TRUNC (newkey / 1000), 'FM0000') || '___\M' || newkey || CHR(92) || kkey_mail || CHR(92));
mld.setmeldingstatus (newkey, 2, sender);
END;
@@ -216,6 +220,181 @@ AS
'Database fout - Neem contact op met uw systeembeheerder');
END;
PROCEDURE RM_update_folders
AS
CURSOR c_srtgroep IS
SELECT *
FROM bvb1_v_folder_structuur
WHERE parent1 IS NULL;
CURSOR c_srtdeel (c_srtgroep_id VARCHAR2)
IS
SELECT *
FROM bvb1_v_folder_structuur
WHERE parent1 = c_srtgroep_id AND name IS NOT NULL;
v_discipline_key INS_TAB_DISCIPLINE.INS_DISCIPLINE_KEY%TYPE;
v_srtgroep_key INS_SRTGROEP.INS_SRTGROEP_KEY%TYPE;
v_srtdeel_key INS_SRTDEEL.INS_SRTDEEL_KEY%TYPE;
v_aanduiding VARCHAR2 (200);
BEGIN
SELECT ins_discipline_key
INTO v_discipline_key
FROM ins_discipline
WHERE ins_discipline_omschrijving = 'AV';
FOR rec IN c_srtgroep
LOOP
BEGIN
SELECT ins_srtgroep_key
INTO v_srtgroep_key
FROM ins_srtgroep
WHERE ins_srtgroep_verwijder IS NULL AND ins_srtgroep_externnr = rec.id;
UPDATE ins_srtgroep
SET ins_srtgroep_omschrijving = rec.name
WHERE ins_srtgroep_key = v_srtgroep_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO ins_srtgroep (ins_discipline_key, ins_srtgroep_omschrijving, ins_srtgroep_externnr)
VALUES (v_discipline_key, rec.name, rec.id)
RETURNING ins_srtgroep_key
INTO v_srtgroep_key;
END;
FOR rec_d IN c_srtdeel (rec.id)
LOOP
BEGIN
DBMS_OUTPUT.put_line (rec_d.id || '- ' || rec_d.name);
SELECT ins_srtdeel_key
INTO v_srtdeel_key
FROM ins_srtdeel
WHERE ins_srtdeel_verwijder IS NULL AND ins_srtdeel_externnr = rec_d.id;
UPDATE ins_srtdeel
SET ins_srtdeel_omschrijving = REPLACE (rec_d.PATH, rec.name || CHR (47), ''),
ins_srtgroep_key = v_srtgroep_key
WHERE ins_srtdeel_key = v_srtdeel_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO ins_srtdeel (ins_srtgroep_key,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_srtdeel_externnr)
VALUES (v_srtgroep_key,
rec_d.id,
REPLACE (rec_d.PATH, rec.name || CHR (47), ''),
rec_d.id)
RETURNING ins_srtdeel_key
INTO v_srtdeel_key;
END;
END LOOP;
END LOOP;
END;
PROCEDURE RM_update_equipment
AS
CURSOR c IS SELECT * FROM bvb1_imp_equipment;
v_discipline_key INS_TAB_DISCIPLINE.INS_DISCIPLINE_KEY%TYPE;
v_srtgroep_key INS_SRTGROEP.INS_SRTGROEP_KEY%TYPE;
v_srtdeel_key INS_SRTDEEL.INS_SRTDEEL_KEY%TYPE;
v_deel_key INS_DEEL.INS_DEEL_KEY%TYPE;
v_kk_aanschafdatum INS_KENMERK.INS_KENMERK_KEY%TYPE;
v_kk_aanschafprijs INS_KENMERK.INS_KENMERK_KEY%TYPE;
v_kk_serienummer INS_KENMERK.INS_KENMERK_KEY%TYPE;
BEGIN
-- Eerst gaan we de kenmerk-keys opzoeken:
SELECT ins_kenmerk_key
INTO v_kk_aanschafdatum
FROM ins_kenmerk
WHERE ins_kenmerk_verwijder IS NULL
AND ins_kenmerk_code = 'AV_AANSCHAFDATUM';
SELECT ins_kenmerk_key
INTO v_kk_aanschafprijs
FROM ins_kenmerk
WHERE ins_kenmerk_verwijder IS NULL
AND ins_kenmerk_code = 'AV_AANSCHAFPRIJS';
SELECT ins_kenmerk_key
INTO v_kk_serienummer
FROM ins_kenmerk
WHERE ins_kenmerk_verwijder IS NULL
AND ins_kenmerk_code = 'AV_SERIENUMMER';
FOR rec IN c
LOOP
BEGIN
SELECT ins_srtdeel_key, ins_discipline_key
INTO v_srtdeel_key, v_discipline_key
FROM ins_srtdeel sd, ins_srtgroep sg
WHERE sd.ins_srtdeel_externnr = REPLACE (rec.folder, '/folders/')
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND ins_srtdeel_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.put_line ('Srtdeel niet gevonden: ' || rec.folder);
v_srtdeel_key := -1;
END;
IF v_srtdeel_key <> -1
THEN
BEGIN
SELECT ins_deel_key
INTO v_deel_key
FROM ins_deel
WHERE ins_deel_verwijder IS NULL AND ins_deel_externnr = rec.serial_id;
UPDATE ins_deel SET ins_srtdeel_key = v_srtdeel_key,
ins_deel_omschrijving = SUBSTR (rec.name, 1, 60 - LENGTH (rec.serial_id) - 4) || ' (' || rec.serial_id || ')',
ins_deel_opmerking = SUBSTR (rec.name, 1, 320 - LENGTH (rec.serial_displayname) - 4),
ins_deel_aanmaak = COALESCE (rec.serial_purchasedate, SYSDATE),
ins_discipline_key = v_discipline_key
WHERE ins_deel_key = v_deel_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
BEGIN
--dbms_output.put_line ( SUBSTR (rec.name, 1, 60 - LENGTH (rec.serial_id) - 4) || ' (' || rec.serial_id || ')');
INSERT INTO ins_deel (ins_srtdeel_key,
ins_alg_ruimte_key,
ins_alg_ruimte_type,
ins_deel_aantal,
ins_deel_omschrijving,
ins_deel_opmerking,
ins_deel_aanmaak,
ins_discipline_key,
ins_deel_externnr)
VALUES (
v_srtdeel_key,
404,
'R',
1,
SUBSTR (rec.name, 1, 60 - LENGTH (rec.serial_id) - 4) || ' (' || rec.serial_id || ')',
SUBSTR (rec.name, 1, 320 - LENGTH (rec.serial_displayname) - 4)
|| ' ('
|| rec.serial_displayname
|| ')',
COALESCE (rec.serial_purchasedate, SYSDATE),
v_discipline_key,
rec.serial_id);
END;
END;
-- update kenmerken
FLX.setflex('INS', v_kk_aanschafdatum, v_deel_key, TO_CHAR(rec.serial_purchasedate, 'dd-mm-yyyy'));
FLX.setflex('INS', v_kk_aanschafprijs, v_deel_key, rec.serial_purchase_costs);
FLX.setflex('INS', v_kk_serienummer, v_deel_key, rec.serial);
END IF;
END LOOP;
END;
END;
/
@@ -677,6 +856,68 @@ AS
OR mss.ins_srtinstallatie_niveau = 'G' AND mss.ins_srtinstallatie_key = isg.ins_srtgroep_key
OR mss.ins_srtinstallatie_niveau = 'D' AND mss.ins_srtinstallatie_key = isg.ins_discipline_key);
-- RentMan view om de folderstructuur uit RentMan te vertalen naar een boomstructuur.
CREATE OR REPLACE VIEW bvb1_v_folder_structuur
AS
SELECT 1 niveau,
id,
displayname,
name,
itemtype,
PATH,
NULL parent1,
NULL parent2,
NULL parent3
FROM bvb1_imp_folder
WHERE parent IS NULL AND itemtype = 'equipment'
UNION ALL
SELECT 2 niveau,
f2.id,
f2.displayname,
f2.name,
f2.itemtype,
f2.PATH,
REPLACE (f2.parent, '/folders/') parent1,
NULL parent2,
NULL parent3
FROM bvb1_imp_folder f1, bvb1_imp_folder f2
WHERE f1.parent IS NULL AND f1.itemtype = 'equipment' AND REPLACE (f2.parent, '/folders/') = f1.id
UNION ALL
SELECT 3 niveau,
f3.id,
f3.displayname,
f3.name,
f3.itemtype,
f3.PATH,
REPLACE (f2.parent, '/folders/') parent1,
REPLACE (f3.parent, '/folders/') parent2,
NULL parent3
FROM bvb1_imp_folder f1, bvb1_imp_folder f2, bvb1_imp_folder f3
WHERE f1.parent IS NULL
AND f2.itemtype = 'equipment'
AND REPLACE (f2.parent, '/folders/') = f1.id
AND REPLACE (f3.parent, '/folders/') = f2.id
UNION ALL
SELECT 4 niveau,
f4.id,
f4.displayname,
f4.name,
f4.itemtype,
f4.PATH,
REPLACE (f2.parent, '/folders/') parent1,
REPLACE (f3.parent, '/folders/') parent2,
REPLACE (f3.parent, '/folders/') parent3
FROM bvb1_imp_folder f1,
bvb1_imp_folder f2,
bvb1_imp_folder f3,
bvb1_imp_folder f4
WHERE f1.parent IS NULL
AND f4.itemtype = 'equipment'
AND REPLACE (f2.parent, '/folders/') = f1.id
AND REPLACE (f3.parent, '/folders/') = f2.id
AND REPLACE (f4.parent, '/folders/') = f3.id;
CREATE OR REPLACE PROCEDURE bvb1_daily
AS
-- accepteer de meldingen die aangemaakt zijn met de geplande acties. Anders komen ze niet in de kalender te staan.