RWSN#26808 WF vs. automatisch afmelden

svn path=/Customer/trunk/; revision=18194
This commit is contained in:
Maarten van der Heide
2013-06-19 15:05:02 +00:00
parent fa12f57bbd
commit 4d4907db5b

View File

@@ -8970,7 +8970,7 @@ AS
WHERE 1 = 0
/
/* Formatted on 13-3-2013 18:04:24 (QP5 v5.115.810.9015) */
/* Formatted on 19-6-2013 16:52:25 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE rwsn_export_did_opdr (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
@@ -9091,7 +9091,7 @@ AS
1)
- 1)
opdracht,
o.mld_opdr_opmerking_fiat
TRIM (o.mld_opdr_opmerking_fiat) mld_opdr_opmerking_fiat
FROM mld_melding m,
mld_stdmelding std,
ins_tab_discipline td,
@@ -9742,7 +9742,7 @@ BEGIN
AND b.prs_bedrijf_xsl IS NOT NULL
AND b.prs_bedrijf_mldorder_adres IS NOT NULL;
IF v_count = 1
IF (v_count = 1)
THEN
insert_mld_opdr (p_applname, p_applrun, rec.mld_melding_key);
v_count_upd := v_count_upd + 1;
@@ -9784,8 +9784,7 @@ BEGIN
AND b.prs_bedrijf_xsl IS NOT NULL
AND b.prs_bedrijf_mldorder_adres IS NOT NULL;
IF v_count = 1
IF (v_count = 1)
THEN
SELECT ud1.fac_usrdata_omschr
INTO v_hoofdlocatie
@@ -9808,12 +9807,6 @@ BEGIN
AND b.prs_bedrijf_xsl IS NOT NULL
AND b.prs_bedrijf_mldorder_adres IS NOT NULL;
v_mld_opmerking :=
TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
|| ' Opdracht "'
|| rec.opdracht
|| '" goedgekeurd door DBV.';
v_errormsg := 'Fout bij uitgeven gefiatteerde opdracht.';
UPDATE mld_opdr
@@ -9829,34 +9822,46 @@ BEGIN
v_mld_opmerking :=
TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
|| ' Opdracht "'
|| rec.opdracht
|| SUBSTR (rec.opdracht, 1, 60)
|| '" goedgekeurd door DBV.';
v_mld_opmerking :=
TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
|| ' Opdracht "'
|| SUBSTR (rec.opdracht, 1, 60)
|| '" aangeboden aan de ICT-servicedesk ['
|| v_hoofdlocatie
|| '].'
|| CHR (13)
|| CHR (10)
|| v_mld_opmerking;
v_count := LENGTH (v_mld_opmerking) + 5; -- Beetje speling qua lengte!
IF (v_count < 4000)
THEN
v_mld_opmerking :=
v_mld_opmerking
|| CHR (13)
|| CHR (10)
|| SUBSTR (rec.mld_melding_opmerking, 1, (4000 - v_count));
END IF;
UPDATE mld_melding
SET mld_melding_opmerking = v_mld_opmerking
WHERE mld_melding_key = rec.mld_melding_key;
BEGIN
MLD.updatemeldingstatus (rec.mld_melding_key, 0, 4);
END;
COMMIT;
v_count_upd := v_count_upd + 1;
ELSE
v_errormsg := 'Fout bij bijwerken goedkeuring.';
v_mld_opmerking :=
TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
|| ' Opdracht "'
|| SUBSTR (rec.opdracht, 1, 60)
|| '" goedgekeurd door DBV.';
END IF;
v_count := LENGTH (v_mld_opmerking) + 5; -- Beetje speling qua lengte!
UPDATE mld_melding
SET mld_melding_opmerking =
v_mld_opmerking || CHR (13) || CHR (10)
|| SUBSTR (rec.mld_melding_opmerking,
1,
(4000 - v_count))
WHERE mld_melding_key = rec.mld_melding_key;
BEGIN
MLD.updatemeldingstatus (rec.mld_melding_key, 0, 4);
END;
COMMIT;
END;
END LOOP;
@@ -9894,25 +9899,21 @@ BEGIN
v_errormsg := 'Fout bij bijwerken afwijzing door DBV.';
-- Sowieso lengte < 4000!
v_mld_opmerking :=
TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
|| ' Opdracht "'
|| rec.opdracht
|| SUBSTR (rec.opdracht, 1, 60)
|| '" afgewezen door DBV, met als reden: '
|| rec.mld_opdr_opmerking_fiat;
|| SUBSTR (rec.mld_opdr_opmerking_fiat, 1, 1024);
v_count := LENGTH (v_mld_opmerking) + 5; -- Beetje speling qua lengte!
IF (v_count < 4000)
THEN
v_mld_opmerking :=
v_mld_opmerking
|| CHR (13)
|| CHR (10)
|| SUBSTR (rec.mld_melding_opmerking, 1, (4000 - v_count));
END IF;
UPDATE mld_melding
SET mld_melding_opmerking = v_mld_opmerking
SET mld_melding_opmerking =
v_mld_opmerking || CHR (13) || CHR (10)
|| SUBSTR (rec.mld_melding_opmerking,
1,
(4000 - v_count))
WHERE mld_melding_key = rec.mld_melding_key;
COMMIT;
@@ -9932,49 +9933,41 @@ BEGIN
|| '] ';
v_errormsg := 'Fout bij bijwerken laatste actie/melding.';
-- Sowieso lengte < 4000!
v_mld_opmerking :=
TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
|| ' / "'
|| rec.opdracht
|| SUBSTR (rec.opdracht, 1, 60)
|| '" '
|| CHR (13)
|| CHR (10)
|| rec.laatste_actie;
|| SUBSTR (rec.laatste_actie, 1, 255);
v_count := LENGTH (v_mld_opmerking) + 5; -- Beetje speling qua lengte!
IF (v_count < 4000)
THEN
v_mld_opmerking :=
v_mld_opmerking
|| CHR (13)
|| CHR (10)
|| SUBSTR (rec.mld_melding_opmerking, 1, (4000 - v_count));
END IF;
UPDATE mld_melding
SET mld_melding_opmerking = v_mld_opmerking
SET mld_melding_opmerking =
v_mld_opmerking || CHR (13) || CHR (10)
|| SUBSTR (rec.mld_melding_opmerking,
1,
(4000 - v_count))
WHERE mld_melding_key = rec.mld_melding_key;
v_errormsg := 'Fout bij bijwerken laatste actie/opdracht.';
-- Sowieso lengte < 4000!
v_mld_opmerking :=
TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
|| CHR (13)
|| CHR (10)
|| rec.laatste_actie;
|| SUBSTR (rec.laatste_actie, 1, 255);
v_count := LENGTH (v_mld_opmerking) + 5; -- Beetje speling qua lengte!
IF (v_count < 4000)
THEN
v_mld_opmerking :=
v_mld_opmerking
|| CHR (13)
|| CHR (10)
|| SUBSTR (rec.mld_opdr_opmerking, 1, (4000 - v_count));
END IF;
UPDATE mld_opdr
SET mld_opdr_opmerking = v_mld_opmerking
SET mld_opdr_opmerking =
v_mld_opmerking
|| CHR (13)
|| CHR (10)
|| SUBSTR (rec.mld_opdr_opmerking, 1, (4000 - v_count))
WHERE mld_opdr_key = rec.mld_opdr_key;
DELETE FROM mld_kenmerkopdr
@@ -9994,6 +9987,9 @@ BEGIN
BEGIN
MLD.setmeldingstatus (rec.mld_melding_key, 5, 4); -- Facilitor
-- Handle workflow actions for completion.
MLD.mld_nextworkflowstep (rec.mld_melding_key, 1); -- 1=Completed
COMMIT;
END;
END LOOP;
@@ -12450,445 +12446,6 @@ BEGIN
END;
/
/* Formatted on 12-5-2011 9:52:00 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE rwsn_import_usrdata (p_import_key IN NUMBER)
IS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR (200);
-- De importvelden:
v_fac_usrtab_naam VARCHAR2 (256); -- C16
v_fac_usrdata_code VARCHAR2 (256); -- C40
v_fac_usrdata_omschr VARCHAR2 (256); -- C60
v_fac_usrdata_volgnr VARCHAR2 (256); -- N3
v_fac_usrdata_prijs VARCHAR2 (256); -- N8,2
v_fac_usrdata_vervaldatum VARCHAR2 (256); -- DATE
-- Overig:
v_fac_usrdata_volgnr_n NUMBER (3); -- N3
v_fac_usrdata_prijs_n NUMBER (8, 2); -- N8,2
v_fac_usrdata_vervaldatum_d DATE; -- DATE
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM rwsn_imp_usrdata;
v_count_tot := 0;
v_count_import := 0;
header_is_valid := 0;
COMMIT;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout bij opvragen importregel';
v_aanduiding := '';
v_ongeldig := 0;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_fac_usrtab_naam);
fac.imp_getfield (v_newline, c_delim, v_fac_usrdata_code);
fac.imp_getfield (v_newline, c_delim, v_fac_usrdata_omschr);
fac.imp_getfield (v_newline, c_delim, v_fac_usrdata_volgnr);
fac.imp_getfield (v_newline, c_delim, v_fac_usrdata_prijs);
fac.imp_getfield (v_newline, c_delim, v_fac_usrdata_vervaldatum);
v_aanduiding :=
'[' || v_fac_usrtab_naam || '|' || v_fac_usrdata_code || '] ';
-- 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 (v_fac_usrtab_naam) = 'TABELNAAM'
AND UPPER (v_fac_usrdata_code) = 'WAARDE_CODE'
AND UPPER (v_fac_usrdata_omschr) = 'WAARDE_OMS'
AND UPPER (v_fac_usrdata_volgnr) = 'VOLGNR'
AND UPPER (v_fac_usrdata_prijs) = 'PRIJS'
AND UPPER (v_fac_usrdata_vervaldatum) = 'VERVALDATUM'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Tabelnaam ongeldig; ongedefinieerd of te lang';
v_fac_usrtab_naam := TRIM (v_fac_usrtab_naam);
IF v_fac_usrtab_naam IS NULL OR LENGTH (v_fac_usrtab_naam) > 16
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Waarde-code ongeldig; ongedefinieerd of te lang';
v_fac_usrdata_code := TRIM (v_fac_usrdata_code);
IF v_fac_usrdata_code IS NULL OR LENGTH (v_fac_usrdata_code) > 40
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Waarde-omschrijving te lang';
v_fac_usrdata_omschr := TRIM (v_fac_usrdata_omschr);
IF LENGTH (v_fac_usrdata_omschr) > 60
THEN
v_fac_usrdata_omschr :=
SUBSTR (TRIM (v_fac_usrdata_omschr), 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Waarde-omschrijving wordt afgebroken tot ['
|| v_fac_usrdata_omschr
|| ']'
);
END IF;
--
v_errormsg := 'Volgnummer ongeldig; maximale grootte 999';
v_fac_usrdata_volgnr := TRIM (v_fac_usrdata_volgnr);
v_fac_usrdata_volgnr_n := NULL;
IF (v_fac_usrdata_volgnr IS NOT NULL)
THEN
IF (fac.safe_to_number (v_fac_usrdata_volgnr) IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen!');
ELSE
v_fac_usrdata_volgnr_n :=
fac.safe_to_number (v_fac_usrdata_volgnr);
END IF;
END IF;
--
v_errormsg := 'Prijs ongeldig; maximale grootte 999999.99';
v_fac_usrdata_prijs := TRIM (v_fac_usrdata_prijs);
v_fac_usrdata_prijs_n := NULL;
IF (v_fac_usrdata_prijs IS NOT NULL)
THEN
IF (fac.safe_to_number (v_fac_usrdata_prijs) IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen!');
ELSE
v_fac_usrdata_prijs_n :=
fac.safe_to_number (v_fac_usrdata_prijs);
END IF;
END IF;
--
v_errormsg := 'Vervaldatum ongeldig';
v_fac_usrdata_vervaldatum := TRIM (v_fac_usrdata_vervaldatum);
v_fac_usrdata_vervaldatum_d := NULL;
IF (v_fac_usrdata_vervaldatum IS NOT NULL)
THEN
IF (fac.safe_to_date (v_fac_usrdata_vervaldatum, 'dd-mm-yyyy') IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen!');
ELSE
v_fac_usrdata_vervaldatum_d :=
fac.safe_to_date (v_fac_usrdata_vervaldatum,
'dd-mm-yyyy');
END IF;
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout bij wegschrijven importregel';
INSERT INTO rwsn_imp_usrdata (fac_usrtab_naam,
fac_usrdata_code,
fac_usrdata_omschr,
fac_usrdata_volgnr,
fac_usrdata_prijs,
fac_usrdata_vervaldatum)
VALUES (v_fac_usrtab_naam,
v_fac_usrdata_code,
v_fac_usrdata_omschr,
v_fac_usrdata_volgnr_n,
v_fac_usrdata_prijs_n,
v_fac_usrdata_vervaldatum_d);
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_import_key,
'E',
v_aanduiding || v_errormsg,
'');
END;
COMMIT;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (
p_import_key,
'S',
'Eigen tabellen/aantal ingelezen importregels: '
|| TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Eigen tabellen/aantal ongeldige niet ingelezen importregels: '
|| TO_CHAR (v_count_tot - v_count_import),
''
);
END IF;
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_import_key,
'E',
v_aanduiding || v_errormsg,
'Inleesproces eigen tabellen afgebroken!');
END rwsn_import_usrdata;
/
/* Formatted on 7-3-2011 11:52:52 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE rwsn_update_usrdata (p_import_key IN NUMBER)
AS
-- Cursor loopt over de voorkomende (unieke) tabelnamen.
CURSOR c1
IS
SELECT DISTINCT fac_usrtab_naam FROM rwsn_imp_usrdata;
v_errormsg VARCHAR2 (1000) := '';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
-- SUBPROC
PROCEDURE add_tabel (p_import_key IN NUMBER,
p_tabname IN VARCHAR2)
AS
CURSOR c1
IS
SELECT fac_usrtab_naam,
fac_usrdata_code,
fac_usrdata_omschr,
fac_usrdata_volgnr,
fac_usrdata_prijs,
fac_usrdata_vervaldatum
FROM rwsn_imp_usrdata
WHERE fac_usrtab_naam = p_tabname;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER (10);
v_count_tot NUMBER (10);
v_count_upd NUMBER (10);
v_tab_key NUMBER;
BEGIN
v_count_tot := 0;
v_count_upd := 0;
v_errormsg := 'Fout bij bepalen eigen tabel [' || p_tabname || '] ';
SELECT COUNT ( * )
INTO v_count
FROM fac_usrtab
WHERE fac_usrtab_naam = p_tabname;
IF (v_count = 0)
THEN
v_errormsg := 'Fout bij toevoegen eigen tabel [' || p_tabname || '] ';
INSERT INTO fac_usrtab (fac_usrtab_naam, fac_usrtab_omschrijving)
VALUES (p_tabname, p_tabname)
RETURNING fac_usrtab_key INTO v_tab_key;
COMMIT;
ELSE
SELECT fac_usrtab_key
INTO v_tab_key
FROM fac_usrtab
WHERE fac_usrtab_naam = p_tabname;
END IF;
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_errormsg :=
'Fout bij bepalen bestaan waarde-code ['
|| rec.fac_usrdata_code
|| '] ';
SELECT COUNT ( * )
INTO v_count
FROM fac_usrdata
WHERE fac_usrtab_key = v_tab_key
AND fac_usrdata_code = rec.fac_usrdata_code;
IF (v_count = 0)
THEN
v_errormsg :=
'Fout bij toevoegen waarde-code ['
|| rec.fac_usrdata_code
|| '] ';
INSERT INTO fac_usrdata (fac_usrtab_key,
fac_usrdata_code,
fac_usrdata_omschr,
fac_usrdata_volgnr,
fac_usrdata_vervaldatum,
fac_usrdata_prijs)
VALUES (v_tab_key,
rec.fac_usrdata_code,
rec.fac_usrdata_omschr,
rec.fac_usrdata_volgnr,
rec.fac_usrdata_vervaldatum,
rec.fac_usrdata_prijs);
ELSE
v_errormsg :=
'Fout bij bijwerken waarde-code ['
|| rec.fac_usrdata_code
|| '] ';
UPDATE fac_usrdata
SET fac_usrdata_omschr = rec.fac_usrdata_omschr,
fac_usrdata_volgnr = rec.fac_usrdata_volgnr,
fac_usrdata_vervaldatum = rec.fac_usrdata_vervaldatum,
fac_usrdata_prijs = rec.fac_usrdata_prijs
WHERE fac_usrtab_key = v_tab_key
AND fac_usrdata_code = rec.fac_usrdata_code;
END IF;
COMMIT;
v_count_upd := v_count_upd + 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_import_key,
'E',
v_errormsg,
'');
COMMIT;
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
p_tabname || ': #ingelezen = ' || TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
p_tabname || ': #toegevoegd/bijgewerkt = ' || TO_CHAR (v_count_upd),
''
);
COMMIT;
END;
-- MAIN
BEGIN
-- Loop door de voorkomende (unieke) tabelnamen en voeg deze toe en/of werk
-- deze bij.
FOR rec IN c1
LOOP
BEGIN
add_tabel (p_import_key, rec.fac_usrtab_naam);
END;
END LOOP;
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_import_key,
'E',
v_errormsg,
'Importproces eigen tabellen afgebroken!');
END rwsn_update_usrdata;
/
/* Formatted on 28-6-2010 11:12:28 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE rwsn_import_budgethouders (