STCH#62831 -- Notificatie bij technische leveranciers

STCH#61702 -- Fiatteren en kostentechnisch gereedmelden via Strukton koppeling

svn path=/Customer/trunk/; revision=47253
This commit is contained in:
Robin Stoker
2020-06-25 14:38:49 +00:00
parent adc1d38fdd
commit 54c8380c8e

View File

@@ -501,7 +501,9 @@ AS
AND o.mld_statusopdr_key IN (5) -- Toegekend, dus nog geen reactie ontvangen
AND o.mld_uitvoerende_keys = 50422
AND o.mld_typeopdr_key = mo.mld_typeopdr_key;
-- Wijzigingen in Strukton koppeling nog even niet naar PROD
/*
--Strukton koppeling
CREATE OR REPLACE PROCEDURE stch_import_opdrstat_strukton (
p_import_key IN NUMBER)
@@ -529,6 +531,8 @@ AS
v_datumtijd DATE;
v_datumtijd_tekst VARCHAR2 (100);
v_opmerking VARCHAR2 (3000);
v_totaal NUMBER (8,2);
v_totaal_str VARCHAR2 (100);
-- Overige velden:
CURSOR c1
@@ -570,6 +574,9 @@ BEGIN
|| '|'
|| v_opmerking
|| '] ';
v_totaal := fac.safe_to_number(v_totaal_str);
fac.imp_writelog (p_import_key, 'I', 'v_totaal_str:' || v_totaal_str || ' v_totaal:' || v_totaal || ' fac.safe_to_number(v_totaal_str):' || fac.safe_to_number(v_totaal_str),'');
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
@@ -581,6 +588,7 @@ BEGIN
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
AND UPPER (TRIM (v_totaal_str)) = 'TOTAL'
THEN
header_is_valid := 1;
END IF;
@@ -641,10 +649,9 @@ BEGIN
WHEN v_status_code = '30' -- technisch gereed
THEN
v_status := 6; -- afgemeld
-- For future use
-- WHEN v_status_code = '40' -- uitgeprijst
-- THEN
-- v_status := 6; -- afgemeld
WHEN v_status_code = '45' -- uitgeprijst
THEN
v_status := 9; -- afgerond
WHEN v_status_code = '70'
THEN
v_status := 1; -- geannuleerd
@@ -719,12 +726,14 @@ BEGIN
extern_nummer,
status,
datumtijd,
opmerking)
opmerking,
totaal)
VALUES (v_mld_opdr_key,
v_extern_nummer,
v_status,
v_datumtijd,
v_opmerking);
v_opmerking,
v_totaal);
v_count_import := v_count_import + 1;
EXCEPTION
@@ -795,7 +804,8 @@ AS
extern_nummer,
datumtijd,
status,
opmerking
opmerking,
totaal
FROM stch_imp_opdrstat_strukton
ORDER BY 1, 3;
@@ -813,6 +823,10 @@ AS
v_mld_kenmerk_key NUMBER (10);
v_mld_kenmerkopdr_key NUMBER (10);
v_mld_srtkenmerk_key NUMBER (10);
v_goedgekeurd NUMBER (10);
v_opdrgoed_key NUMBER (10);
v_opdrkosten NUMBER (12,2);
BEGIN
-- Loop door alle geimporteerde opdrachtstatusberichten en verwerk deze.
v_count_tot := 0;
@@ -835,6 +849,7 @@ BEGIN
|| '] ';
v_count_tot := v_count_tot + 1;
v_count := 0;
v_opdrkosten := rec.totaal;
-- Key van melding/opdracht bepalen en externnr bij opdracht opslaan.
IF (rec.mld_opdr_key IS NOT NULL)
@@ -858,7 +873,21 @@ BEGIN
INTO v_mld_kenmerkopdr_key
FROM mld_kenmerkopdr ko
WHERE ko.mld_opdr_key = v_opdr_key
AND v_mld_kenmerk_key = ko.mld_kenmerk_key;
AND v_mld_kenmerk_key = ko.mld_kenmerk_key;
v_errormsg := 'Fout bij bepalen kenmerk goedgekeurd.';
SELECT k.mld_kenmerk_key
INTO v_goedgekeurd
FROM mld_kenmerk k
WHERE k.mld_srtkenmerk_key = 1041 -- goedgekeurd
AND k.mld_typeopdr_key = v_mld_typeopdr_key;
v_errormsg := 'Fout bij bepalen kenmerkopdracht goedgekeurd.';
SELECT max(ko.mld_kenmerkopdr_key)
INTO v_opdrgoed_key
FROM mld_kenmerkopdr ko
WHERE ko.mld_opdr_key = v_opdr_key
AND v_goedgekeurd = ko.mld_kenmerk_key;
v_errormsg := 'Fout bij aanpassen extern nummer.';
IF v_mld_kenmerkopdr_key IS NULL THEN
@@ -901,6 +930,24 @@ BEGIN
THEN
-- Meld de opdracht af als deze geaccepteerd was
MLD.setopdrachtstatus (v_opdr_key, 6, v_user_key); -- Facilitor
ELSIF rec.status = 9 AND v_opdr_status = 6
THEN
-- De opdracht is in Focus uitgeprijst door Sitech, dus deze mag nu als goedgekeurd worden gezien.
IF v_opdrgoed_key IS NULL THEN
-- kenmerk toevoegen
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde)
VALUES (v_goedgekeurd, v_opdr_key, '142');
fac.trackaction ('ORDUPD', v_opdr_key, NULL, SYSDATE, 'Goedgekeurd: --> Ja');
ELSE
-- kenmerk aanpassen
UPDATE mld_kenmerkopdr SET mld_kenmerkopdr_waarde = '142' WHERE mld_kenmerkopdr_key = v_opdrgoed_key;
fac.trackaction ('ORDUPD', v_opdr_key, NULL, SYSDATE, 'Goedgekeurd: --> Ja');
END IF;
-- Het totaalbedrag mag nu ook worden weggeschreven, dit is immers al goedgekeurd.
UPDATE mld_opdr SET mld_opdr_kosten = v_opdrkosten WHERE mld_opdr_key = v_opdr_key;
-- Meld de opdracht kostentechnisch gereed wanneer deze was afgemeld
MLD.setopdrachtstatus (v_opdr_key, 9, v_user_key); -- Facilitor
fac.trackaction ('ORDAFR', v_opdr_key, NULL, SYSDATE, NULL);
ELSIF rec.status = 1 AND v_opdr_status = 5
THEN
-- Opdracht is afgewezen op het moment dat de opdracht nog niet geaccepteerd is.
@@ -944,6 +991,7 @@ BEGIN
COMMIT;
END;
/
*/
-- Rapportage voor login
CREATE OR REPLACE VIEW STCH_V_RAP_NOLOGIN
@@ -1925,6 +1973,47 @@ AS
AND u.melding_key = nta.mld_melding_key(+)
AND u.opdracht_type = 'RFQ';
-- Opdracht ook via mail naar interne mailbox wanneer verstuurd aan een technische leverancier.
CREATE OR REPLACE VIEW stch_v_noti_opdracht
(
code,
sender,
receiver,
text,
key,
xkey,
xsender,
xemail,
xmobile,
attachments
)
AS
SELECT 'ORDSNT', -- Opdracht verzonden naar leverancier
NULL,
NULL,
'Opdracht met nummer '|| TO_CHAR (o.mld_melding_key) || '/' || o.mld_opdr_bedrijfopdr_volgnr || 'is verzonden naar ' || b.prs_bedrijf_naam,
o.mld_opdr_key,
NULL,
NULL,
'werkvergunningen.facility@sitech.nl',
NULL,
NULL
FROM mld_opdr o, fac_tracking t, prs_bedrijf b, fac_usrdata f
WHERE o.mld_opdr_key = t.fac_tracking_refkey
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND f.fac_usrtab_key = 661
AND f.fac_usrdata_code = b.prs_bedrijf_key
AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval
/ 24
FROM fac_notificatie_job
WHERE UPPER(fac_notificatie_job_view) =
'STCH_V_NOTI_OPDRACHT')
AND (SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER(fac_notificatie_job_view) =
'STCH_V_NOTI_OPDRACHT');
------ payload end ------
SET DEFINE OFF