SINN#82298 -- Implementatie MJOB - Import objectaken - migratie OPrognose naar Facilitor op productie
svn path=/Customer/; revision=66435
This commit is contained in:
194
onces/SINN/SINN#82298_objecttaken_oprognose.sql
Normal file
194
onces/SINN/SINN#82298_objecttaken_oprognose.sql
Normal file
@@ -0,0 +1,194 @@
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
-- Korte beschrijving wat het script doet
|
||||
---- De objecttaken uit OPrognose worden geimporteerd
|
||||
---- Levert tevens een restlijst op van dubbele-taken die men handmatig moet toevoegen aan facilitor
|
||||
|
||||
--
|
||||
DEFINE thisfile = 'SINN#82298_objecttaken_oprognose.sql'
|
||||
DEFINE dbuser = 'SINN'
|
||||
|
||||
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 (200);
|
||||
v_count NUMBER;
|
||||
v_teller_verwerkt NUMBER := 0 ;
|
||||
p_import_key NUMBER;
|
||||
-- importvelden
|
||||
v_ins_deel_key NUMBER;
|
||||
v_ins_srtcontrole_key NUMBER;
|
||||
v_teller_xcptaak NUMBER;
|
||||
|
||||
-- Alle records die we willen meenemen, gaan we verder langs om aan te vullen en te kijken of res overgezet kan worden..
|
||||
CURSOR C
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_csv
|
||||
WHERE fac_import_key = (SELECT max(fac_import_key) FROM fac_import WHERE fac_import_app_key = 61 AND fac_import_datum_verwerkt IS NULL) -- GENREICCSV - FIP: Generieke CSV import
|
||||
AND fac_imp_csv_index > 1
|
||||
-- TEST
|
||||
-- AND fac_imp_csv_index IN (47)
|
||||
ORDER BY fac_imp_csv_index;
|
||||
|
||||
BEGIN
|
||||
|
||||
SELECT MAX (fac_import_key)
|
||||
INTO p_import_key
|
||||
FROM fac_import
|
||||
WHERE fac_import_app_key = 61 AND fac_import_datum_verwerkt IS NULL ;
|
||||
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
-- Starten met aanvullen records....
|
||||
|
||||
v_aanduiding := 'Record ' || rec.fac_imp_csv_key || ' - ' ;
|
||||
v_errorhint := 'Records in fac_imp_csv aanvullen';
|
||||
|
||||
-- 1. ins_deel_key erbij zoeken...
|
||||
SELECT max(d.ins_deel_key)
|
||||
INTO v_ins_deel_key
|
||||
FROM ins_deel d
|
||||
WHERE ins_deel_upper = UPPER(rec.fac_imp_csv_col01) ;
|
||||
|
||||
UPDATE fac_imp_csv
|
||||
SET fac_imp_csv_col11 = v_ins_deel_key
|
||||
WHERE fac_imp_csv_key = rec.fac_imp_csv_key ;
|
||||
COMMIT;
|
||||
|
||||
-- 2. ins_srtcontrole_key erbij zoeken
|
||||
SELECT max(sc.ins_srtcontrole_key)
|
||||
INTO v_ins_srtcontrole_key
|
||||
FROM ins_srtcontrole sc
|
||||
WHERE UPPER(sc.ins_srtcontrole_omschrijving) = UPPER(rec.fac_imp_csv_col03) ;
|
||||
|
||||
UPDATE fac_imp_csv
|
||||
SET fac_imp_csv_col12 = v_ins_srtcontrole_key
|
||||
WHERE fac_imp_csv_key = rec.fac_imp_csv_key ;
|
||||
COMMIT;
|
||||
|
||||
-- Objecttaak (xcp-record) toevoegen
|
||||
IF v_ins_deel_key IS NOT NULL AND v_ins_srtcontrole_key IS NOT NULL
|
||||
THEN
|
||||
|
||||
-- eerst checken of dezelfde taak al onder hetzelfde gebouwobject is aangemaakt
|
||||
----- In oPrognose zijn soms taken dubbel op element omdat men zaken gesplits heeft op ruimte (trap 1 vervangen in ruimte x + trap 2 t/m 3 vervangen in andere ruimtes)
|
||||
|
||||
SELECT COUNT(*)
|
||||
INTO v_teller_xcptaak
|
||||
FROM ins_srtcontroledl_xcp
|
||||
WHERE ins_deel_key = v_ins_deel_key AND ins_srtcontrole_key = v_ins_srtcontrole_key ;
|
||||
|
||||
IF v_teller_xcptaak > 0
|
||||
THEN
|
||||
-- vullen fac_imp_csv zodat we dit na de migratie als naslagwerk kunnen hanteren om de ontbrekende taken nog handmatig toe te voegen aan SINN-facilitor
|
||||
|
||||
UPDATE fac_imp_csv
|
||||
SET fac_imp_csv_col13 = 'dubbele taak - record niet aangemaakt'
|
||||
WHERE fac_imp_csv_key = rec.fac_imp_csv_key ;
|
||||
COMMIT;
|
||||
|
||||
END IF ;
|
||||
|
||||
IF v_teller_xcptaak = 0
|
||||
THEN
|
||||
|
||||
v_teller_verwerkt := v_teller_verwerkt + 1 ;
|
||||
|
||||
-- INSERT OBJECTTAAK
|
||||
INSERT INTO ins_srtcontroledl_xcp (
|
||||
ins_deel_key,
|
||||
ins_srtcontrole_key,
|
||||
ins_srtcontroledl_xcp_eenheid,
|
||||
ins_srtcontroledl_xcp_periode,
|
||||
prs_kostenplaats_key,
|
||||
ins_srtcontroledl_xcp_bits,
|
||||
ins_srtcontroledl_xcp_uren,
|
||||
ins_srtcontroledl_xcp_perc,
|
||||
ins_srtcontroledl_xcp_groep,
|
||||
ins_srtcontroledl_xcp_opmerk,
|
||||
ins_srtcontroledl_xcp_startdat,
|
||||
ins_srtcontroledl_xcp_eind,
|
||||
ins_srtcontroledl_xcp_aantal,
|
||||
ins_srtcontroledl_xcp_aanteh,
|
||||
ins_srtcontroledl_xcp_kosten,
|
||||
ins_srtcontroledl_xcp_kosten2,
|
||||
ins_srtcontroledl_xcp_kosten3,
|
||||
ins_srtcontroledl_xcp_materia)
|
||||
VALUES (
|
||||
v_ins_deel_key,
|
||||
v_ins_srtcontrole_key,
|
||||
NULL,
|
||||
fac.safe_to_number(rec.fac_imp_csv_col07),
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
rec.fac_imp_csv_col08, -- 'Groot onderhoud',
|
||||
rec.fac_imp_csv_col02, --'hier nog extra opmerking bij objecttaak',
|
||||
TO_DATE (rec.fac_imp_csv_col09, 'DD-MM-YYYY HH24:MI'),
|
||||
NULL,
|
||||
fac.safe_to_number(replace(rec.fac_imp_csv_col04,',','.')), -- aantal
|
||||
rec.fac_imp_csv_col05, -- 'st',
|
||||
fac.safe_to_number(replace(replace(rec.fac_imp_csv_col06,'.',''),',','.')) -- kosten - eerst scheidings-1000-tal-teken verwijderen en dan decimaal komma vervangen door punt anders wordt het niet als number herkend..!!
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
-- LOGGING OP OBJECT
|
||||
BEGIN fac.trackaction('#INSUPD', v_ins_deel_key, 3, NULL, rec.fac_imp_csv_col01 || ' is gewijzigd' || CHR(13) || CHR(10) || 'Taak ' || rec.fac_imp_csv_col03 || ' toegevoegd vanuit OPrognose-migratie.'); END;
|
||||
|
||||
END IF;
|
||||
|
||||
END IF;
|
||||
|
||||
|
||||
END;
|
||||
|
||||
END LOOP;
|
||||
|
||||
-- kunnen/moeten we buiten de loop om nog zaken doen?
|
||||
-- eventueel logging wegschrijven op import generic_csv
|
||||
fac.imp_writelog (p_import_key,
|
||||
'I',
|
||||
'Totaal aantal verwerkte records: ' || TO_CHAR(v_teller_verwerkt),
|
||||
'');
|
||||
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user