VOLK#78884 Koppeling voor up to date houden afdelingen
svn path=/Customer/trunk/; revision=62007
This commit is contained in:
303
VOLK/volk.sql
303
VOLK/volk.sql
@@ -657,6 +657,7 @@ AS
|
||||
WHERE b.prs_bedrijf_key = scope.prs_bedrijf_key;
|
||||
|
||||
-- De bron view met gegevens over bezoekers die een parkeerplaats moeten krijgen vandaag of morgen
|
||||
|
||||
CREATE OR REPLACE VIEW VOLK_V_EXP_FIRMBASE
|
||||
(
|
||||
BEZ_BEZOEKER_KEY,
|
||||
@@ -729,6 +730,7 @@ AS
|
||||
AND a.bez_afspraak_datum > TRUNC (SYSDATE) - 1;
|
||||
|
||||
-- !!!!!!!!!!!!!!!!!! tijdelijke view omdat de mail uitgevallen is. !!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
CREATE OR REPLACE VIEW volk_v_rap_bezoekers_mutatie
|
||||
AS
|
||||
SELECT DISTINCT
|
||||
@@ -788,6 +790,7 @@ AS
|
||||
TO_DATE ('20190423 16:00', 'yyyymmdd hh24:mi');
|
||||
|
||||
-- Procedure om de bezoekers met een parkeerplaats klaar te zetten voor de export
|
||||
|
||||
CREATE OR REPLACE PROCEDURE VOLK_SELECT_FIRMBASE (p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2)
|
||||
AS
|
||||
@@ -1022,6 +1025,7 @@ END volk_SELECT_firmbase;
|
||||
/
|
||||
|
||||
--- genereert het export bestand voor Firmbase
|
||||
|
||||
CREATE OR REPLACE VIEW VOLK_V_EXPORT_FIRMBASE
|
||||
(
|
||||
RESULT,
|
||||
@@ -1347,6 +1351,7 @@ COMMIT;
|
||||
|
||||
--- VOLK#77515 Uitbesteding Servicedesk Retail locaties SNS
|
||||
--- Meldingen/opdrachten uitgezet naar Colliers mogen direct worden afgemeld
|
||||
|
||||
CREATE OR REPLACE PROCEDURE volk_select_colliers (p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2)
|
||||
AS
|
||||
@@ -1354,9 +1359,9 @@ AS
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errorhint VARCHAR2 (100);
|
||||
v_aanduiding VARCHAR2 (100);
|
||||
v_afmeldtekst VARCHAR2 (4000);
|
||||
v_afmeldtekst VARCHAR2 (4000);
|
||||
|
||||
CURSOR coll IS
|
||||
CURSOR coll IS
|
||||
SELECT o.mld_opdr_key,
|
||||
os.mld_statusopdr_key,
|
||||
os.mld_statusopdr_omschrijving,
|
||||
@@ -1367,7 +1372,7 @@ AS
|
||||
mld_melding m,
|
||||
mld_statuses ms,
|
||||
mld_statusopdr os
|
||||
WHERE o.mld_uitvoerende_keys = 27886 -- Collliers
|
||||
WHERE o.mld_uitvoerende_keys = 27886 -- Collliers
|
||||
AND m.mld_melding_key = o.mld_melding_key
|
||||
AND ms.mld_statuses_key = m.mld_melding_status
|
||||
AND os.mld_statusopdr_key = o.mld_statusopdr_key
|
||||
@@ -1381,8 +1386,7 @@ BEGIN
|
||||
FOR rec IN coll
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
SELECT at.mld_afmeldtekst_omschrijving
|
||||
SELECT at.mld_afmeldtekst_omschrijving
|
||||
INTO v_afmeldtekst
|
||||
FROM mld_afmeldtekst at
|
||||
WHERE at.mld_afmeldtekst_key = 41;
|
||||
@@ -1391,14 +1395,14 @@ BEGIN
|
||||
SET m.mld_melding_opmerking = v_afmeldtekst
|
||||
WHERE m.mld_melding_key = rec.mld_melding_key;
|
||||
|
||||
mld.setmeldingstatus (rec.mld_melding_key, 5, 3);
|
||||
mld.setmeldingstatus (rec.mld_melding_key, 5, 3);
|
||||
fac.trackaction ('MLDTRK',
|
||||
rec.mld_melding_key,
|
||||
NULL,
|
||||
NULL,
|
||||
'Melding naar Colliers automatisch afgemeld');
|
||||
|
||||
mld.setopdrachtstatus (rec.mld_opdr_key, 6, 3);
|
||||
mld.setopdrachtstatus (rec.mld_opdr_key, 6, 3);
|
||||
fac.trackaction ('ORDTRK',
|
||||
rec.mld_opdr_key,
|
||||
NULL,
|
||||
@@ -1422,6 +1426,7 @@ END;
|
||||
|
||||
--- VOLK#77515 Uitbesteding Servicedesk Retail locaties SNS
|
||||
--- Colliers moet worden geinformeerd over meldingen die naar CSU zijn uitgezet
|
||||
|
||||
CREATE OR REPLACE VIEW VOLK_V_NOTI_CSU_ORD
|
||||
(
|
||||
SENDER,
|
||||
@@ -1511,8 +1516,8 @@ BEGIN
|
||||
-- Bekende afzender --> dat is de melder
|
||||
IF (v_count = 1)
|
||||
THEN
|
||||
SELECT p.prs_perslid_key, d.prs_kostenplaats_key
|
||||
INTO sender, kostenplaats
|
||||
SELECT p.prs_perslid_key
|
||||
INTO sender
|
||||
FROM prs_perslid p, prs_afdeling d
|
||||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
@@ -1521,8 +1526,8 @@ BEGIN
|
||||
v_pbody := pbody;
|
||||
-- Geen bekende afzender --> _FACILITOR wordt de afzender
|
||||
ELSE
|
||||
SELECT prs_perslid_key, d.prs_kostenplaats_key
|
||||
INTO sender, kostenplaats
|
||||
SELECT prs_perslid_key
|
||||
INTO sender
|
||||
FROM prs_perslid p, prs_afdeling d
|
||||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||||
AND prs_perslid_key = 3;
|
||||
@@ -1691,7 +1696,7 @@ BEGIN
|
||||
341,
|
||||
3,
|
||||
sender,
|
||||
sender,
|
||||
pfrom,
|
||||
3)
|
||||
RETURNING mld_melding_key
|
||||
INTO v_newkey;
|
||||
@@ -1738,6 +1743,280 @@ EXCEPTION
|
||||
'Database fout - Neem contact op met uw systeembeheerder');
|
||||
END volk_processemail;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE volk_import_organisatie (p_import_key IN NUMBER)
|
||||
AS
|
||||
c_fielddelimitor VARCHAR2 (2) := fac.import_delimiter (p_import_key);
|
||||
v_newline VARCHAR2 (1000); -- Input line
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
header_is_valid NUMBER;
|
||||
v_count NUMBER;
|
||||
v_ongeldig NUMBER (1);
|
||||
v_mode NUMBER (1);
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_all_null BOOLEAN;
|
||||
v_count_error NUMBER (10);
|
||||
v_count_tot NUMBER (10);
|
||||
v_count_import NUMBER (10);
|
||||
-- De importvelden:
|
||||
v_bedrijf_naam VARCHAR2 (256);
|
||||
v_afdeling_naam VARCHAR2 (256);
|
||||
v_afdeling_naam_parent VARCHAR2 (256);
|
||||
v_afdeling_omschrijving VARCHAR2 (256);
|
||||
v_kostenplaats_nr VARCHAR2 (256);
|
||||
|
||||
-- PRS_BEDRIJF
|
||||
CURSOR c1 IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
BEGIN
|
||||
-- Eerst opruiming
|
||||
DELETE FROM fac_imp_organisatie;
|
||||
|
||||
COMMIT;
|
||||
v_count_error := 0;
|
||||
header_is_valid := 0;
|
||||
v_count_tot := 0;
|
||||
v_count_import := 0;
|
||||
|
||||
FOR rec1 IN c1
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errormsg := 'Fout FETCH te importeren rij';
|
||||
|
||||
v_newline := rec1.fac_imp_file_line;
|
||||
v_errormsg := 'Fout opvragen te importeren rij';
|
||||
v_aanduiding := '';
|
||||
v_ongeldig := 0;
|
||||
|
||||
-- Lees alle veldwaarden
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_bedrijf_naam);
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_afdeling_naam_parent);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_afdeling_naam);
|
||||
fac.imp_getfield (v_newline,
|
||||
c_fielddelimitor,
|
||||
v_afdeling_omschrijving);
|
||||
|
||||
v_aanduiding :=
|
||||
v_bedrijf_naam
|
||||
|| '|'
|
||||
|| v_afdeling_naam
|
||||
|| '|'
|
||||
|| v_afdeling_omschrijving
|
||||
|| '| ';
|
||||
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
IF UPPER (v_bedrijf_naam) = 'BEDRIJFSNAAM'
|
||||
AND UPPER (v_afdeling_naam_parent) = 'AFDELINGSCODEPARENT'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
ELSE
|
||||
v_count_tot := v_count_tot + 1;
|
||||
--fac.imp_writelog (p_import_key, 'I', v_aanduiding, '');
|
||||
-- Controleer alle veldwaarde
|
||||
v_bedrijf_naam := TRIM (v_bedrijf_naam);
|
||||
|
||||
IF LENGTH (v_bedrijf_naam) > 60
|
||||
THEN
|
||||
v_bedrijf_naam := SUBSTR (v_bedrijf_naam, 1, 60);
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Bedrijf-aanduiding is te lang',
|
||||
'Aanduiding wordt afgebroken tot ['
|
||||
|| v_bedrijf_naam
|
||||
|| ']');
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_afdeling_naam := TRIM (v_afdeling_naam);
|
||||
|
||||
IF LENGTH (v_afdeling_naam) > 15
|
||||
THEN
|
||||
v_afdeling_naam := SUBSTR (v_afdeling_naam, 1, 15);
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Afdeling-aanduiding is te lang',
|
||||
'Aanduiding wordt afgebroken tot ['
|
||||
|| v_afdeling_naam
|
||||
|| ']');
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_afdeling_naam_parent := TRIM (v_afdeling_naam_parent);
|
||||
|
||||
IF LENGTH (v_afdeling_naam_parent) > 15
|
||||
THEN
|
||||
v_afdeling_naam_parent :=
|
||||
SUBSTR (v_afdeling_naam_parent, 1, 15);
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Afdeling-aanduiding is te lang',
|
||||
'Aanduiding wordt afgebroken tot ['
|
||||
|| v_afdeling_naam_parent
|
||||
|| ']');
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_afdeling_omschrijving := TRIM (v_afdeling_omschrijving);
|
||||
|
||||
IF LENGTH (v_afdeling_omschrijving) > 60
|
||||
THEN
|
||||
v_afdeling_omschrijving :=
|
||||
SUBSTR (v_afdeling_omschrijving, 1, 60);
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Afdelingsomschrijving is te lang',
|
||||
'Aanduiding wordt afgebroken tot ['
|
||||
|| v_afdeling_omschrijving
|
||||
|| ']');
|
||||
END IF;
|
||||
|
||||
v_all_null :=
|
||||
(v_bedrijf_naam IS NULL)
|
||||
AND (v_afdeling_naam IS NULL)
|
||||
AND (v_afdeling_naam_parent IS NULL)
|
||||
AND (v_afdeling_omschrijving IS NULL);
|
||||
|
||||
-- Insert geformatteerde import record
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
v_errormsg :=
|
||||
'Fout bij toevoegen te impoteren bedrijf/afdeling ['
|
||||
|| v_afdeling_naam
|
||||
|| ']';
|
||||
|
||||
INSERT INTO fac_imp_organisatie (
|
||||
prs_bedrijf_naam,
|
||||
prs_afdeling_naam,
|
||||
prs_afdeling_naam_parent,
|
||||
prs_afdeling_omschrijving)
|
||||
VALUES (v_bedrijf_naam,
|
||||
v_afdeling_naam,
|
||||
v_afdeling_naam_parent,
|
||||
v_afdeling_omschrijving);
|
||||
|
||||
v_count_import := v_count_import + 1;
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || 'Ongeldig importbestand',
|
||||
'Geen geldige headerregel aanwezig');
|
||||
ELSE
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'S',
|
||||
'Bedrijf: aantal ingelezen regels: ' || TO_CHAR (v_count_tot),
|
||||
'');
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'S',
|
||||
'Bedrijf: aantal ongeldige importregels: '
|
||||
|| TO_CHAR (v_count_tot - v_count_import),
|
||||
'');
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
'');
|
||||
END volk_import_organisatie;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE volk_delete_organisatie (p_import_key IN NUMBER)
|
||||
AS
|
||||
|
||||
--- afdelingen die niet in de import voorkomen en waar ook geen medewerkers meer onder vallen
|
||||
--- deze mogen een verwijderdatum krijgen
|
||||
CURSOR c_del IS
|
||||
SELECT a.prs_afdeling_key,
|
||||
a.prs_afdeling_naam || ' ' || a.prs_afdeling_omschrijving afdeling
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_afdeling_naam NOT IN (SELECT o.prs_afdeling_naam
|
||||
FROM fac_imp_organisatie o)
|
||||
AND a.prs_afdeling_key NOT IN
|
||||
(SELECT p.prs_afdeling_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_inactief IS NULL);
|
||||
BEGIN
|
||||
FOR rec IN c_del
|
||||
LOOP
|
||||
BEGIN
|
||||
UPDATE prs_afdeling a
|
||||
SET a.prs_afdeling_verwijder = SYSDATE
|
||||
WHERE a.prs_afdeling_key = rec.prs_afdeling_key;
|
||||
|
||||
fac.trackaction ('ADMTRK',
|
||||
rec.prs_afdeling_key,
|
||||
NULL,
|
||||
NULL,
|
||||
'Afdeling '|| rec.afdeling || ' is verwijderd vanuit de organisatie import');
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
'volk_delete_afdeling',
|
||||
'Verwijderen van afdeling: '
|
||||
|| rec.afdeling
|
||||
|| ' is NIET gelukt');
|
||||
END;
|
||||
|
||||
COMMIT;
|
||||
END LOOP;
|
||||
END volk_delete_organisatie;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE volk_update_organisatie (p_import_key IN NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
-- er wordt met een dummy kostenplaats gewerkt, dus deze zetten we bij alle afdelingen in de import tabel
|
||||
UPDATE FAC_IMP_ORGANISATIE o
|
||||
SET o.prs_kostenplaats_nr = '999999'
|
||||
WHERE o.prs_kostenplaats_nr IS NULL;
|
||||
|
||||
-- de afdelingsnaam wordt tot 6 posities aangevuld met voorloopnullen
|
||||
UPDATE fac_imp_organisatie o
|
||||
SET o.prs_afdeling_naam = LPAD (o.prs_afdeling_naam, 6, '0'),
|
||||
o.prs_afdeling_naam_parent =
|
||||
LPAD (o.prs_afdeling_naam_parent, 6, '0');
|
||||
|
||||
volk_delete_organisatie (p_import_key);
|
||||
|
||||
fac_update_organisatie (p_import_key);
|
||||
|
||||
END volk_update_organisatie;
|
||||
/
|
||||
|
||||
|
||||
------ payload end ------
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user