RABO#67042 -- Postscript voor opdrachten op verwerkt zetten(verbetering voortkomend uit Mareon-factuurscanningsproject)
svn path=/Customer/; revision=54210
This commit is contained in:
148
onces/AA/RABO/RABO#67042_postscript_verwerk_opdracht.sql
Normal file
148
onces/AA/RABO/RABO#67042_postscript_verwerk_opdracht.sql
Normal file
@@ -0,0 +1,148 @@
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
-- Script om de Opdrachten met terugwerkende kracht op verwerkt te zetten. Tijdens de inkoopinterface-run is dit niet gebeurd aangezien kenmerk laatste factuur nog op NEE stond
|
||||
|
||||
DEFINE thisfile = 'RABO#67042_postscript_verwerk_opdracht.SQL'
|
||||
DEFINE dbuser = 'RABO'
|
||||
|
||||
SET ECHO ON
|
||||
SET DEFINE ON
|
||||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||||
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
|
||||
WHENEVER SQLERROR CONTINUE;
|
||||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||||
SPOOL &fcltlogfile
|
||||
WHENEVER SQLERROR EXIT;
|
||||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
|
||||
WHENEVER SQLERROR CONTINUE;
|
||||
PROMPT &fcltcusterr
|
||||
SET DEFINE OFF
|
||||
|
||||
------ payload begin ------
|
||||
|
||||
|
||||
DECLARE
|
||||
v_errormsg VARCHAR (200);
|
||||
v_errorhint VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (150);
|
||||
currentversion fac_module.fac_module_version%TYPE;
|
||||
v_aanduiding VARCHAR (100);
|
||||
v_count NUMBER;
|
||||
v_aanvrager NUMBER(10);
|
||||
|
||||
CURSOR c
|
||||
IS
|
||||
SELECT mld_melding_key,
|
||||
mld_melding_status,
|
||||
opdr.mld_opdr_key,
|
||||
opdrachtnr,
|
||||
mld_opdr_kosten,
|
||||
mld_statusopdr_omschrijving,
|
||||
mld_statusopdr_key,
|
||||
f.fin_factuur_key,
|
||||
gefactureerd,
|
||||
datum_ingevoerd,
|
||||
(SELECT 'mareon'
|
||||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||||
WHERE ft.fac_tracking_refkey = f.fin_factuur_key
|
||||
AND ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||||
AND sn.fac_srtnotificatie_xmlnode = 'factuur'
|
||||
AND sn.fac_srtnotificatie_code = 'FINUPD'
|
||||
AND ( INSTR (ft.fac_tracking_oms,
|
||||
'Factuur geimporteerd vanuit Mareon') >
|
||||
0
|
||||
OR INSTR (ft.fac_tracking_oms, 'Mareon-factuurimport:') >
|
||||
0))
|
||||
mareon_factuur
|
||||
FROM (SELECT mld_opdr_key,
|
||||
o.mld_melding_key,
|
||||
m.mld_melding_status,
|
||||
sd.ins_srtdiscipline_prefix
|
||||
|| o.mld_melding_key
|
||||
|| '/'
|
||||
|| mld_opdr_bedrijfopdr_volgnr
|
||||
opdrachtnr,
|
||||
mld_opdr_kosten,
|
||||
v.mld_statusopdr_omschrijving,
|
||||
o.mld_statusopdr_key
|
||||
FROM mld_opdr o,
|
||||
mld_statusopdr v,
|
||||
mld_melding m,
|
||||
mld_stdmelding sm,
|
||||
mld_discipline d,
|
||||
ins_srtdiscipline sd
|
||||
WHERE o.mld_statusopdr_key = v.mld_statusopdr_key
|
||||
AND o.mld_statusopdr_key NOT IN (1, 7) -- afgewezen of verwerkt
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||||
) opdr,
|
||||
( SELECT mld_opdr_key,
|
||||
MAX (fin_factuur_key) fin_factuur_key,
|
||||
SUM (fin_factuur_totaal) gefactureerd
|
||||
FROM fin_factuur
|
||||
WHERE fin_factuur_verwijder IS NULL
|
||||
GROUP BY mld_opdr_key) f,
|
||||
(SELECT f.fin_factuur_key,
|
||||
fac.gettrackingdate ('FINNEW', f.fin_factuur_key)
|
||||
datum_ingevoerd
|
||||
FROM fin_factuur f, fin_kenmerkfactuur kf
|
||||
WHERE f.fin_factuur_key = kf.fin_factuur_key
|
||||
AND kf.fin_kenmerk_key = 2
|
||||
AND kf.fin_kenmerkfactuur_waarde = 2 -- Op laatste factuur nee
|
||||
AND f.fin_factuur_statuses_key IN (7) -- factuur is al verwerkt
|
||||
AND f.fin_factuur_verwijder IS NULL
|
||||
) n
|
||||
WHERE f.mld_opdr_key = opdr.mld_opdr_key
|
||||
AND f.fin_factuur_key = n.fin_factuur_key
|
||||
AND mld_opdr_kosten <= gefactureerd
|
||||
;
|
||||
|
||||
BEGIN
|
||||
-- Facilitor user
|
||||
v_aanvrager := 4;
|
||||
|
||||
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
-- overgenomen uit aaxx VERWERK_EXACT
|
||||
-- indien nog niet afgemeld, dan maar even afmelden.
|
||||
IF rec.mld_statusopdr_key <> 6 AND rec.mld_statusopdr_key <> 7 AND rec.mld_statusopdr_key <> 9 THEN
|
||||
mld.setopdrachtstatus (rec.mld_opdr_key, 6, v_aanvrager);
|
||||
mld.setopdrachtstatus (rec.mld_opdr_key, 9, v_aanvrager);
|
||||
END IF;
|
||||
|
||||
UPDATE mld_opdr o
|
||||
SET mld_opdr_kosten = rec.gefactureerd
|
||||
WHERE o.mld_opdr_key = rec.mld_opdr_key
|
||||
AND rec.mld_melding_status IN (4, 5, 7); -- anders faalt de trigger sowieso (in behandeling, uitgegeven, afgemeld)
|
||||
|
||||
-- update meldingstatus
|
||||
mld.updatemeldingstatusAV (rec.mld_melding_key, 0, v_aanvrager, 0);
|
||||
-- zet de status naar verwerkt (user is facilitor)
|
||||
mld.setopdrachtstatus (rec.mld_opdr_key, 7, v_aanvrager);
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||||
/
|
||||
|
||||
COMMIT;
|
||||
SET ECHO OFF
|
||||
SPOOL OFF
|
||||
SET DEFINE ON
|
||||
PROMPT Logfile of this upgrade is: &fcltlogfile
|
||||
Reference in New Issue
Block a user