VEBE#35792: wagenparkbeheer

svn path=/Customer/; revision=28689
This commit is contained in:
Marcel Bourseau
2016-03-30 15:00:20 +00:00
parent 15c6bae303
commit 0bda9e470b
2 changed files with 245 additions and 0 deletions

View File

@@ -21,6 +21,130 @@ INSERT INTO fac_import_app
WHERE fac_functie_code = 'WEB_PRSSYS';
-- CUST RAPPORT:
CREATE OR REPLACE VIEW vebe_cnt_lease_en_gebruiks_ovk
AS SELECT * FROM DUAL;
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_autorefresh
)
SELECT 'Leaseovereenkomsten',
'vebe_cnt_lease_en_gebruiks_ovk',
0,
0,
0,
'Overzichtsrapport van leasecontracten en gebruiksovereenkomsten van leaseauto''s',
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_USER01';
CREATE OR REPLACE VIEW vebe_rap_wagenpark
AS SELECT * FROM DUAL;
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_autorefresh
)
SELECT 'UDR-Basisrapport wagenpark',
'vebe_rap_wagenpark',
0,
0,
0,
'Basisrapport van leasecontracten en gebruiksovereenkomsten van leaseauto''s',
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_USER01';
-- UPDATE fac_usrrap_cols SET fac_usrrap_cols_visible = 'H'
-- WHERE fac_usrrap_key IN (SELECT fac_usrrap_key FROM fac_usrrap WHERE fac_usrrap_view_name = 'vebe_cnt_lease_en_gebruiks_ovk');
-- CUST01 notificatie: de verantwoordelijke manager prs_perslid_key_eig krijgt een notificatie per mail dat een leasecontract in rappel zit,
-- met de mogelijkheid om een nieuwe aanvraag leaseauto te doen (via klik hier in de CNT bon).
-- Dit is van de soort 'rapport' omdat we via een usrrap allerlei gegevens (over meerdere contracten) wille tonen.
INSERT INTO fac_srtnotificatie (fac_srtnotificatie_code, fac_srtnotificatie_mode, fac_srtnotificatie_oms, fac_srtnotificatie_groep, fac_srtnotificatie_xmlnode, fac_srtnotificatie_delay)
VALUES ('CUST01',2, 'Berichtgeving aflopen van leaseovereenkomst ', 0, 'rapport', 10);
-- CUST02 willen we gebruiken om bij contract te tracken dat mail is gestuurd. Verder zorgt dit er ook voor dat 1x de notificatie wodt verstuurd.
INSERT INTO fac_srtnotificatie (fac_srtnotificatie_code, fac_srtnotificatie_mode, fac_srtnotificatie_oms, fac_srtnotificatie_groep, fac_srtnotificatie_xmlnode, fac_srtnotificatie_delay)
VALUES ('CUST02',0, 'Berichtgeving aflopen van leaseovereenkomst ', 0, 'contract', 10);
INSERT INTO fac_export_app
(fac_export_app_code, fac_export_app_flags, fac_export_app_oms, fac_export_app_timestamp,
fac_functie_key, fac_export_app_prefix,
fac_export_app_folder, fac_export_app_file_prefix, fac_export_app_postfix, fac_export_app_log_postfix)
SELECT 'NOTI_WAGENPARK', 0, 'Export/notify contracen leaseauto''s', 'yyyymmdd_HHMM',
fac_functie_key, 'VEBE',
'../export/', 'vebe_noti_wagenpark_', '.csv', '.log'
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSSYS';
-- CUST03 notificatie: de melder van een melding met een AFGEMELDE GUNNINGSOpdracht krijgt een mail met 2 links:
-- a) LINK 1: naar opdracht zodat de bijlage bij de opdracht kan downloaden/openen, printen en laten ondertekenen
-- b) LINK 2: Nieuwe melding 'Stuur getekende leaseovk' zodat de getekende leaseovk kan worden geupload.
-- Dit is van de soort 'opdracht' zodat de opdrachtgegevens meekomen.
INSERT INTO fac_srtnotificatie (fac_srtnotificatie_code, fac_srtnotificatie_mode, fac_srtnotificatie_oms, fac_srtnotificatie_groep, fac_srtnotificatie_xmlnode, fac_srtnotificatie_delay)
VALUES ('CUST03',2, 'Berichtgeving om leaseovereenkomst te tekenen', 0, 'opdracht', 10);
INSERT INTO fac_api
(fac_api_name,
fac_api_filepath)
VALUES
('HMAIL',
'appl/api/api_hmail.asp');
-- Voeg een gebruiker toe om de api uit te voeren
INSERT INTO prs_perslid (prs_perslid_module,
prs_srtperslid_key,
prs_afdeling_key,
prs_perslid_naam,
prs_perslid_email,
prs_perslid_oslogin,
prs_perslid_apikey,
prs_perslid_flags,
prs_perslid_systeemadres)
SELECT 'PRS',
1, -- Onbekend
prs_afdeling_key,
'SYSTEM API Mail2Melding',
'',
'_HMAIL',
'PuUEujYgpWMivRZeiUsSqTaKVQZuudbB',
4,
NULL
FROM prs_afdeling
WHERE prs_afdeling_naam = 'VMC';
INSERT INTO FAC_EMAIL_SETTING (FAC_EMAIL_SETTING_USER,
FAC_EMAIL_SETTING_ACTION,
FAC_EMAIL_SETTING_FROM,
FAC_EMAIL_SETTING_ATTACHPATH)
VALUES ('XrTeMOZ',
'vebe_processemail',
'',
'd:\Apps\Facilitor\Fplace5i\Cust\VEBE\flexfiles\');
BEGIN adm.systrackscript('$Workfile: vebe01.sql $', '$Revision$', 1); END;
/

View File

@@ -0,0 +1,121 @@
-- 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