CSUNCSUN#54997: Import en aanmaken meldingen vanuit een (jaar)planning

svn path=/Customer/trunk/; revision=40309
This commit is contained in:
Sander Schepers
2018-12-20 11:24:26 +00:00
parent b671c93bbf
commit df17b85ecd

View File

@@ -3521,7 +3521,7 @@ BEGIN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Locatie (postcode) bestaat niet',
v_aanduiding || 'Locatie (locatiecode) bestaat niet',
'Melding wordt niet ingelezen!');
END IF;
@@ -3561,6 +3561,11 @@ BEGIN
|| v_omschrijving
|| ']');
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
@@ -3722,18 +3727,32 @@ CREATE OR REPLACE PROCEDURE csun_export_meldingen (p_applname 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_mld_stdmelding_key NUMBER (10);
v_mld_melding_datum DATE;
v_opdr_key NUMBER (10);
v_perslid_key NUMBER (10) := 4; -- Facilitor
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 *
FROM csun_imp_mld2
WHERE TRUNC (uitvoerdatum) <= TRUNC (SYSDATE) + 11
AND mld_melding_key IS NULL;
v_fac_import_key NUMBER (10);
v_fac_import_index NUMBER (10);
v_mld_melding_key NUMBER (10);
v_mld_stdmelding_key NUMBER (10);
v_mld_melding_datum DATE;
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
FROM csun_imp_mld2 m, alg_v_locatie_gegevens l
WHERE l.alg_locatie_key = m.alg_locatie_key
AND TRUNC (m.uitvoerdatum) <= TRUNC (SYSDATE) + 11
AND m.mld_melding_key IS NULL;
BEGIN
FOR recmld IN cmld
LOOP
@@ -3748,27 +3767,32 @@ BEGIN
mld_melding_status,
mld_melding_spoed,
mld_melding_onderwerp,
mld_melding_omschrijving)
VALUES (4, -- Facilitor
mld_melding_omschrijving,
mld_melding_behandelaar_key)
VALUES (v_perslid_key,
'MLD',
6, --Bron = Systeem
recmld.alg_locatie_key,
SYSDATE,
recmld.mld_stdmelding_key,
recmld.uitvoerdatum,
TO_DATE(CONCAT (
TO_CHAR (recmld.uitvoerdatum, 'YYYY-MM-DD'),
' 17:00:00')),
4, --Status = In behandeling
3, --Prioriteit = Normaal
recmld.onderwerp,
recmld.omschrijving)
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;
--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,
4,
v_perslid_key,
SYSDATE,
'Melding is aangemaakt vanuit planning');
@@ -3783,6 +3807,66 @@ BEGIN
imp2.mld_melding_datum = v_mld_melding_datum
WHERE imp2.fac_import_key = recmld.fac_import_key
AND imp2.fac_import_index = recmld.fac_import_index;
-- 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 = v_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
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.alg_locatie_key
OR bdl.alg_locatie_key IS NULL);
IF v_bedrijf_key IS NOT NULL
THEN
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),
v_mld_melding_datum,
recmld.uitvoerdatum,
v_typeopdr_key,
v_perslid_key,
recmld.onderwerp
|| CHR (10)
|| recmld.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;