/*  $Revision$
 *  $Id$
 */

/*  FAC_PACA, (A means Audit) to be included from fac_pac.src, isolated for convenience only
 *  The Audit-package source. Contains all functions for audit.
 *
 *  Usage: aud.auditaction(...);
 *
 */


CREATE OR REPLACE PACKAGE aud
AS
    PROCEDURE auditaction (tabelnaam VARCHAR2, tabelkey_oud NUMBER, tabelkey_nieuw NUMBER, veldnaam VARCHAR2, waarde_oud VARCHAR2, waarde_nieuw VARCHAR2, action VARCHAR2, opmerk VARCHAR2 DEFAULT NULL);
END aud;
/
CREATE OR REPLACE PACKAGE BODY aud
AS
   PROCEDURE auditaction (tabelnaam VARCHAR2, tabelkey_oud NUMBER, tabelkey_nieuw NUMBER, veldnaam VARCHAR2, waarde_oud VARCHAR2, waarde_nieuw VARCHAR2, action VARCHAR2, opmerk VARCHAR2 DEFAULT NULL)
   IS
   BEGIN
      IF (action <> 'I' AND COALESCE(waarde_oud, 'bUSnDIaVjRS56D3z') <> COALESCE(waarde_nieuw, 'bUSnDIaVjRS56D3z')) OR
         (action = 'I' AND waarde_nieuw IS NOT NULL)
      THEN
         INSERT INTO fac_audit (fac_audit_tabelnaam,
                                fac_audit_tabelkey,
                                fac_audit_veldnaam,
                                fac_audit_actie,
                                fac_audit_waarde_oud,
                                fac_audit_waarde_nieuw,
                                prs_perslid_key,
                                fac_audit_opmerking)
                        VALUES (tabelnaam,
                                COALESCE(tabelkey_nieuw, tabelkey_oud),
                                veldnaam,
                                CASE WHEN action = 'D' OR SUBSTR(veldnaam, -9) = 'verwijder' THEN 'D' ELSE action END,
                                waarde_oud,
                                waarde_nieuw,
                                sys_context('USERENV', 'CLIENT_IDENTIFIER'),
                                opmerk);
      END IF;
   END;
END aud;
/

REGISTERRUN('$Id$')
