From 353336d558ab4530f22d0ade9b003a410d228da2 Mon Sep 17 00:00:00 2001 From: Erik Groener Date: Tue, 9 Jul 2019 10:41:58 +0000 Subject: [PATCH] FCLT#57835 *Alle* Flexkenmerk bijlagen in de database opslaan svn path=/Database/trunk/; revision=43272 --- FAC/FAC_PACFLEX.SRC | 51 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/FAC/FAC_PACFLEX.SRC b/FAC/FAC_PACFLEX.SRC index 199d4996..35bbfd4a 100644 --- a/FAC/FAC_PACFLEX.SRC +++ b/FAC/FAC_PACFLEX.SRC @@ -40,6 +40,7 @@ p_ref_key IN NUMBER, p_niveau IN VARCHAR2); PROCEDURE setflexbijlage (p_module IN VARCHAR2, + p_niveau IN VARCHAR2, p_kenmerk_key IN NUMBER, p_ref_key IN NUMBER, p_bijlagen_key IN NUMBER, @@ -49,6 +50,13 @@ p_file_size IN NUMBER, p_file_date IN DATE, p_digest IN VARCHAR2 DEFAULT NULL); + PROCEDURE deleteflexbijlage (p_module IN VARCHAR2, + p_niveau IN VARCHAR2, + p_kenmerk_key IN NUMBER, + p_ref_key IN NUMBER, + p_bijlagen_key IN NUMBER, + p_disk_directory IN VARCHAR2, + p_filename IN VARCHAR2); FUNCTION getflexexprtype (pmodule IN VARCHAR2, p_kenmerk_key IN NUMBER, p_niveau IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2; @@ -179,6 +187,7 @@ END; PROCEDURE setflexbijlage (p_module IN VARCHAR2, + p_niveau IN VARCHAR2, p_kenmerk_key IN NUMBER, p_ref_key IN NUMBER, p_bijlagen_key IN NUMBER, @@ -255,6 +264,34 @@ END; END; + PROCEDURE deleteflexbijlage (p_module IN VARCHAR2, + p_niveau IN VARCHAR2, + p_kenmerk_key IN NUMBER, + p_ref_key IN NUMBER, + p_bijlagen_key IN NUMBER, + p_disk_directory IN VARCHAR2, + p_filename IN VARCHAR2) + AS + v_bijlagen_key NUMBER(10); + + CURSOR c_bijlagen + IS + SELECT fac_bijlagen_key + FROM fac_bijlagen + WHERE fac_bijlagen_disk_directory = p_disk_directory + AND fac_bijlagen_verwijder IS NULL + AND fac_bijlagen_filename = p_filename; + BEGIN + FOR bijl IN c_bijlagen + LOOP + UPDATE fac_bijlagen + SET fac_bijlagen_verwijder = SYSDATE + WHERE fac_bijlagen_key = bijl.fac_bijlagen_key; + END LOOP; + deleteflex(p_module, p_kenmerk_key, p_ref_key, NULL); + END; + + PROCEDURE setflex (pmodule IN VARCHAR2, p_kenmerk_key IN NUMBER, p_ref_key IN NUMBER, @@ -319,25 +356,25 @@ ' )' || ' VALUES (' || p_ref_key || ' , ' || p_kenmerk_key || - ' , :pwaarde'|| + ' , :p_waarde'|| l_niveau_val || ' )'; ELSE -- Voor p_multi zijn er geen wijzigingen! IF (p_multi = 0) THEN l_sql_upsert := 'UPDATE ' || l_kenmval_tablename || - ' SET ' || l_kcolumnname_waarde || ' = :pwaarde' || + ' SET ' || l_kcolumnname_waarde || ' = :p_waarde' || ' WHERE ' || l_kcolumnname_refkey || ' = ' || p_ref_key || ' AND ' || l_kcolumnname_kkey || ' = ' || p_kenmerk_key || ' AND ' || l_kcolumnname_delete || ' IS NULL'; END IF; END IF; - IF (l_sql_upsert <> '') THEN - DBMS_SQL.parse (l_cursor_upsert, l_sql_upsert, DBMS_SQL.native); - DBMS_SQL.BIND_VARIABLE(l_cursor_upsert,':pwaarde', p_waarde); - l_rowsprocessed := DBMS_SQL.execute (l_cursor_upsert); - DBMS_SQL.close_cursor(l_cursor_upsert); + IF (l_sql_upsert IS NOT NULL) THEN + DBMS_SQL.PARSE (l_cursor_upsert, l_sql_upsert, DBMS_SQL.native); + DBMS_SQL.BIND_VARIABLE(l_cursor_upsert, ':p_waarde', p_waarde); + l_rowsprocessed := DBMS_SQL.EXECUTE (l_cursor_upsert); + DBMS_SQL.CLOSE_CURSOR(l_cursor_upsert); END IF; END; PROCEDURE deleteflex (pmodule IN VARCHAR2,