ALLI#23752: Import CYOD serienummers
svn path=/Customer/trunk/; revision=15536
This commit is contained in:
634
ALLI/alli.sql
634
ALLI/alli.sql
@@ -1,7 +1,7 @@
|
||||
-- Script containing customer specific configuration sql statements for ALLI
|
||||
-- (c) 2012 SG|facilitor bv
|
||||
-- $Revision$
|
||||
-- $Id$
|
||||
-- $Modtime: 28-06-12 12:15 $
|
||||
--
|
||||
-- Support: +31 53 4800700
|
||||
|
||||
@@ -1376,6 +1376,638 @@ END alli_update_prs;
|
||||
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
-- Koppeling CYOD serienummers registratie met Misco.
|
||||
|
||||
CREATE OR REPLACE VIEW ALLI_V_INS_KENMERKDOMEIN_BES (BES_BESTELLING_KEY, BES_BESTELLING_NR)
|
||||
AS
|
||||
SELECT BES_BESTELLING_KEY, to_char(BES_BESTELLING_KEY)
|
||||
FROM BES_BESTELLING;
|
||||
|
||||
|
||||
--select *
|
||||
--from bes_bestelopdr_item bo, bes_bestelling_item bi, bes_srtdeel sd
|
||||
--where bes_bestelopdr_key = (select bes_bestelopdr_key from bes_bestelopdr where bes_bestelopdr_id = '361/1')
|
||||
--and BI.BES_BESTELOPDR_ITEM_KEY = BO.BES_BESTELOPDR_ITEM_KEY
|
||||
--and bi.bes_srtdeel_key = sd.bes_srtdeel_key;
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE alli_import_cyod_serienummers (
|
||||
p_import_key IN NUMBER
|
||||
)
|
||||
IS
|
||||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||||
v_newline VARCHAR2 (1000); -- Input line
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
header_is_valid NUMBER := 0;
|
||||
v_ongeldig NUMBER (1);
|
||||
v_count_tot NUMBER (10);
|
||||
v_count_import NUMBER (10);
|
||||
v_count NUMBER;
|
||||
-- De importvelden:
|
||||
|
||||
v_bes_bestelopdr_id VARCHAR2 (256);
|
||||
v_bes_srtdeel_nr VARCHAR2 (256);
|
||||
v_serienummer VARCHAR2 (256);
|
||||
v_soort VARCHAR2 (256);
|
||||
v_datum VARCHAR2 (256);
|
||||
|
||||
|
||||
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
BEGIN
|
||||
DELETE FROM alli_imp_cyod_serienummers;
|
||||
|
||||
COMMIT;
|
||||
|
||||
v_count_tot := 0;
|
||||
v_count_import := 0;
|
||||
|
||||
FOR rec1 IN c1
|
||||
LOOP
|
||||
BEGIN
|
||||
v_newline := rec1.fac_imp_file_line;
|
||||
v_aanduiding := '';
|
||||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||||
v_ongeldig := 0;
|
||||
-- Lees alle veldwaarden
|
||||
|
||||
|
||||
-- v_bes_bestelopdr_id VARCHAR2 (256);
|
||||
-- v_bes_srtdeel_nr VARCHAR2 (256);
|
||||
-- v_serienummer VARCHAR2 (256);
|
||||
-- v_datum VARCHAR2 (256);
|
||||
|
||||
-- 01 - Bestelopdrachtnummer
|
||||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_bes_bestelopdr_id);
|
||||
|
||||
-- 02 - Artikelnummer
|
||||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_bes_srtdeel_nr);
|
||||
|
||||
-- 03 - Serienummer of IMEI nummer.
|
||||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_serienummer);
|
||||
|
||||
-- 04 - Soort object: Notebook (N) of Telefoon (T)
|
||||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_soort);
|
||||
|
||||
-- 05 - Verzenddatum cq. Aanschafdatum
|
||||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 5, v_datum);
|
||||
|
||||
|
||||
--
|
||||
v_aanduiding :=
|
||||
'['
|
||||
|| v_bes_bestelopdr_id
|
||||
|| '|'
|
||||
|| v_bes_srtdeel_nr
|
||||
|| '|'
|
||||
|| v_serienummer
|
||||
|| '|'
|
||||
|| v_soort
|
||||
|| '] ';
|
||||
|
||||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||||
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
IF UPPER (v_bes_bestelopdr_id) = 'BESTELOPDRACHTNR'
|
||||
AND UPPER (v_bes_srtdeel_nr) = 'ARTIKELNR'
|
||||
AND UPPER (v_serienummer) = 'SERIENR'
|
||||
AND UPPER (v_soort) = 'TYPE'
|
||||
AND UPPER (v_datum) = 'VERZENDDATUM'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
ELSE
|
||||
v_count_tot := v_count_tot + 1;
|
||||
-- Controleer alle veldwaarden
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldig bestelopdrachtnr';
|
||||
v_bes_bestelopdr_id := TRIM (v_bes_bestelopdr_id);
|
||||
|
||||
IF (v_bes_bestelopdr_id IS NOT NULL)
|
||||
THEN
|
||||
IF LENGTH (v_bes_bestelopdr_id) > 30
|
||||
THEN
|
||||
v_bes_bestelopdr_id := SUBSTR (v_bes_bestelopdr_id, 1, 30);
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Bestelopdrachtnr te lang', 'Nummer wordt afgebroken tot [' || v_bes_bestelopdr_id || ']' );
|
||||
END IF;
|
||||
ELSE
|
||||
v_ongeldig := 1;
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Ongeldig artikelnr';
|
||||
v_bes_srtdeel_nr := TRIM (v_bes_srtdeel_nr);
|
||||
|
||||
IF (v_bes_srtdeel_nr IS NOT NULL)
|
||||
THEN
|
||||
IF LENGTH (v_bes_srtdeel_nr) > 32
|
||||
THEN
|
||||
v_bes_srtdeel_nr := SUBSTR (v_bes_srtdeel_nr, 1, 32);
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Artikelnummer te lang', 'Nummer wordt afgebroken tot [' || v_bes_srtdeel_nr || ']' );
|
||||
END IF;
|
||||
ELSE
|
||||
v_ongeldig := 1;
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Ongeldig serienummer';
|
||||
v_serienummer := TRIM (v_serienummer);
|
||||
IF (v_serienummer IS NOT NULL)
|
||||
THEN
|
||||
IF LENGTH (v_serienummer) > 50
|
||||
THEN
|
||||
v_serienummer := SUBSTR (v_serienummer, 1, 50);
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Serienummer te lang', 'Nummer wordt afgebroken tot [' || v_serienummer || ']' );
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Ongeldig type/soort';
|
||||
v_soort := TRIM (v_soort);
|
||||
IF (v_soort IS NOT NULL)
|
||||
THEN
|
||||
IF LENGTH (v_soort) > 1
|
||||
THEN
|
||||
v_soort := SUBSTR (v_soort, 1, 1);
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Type/soort te lang', 'Type/soort wordt afgebroken tot [' || v_soort || ']' );
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
|
||||
v_errorhint := 'Ongeldige verzenddatum';
|
||||
v_datum := TRIM (v_datum);
|
||||
IF (v_datum IS NOT NULL)
|
||||
THEN
|
||||
IF LENGTH (v_datum) > 10
|
||||
THEN
|
||||
v_datum := SUBSTR (v_datum, 1, 10);
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Verzenddatum te lang', 'Datum wordt afgebroken tot [' || v_datum || ']' );
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Insert geformatteerde import record
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
BEGIN
|
||||
v_errorhint :=
|
||||
'Fout bij toevoegen regel aan importtabel alli_imp_cyod_serienummers';
|
||||
|
||||
INSERT INTO alli_imp_cyod_serienummers (bes_bestelopdr_id, bes_srtdeel_nr, serienummer, soort, datum)
|
||||
VALUES (v_bes_bestelopdr_id, v_bes_srtdeel_nr, v_serienummer, v_soort, v_datum);
|
||||
|
||||
COMMIT;
|
||||
v_count_import := v_count_import + 1;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
v_errorhint
|
||||
|| ' ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog
|
||||
(p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Ingelezen regel kan niet worden weggeschreven!'
|
||||
);
|
||||
COMMIT;
|
||||
END;
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
'Ongeldig importbestand',
|
||||
'Geen header of header niet volgens specificatie!'
|
||||
);
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key,
|
||||
'S',
|
||||
'CYOD serienummers: aantal ingelezen regels: '
|
||||
|| TO_CHAR (v_count_tot),
|
||||
''
|
||||
);
|
||||
END IF;
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
v_errorhint
|
||||
);
|
||||
COMMIT;
|
||||
END alli_import_cyod_serienummers;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE alli_update_cyod_serienummers (
|
||||
p_import_key IN NUMBER
|
||||
)
|
||||
IS
|
||||
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_count_tot NUMBER (10);
|
||||
v_count_error NUMBER (10);
|
||||
v_count NUMBER (10);
|
||||
|
||||
v_aantal NUMBER (10);
|
||||
|
||||
v_bes_bestelling_key NUMBER (10);
|
||||
v_prs_perslid_key NUMBER (10);
|
||||
v_bes_srtgroep_key NUMBER (10);
|
||||
|
||||
c_ins_srtgroep_key_temp NUMBER (10) := 1;
|
||||
c_ins_kenmerk_key_temp NUMBER (10) := 1;
|
||||
|
||||
l_ins_srtdeel_key NUMBER (10);
|
||||
l_ins_deel_key NUMBER (10);
|
||||
l_code_notebook_telefoon VARCHAR2 (100);
|
||||
|
||||
|
||||
c_ins_srtdeel_key_telefoon NUMBER (10) := 9201;
|
||||
c_ins_srtdeel_key_notebook NUMBER (10) := 9202;
|
||||
|
||||
c_notebook_bestelling_key NUMBER (10) := 1;
|
||||
c_notebook_artikel_key NUMBER (10) := 2;
|
||||
c_notebook_serienr_key NUMBER (10) := 3;
|
||||
c_notebook_datum_key NUMBER (10) := 4;
|
||||
|
||||
c_mobiel_bestelling_key NUMBER (10) := 5;
|
||||
c_mobiel_artikel_key NUMBER (10) := 6;
|
||||
c_mobiel_serienr_key NUMBER (10) := 7;
|
||||
c_mobiel_datum_key NUMBER (10) := 8;
|
||||
|
||||
|
||||
|
||||
-- Alle ingelezen CYOD artikelen met serienummers
|
||||
CURSOR c_cyod_artikelen
|
||||
IS
|
||||
SELECT *
|
||||
FROM alli_imp_cyod_serienummers;
|
||||
|
||||
|
||||
BEGIN
|
||||
v_count_tot := 0;
|
||||
v_count_error := 0;
|
||||
|
||||
|
||||
v_aanduiding := '';
|
||||
|
||||
|
||||
-- Alle artikelen verwerken...
|
||||
FOR rec_cyod IN c_cyod_artikelen
|
||||
LOOP
|
||||
BEGIN
|
||||
v_count_tot := v_count_tot + 1;
|
||||
|
||||
v_aanduiding :=
|
||||
'['
|
||||
|| rec_cyod.bes_bestelopdr_id
|
||||
|| '|'
|
||||
|| rec_cyod.bes_srtdeel_nr
|
||||
|| '|'
|
||||
|| rec_cyod.serienummer
|
||||
|| '|'
|
||||
|| rec_cyod.soort
|
||||
|| '|'
|
||||
|| rec_cyod.datum
|
||||
|| '] ';
|
||||
|
||||
v_errorhint := 'Fout bij bepalen combi bestelopdracht en artikelnummer';
|
||||
|
||||
-- Op zoek naar:
|
||||
-- 1) de bestelopdracht volgens opdrachtnr: rec_cyod.bes_bestelopdr_id
|
||||
-- 2) het artikel dat in die opdracht zit volgens artikelnr: rec_cyod.bes_srtdeel_nr
|
||||
-- We vinden dan:
|
||||
-- 1) De bestellingaanvraag (bes_bestelling_key)
|
||||
-- 2) De besteller (prs_perslid_key)
|
||||
-- 3) De soortgroep (bes_srtgroep_key): notebook of telefoon (indien een andere, dan maken we geen serienummer erbij).
|
||||
|
||||
|
||||
SELECT b.bes_bestelling_key, b.prs_perslid_key, sg.bes_srtgroep_key
|
||||
INTO v_bes_bestelling_key, v_prs_perslid_key, v_bes_srtgroep_key
|
||||
FROM bes_bestelling b, bes_bestelopdr bo, bes_bestelopdr_item boi, bes_bestelling_item bi, bes_srtdeel sd, bes_srtgroep sg
|
||||
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
||||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||||
AND BI.BES_BESTELOPDR_ITEM_KEY = BOI.BES_BESTELOPDR_ITEM_KEY
|
||||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||||
AND bo.bes_bestelopdr_id = rec_cyod.bes_bestelopdr_id
|
||||
AND sd.bes_srtdeel_nr = rec_cyod.bes_srtdeel_nr ;
|
||||
|
||||
|
||||
-- Hier komt een cruciaal stuk die bepaalt of het artikel een N(notebook) of T(telefoon is).
|
||||
-- Mogelijk wordt dat in de XML door Misco meegestuurd, en anders bepalen wie die adhv de groep.
|
||||
-- Nu doen we ff een simpele check op groep-key: indien 1623 dan is ie van de telefoon-groep, dus een telefoon.
|
||||
|
||||
l_code_notebook_telefoon := NULL;
|
||||
l_code_notebook_telefoon := NULL;
|
||||
|
||||
v_errorhint := 'Fout bij bepalen soort object';
|
||||
IF rec_cyod.soort = 'T'
|
||||
THEN
|
||||
-- Ik ben een telefoon, bepaal een nieuwe default naam/code voor het object
|
||||
l_ins_srtdeel_key := c_ins_srtdeel_key_telefoon;
|
||||
ELSE
|
||||
IF rec_cyod.soort = 'N'
|
||||
THEN
|
||||
-- Ik ben een notebook, bepaal een nieuwe default naam/code voor het object
|
||||
l_ins_srtdeel_key := c_ins_srtdeel_key_notebook;
|
||||
ELSE
|
||||
l_ins_srtdeel_key := NULL;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
|
||||
IF l_ins_srtdeel_key IS NOT NULL
|
||||
THEN
|
||||
-- Eerst ff kijken of persoon het object al heeft, waarbij serienummer/IMEI nummer dezelfde is.
|
||||
-- Dan namelijk NIET toevoegen, anders wordt het object dubbel geregistreerd.
|
||||
-- De aanschafdatum mag dan wel/hooguit worden aangepast, maar dat doen we maar even niet. We gaan ervan uit dat er eenmalig een aanlevering van goede gegevens plaatsvindt.
|
||||
|
||||
SELECT count(*)
|
||||
INTO v_aantal
|
||||
FROM ins_deel d, ins_kenmerkdeel k
|
||||
WHERE ins_deel_module = 'INS'
|
||||
AND ins_srtdeel_key = l_ins_srtdeel_key
|
||||
AND ins_alg_ruimte_key = v_prs_perslid_key
|
||||
AND ins_alg_ruimte_type = 'P'
|
||||
AND d.ins_deel_key=k.ins_deel_key
|
||||
AND (ins_kenmerk_key = c_notebook_serienr_key OR ins_kenmerk_key = c_mobiel_serienr_key)
|
||||
AND ins_kenmerkdeel_waarde = rec_cyod.serienummer;
|
||||
|
||||
|
||||
IF v_aantal = 0
|
||||
THEN
|
||||
-- Persoon heeft het object met dat serienummer nog niet --> DUS TOEVOEGEN
|
||||
|
||||
|
||||
SELECT ins.get_description('LPN_INS_DEEL',NULL, ins_srtdeel_code_upper, l_ins_srtdeel_key)
|
||||
INTO l_code_notebook_telefoon
|
||||
FROM ins_srtdeel
|
||||
WHERE ins_srtdeel_key= l_ins_srtdeel_key;
|
||||
|
||||
|
||||
-- Insert van persoonsgebonden object.
|
||||
v_errorhint := 'Fout bij toevoegen van nieuw object [' || l_code_notebook_telefoon|| ']';
|
||||
INSERT INTO ins_deel (ins_deel_module, ins_srtdeel_key, ins_alg_ruimte_key, ins_alg_ruimte_type, ins_deel_omschrijving)
|
||||
VALUES ('INS', l_ins_srtdeel_key, v_prs_perslid_key, 'P', l_code_notebook_telefoon);
|
||||
|
||||
v_errorhint := 'Object is toegevoegd';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'I',
|
||||
v_aanduiding || 'Objectnaam ' || l_code_notebook_telefoon || ' is toegevoegd',
|
||||
v_errorhint
|
||||
);
|
||||
|
||||
SELECT MAX(ins_deel_key) INTO l_ins_deel_key FROM ins_deel;
|
||||
|
||||
IF l_ins_srtdeel_key = c_ins_srtdeel_key_notebook
|
||||
THEN
|
||||
-- Ik ben een notebook, vul de kenmerken
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk bestelnummer [' || v_bes_bestelling_key || '] bij object [' || l_code_notebook_telefoon || ']';
|
||||
INSERT INTO ins_kenmerkdeel (ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde)
|
||||
SELECT l_ins_deel_key, c_notebook_bestelling_key, v_bes_bestelling_key FROM DUAL;
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk artikelnummer [' || rec_cyod.bes_srtdeel_nr || '] bij object [' || l_code_notebook_telefoon || ']';
|
||||
INSERT INTO ins_kenmerkdeel (ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde)
|
||||
SELECT l_ins_deel_key, c_notebook_artikel_key, rec_cyod.bes_srtdeel_nr FROM DUAL;
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk serienummer [' || rec_cyod.serienummer || '] bij object [' || l_code_notebook_telefoon || ']';
|
||||
INSERT INTO ins_kenmerkdeel (ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde)
|
||||
SELECT l_ins_deel_key, c_notebook_serienr_key, rec_cyod.serienummer FROM DUAL;
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk aanschafdatum [' || rec_cyod.datum || '] bij object [' || l_code_notebook_telefoon || ']';
|
||||
INSERT INTO ins_kenmerkdeel (ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde)
|
||||
SELECT l_ins_deel_key, c_notebook_datum_key, TO_CHAR(TO_DATE(rec_cyod.datum,'YYYYMMDD'),'DD-MM-YYYY') FROM DUAL;
|
||||
|
||||
ELSE
|
||||
IF l_ins_srtdeel_key = c_ins_srtdeel_key_telefoon
|
||||
THEN
|
||||
-- Ik ben een telefoon, vul de kenmerken
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk bestelnummer [' || v_bes_bestelling_key || '] bij object [' || l_code_notebook_telefoon || ']';
|
||||
INSERT INTO ins_kenmerkdeel (ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde)
|
||||
SELECT l_ins_deel_key, c_mobiel_bestelling_key, v_bes_bestelling_key FROM DUAL;
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk artikelnummer [' || rec_cyod.bes_srtdeel_nr || '] bij object [' || l_code_notebook_telefoon || ']';
|
||||
INSERT INTO ins_kenmerkdeel (ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde)
|
||||
SELECT l_ins_deel_key, c_mobiel_artikel_key, rec_cyod.bes_srtdeel_nr FROM DUAL;
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk serienummer [' || rec_cyod.serienummer || '] bij object [' || l_code_notebook_telefoon || ']';
|
||||
INSERT INTO ins_kenmerkdeel (ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde)
|
||||
SELECT l_ins_deel_key, c_mobiel_serienr_key, rec_cyod.serienummer FROM DUAL;
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk aanschafdatum [' || rec_cyod.datum || '] bij object [' || l_code_notebook_telefoon || ']';
|
||||
INSERT INTO ins_kenmerkdeel (ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde)
|
||||
SELECT l_ins_deel_key, c_mobiel_datum_key, TO_CHAR(TO_DATE(rec_cyod.datum,'YYYYMMDD'),'DD-MM-YYYY') FROM DUAL;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
|
||||
|
||||
ELSE
|
||||
-- Persoon heeft het object met dat serienummer al en zou een dubbel voorkomen gaan worden --> DUS NIET TOEVOEGEN
|
||||
v_count_error := v_count_error + 1;
|
||||
v_errorhint := 'Fout bij toevoegen van object';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Object met serienummers is al bij persoon geregistreerd: object wordt niet toegevoegd',
|
||||
v_errorhint
|
||||
);
|
||||
END IF;
|
||||
ELSE
|
||||
-- Type/Soort is geen N en geen T, dus onbekend
|
||||
v_count_error := v_count_error + 1;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Soort object is onbekend: moet N(otebook) of T(elefoon) zijn',
|
||||
v_errorhint
|
||||
);
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
v_count_error := v_count_error + 1;
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
'OTHERS (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
v_errorhint
|
||||
);
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
|
||||
fac.imp_writelog (p_import_key,
|
||||
'S',
|
||||
'CYOD Serienummers: verwerkte regels zonder foutmelding: '
|
||||
|| TO_CHAR (v_count_tot - v_count_error),
|
||||
''
|
||||
);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'S',
|
||||
'CYOD Serienummers: verwerkte regels met foutmelding: '
|
||||
|| TO_CHAR (v_count_error),
|
||||
''
|
||||
);
|
||||
COMMIT;
|
||||
|
||||
|
||||
|
||||
END alli_update_cyod_serienummers;
|
||||
/
|
||||
|
||||
|
||||
------ TESTAREA TESTAREA TESTAREA TESTAREA TESTAREA TESTAREA TESTAREA ----------------
|
||||
|
||||
CREATE OR REPLACE VIEW alli_v_visitekaartje (prs_perslid_key,
|
||||
naam,
|
||||
functie,
|
||||
gebouwcode,
|
||||
adres,
|
||||
postcode,
|
||||
plaats,
|
||||
postadres,
|
||||
postpostcode,
|
||||
postplaats,
|
||||
telefoon1,
|
||||
telefoon2,
|
||||
mobiel1,
|
||||
mobiel2,
|
||||
email
|
||||
)
|
||||
AS
|
||||
SELECT p.prs_perslid_key,
|
||||
DECODE (COALESCE (RTRIM (p.prs_perslid_titel), ''),
|
||||
'', '',
|
||||
'(' || LOWER (p.prs_perslid_titel) || ') ')
|
||||
|| DECODE (COALESCE (p.prs_perslid_voornaam, ''),
|
||||
'', '',
|
||||
p.prs_perslid_voornaam || ' ')
|
||||
|| DECODE (COALESCE (p.prs_perslid_tussenvoegsel, ''),
|
||||
'', '',
|
||||
p.prs_perslid_tussenvoegsel || ' ')
|
||||
|| prs_perslid_naam
|
||||
naam,
|
||||
prs_srtperslid_omschrijving functie,
|
||||
pgl.alg_gebouw_code,
|
||||
l.alg_locatie_adres adres,
|
||||
l.alg_locatie_postcode postcode,
|
||||
l.alg_locatie_plaats plaats,
|
||||
l.alg_locatie_post_adres postadres,
|
||||
l.alg_locatie_post_postcode postpostcode,
|
||||
l.alg_locatie_post_plaats postplaats,
|
||||
TRIM( DECODE (SUBSTR (p.prs_perslid_telefoonnr, 1, 1),
|
||||
'(', SUBSTR (p.prs_perslid_telefoonnr, 2,
|
||||
INSTR (p.prs_perslid_telefoonnr, ')') - 2),
|
||||
SUBSTR (p.prs_perslid_telefoonnr, 1,
|
||||
INSTR (p.prs_perslid_telefoonnr, '-') - 1)
|
||||
)
|
||||
)
|
||||
telefoon1,
|
||||
TRIM( DECODE (SUBSTR (p.prs_perslid_telefoonnr, 1, 1),
|
||||
'(', SUBSTR (p.prs_perslid_telefoonnr,
|
||||
INSTR (p.prs_perslid_telefoonnr, ')') + 1),
|
||||
SUBSTR (p.prs_perslid_telefoonnr,
|
||||
INSTR (p.prs_perslid_telefoonnr, '-') + 1)
|
||||
)
|
||||
)
|
||||
telefoon2,
|
||||
TRIM( DECODE (SUBSTR (p.prs_perslid_mobiel, 1, 1),
|
||||
'(', SUBSTR (p.prs_perslid_mobiel, 2,
|
||||
INSTR (p.prs_perslid_mobiel, ')') - 2),
|
||||
SUBSTR (p.prs_perslid_mobiel, 1,
|
||||
INSTR (p.prs_perslid_mobiel, '-') - 1)
|
||||
)
|
||||
)
|
||||
mobiel1,
|
||||
TRIM( DECODE (SUBSTR (p.prs_perslid_mobiel, 1, 1),
|
||||
'(', SUBSTR (p.prs_perslid_mobiel,
|
||||
INSTR (p.prs_perslid_mobiel, ')') + 1),
|
||||
SUBSTR (p.prs_perslid_mobiel,
|
||||
INSTR (p.prs_perslid_mobiel, '-') + 1)
|
||||
)
|
||||
)
|
||||
mobiel2,
|
||||
p.prs_perslid_email email
|
||||
FROM prs_perslid p,
|
||||
prs_srtperslid sp,
|
||||
alg_locatie l,
|
||||
(SELECT alg_locatie_key,
|
||||
g.alg_gebouw_key,
|
||||
g.alg_gebouw_code,
|
||||
prs_perslid_key
|
||||
FROM (SELECT prs_perslid_key,
|
||||
(SELECT MAX (alg_ruimte_key)
|
||||
FROM prs_v_perslidwerkplek_gegevens pwg
|
||||
WHERE pwg.prs_perslid_key = pb.prs_perslid_key
|
||||
AND pwg.prs_perslidwerkplek_bezetting =
|
||||
pb.prs_perslidwerkplek_bezetting)
|
||||
alg_ruimte_key
|
||||
FROM ( SELECT prs_perslid_key,
|
||||
MAX (prs_perslidwerkplek_bezetting)
|
||||
prs_perslidwerkplek_bezetting
|
||||
FROM prs_perslidwerkplek pw, prs_werkplek wp
|
||||
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
|
||||
AND wp.prs_werkplek_virtueel = 0
|
||||
GROUP BY prs_perslid_key) pb) pr,
|
||||
alg_gebouw g,
|
||||
alg_verdieping v,
|
||||
alg_ruimte r
|
||||
WHERE pr.alg_ruimte_key = r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND v.alg_gebouw_key = g.alg_gebouw_key) pgl
|
||||
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||||
AND p.prs_perslid_key = pgl.prs_perslid_key(+)
|
||||
AND pgl.alg_locatie_key = l.alg_locatie_key(+);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BEGIN adm.systrackscript('$Workfile: alli.sql $', '$Revision$', 0); END;
|
||||
|
||||
Reference in New Issue
Block a user