CSUNCSUN#54997: Import en aanmaken meldingen vanuit een (jaar)planning
svn path=/Customer/trunk/; revision=40309
This commit is contained in:
116
CSUN/CSUN.sql
116
CSUN/CSUN.sql
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user