122 lines
4.0 KiB
SQL
122 lines
4.0 KiB
SQL
-- Customer specific once-script VEBE.
|
|
--
|
|
-- (c) 2011 SG|facilitor bv
|
|
-- $Revision$
|
|
-- $Id$
|
|
--
|
|
-- Support: +31 53 4800700
|
|
|
|
SET ECHO ON
|
|
SPOOL vebe_convert_wagenpark
|
|
SET DEFINE OFF
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE vebe_convert_wagenparklinkauto
|
|
AS
|
|
|
|
BEGIN
|
|
|
|
-- Eerst alle LEASEcontracten die zijn geimporteerd, het ins_deel (= auto) eraan koppelen,
|
|
-- Dat doen we door CNT-kenmerk 'Kenteken-Conversie' (key 22) het ins_deel te zoeken en die aan het contract te koppelen.
|
|
|
|
INSERT INTO cnt_contract_object (cnt_contract_key, cnt_ins_srtdeel_key, cnt_ins_deel_key)
|
|
SELECT c.cnt_contract_key, d.ins_srtdeel_key, d.ins_deel_key
|
|
FROM cnt_contract c, cnt_kenmerkcontract kc, ins_deel d
|
|
WHERE c.ins_discipline_key = 21
|
|
AND kc.cnt_contract_key = c.cnt_contract_key
|
|
AND KC.CNT_KENMERK_KEY = 22
|
|
AND UPPER(D.INS_DEEL_OMSCHRIJVING) = UPPER(KC.CNT_KENMERKCONTRACT_WAARDE);
|
|
|
|
-- Hetzelfde voor alle GEBRUIKScontracten die zijn geimporteerd, het ins_deel (= auto) eraan koppelen,
|
|
INSERT INTO cnt_contract_object (cnt_contract_key, cnt_ins_srtdeel_key, cnt_ins_deel_key)
|
|
SELECT c.cnt_contract_key, d.ins_srtdeel_key, d.ins_deel_key
|
|
FROM cnt_contract c, cnt_kenmerkcontract kc, ins_deel d
|
|
WHERE c.ins_discipline_key = 22
|
|
AND kc.cnt_contract_key = c.cnt_contract_key
|
|
AND KC.CNT_KENMERK_KEY = 23
|
|
AND UPPER(D.INS_DEEL_OMSCHRIJVING) = UPPER(KC.CNT_KENMERKCONTRACT_WAARDE);
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE vebe_convert_wagenparkberijder
|
|
AS
|
|
-- Tenslotte gaan we de berijders nog registreren bij de GEBRUIKScontracten, dus alle GEBRUIKSCONTRACTEN (key 22) die nog geen berijder hebben (zodat deze conversie herhaaldelijk kan plaatsvinden)
|
|
CURSOR c1
|
|
IS
|
|
SELECT * FROM cnt_contract c
|
|
WHERE c.ins_discipline_key = 22
|
|
AND c.cnt_prs_perslid_key IS NULL;
|
|
|
|
v_prs_perslid_key NUMBER (10);
|
|
v_perslid_nr VARCHAR2 (100);
|
|
|
|
BEGIN
|
|
|
|
-- Tenslotte gaan we de berijders nog registreren bij de GEBRUIKScontracten
|
|
FOR rc IN c1
|
|
LOOP
|
|
|
|
SELECT MAX(CNT_KENMERKCONTRACT_WAARDE)
|
|
INTO v_perslid_nr
|
|
FROM cnt_kenmerkcontract kc
|
|
WHERE kc.cnt_contract_key = rc.cnt_contract_key
|
|
AND KC.CNT_KENMERK_KEY = 24;
|
|
|
|
IF v_perslid_nr IS NOT NULL
|
|
THEN
|
|
-- Er is een persoonsnummer bekend, die gaan we converteren in cnt_prs_perslid_key
|
|
|
|
|
|
SELECT MAX(p.prs_perslid_key)
|
|
INTO v_prs_perslid_key
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_nr = v_perslid_nr;
|
|
|
|
IF v_prs_perslid_key IS NOT NULL
|
|
THEN
|
|
-- En van dat persoonsnummer bestaat werkelijk een prs_perslid record,
|
|
-- Het bedrijf moet dan leeg worden gemaakt, anders gaat de contraint fout.
|
|
|
|
UPDATE cnt_contract c
|
|
SET cnt_prs_bedrijf_key = NULL,
|
|
cnt_prs_perslid_key = v_prs_perslid_key
|
|
WHERE c.cnt_contract_key = rc.cnt_contract_key;
|
|
ELSE
|
|
-- Er is geen persoon bekend met dat personeelsnummer, die willen we wel loggen
|
|
-- Dat doen we door bij het contract in het kenmerk 'Personeelsnr-Conversie' (key 24) een !!! ervoor te plaatsen
|
|
UPDATE cnt_kenmerkcontract kc
|
|
SET CNT_KENMERKCONTRACT_WAARDE = '!!!' || CNT_KENMERKCONTRACT_WAARDE
|
|
WHERE kc.cnt_contract_key = rc.cnt_contract_key
|
|
AND KC.CNT_KENMERK_KEY = 24;
|
|
END IF;
|
|
ELSE
|
|
-- Er is geen persoon bij de gebruiksovereenkomst geregistreerd, waarschijnlijk betreft het geen gebruiksovereenkomst en kan die handmatig verwijderd worden.
|
|
-- Dat willen we markeren door bij het contract in het kenmerk 'Personeelsnr-Conversie' (key 24) een @@@ ervoor te plaatsen
|
|
UPDATE cnt_kenmerkcontract kc
|
|
SET CNT_KENMERKCONTRACT_WAARDE = '@@@' || CNT_KENMERKCONTRACT_WAARDE
|
|
WHERE kc.cnt_contract_key = rc.cnt_contract_key
|
|
AND KC.CNT_KENMERK_KEY = 24;
|
|
END IF;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
BEGIN
|
|
vebe_convert_wagenparklinkauto ();
|
|
vebe_convert_wagenparkberijder ();
|
|
END;
|
|
/
|
|
|
|
DROP PROCEDURE vebe_convert_wagenparklinkauto;
|
|
DROP PROCEDURE vebe_convert_wagenparkberijder;
|
|
|
|
|
|
COMMIT:
|
|
|
|
|
|
SPOOL OFF
|
|
|
|
|