HPJI#71136 Consultancy inrichten contracten

svn path=/Customer/trunk/; revision=57331
This commit is contained in:
Sander Schepers
2022-09-16 16:06:07 +00:00
parent 50746c7b2c
commit 1280858f3e

View File

@@ -33,6 +33,9 @@ AS
p_datum_van IN VARCHAR2,
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor);
PROCEDURE hpji_acties_verkoopcontracten;
END;
/
@@ -287,6 +290,513 @@ AS
3,
4;
END rap_it_inventaris_jaar;
PROCEDURE hpji_acties_verkoopcontracten
AS
p_applname VARCHAR2 (50) := 'ACTIES_VERKOOPCONTRACTEN';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errorhint VARCHAR2 (400);
v_mldkey mld_melding.mld_melding_key%TYPE;
v_uitvoerder prs_perslid.prs_perslid_key%TYPE;
v_kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
v_accm NUMBER;
v_teaml NUMBER;
v_buscontr NUMBER;
CURSOR c IS
--bespreek contract (Subsidie en Detachering)
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
NULL AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
NULL AS business_controller,
1421 AS stdmelding,
'Bespreek contract' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821, 1842)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-1) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 570 --bespreek contract
UNION ALL
--bespreek contract (Onderaanneming en Raamovereenkomst)
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
c.prs_perslid_key_beh AS accountmanager,
NULL AS teamleider,
NULL AS business_controller,
1403 AS stdmelding,
'Bespreek contract' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1822, 1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-1) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 570 --bespreek contract
UNION ALL
--Indienen aanvraag
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
NULL AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
109570 AS business_controller,
1404 AS stdmelding,
'Indienen aanvraag' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821,
1822,
1842,
1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-2) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 571 --Indienen aanvraag
UNION ALL
-- Tussentijdse verantwoording
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
NULL AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
NULL AS business_controller,
1406 AS stdmelding,
'Tussentijdse verantwoording' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821,
1822,
1842,
1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-2) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 572 --Tussentijdse verantwoording
UNION ALL
--Indienen vaststelling
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
NULL AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
109570 AS business_controller,
1405 AS stdmelding,
'Indienen vaststelling' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821,
1822,
1842,
1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-2) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 567 --Indienen vaststelling
UNION ALL
--contract loopt af (Subsidie en Detachering)
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
NULL AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
NULL AS business_controller,
1402 AS stdmelding,
'Contract loopt af' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821, 1842)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-2) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 569 --contract loopt af
UNION ALL
--contract loopt af (Raamovereenkomst)
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
c.prs_perslid_key_beh AS accountmanager,
NULL AS teamleider,
NULL AS business_controller,
1423 AS stdmelding,
'Contract loopt af' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1822)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-3) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 569 --contract loopt af
UNION ALL
--contract loopt af (Onderaanneming)
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
c.prs_perslid_key_beh AS accountmanager,
NULL AS teamleider,
NULL AS business_controller,
1423 AS stdmelding,
'Contract loopt af' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-6) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 569 --contract loopt af
UNION ALL
--Accountantsverklaring
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
NULL AS accountmanager,
NULL AS teamleider,
109570 AS business_controller,
1401 AS stdmelding,
'Accountantsverklaring' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821,
1822,
1842,
1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-3) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 568; --Accountantsverklaring
BEGIN
v_uitvoerder := 4; --Standaard de persoon Facilitor
v_kostenplaats := 1910; --Standaard Facilitair
FOR rec IN c
LOOP
BEGIN
v_errorhint := 'init';
-- Bepalen uitvoerder en kostenplaats
v_errorhint := 'Bepalen uitvoerder en kostenplaats';
SELECT MIN (p.prs_perslid_key), MIN (d.prs_kostenplaats_key)
INTO v_uitvoerder, v_kostenplaats
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL
AND prs_perslid_key =
DECODE (rec.stdmelding,
1401, rec.business_controller,
1402, rec.teamleider,
1403, rec.accountmanager,
1404, rec.teamleider,
1405, rec.teamleider,
1406, rec.teamleider,
1421, rec.teamleider,
1423, rec.accountmanager);
-- Notificaties aanmaken tbv accountmanagers
v_errorhint := 'notificatie_accountmanager';
v_accm := rec.accountmanager;
IF v_accm <> NULL
THEN
FAC.trackaction (
'CNTMAI',
rec.cnt_contract_key,
NULL,
NULL,
'Notificatie naar accountmanager, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')');
INSERT INTO fac_notificatie (
fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (
53, -- CNTMAI
2, -- mail
NULL,
v_accm,
'Notificatie naar accountmanager, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')',
rec.taak,
NULL,
2);
END IF;
-- Notificaties aanmaken tbv teamleiders
v_errorhint := 'notificatie_teamleider';
v_teaml := rec.teamleider;
IF v_teaml <> NULL
THEN
FAC.trackaction (
'CNTMAI',
rec.cnt_contract_key,
NULL,
NULL,
'Notificatie naar teamleider/clustermanager, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')');
INSERT INTO fac_notificatie (
fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (
53, -- CNTMAI
2, -- mail
NULL,
v_teaml,
'Notificatie naar accountmanager, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')',
rec.taak,
NULL,
2);
END IF;
-- Notificaties aanmaken tbv de business controller
v_errorhint := 'notificatie_businesscontrol';
v_buscontr := rec.business_controller;
IF v_buscontr <> NULL
THEN
FAC.trackaction (
'CNTMAI',
rec.cnt_contract_key,
NULL,
NULL,
'Notificatie naar Business Controller, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')');
INSERT INTO fac_notificatie (
fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (
53, -- CNTMAI
2, -- mail
NULL,
v_buscontr,
'Notificatie naar accountmanager, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')',
rec.taak,
NULL,
2);
END IF;
-- Melding aanmaken
v_errorhint :=
'Melding aanmaken vanuit contract '
|| rec.cnt_contract_key
|| ' met taak '
|| rec.taak;
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_melding_datum,
mld_melding_onderwerp,
mld_melding_omschrijving,
mld_melding_status,
mld_melding_t_uitvoertijd,
mld_stdmelding_key,
mld_alg_locatie_key,
mld_melding_externnr,
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_behandelaar_key,
mld_melding_spoed,
mld_melding_kto_type,
mld_melding_kto_key)
VALUES (
'MLD',
6, -- system
SYSDATE,
SUBSTR (
'Contract '
|| rec.cnt_contract_key
|| ': '
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving,
1,
80),
NULL,
2, -- Nieuw
NULL, -- stduitvoer
rec.stdmelding,
NULL, -- Locatie onbekend
NULL,
v_uitvoerder,
v_uitvoerder,
v_kostenplaats,
v_uitvoerder,
3,
'C',
rec.cnt_contract_key)
RETURNING mld_melding_key
INTO v_mldkey;
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errorhint :=
'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (p_applname,
'E',
'Proces afgebroken!',
v_errorhint);
END hpji_acties_verkoopcontracten;
END;
/
@@ -2841,11 +3351,31 @@ EXCEPTION
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('DAILY', 'E', 'Proces afgebroken!', v_errormsg);
fac.writelog ('Monthly', 'E', 'Proces afgebroken!', v_errormsg);
END hpji_monthly;
/
CREATE OR REPLACE PROCEDURE hpji_daily
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
hpji.hpji_acties_verkoopcontracten;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('DAILY', 'E', 'Proces afgebroken!', v_errormsg);
END hpji_daily;
/
CREATE OR REPLACE PROCEDURE hpji_processemail (pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,