From 54c8380c8e21aa309218c01bdbb425d338418496 Mon Sep 17 00:00:00 2001 From: Robin Stoker Date: Thu, 25 Jun 2020 14:38:49 +0000 Subject: [PATCH] STCH#62831 -- Notificatie bij technische leveranciers STCH#61702 -- Fiatteren en kostentechnisch gereedmelden via Strukton koppeling svn path=/Customer/trunk/; revision=47253 --- STCH/stch.sql | 107 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 98 insertions(+), 9 deletions(-) diff --git a/STCH/stch.sql b/STCH/stch.sql index c5657913f..d3d069696 100644 --- a/STCH/stch.sql +++ b/STCH/stch.sql @@ -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