138 lines
4.6 KiB
SQL
138 lines
4.6 KiB
SQL
-- Customer specific once-script voor WEND
|
|
|
|
-- $Id$
|
|
--
|
|
-- Oncescript om IT-Objecten uit de Topdesk-import uit te geven aan de personen (= uitleenregistratie)
|
|
|
|
DEFINE thisfile = 'WEND#67092.SQL'
|
|
DEFINE dbuser = '^WEND'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
PROMPT &fcltcusterr
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
DECLARE
|
|
v_errormsg VARCHAR (200);
|
|
v_errorhint VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (150);
|
|
currentversion fac_module.fac_module_version%TYPE;
|
|
v_aanduiding VARCHAR (1000);
|
|
v_count NUMBER;
|
|
|
|
v_prs_perslid_key NUMBER(10);
|
|
v_prs_perslid_naam VARCHAR (1000) ;
|
|
v_ins_srtdeel_key NUMBER(10);
|
|
v_ins_kenmerk_key NUMBER(10);
|
|
|
|
|
|
CURSOR c
|
|
IS
|
|
SELECT d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
TRIM (km.ins_kenmerkdeel_waarde) uitgegeven_aan, -- emailadres uit Topdesk
|
|
d.ins_alg_ruimte_key,
|
|
d.ins_alg_ruimte_type,
|
|
d.ins_alg_locatie_key,
|
|
d.ins_alg_ruimte_key_org,
|
|
d.ins_alg_ruimte_type_org
|
|
FROM ins_deel d, ins_kenmerkdeel km, ins_kenmerk k
|
|
WHERE d.ins_deel_key = km.ins_deel_key
|
|
AND km.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = 44 -- uitgegeven aan
|
|
AND d.ins_alg_ruimte_type = 'R'
|
|
-- voor TEST
|
|
-- AND d.ins_deel_key IN (749, 987, 221, 237)
|
|
;
|
|
|
|
|
|
BEGIN
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
BEGIN
|
|
|
|
-- Kunnen we persllid_key vinden?
|
|
SELECT MIN(prs_perslid_key)
|
|
INTO v_prs_perslid_key
|
|
FROM prs_perslid
|
|
WHERE UPPER(prs_perslid_email) = UPPER(rec.uitgegeven_aan) ;
|
|
|
|
IF v_prs_perslid_key IS NOT NULL THEN
|
|
|
|
-- Volledig naam ophalen
|
|
SELECT prs_perslid_naam_full
|
|
INTO v_prs_perslid_naam
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = v_prs_perslid_key ;
|
|
|
|
-- 1. In ins_deel de originele/oorspronkelijke plaatsgegevens van Object wegschrijven + Aan welke persoon object nu is uitgeleend
|
|
UPDATE ins_deel
|
|
SET ins_alg_ruimte_key_org = rec.ins_alg_ruimte_key,
|
|
ins_alg_ruimte_type_org = rec.ins_alg_ruimte_type,
|
|
ins_alg_ruimte_key = v_prs_perslid_key,
|
|
ins_alg_ruimte_type = 'P'
|
|
WHERE ins_deel_key = rec.ins_deel_key ;
|
|
|
|
-- 2. In ins_deel de locatie_key die bovenliggend is aan oorspronkelijke ins_alg_ruimte_key weer toevoegen
|
|
UPDATE ins_deel SET ins_alg_locatie_key = rec.ins_alg_locatie_key WHERE ins_deel_key = rec.ins_deel_key ;
|
|
|
|
-- 3. Kenmerken leegmaken - Bij uitleenregistratie worden eerst afhanelijk van setting bepaalde kenmerken leeggemaalt als je object terughaald/uitgeeft.
|
|
----- Voor dit oncescript is dit niet nodig
|
|
|
|
-- 4. Het kenmerkveld vullen 'uitgifte ivm dienstverband' (srtkenmerk_key = 22, op Objectsoort-niveau vastgelegd)
|
|
v_ins_kenmerk_key := NULL ;
|
|
|
|
SELECT ins_srtdeel_key
|
|
INTO v_ins_srtdeel_key
|
|
FROM ins_deel
|
|
WHERE ins_deel_key = rec.ins_deel_key;
|
|
|
|
SELECT ins_kenmerk_key
|
|
INTO v_ins_kenmerk_key
|
|
FROM ins_kenmerk
|
|
WHERE ins_kenmerk_niveau = 'S' AND ins_srtinstallatie_key = v_ins_srtdeel_key AND ins_srtkenmerk_key = 22 ;
|
|
|
|
-- Waarde keuzelijst 1 = uitgifte ivm dienstverband
|
|
IF v_ins_kenmerk_key IS NOT NULL THEN
|
|
INSERT INTO ins_kenmerkdeel(ins_deel_key,ins_kenmerk_key,ins_kenmerkdeel_waarde) VALUES (rec.ins_deel_key,v_ins_kenmerk_key,'1') ;
|
|
END IF;
|
|
|
|
-- 5. Logging op Object doen
|
|
v_aanduiding := 'Object ' || rec.ins_deel_omschrijving || ' is uitgegeven aan ' || v_prs_perslid_naam ;
|
|
BEGIN fac.trackaction('INSOUT', rec.ins_deel_key, 3, NULL, v_aanduiding); END; -- Facilitor is prs_perslid_key 3
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
BEGIN adm.systrackscriptId ('$Id$', 1); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|