AALB#20839
svn path=/Customer/trunk/; revision=14842
This commit is contained in:
503
AA/aaxx.sql
503
AA/aaxx.sql
@@ -1,7 +1,7 @@
|
||||
-- Script containing customer generic configuration sql statements for AAFM
|
||||
-- (c) 2009 SG|facilitor
|
||||
-- $Revision: 78 $
|
||||
-- $Modtime: 1-06-11 11:22 $
|
||||
-- $Revision: 79 $
|
||||
-- $Modtime: 23-06-11 10:11 $
|
||||
--
|
||||
-- Support: +31 53 4800710
|
||||
|
||||
@@ -12,7 +12,7 @@ update fac_locale_xsl set fac_locale_xsl_tekst = 'Alle bedragen zijn exclusief B
|
||||
|
||||
update fac_locale_xsl set fac_locale_xsl_tekst = 'All prices exclude VAT' where fac_locale_xsl_module = 'BES' and FAC_LOCALE_XSL_LANG = 'EN' and FAC_LOCALE_XSL_LABEL = 'inclusief';
|
||||
|
||||
@aa_prs_pack.sql;
|
||||
@@aa_prs_pack.sql;
|
||||
|
||||
--=============================================================================
|
||||
-- EXPORTFUNCTIES GENERIEK
|
||||
@@ -367,6 +367,13 @@ AS
|
||||
'Onbekend'),
|
||||
'Onbekend'),
|
||||
k.prs_kostensoort_refcode),
|
||||
'LB', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
|
||||
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '1350822' ,
|
||||
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
|
||||
'Workorder', '1350823',
|
||||
'Onbekend'),
|
||||
'Onbekend'),
|
||||
k.prs_kostensoort_refcode),
|
||||
'NS', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
|
||||
'2009', DECODE (substr(k.prs_kostensoort_upper,1,2), 'PR', '1350819' , '1350818'),
|
||||
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'PR', '1350817' ,
|
||||
@@ -401,6 +408,16 @@ AS
|
||||
'Onbekend'),
|
||||
'Onbekend'),
|
||||
'Onbekend'),
|
||||
'LB', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
|
||||
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1033302',
|
||||
'Workorder', '1033304',
|
||||
'Onbekend'),
|
||||
'Onbekend'),
|
||||
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '8110555',
|
||||
'Workorder', '8210532',
|
||||
'Onbekend'),
|
||||
'Onbekend'),
|
||||
'Onbekend'),
|
||||
'DSM', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
|
||||
'2010', DECODE (substr(k.prs_kostensoort_upper,1,3), 'ST ', '8110521' ,
|
||||
'STB', '8110521' ,
|
||||
@@ -651,6 +668,8 @@ AS
|
||||
, ( SELECT DECODE(SUBSTR(PRS_KOSTENPLAATS_NR, 1,1), '2', 'KP999999', PRS_KOSTENPLAATS_NR)
|
||||
FROM prs_kostenplaats kp
|
||||
WHERE kp.prs_kostenplaats_key = fg.prs_kostenplaats_key))
|
||||
, 'CE', '02410001'
|
||||
, 'LB', '02610001'
|
||||
, 'FPC', '00780164'
|
||||
, 'KP999999') kstplcode,
|
||||
'KD999999' kstdrcode,
|
||||
@@ -831,10 +850,12 @@ BEGIN
|
||||
DECODE (aaxx_get_user, 'DOW', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||||
'DSM', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||||
'CE', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||||
'LB', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||||
SUBSTR (prs_kostenplaats_nr, 1, 30)),
|
||||
DECODE (aaxx_get_user, 'DOW', aaxx_get_dep_oms(k.prs_kostenplaats_nr),
|
||||
'DSM', aaxx_get_dep_oms(k.prs_kostenplaats_nr),
|
||||
'CE', aaxx_get_dep_oms(k.prs_kostenplaats_nr),
|
||||
'LB', aaxx_get_dep_oms(k.prs_kostenplaats_nr),
|
||||
SUBSTR(prs_kostenplaats_nr, 1, 30)),
|
||||
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
|
||||
ks.prs_kostensoort_opmerking,
|
||||
@@ -865,7 +886,7 @@ BEGIN
|
||||
u.jaar
|
||||
|| '-'
|
||||
|| LTRIM (TO_CHAR (u.maand, '00'))),
|
||||
DECODE (aaxx_get_user, 'DSM', 1, 'NS', 1.065, 'CE', 1, 'DOW', 1)
|
||||
DECODE (aaxx_get_user, 'DSM', 1, 'NS', 1.065, 'CE', 1, 'DOW', 1, 'LB', 1)
|
||||
),
|
||||
2
|
||||
),
|
||||
@@ -941,6 +962,8 @@ BEGIN
|
||||
SELECT 'CNT',
|
||||
v_logdate,
|
||||
DECODE (aaxx_get_user,
|
||||
'LB',
|
||||
aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||||
'DOW',
|
||||
aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||||
'DSM',
|
||||
@@ -951,6 +974,8 @@ BEGIN
|
||||
SUBSTR (prs_kostenplaats_nr, 1, 30)
|
||||
),
|
||||
DECODE (aaxx_get_user,
|
||||
'LB',
|
||||
aaxx_get_dep_oms (k.prs_kostenplaats_nr),
|
||||
'DOW',
|
||||
aaxx_get_dep_oms (k.prs_kostenplaats_nr),
|
||||
'DSM',
|
||||
@@ -971,6 +996,7 @@ BEGIN
|
||||
|| DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
|
||||
omschrijving,
|
||||
DECODE (aaxx_get_user,
|
||||
'LB', fg.bedrag,
|
||||
'DOW', fg.bedrag,
|
||||
'DSM', COALESCE((SELECT ROUND (fg.bedrag * u.uplift, 2)
|
||||
FROM aaxx_imp_uplift u
|
||||
@@ -1067,6 +1093,20 @@ BEGIN
|
||||
WHERE export_datum = v_logdate;
|
||||
END IF;
|
||||
|
||||
IF aaxx_get_user = 'LB' THEN
|
||||
INSERT INTO aaxx_verkoopbuffer
|
||||
(
|
||||
module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw
|
||||
)
|
||||
SELECT module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'BASE FEE 2%', round(bedrag*0.02,2), btw, fin_btwtabelwaarde_code, opdr_jaar, 'X'
|
||||
FROM aaxx_verkoopbuffer
|
||||
WHERE export_datum = v_logdate
|
||||
UNION ALL
|
||||
SELECT module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'BASE FEE 5,5%', round(bedrag*0.0055,2), btw, fin_btwtabelwaarde_code, opdr_jaar, 'X'
|
||||
FROM aaxx_verkoopbuffer
|
||||
WHERE export_datum = v_logdate;
|
||||
END IF;
|
||||
|
||||
FOR rec1 IN c_bes
|
||||
LOOP
|
||||
BEGIN
|
||||
@@ -1189,7 +1229,7 @@ AS
|
||||
|| ','
|
||||
|| ''
|
||||
|| ','
|
||||
|| DECODE(aaxx_get_user, 'DOW', '02510001', 'DSM', '02210001', 'CE', '02410001', 'NS',exact_code_gebouw)
|
||||
|| DECODE(aaxx_get_user, 'LB', '02610001', 'DOW', '02510001', 'DSM', '02210001', 'CE', '02410001', 'NS',exact_code_gebouw)
|
||||
|| ','
|
||||
|| ''
|
||||
|| ','
|
||||
@@ -1201,7 +1241,7 @@ AS
|
||||
|| ','
|
||||
|| ''
|
||||
|| ','
|
||||
|| DECODE(aaxx_get_user, 'DOW', '60', 'DSM', 'E9', 'NS','E6', 'CE', '45')
|
||||
|| DECODE(aaxx_get_user, 'LB', '60', 'DOW', '60', 'DSM', 'E9', 'NS','E6', 'CE', '45')
|
||||
|| ','
|
||||
|| '1'
|
||||
|| ','
|
||||
@@ -1264,7 +1304,7 @@ AS
|
||||
replace(prs_kostensoortgrp_oms, ',', '') || prs_kostenplaats_nr || '0'
|
||||
FROM aaxx_verkoopbuffer
|
||||
WHERE naar_exact IS NULL
|
||||
GROUP BY replace(prs_kostensoortgrp_oms, ',', ''), prs_kostenplaats_nr, DECODE(aaxx_get_user, 'DOW', '02510001', 'DSM', '02210001','CE', '02410001', 'NS',exact_code_gebouw), opdr_jaar
|
||||
GROUP BY replace(prs_kostensoortgrp_oms, ',', ''), prs_kostenplaats_nr, DECODE(aaxx_get_user, 'LB', '02610001', 'DOW', '02510001', 'DSM', '02210001','CE', '02410001', 'NS',exact_code_gebouw), opdr_jaar
|
||||
UNION ALL
|
||||
SELECT '1'
|
||||
|| ','
|
||||
@@ -1347,6 +1387,7 @@ AS
|
||||
|| DECODE (aaxx_get_user, 'DSM', substr(prs_kostensoort_oms, 1, instr(prs_kostensoort_oms, ' ')-1)||prs_kostenplaats_nr,
|
||||
'CE', DECODE (omschrijving, 'BASE FEE 2%', '999999', prs_kostenplaats_nr),
|
||||
'DOW', DECODE (omschrijving, 'BASE FEE 3%', '999999', prs_kostenplaats_nr),
|
||||
'LB', DECODE (omschrijving, 'BASE FEE 2%', '999999', prs_kostenplaats_nr),
|
||||
prs_kostenplaats_nr)
|
||||
|| ','
|
||||
|| ''
|
||||
@@ -4792,7 +4833,7 @@ BEGIN
|
||||
p_applrun,
|
||||
'I',
|
||||
'Arcadis Aqumen ruimtesoort import version ' || currentversion,
|
||||
'$Revision: 78 $'
|
||||
'$Revision: 79 $'
|
||||
);
|
||||
|
||||
SELECT COUNT (*)
|
||||
@@ -4804,7 +4845,7 @@ BEGIN
|
||||
p_applrun,
|
||||
'E',
|
||||
'Arcadis Aqumen ruimtesoort import bevat geen records',
|
||||
'$Revision: 78 $'
|
||||
'$Revision: 79 $'
|
||||
);
|
||||
return;
|
||||
END IF;
|
||||
@@ -5185,7 +5226,7 @@ BEGIN
|
||||
p_applrun,
|
||||
'I',
|
||||
'Arcadis Aqumen Contract import version ' || currentversion,
|
||||
'$Revision: 78 $'
|
||||
'$Revision: 79 $'
|
||||
);
|
||||
|
||||
SELECT COUNT (*)
|
||||
@@ -5197,7 +5238,7 @@ BEGIN
|
||||
p_applrun,
|
||||
'E',
|
||||
'Arcadis Aqumen Contract import bevat geen records',
|
||||
'$Revision: 78 $'
|
||||
'$Revision: 79 $'
|
||||
);
|
||||
return;
|
||||
END IF;
|
||||
@@ -5475,7 +5516,445 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
/*
|
||||
-------------------------------------------------------------------------------
|
||||
-- KOPPELINGEN MET LEVERANCIERS
|
||||
-------------------------------------------------------------------------------
|
||||
CREATE OR REPLACE PROCEDURE aaxx_import_opdrstat_strukton (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2)
|
||||
AS
|
||||
c_delim VARCHAR2 (1) := ';';
|
||||
v_newline VARCHAR2 (1000); -- Input line
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_dummy VARCHAR2 (200);
|
||||
header_is_valid NUMBER := 0;
|
||||
v_count NUMBER;
|
||||
v_count_tot NUMBER (10) := 0;
|
||||
v_count_import NUMBER (10) := 0;
|
||||
v_ongeldig NUMBER (1) := 0;
|
||||
-- De importvelden
|
||||
v_mld_opdr_key NUMBER (10);
|
||||
v_mld_opdr_key_tekst VARCHAR2 (100);
|
||||
v_extern_nummer VARCHAR2 (100);
|
||||
v_status NUMBER (10);
|
||||
v_status_tekst VARCHAR2 (100);
|
||||
v_status_code VARCHAR2 (100);
|
||||
v_datumtijd DATE;
|
||||
v_datumtijd_tekst VARCHAR2 (100);
|
||||
v_opmerking VARCHAR2 (1000);
|
||||
|
||||
-- Overige velden:
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_imp_file_applicatie = p_applname
|
||||
ORDER BY fac_imp_file_index;
|
||||
BEGIN
|
||||
-- Eerst opruiming
|
||||
DELETE FROM imp_log
|
||||
WHERE imp_log_applicatie = p_applname
|
||||
AND imp_log_datum < SYSDATE - 28;
|
||||
|
||||
DELETE FROM aaxx_imp_opdrstat_strukton;
|
||||
|
||||
COMMIT;
|
||||
|
||||
FOR rec1 IN c1
|
||||
LOOP
|
||||
BEGIN
|
||||
v_newline := rec1.fac_imp_file_line;
|
||||
v_errormsg := 'Fout opvragen te importeren rij';
|
||||
v_aanduiding := '';
|
||||
v_ongeldig := 0;
|
||||
|
||||
fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst);
|
||||
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
|
||||
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
|
||||
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
|
||||
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
|
||||
fac.imp_getfield (v_newline, c_delim, v_opmerking);
|
||||
v_aanduiding :=
|
||||
'['
|
||||
|| v_extern_nummer
|
||||
|| '|'
|
||||
|| v_mld_opdr_key_tekst
|
||||
|| '|'
|
||||
|| v_status_tekst
|
||||
|| '|'
|
||||
|| v_opmerking
|
||||
|| '] ';
|
||||
|
||||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||||
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID'
|
||||
AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID'
|
||||
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
|
||||
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
|
||||
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
ELSE
|
||||
v_count_tot := v_count_tot + 1;
|
||||
-- Controleer alle veldwaarden
|
||||
v_errormsg := 'Fout inlezen mld_opdr_key [' || v_aanduiding || ']';
|
||||
v_mld_opdr_key := TRIM (v_mld_opdr_key);
|
||||
|
||||
SELECT COUNT (mld_opdr_key)
|
||||
INTO v_count
|
||||
FROM mld_opdr o
|
||||
WHERE o.mld_opdr_key = fac.safe_to_number (v_mld_opdr_key_tekst);
|
||||
|
||||
IF v_count <> 1
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
v_errormsg :=
|
||||
'Opdracht kan niet gevonden worden. (aantal gevonden opdrachten: '
|
||||
|| v_count
|
||||
|| ') ['
|
||||
|| v_aanduiding
|
||||
|| ']';
|
||||
ELSE
|
||||
v_mld_opdr_key := TO_CHAR (v_mld_opdr_key_tekst);
|
||||
END IF;
|
||||
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
v_errormsg :=
|
||||
'Fout bij bepalen status [' || v_aanduiding || ']';
|
||||
|
||||
CASE
|
||||
WHEN v_status_code = '5'
|
||||
THEN
|
||||
v_status := 5; -- uitgegeven
|
||||
WHEN v_status_code = '10'
|
||||
THEN
|
||||
v_status := 8; -- geaccepteerd
|
||||
WHEN v_status_code = '20'
|
||||
THEN
|
||||
v_status := 6; -- afgemeld
|
||||
ELSE
|
||||
v_status := NULL;
|
||||
-- v_ongeldig := 1; nog te bezien.
|
||||
END CASE;
|
||||
END IF;
|
||||
|
||||
-- Lees alle veldwaarden
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
v_errormsg :=
|
||||
'Fout bij converteren datumtijd [' || v_aanduiding || ']';
|
||||
v_datumtijd :=
|
||||
fac.safe_to_date (
|
||||
REPLACE (
|
||||
SUBSTR (v_datumtijd_tekst,
|
||||
1,
|
||||
INSTR (v_datumtijd_tekst, '.') - 1),
|
||||
'T',
|
||||
' '),
|
||||
'yyyy-mm-dd hh24:mi:ss');
|
||||
|
||||
IF v_datumtijd = NULL
|
||||
THEN
|
||||
v_ongeldig := 0;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
v_errormsg :=
|
||||
'Fout bij aanvullen opmerking [' || v_aanduiding || ']';
|
||||
|
||||
IF v_opmerking IS NOT NULL
|
||||
THEN
|
||||
v_opmerking :=
|
||||
'['
|
||||
|| v_datumtijd_tekst
|
||||
|| '] - '
|
||||
|| v_status_tekst
|
||||
|| CHR (13)
|
||||
|| CHR (10)
|
||||
|| v_opmerking;
|
||||
ELSE
|
||||
v_opmerking :=
|
||||
'[' || v_datumtijd_tekst || '] - ' || v_status_tekst;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Insert geformatteerde import record
|
||||
IF (v_ongeldig = 0)
|
||||
THEN
|
||||
BEGIN
|
||||
v_errormsg :=
|
||||
'Fout toevoegen opdracht status ['
|
||||
|| v_aanduiding
|
||||
|| ']';
|
||||
|
||||
INSERT INTO aaxx_imp_opdrstat_strukton (mld_opdr_key,
|
||||
extern_nummer,
|
||||
status,
|
||||
datumtijd,
|
||||
opmerking)
|
||||
VALUES (v_mld_opdr_key,
|
||||
v_extern_nummer,
|
||||
v_status,
|
||||
v_datumtijd,
|
||||
v_opmerking);
|
||||
|
||||
v_count_import := v_count_import + 1;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
v_errormsg
|
||||
|| ' ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (
|
||||
p_applname,
|
||||
p_applrun,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Fout bij toevoegen regel aan importtabel aaxx_imp_opdr_status_strukton.');
|
||||
END;
|
||||
ELSE
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
'E',
|
||||
v_errormsg,
|
||||
'');
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
'E',
|
||||
'Ongeldig importbestand',
|
||||
'Geen header of header niet volgens specificatie!');
|
||||
END IF;
|
||||
|
||||
DELETE FROM fac_imp_file
|
||||
WHERE fac_imp_file_applicatie = p_applname;
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
v_errormsg
|
||||
|| 'ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Inleesproces opdrachtstatusberichten afgebroken!');
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE aaxx_update_opdrstat_strukton (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2)
|
||||
AS
|
||||
-- Cursor loopt - in volgorde! - over alle ingelezen opdrachtstatusberichten.
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT mld_opdr_key,
|
||||
extern_nummer,
|
||||
datumtijd,
|
||||
status,
|
||||
opmerking
|
||||
FROM aaxx_imp_opdrstat_strukton
|
||||
ORDER BY 1, 3;
|
||||
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_count_tot NUMBER (10);
|
||||
v_count NUMBER (10);
|
||||
v_mld_key NUMBER (10) := 0;
|
||||
v_opdr_key NUMBER (10) := 0;
|
||||
v_opdr_status NUMBER (10) := 0;
|
||||
v_mld_typeopdr_key NUMBER (10);
|
||||
v_mld_kenmerk_key NUMBER (10);
|
||||
v_mld_kenmerkopdr_key NUMBER (10);
|
||||
BEGIN
|
||||
-- Loop door alle geimporteerde opdrachtstatusberichten en verwerk deze.
|
||||
v_count_tot := 0;
|
||||
|
||||
FOR rec IN c1
|
||||
LOOP
|
||||
BEGIN
|
||||
v_aanduiding :=
|
||||
'['
|
||||
|| rec.mld_opdr_key
|
||||
|| '|'
|
||||
|| SUBSTR (rec.opmerking, 1, 100)
|
||||
|| '] ';
|
||||
v_count_tot := v_count_tot + 1;
|
||||
v_count := 0;
|
||||
|
||||
-- Key van melding/opdracht bepalen en externnr bij opdracht opslaan.
|
||||
IF (rec.mld_opdr_key IS NOT NULL)
|
||||
THEN
|
||||
v_errormsg := 'Fout bij bepalen opdracht.';
|
||||
|
||||
SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key
|
||||
INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key
|
||||
FROM mld_opdr
|
||||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||||
|
||||
v_errormsg := 'Fout bij bepalen kenmerk extern nummer.';
|
||||
SELECT k.mld_kenmerk_key, ko.mld_kenmerkopdr_key
|
||||
INTO v_mld_kenmerk_key, v_mld_kenmerkopdr_key
|
||||
FROM mld_kenmerk k, mld_kenmerkopdr ko
|
||||
WHERE k.mld_srtkenmerk_key = 35 -- AASA
|
||||
AND k.mld_typeopdr_key = v_mld_typeopdr_key
|
||||
AND k.mld_kenmerk_key = ko.mld_kenmerk_key(+);
|
||||
|
||||
v_errormsg := 'Fout bij aanpassen extern nummer.';
|
||||
IF v_mld_kenmerkopdr_key IS NULL THEN
|
||||
-- kenmerk toevoegen
|
||||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde)
|
||||
VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer);
|
||||
ELSE
|
||||
-- kenmerk aanpassen
|
||||
UPDATE mld_kenmerkopdr SET mld_kenmerkopdr_waarde = rec.extern_nummer WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key;
|
||||
END IF;
|
||||
|
||||
v_errormsg := 'Fout bij bijwerken opdracht-opmerking.';
|
||||
|
||||
v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte!
|
||||
|
||||
UPDATE mld_opdr
|
||||
SET mld_opdr_opmerking =
|
||||
DECODE (
|
||||
mld_opdr_opmerking,
|
||||
NULL,
|
||||
rec.opmerking,
|
||||
rec.opmerking
|
||||
|| CHR (13)
|
||||
|| CHR (10)
|
||||
|| SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count)))
|
||||
WHERE mld_opdr_key = v_opdr_key;
|
||||
|
||||
IF v_opdr_status <> rec.status
|
||||
THEN
|
||||
IF rec.status = 8 AND v_opdr_status = 5
|
||||
THEN
|
||||
-- Accepteer opdracht als de opdracht uitgegeven was
|
||||
MLD.setopdrachtstatus (v_opdr_key, 8, 4); -- Facilitor
|
||||
ELSIF rec.status = 6 AND v_opdr_status = 5
|
||||
THEN
|
||||
-- Meld de opdracht af als deze uitgegeven was
|
||||
MLD.setopdrachtstatus (v_opdr_key, 8, 4); -- Facilitor, eerst accepteren
|
||||
MLD.setopdrachtstatus (v_opdr_key, 6, 4); -- Facilitor
|
||||
ELSIF rec.status = 6 AND v_opdr_status = 8
|
||||
THEN
|
||||
-- Meld de opdracht af als deze geaccepteerd was
|
||||
MLD.setopdrachtstatus (v_opdr_key, 6, 4); -- Facilitor
|
||||
END IF;
|
||||
|
||||
IF rec.status = 6 AND v_opdr_status <> 6
|
||||
THEN
|
||||
UPDATE mld_melding
|
||||
SET mld_melding_opmerking =
|
||||
DECODE (
|
||||
mld_melding_opmerking,
|
||||
NULL,
|
||||
rec.opmerking,
|
||||
rec.opmerking || CHR (13) || CHR (10)
|
||||
|| SUBSTR (mld_melding_opmerking,
|
||||
1,
|
||||
(4000 - v_count)))
|
||||
WHERE mld_melding_key = v_mld_key
|
||||
AND mld_melding_status IN (4, 7);
|
||||
|
||||
|
||||
v_errormsg := 'Fout bij sluiten melding.';
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count
|
||||
FROM (SELECT m.mld_melding_key,
|
||||
(SELECT COUNT ( * )
|
||||
FROM mld_opdr o
|
||||
WHERE mld_melding_key = m.mld_melding_key)
|
||||
aanw_opdr,
|
||||
(SELECT COUNT ( * )
|
||||
FROM mld_opdr o
|
||||
WHERE mld_melding_key = m.mld_melding_key
|
||||
AND o.mld_statusopdr_key NOT IN
|
||||
(1, 2, 6, 7, 9))
|
||||
open_opdr
|
||||
FROM mld_melding m
|
||||
WHERE m.mld_melding_key = v_mld_key
|
||||
AND m.mld_melding_status IN (4, 7))
|
||||
niet_opgelost
|
||||
WHERE aanw_opdr > 0 AND open_opdr = 0;
|
||||
|
||||
IF (v_count = 1)
|
||||
THEN
|
||||
MLD.setmeldingstatus (v_mld_key, 5, 4); -- Facilitor
|
||||
MLD.mld_nextworkflowstep (v_mld_key, 1); -- Succes
|
||||
ELSE
|
||||
BEGIN
|
||||
MLD.updatemeldingstatus (v_mld_key, 0, 4);
|
||||
END;
|
||||
END IF;
|
||||
END IF;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
v_errormsg
|
||||
|| ' ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Fout bij verwerken opdrachtstatusbericht.');
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
*/
|
||||
-------------------------------------------------------------------------------
|
||||
-- RAPPORTAGES aaxx_v_rap_gebruikers_auth
|
||||
-------------------------------------------------------------------------------
|
||||
@@ -5754,7 +6233,7 @@ AS
|
||||
GROUP BY trunc(sysdate)-trunc(pl.login_datum),
|
||||
TO_CHAR (pl.login_datum, 'dd-mm-yyyy');
|
||||
|
||||
BEGIN adm.systrackscript('$Workfile: aaxx.sql $', '$Revision: 78 $', 0); END;
|
||||
BEGIN adm.systrackscript('$Workfile: aaxx.sql $', '$Revision: 79 $', 0); END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user