CSUN#59537 Nieuwe import planning van meldingen (naar Frontoffice ipv csun_imp_mld)
svn path=/Customer/trunk/; revision=47259
This commit is contained in:
568
CSUN/CSUN.sql
568
CSUN/CSUN.sql
@@ -555,6 +555,7 @@ SELECT DISTINCT mld_melding_key, prs_perslid_email
|
||||
WHERE alg_kenmerk_key = 1260) lse
|
||||
WHERE m.mld_alg_locatie_key = lse.alg_onrgoed_key
|
||||
AND m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||||
AND m.mld_melding_status in (4,5,6,7) -- Ivm CSUN#59537 moet deze notificatie ook pas wanneer deze bij Backoffice staat (status 2) ipv alleen nog in planning bij Frontoffice (status 0)
|
||||
UNION ALL
|
||||
SELECT m.mld_melding_key, prs_perslid_email, mld_melding_status, mld_stdmelding_key
|
||||
FROM prs_perslid p,
|
||||
@@ -565,6 +566,7 @@ SELECT DISTINCT mld_melding_key, prs_perslid_email
|
||||
prs_kenmerklink kl
|
||||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
|
||||
AND m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||||
AND m.mld_melding_status in (4,5,6,7) -- Ivm CSUN#59537 moet deze notificatie ook pas wanneer deze bij Backoffice staat (status 2) ipv alleen nog in planning bij Frontoffice (status 0)
|
||||
AND pwpg.alg_locatie_key = l2.alg_locatie_key
|
||||
AND l.alg_district_key = l2.alg_district_key
|
||||
AND pwpg.prs_perslid_key = p.prs_perslid_key
|
||||
@@ -573,7 +575,7 @@ SELECT DISTINCT mld_melding_key, prs_perslid_email
|
||||
AND fac.safe_to_number (prs_kenmerklink_waarde) = 1
|
||||
AND kl.prs_link_key = p.prs_perslid_key
|
||||
AND p.prs_perslid_email IS NOT NULL
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
UNION ALL
|
||||
SELECT m.mld_melding_key, prs_perslid_email, mld_melding_status, mld_stdmelding_key
|
||||
FROM prs_perslid p,
|
||||
@@ -581,6 +583,7 @@ SELECT DISTINCT mld_melding_key, prs_perslid_email
|
||||
prs_v_perslidwerkplek_gegevens pwpg,
|
||||
prs_kenmerklink kl
|
||||
WHERE m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||||
AND m.mld_melding_status in (4,5,6,7) -- Ivm CSUN#59537 moet deze notificatie ook pas wanneer deze bij Backoffice staat (status 2) ipv alleen nog in planning bij Frontoffice (status 0)
|
||||
AND pwpg.alg_locatie_key = m.mld_alg_locatie_key
|
||||
AND pwpg.prs_perslid_key = p.prs_perslid_key
|
||||
AND p.prs_srtperslid_key IN (4041, 50) -- Objectleider en Rayonleider
|
||||
@@ -588,8 +591,8 @@ SELECT DISTINCT mld_melding_key, prs_perslid_email
|
||||
AND fac.safe_to_number (prs_kenmerklink_waarde) = 1
|
||||
AND kl.prs_link_key = p.prs_perslid_key
|
||||
AND p.prs_perslid_email IS NOT NULL
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
) g
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
) g
|
||||
WHERE g.mld_melding_status IN (0, 2, 3, 4, 7)
|
||||
AND mld_stdmelding_key NOT IN (SELECT mld_stdmelding_key
|
||||
FROM mld_stdmelding
|
||||
@@ -4279,6 +4282,565 @@ AS
|
||||
WHERE fac_srtnotificatie_key = 621 --CUST05 (641 in ACCP)
|
||||
AND t.fac_tracking_refkey = m.mld_melding_key);
|
||||
|
||||
--CSUN#59537
|
||||
CREATE OR REPLACE PROCEDURE csun_import_planning (p_import_key IN NUMBER)
|
||||
IS
|
||||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||||
v_newline VARCHAR2 (1000);
|
||||
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;
|
||||
v_ongeldig NUMBER (1);
|
||||
v_count_tot NUMBER (10);
|
||||
v_count_import NUMBER (10);
|
||||
v_count_melding NUMBER := 1;
|
||||
v_count_alglocatie NUMBER := 1;
|
||||
-- De importvelden:
|
||||
v_fac_import_key VARCHAR (256);
|
||||
v_fac_import_index VARCHAR (256);
|
||||
v_mld_stdmelding_key VARCHAR (256);
|
||||
v_mld_stdmelding_oms VARCHAR (256);
|
||||
v_alg_locatie_code VARCHAR (256);
|
||||
v_alg_locatie_oms VARCHAR (256);
|
||||
v_uitvoerjaar VARCHAR (256);
|
||||
v_uitvoerweek VARCHAR (256);
|
||||
v_onderwerp VARCHAR (256);
|
||||
v_omschrijving VARCHAR (256);
|
||||
v_aanvrageremail VARCHAR (256);
|
||||
|
||||
CURSOR c
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
BEGIN
|
||||
v_count_tot := 0;
|
||||
v_count_import := 0;
|
||||
header_is_valid := 0;
|
||||
|
||||
-- Eerst opschonen voor we beginnen
|
||||
DELETE FROM csun_imp_planning;
|
||||
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
BEGIN
|
||||
v_newline := rec.fac_imp_file_line;
|
||||
v_fac_import_key := rec.fac_import_key;
|
||||
v_fac_import_index := rec.fac_imp_file_index;
|
||||
v_aanduiding := '';
|
||||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||||
v_ongeldig := 0;
|
||||
|
||||
IF SUBSTR (v_newline, 1, 3) = '??A???A>??A?'
|
||||
THEN
|
||||
-- EF BB BF aangetroffen
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
'Byte Order Mark aangetroffen',
|
||||
'Bestand heeft onbehandeld UTF-8 formaat.');
|
||||
v_newline := SUBSTR (v_newline, 4);
|
||||
END IF;
|
||||
|
||||
-- Lees alle veldwaarden
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_mld_stdmelding_key); -- Soort melding key
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_mld_stdmelding_oms); -- Soort melding omschrijving
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_code); -- Locatie key
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_oms); -- Locatieomschrijving
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerjaar); -- Uitvoerjaar
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerweek); -- Uitvoerweek
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_onderwerp); -- Onderwerp
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_omschrijving); -- Omschrijving
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_aanvrageremail); --Emailadres aanvrager
|
||||
|
||||
IF (fac.safe_to_number (v_uitvoerweek) < 10)
|
||||
THEN
|
||||
v_uitvoerweek := (0 || v_uitvoerweek);
|
||||
END IF;
|
||||
|
||||
v_aanduiding :=
|
||||
'['
|
||||
|| v_mld_stdmelding_key
|
||||
|| '|'
|
||||
|| v_alg_locatie_code
|
||||
|| '|'
|
||||
|| v_uitvoerjaar
|
||||
|| '|'
|
||||
|| v_uitvoerweek
|
||||
|| '] ';
|
||||
|
||||
v_count_tot := v_count_tot + 1;
|
||||
|
||||
-- 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_mld_stdmelding_key) = 'MELDING'
|
||||
AND UPPER (v_mld_stdmelding_oms) = 'MELDINGOMSCHRIJVING'
|
||||
AND UPPER (v_alg_locatie_code) = 'LOCATIECODE'
|
||||
AND UPPER (v_alg_locatie_oms) = 'LOCATIE'
|
||||
AND UPPER (v_uitvoerjaar) = 'UITVOERJAAR'
|
||||
AND UPPER (v_uitvoerweek) = 'UITVOERWEEK'
|
||||
AND UPPER (v_onderwerp) = 'ONDERWERP' --Lengte max 80
|
||||
AND UPPER (v_omschrijving) = 'OMSCHRIJVING' --Lengte max 4000
|
||||
AND UPPER (v_aanvrageremail) = 'AANVRAGEREMAIL' --Lengte max 4000
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
ELSE
|
||||
--Controle of de opgegeven stdmelding wel aanwezig is
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count_melding
|
||||
FROM mld_stdmelding sm
|
||||
WHERE v_mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND sm.mld_stdmelding_verwijder IS NULL;
|
||||
|
||||
IF v_count_melding = 0
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Meldingnummer bestaat niet',
|
||||
'Melding wordt niet ingelezen!');
|
||||
END IF;
|
||||
|
||||
--Controle of de opgegeven locatiecode wel aanwezig is
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count_alglocatie
|
||||
FROM alg_locatie l
|
||||
WHERE l.alg_locatie_code = v_alg_locatie_code
|
||||
AND l.alg_locatie_verwijder IS NULL;
|
||||
|
||||
IF v_count_alglocatie = 0
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Locatie (locatiecode) bestaat niet',
|
||||
'Melding wordt niet ingelezen!');
|
||||
END IF;
|
||||
|
||||
-- Controle of de melding wel ingelezen moet worden. Meldingen moeten worden ingelezen na volgende week.
|
||||
-- Dus stel het is week 8, dan moeten meldingen ingelezen worden in week 10 en verder.
|
||||
-- De routine om meldingen automatisch aan te maken (csun_export_meldingen) maakt namelijk op maandag meldingen voor volgende week aan.
|
||||
IF TO_NUMBER (TO_CHAR (v_uitvoerjaar) || TO_CHAR (v_uitvoerweek)) <=
|
||||
TO_NUMBER (
|
||||
TO_CHAR (SYSDATE, 'YYYY') || TO_CHAR (SYSDATE, 'WW'))
|
||||
+ 1
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Melding niet in toekomst',
|
||||
'Melding wordt niet ingelezen!');
|
||||
END IF;
|
||||
|
||||
IF LENGTH (v_onderwerp) > 80
|
||||
THEN
|
||||
v_onderwerp := SUBSTR (v_onderwerp, 1, 80);
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Onderwerp te lang',
|
||||
'Onderwerp wordt afgebroken tot [' || v_onderwerp || ']');
|
||||
END IF;
|
||||
|
||||
IF LENGTH (v_omschrijving) > 4000
|
||||
THEN
|
||||
v_omschrijving := SUBSTR (v_omschrijving, 1, 4000);
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Omschrijving te lang',
|
||||
'Omschrijving wordt afgebroken tot ['
|
||||
|| v_omschrijving
|
||||
|| ']');
|
||||
END IF;
|
||||
|
||||
IF LENGTH (v_aanvrageremail) > 200
|
||||
THEN
|
||||
v_aanvrageremail := SUBSTR (v_aanvrageremail, 1, 200);
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Emailadres aanvrager te lang',
|
||||
'Emailadres aanvrager wordt afgebroken tot ['
|
||||
|| v_aanvrageremail
|
||||
|| ']');
|
||||
END IF;
|
||||
|
||||
IF LENGTH (v_alg_locatie_oms) > 60
|
||||
THEN
|
||||
v_alg_locatie_oms := SUBSTR (v_alg_locatie_oms, 1, 60);
|
||||
END IF;
|
||||
|
||||
-- Insert geformatteerde import record
|
||||
IF header_is_valid = 1 AND v_ongeldig = 0
|
||||
THEN
|
||||
BEGIN
|
||||
v_errorhint :=
|
||||
'Fout bij toevoegen regel aan importtabel csun_imp_mld';
|
||||
|
||||
INSERT INTO csun_imp_planning (fac_import_key,
|
||||
fac_import_index,
|
||||
fac_import_datum,
|
||||
mld_stdmelding_key,
|
||||
mld_stdmelding_oms,
|
||||
alg_locatie_code,
|
||||
alg_locatie_oms,
|
||||
uitvoerdatum,
|
||||
uitvoerweek,
|
||||
uitvoerjaar,
|
||||
onderwerp,
|
||||
omschrijving,
|
||||
aanvrageremail)
|
||||
VALUES (v_fac_import_key,
|
||||
v_fac_import_index,
|
||||
SYSDATE,
|
||||
TO_NUMBER (v_mld_stdmelding_key),
|
||||
v_mld_stdmelding_oms,
|
||||
v_alg_locatie_code,
|
||||
v_alg_locatie_oms,
|
||||
NEXT_DAY (
|
||||
TO_DATE ('04-jan-' || v_uitvoerjaar,
|
||||
'dd-mm-yyyy')
|
||||
+ (v_uitvoerweek - 2) * 7,
|
||||
'vrijd'),
|
||||
v_uitvoerweek,
|
||||
v_uitvoerjaar,
|
||||
v_onderwerp,
|
||||
v_omschrijving,
|
||||
v_aanvrageremail);
|
||||
|
||||
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,
|
||||
'W',
|
||||
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',
|
||||
'CSUN_PLANNING/#ingelezen importregels: ' || TO_CHAR (v_count_tot),
|
||||
'');
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'S',
|
||||
'CSUN_PLANNING/#ongeldige niet ingelezen importregels incl header: '
|
||||
|| 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, 200);
|
||||
v_errormsg :=
|
||||
v_errormsg
|
||||
|| ' ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Inleesproces CSUN_IMPORT_PLANNING afgebroken!');
|
||||
END csun_import_planning;
|
||||
/
|
||||
|
||||
--CSUN#59537
|
||||
CREATE OR REPLACE PROCEDURE csun_update_planning (p_import_key IN NUMBER)
|
||||
AS
|
||||
v_fac_import_key NUMBER (10);
|
||||
v_fac_import_index NUMBER (10);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_mld_melding_key NUMBER (10);
|
||||
v_mld_stdmelding_key NUMBER (10);
|
||||
v_mld_melding_datum DATE;
|
||||
v_opdr_key NUMBER (10);
|
||||
v_perslid_key NUMBER (10) := 4; -- Facilitor
|
||||
v_aanvrager_key NUMBER (10);
|
||||
v_stdmelding_autoorder VARCHAR2 (200);
|
||||
v_dienst_key NUMBER (10);
|
||||
v_typeopdr_key NUMBER (10);
|
||||
v_bedrijf_key NUMBER (10);
|
||||
|
||||
-- Haal alle meldingen op uit de tussentabel van volgende week en die nog niet zijn aangemaakt. Deze hebben een datum op de vrijdag volgende week.
|
||||
CURSOR cmld
|
||||
IS
|
||||
SELECT m.*,
|
||||
(SELECT fac.safe_to_number (km.alg_onrgoedkenmerk_waarde)
|
||||
FROM alg_v_aanwezigonrgoedkenmerk km
|
||||
WHERE km.alg_onrgoed_niveau = 'D'
|
||||
AND km.alg_kenmerk_key = 1300 --Kenmerk bij district : Medewerker bedrijfsbureau
|
||||
AND km.alg_onrgoed_key = l.alg_district_key)
|
||||
AS mld_behandelaar_key,
|
||||
COALESCE (
|
||||
(SELECT MAX (prs_perslid_key) --prs_perslid_key van geimporteerde emailadres of anders Facilitor (perslid_key 4)
|
||||
FROM prs_perslid
|
||||
WHERE UPPER (prs_perslid_email) = UPPER (m.aanvrageremail)),
|
||||
4)
|
||||
AS aanvrager_key,
|
||||
l.alg_locatie_key
|
||||
FROM csun_imp_planning m, alg_v_locatie_gegevens l
|
||||
WHERE l.alg_locatie_code = m.alg_locatie_code
|
||||
AND m.mld_melding_key IS NULL;
|
||||
BEGIN
|
||||
FOR recmld IN cmld
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint := 'Insert melding';
|
||||
|
||||
INSERT INTO mld_melding (prs_perslid_key,
|
||||
mld_melding_module,
|
||||
mld_meldbron_key,
|
||||
mld_alg_locatie_key,
|
||||
mld_melding_datum,
|
||||
mld_stdmelding_key,
|
||||
mld_melding_einddatum,
|
||||
mld_melding_status,
|
||||
mld_melding_spoed,
|
||||
mld_melding_onderwerp,
|
||||
mld_melding_omschrijving,
|
||||
mld_melding_behandelaar_key)
|
||||
VALUES (recmld.aanvrager_key,
|
||||
'MLD',
|
||||
6, --Bron = Systeem
|
||||
recmld.alg_locatie_key,
|
||||
SYSDATE,
|
||||
recmld.mld_stdmelding_key,
|
||||
TO_DATE(CONCAT (
|
||||
TO_CHAR (recmld.uitvoerdatum, 'YYYY-MM-DD'),
|
||||
' 17:00:00')),
|
||||
0, --Status = Bij Frontoffice
|
||||
3, --Prioriteit = Normaal
|
||||
recmld.onderwerp,
|
||||
recmld.omschrijving,
|
||||
recmld.mld_behandelaar_key)
|
||||
RETURNING mld_melding_key, mld_stdmelding_key, mld_melding_datum
|
||||
INTO v_mld_melding_key,
|
||||
v_mld_stdmelding_key,
|
||||
v_mld_melding_datum;
|
||||
|
||||
v_errorhint := 'Tracking MLDNEW';
|
||||
--PROCEDURE trackaction (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE, poms VARCHAR2);
|
||||
--Dit zorgt voor een juiste datum 'Laatste actiedatum' in het meldingsoverzicht.
|
||||
fac.trackaction ('MLDNEW',
|
||||
v_mld_melding_key,
|
||||
v_perslid_key,
|
||||
SYSDATE,
|
||||
'Melding is aangemaakt vanuit planning');
|
||||
|
||||
v_errorhint := 'Insert kenmerk Import Planning';
|
||||
|
||||
-- We zetten een vinkje om aan de melding te herkennen dat deze uit deze import komt.
|
||||
-- Daarmee kunnen we de status ook aanpassen van de meldingen die gepland staan over 2 weken (status van 0 naar 4) in een export-procedure
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
||||
mld_kenmerk_key,
|
||||
mld_kenmerkmelding_waarde) -- Vinkje aan.
|
||||
VALUES (v_mld_melding_key, 1301, -- Kenmerk 'Import planning'
|
||||
1); -- Vinkje aan.
|
||||
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,
|
||||
'W',
|
||||
v_errorhint || ' ' || v_errormsg,
|
||||
'Ingelezen regel kan niet worden weggeschreven!');
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
v_errormsg
|
||||
|| ' ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
'Inleesproces CSUN_UPDATE_PLANNING afgebroken!');
|
||||
END csun_update_planning;
|
||||
/
|
||||
|
||||
--CSUN#59537
|
||||
CREATE OR REPLACE PROCEDURE csun_export_planning (p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2)
|
||||
AS
|
||||
v_fac_import_key NUMBER (10);
|
||||
v_fac_import_index NUMBER (10);
|
||||
v_mld_melding_key NUMBER (10);
|
||||
v_perslid_key NUMBER (10) := 4; -- Facilitor
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_opdr_key NUMBER (10);
|
||||
v_stdmelding_autoorder VARCHAR2 (200);
|
||||
v_dienst_key NUMBER (10);
|
||||
v_typeopdr_key NUMBER (10);
|
||||
v_bedrijf_key NUMBER (10);
|
||||
|
||||
-- Haal alle meldingen op die nog in behandeling (status 0) staan en met kenmerk 'Planning melding' aan heeft. .
|
||||
CURSOR cmld
|
||||
IS
|
||||
SELECT m.mld_melding_key,
|
||||
m.mld_stdmelding_key,
|
||||
m.mld_melding_onderwerp,
|
||||
m.mld_melding_omschrijving,
|
||||
m.mld_melding_datum,
|
||||
m.mld_melding_einddatum,
|
||||
m.mld_alg_locatie_key
|
||||
FROM mld_melding m, mld_kenmerkmelding km
|
||||
WHERE km.mld_melding_key = m.mld_melding_key
|
||||
AND TRUNC (m.mld_melding_einddatum) <= TRUNC (SYSDATE) + 11
|
||||
AND km.mld_kenmerk_key = 1301 -- Kenmerk 'Import planning' (checkbox die bij het importeren op 1 wordt gezet zodat herkend wordt dat deze vanuit de import komt).
|
||||
AND km.mld_kenmerkmelding_waarde = 1
|
||||
AND m.mld_melding_status = 0;
|
||||
BEGIN
|
||||
FOR recmld IN cmld
|
||||
LOOP
|
||||
BEGIN
|
||||
UPDATE mld_melding
|
||||
SET mld_melding_status = 4 --In behandeling ipv Frontoffice (0)
|
||||
WHERE mld_melding_key = recmld.mld_melding_key
|
||||
RETURNING mld_melding_key
|
||||
INTO v_mld_melding_key;
|
||||
|
||||
--Tracking voor het doorzetten van Frontoffice naar Backoffice
|
||||
fac.trackaction ('MLDDOO',
|
||||
v_mld_melding_key,
|
||||
v_perslid_key,
|
||||
SYSDATE,
|
||||
'Melding is aangemaakt vanuit planning');
|
||||
|
||||
v_errorhint := 'Select opdracht';
|
||||
|
||||
-- Nu kijken of we automatisch een opdracht kunnen aanmaken.
|
||||
SELECT ms.mld_stdmelding_autoorder,
|
||||
ms.prs_dienst_key,
|
||||
ms.mld_typeopdr_key
|
||||
INTO v_stdmelding_autoorder, v_dienst_key, v_typeopdr_key
|
||||
FROM mld_stdmelding ms
|
||||
WHERE ms.mld_stdmelding_key = recmld.mld_stdmelding_key;
|
||||
|
||||
-- Heb ik genoeg informatie om een opdracht aan te kunnen maken.
|
||||
IF v_stdmelding_autoorder = 1
|
||||
AND v_dienst_key IS NOT NULL
|
||||
AND v_typeopdr_key IS NOT NULL
|
||||
THEN
|
||||
v_errorhint := 'Select bedrijfkey';
|
||||
|
||||
SELECT MIN (bdl.prs_bedrijf_key)
|
||||
INTO v_bedrijf_key
|
||||
FROM prs_bedrijfdienstlocatie bdl, prs_v_aanwezigbedrijf b
|
||||
WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND bdl.prs_dienst_key = v_dienst_key
|
||||
AND (bdl.alg_locatie_key = recmld.mld_alg_locatie_key
|
||||
OR bdl.alg_locatie_key IS NULL);
|
||||
|
||||
IF v_bedrijf_key IS NOT NULL
|
||||
THEN
|
||||
v_errorhint := 'Insert opdracht';
|
||||
|
||||
INSERT INTO mld_opdr (mld_uitvoerende_keys,
|
||||
mld_opdr_kosten,
|
||||
mld_opdr_uurloon,
|
||||
mld_melding_key,
|
||||
mld_opdr_module,
|
||||
mld_opdr_bedrijfopdr_volgnr,
|
||||
mld_opdr_datumbegin,
|
||||
mld_opdr_einddatum,
|
||||
mld_typeopdr_key,
|
||||
prs_perslid_key,
|
||||
mld_opdr_omschrijving,
|
||||
mld_opdr_uren,
|
||||
mld_opdr_teverzenden)
|
||||
VALUES (v_bedrijf_key,
|
||||
0,
|
||||
0,
|
||||
v_mld_melding_key,
|
||||
'MLD',
|
||||
mld.bepaalopdrmeldingvolgnr (v_mld_melding_key),
|
||||
recmld.mld_melding_datum,
|
||||
recmld.mld_melding_einddatum,
|
||||
v_typeopdr_key,
|
||||
v_perslid_key,
|
||||
recmld.mld_melding_onderwerp
|
||||
|| CHR (10)
|
||||
|| recmld.mld_melding_omschrijving,
|
||||
0,
|
||||
1)
|
||||
RETURNING mld_opdr_key
|
||||
INTO v_opdr_key;
|
||||
END IF;
|
||||
|
||||
mld.setopdrachtstatus (v_opdr_key, 5, v_perslid_key); -- Uitgegeven
|
||||
|
||||
mld.updatemeldingstatus (v_mld_melding_key, 0, v_perslid_key);
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
END csun_export_planning;
|
||||
/
|
||||
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
Reference in New Issue
Block a user