SET SQL DIALECT 3; 

CREATE DATABASE 'factuges.fdb' DEFAULT CHARACTER SET ISO8859_1;

/*  External Function declarations */
DECLARE EXTERNAL FUNCTION F_RTFTOTEXT 
CSTRING(254) CHARACTER SET ISO8859_1
RETURNS CSTRING(254) CHARACTER SET ISO8859_1 
ENTRY_POINT 'RtfToText' MODULE_NAME 'udf_RtfToText.dll';

DECLARE EXTERNAL FUNCTION MOD 
INTEGER, INTEGER
RETURNS DOUBLE PRECISION BY VALUE 
ENTRY_POINT 'IB_UDF_mod' MODULE_NAME 'ib_udf';

DECLARE EXTERNAL FUNCTION STRLEN 
CSTRING(32767) CHARACTER SET ISO8859_1
RETURNS INTEGER BY VALUE 
ENTRY_POINT 'IB_UDF_strlen' MODULE_NAME 'ib_udf';

DECLARE EXTERNAL FUNCTION SUBSTR 
CSTRING(255) CHARACTER SET ISO8859_1, SMALLINT, SMALLINT
RETURNS CSTRING(255) CHARACTER SET ISO8859_1 FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';


/*  Generators or sequences */
CREATE GENERATOR GEN_AGENTES_COMISIONES_ID;
CREATE GENERATOR GEN_ALBARANES_CLI_DETALLES_ID;
CREATE GENERATOR GEN_ALBARANES_CLI_ID;
CREATE GENERATOR GEN_ALBARANES_PRO_DETALLES_ID;
CREATE GENERATOR GEN_ALBARANES_PRO_ID;
CREATE GENERATOR GEN_ALMACENES_ID;
CREATE GENERATOR GEN_ARTICULOS_ID;
CREATE GENERATOR GEN_CATEGORIAS_ID;
CREATE GENERATOR GEN_CLIENTES_DTOS_PROV_ID;
CREATE GENERATOR GEN_COMISIONES_LIQUID_ID;
CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID;
CREATE GENERATOR GEN_CONTACTOS_DIR_ID;
CREATE GENERATOR GEN_CONTACTOS_ID;
CREATE GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID;
CREATE GENERATOR GEN_EMPRESAS_ID;
CREATE GENERATOR GEN_FACTURAS_CLIENTE_ID;
CREATE GENERATOR GEN_FACTURAS_PROVEEDOR_ID;
CREATE GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID;
CREATE GENERATOR GEN_FACTURA_PROV_DETALLES_ID;
CREATE GENERATOR GEN_FORMAS_PAGO_ID;
CREATE GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID;
CREATE GENERATOR GEN_INFORMES_ID;
CREATE GENERATOR GEN_MOVIMIENTOS_ID;
CREATE GENERATOR GEN_PAGOS_CLIENTE_ID;
CREATE GENERATOR GEN_PAGOS_PROVEEDOR_ID;
CREATE GENERATOR GEN_PEDIDOS_CLI_DETALLES_ID;
CREATE GENERATOR GEN_PEDIDOS_CLI_ID;
CREATE GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID;
CREATE GENERATOR GEN_PEDIDOS_PROV_ID;
CREATE GENERATOR GEN_F_PERFILES_ID;
CREATE GENERATOR GEN_RECIBOS_CLIENTE_ID;
CREATE GENERATOR GEN_RECIBOS_PROVEEDOR_ID;
CREATE GENERATOR GEN_REMESAS_CLIENTE_ID;
CREATE GENERATOR GEN_REMESAS_PROVEEDOR_ID;
CREATE GENERATOR GEN_TIENDA_WEB_ID;
CREATE GENERATOR GEN_TIPOS_IVA_ID;
CREATE GENERATOR GEN_USUARIOS_ID;

/* Domain definitions */
CREATE DOMAIN TIPO_BINARIO AS BLOB SUB_TYPE 0 SEGMENT SIZE 80;
CREATE DOMAIN TIPO_BOOLEANO AS SMALLINT;
CREATE DOMAIN TIPO_CONCEPTO AS VARCHAR(2000);
CREATE DOMAIN TIPO_ID AS INTEGER;
CREATE DOMAIN TIPO_IMPORTE AS NUMERIC(11, 2);
CREATE DOMAIN TIPO_NOTAS AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80;
CREATE DOMAIN TIPO_PERFIL AS VARCHAR(15);
CREATE DOMAIN TIPO_PORCENTAJE AS FLOAT;
CREATE DOMAIN TIPO_USUARIO AS VARCHAR(30);

/* Table: AGENTES_COMISIONES, Owner: SYSDBA */
CREATE TABLE AGENTES_COMISIONES (ID TIPO_ID NOT NULL,
        ID_AGENTE TIPO_ID DEFAULT 0 NOT NULL,
        ID_PROVEEDOR SMALLINT DEFAULT 0 NOT NULL,
        COMISION TIPO_PORCENTAJE DEFAULT 0,
CONSTRAINT PK_AGENTES_COMISIONES PRIMARY KEY (ID));

/* Table: ALBARANES_CLIENTE, Owner: SYSDBA */
CREATE TABLE ALBARANES_CLIENTE (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID,
        ID_CLIENTE TIPO_ID,
        FECHA_ALBARAN DATE,
        ID_ALMACEN TIPO_ID,
        ID_PEDIDO TIPO_ID,
        ID_FACTURA TIPO_ID,
        REFERENCIA VARCHAR(255),
        CALLE VARCHAR(255),
        CODIGO_POSTAL VARCHAR(10),
        POBLACION VARCHAR(255),
        PROVINCIA VARCHAR(255),
        PERSONA_CONTACTO VARCHAR(255),
        TELEFONO VARCHAR(25),
        IMPORTE_NETO TIPO_IMPORTE,
        IMPORTE_PORTE TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_DESCUENTO TIPO_IMPORTE,
        BASE_IMPONIBLE TIPO_IMPORTE,
        IVA TIPO_PORCENTAJE,
        IMPORTE_IVA TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        OBSERVACIONES TIPO_NOTAS,
        INCIDENCIAS TIPO_NOTAS,
        INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
        USUARIO TIPO_USUARIO,
        ID_FORMA_PAGO TIPO_ID,
        FECHA_ENVIO DATE,
        FECHA_RECEPCION DATE,
        FECHA_PREVISTA_ENVIO DATE,
        REFERENCIA_CLIENTE VARCHAR(255) CHARACTER SET ISO8859_1 COLLATE ES_ES,
CONSTRAINT PK_ALBARAN_CLIENTE PRIMARY KEY (ID));

/* Table: ALBARANES_CLIENTE_DETALLES, Owner: SYSDBA */
CREATE TABLE ALBARANES_CLIENTE_DETALLES (ID TIPO_ID NOT NULL,
        ID_ALBARAN TIPO_ID NOT NULL,
        POSICION INTEGER,
        TIPO_DETALLE VARCHAR(10),
        ID_ARTICULO TIPO_ID,
        CONCEPTO TIPO_CONCEPTO,
        CANTIDAD INTEGER,
        IMPORTE_UNIDAD TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_PORTE TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        VISIBLE TIPO_BOOLEANO,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
CONSTRAINT PK_ALBARANES_CLIENTE_DETALLES PRIMARY KEY (ID));

/* Table: ALBARANES_PROVEEDOR, Owner: SYSDBA */
CREATE TABLE ALBARANES_PROVEEDOR (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID,
        ID_PROVEEDOR TIPO_ID,
        FECHA_ALBARAN DATE,
        ID_PEDIDO TIPO_ID,
        ID_FACTURA TIPO_ID,
        REFERENCIA VARCHAR(255),
        CALLE VARCHAR(255),
        CODIGO_POSTAL VARCHAR(10),
        POBLACION VARCHAR(255),
        PROVINCIA VARCHAR(255),
        PERSONA_CONTACTO VARCHAR(255),
        TELEFONO VARCHAR(25),
        BASE_IMPONIBLE TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_DESCUENTO TIPO_IMPORTE,
        IVA TIPO_PORCENTAJE,
        IMPORTE_IVA TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        OBSERVACIONES TIPO_NOTAS,
        INCIDENCIAS TIPO_NOTAS,
        INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
        USUARIO TIPO_USUARIO,
        ID_ALMACEN TIPO_ID,
        ID_FORMA_PAGO TIPO_ID,
        IMPORTE_NETO TIPO_IMPORTE,
        IMPORTE_PORTE TIPO_IMPORTE,
        REFERENCIA_PROVEEDOR VARCHAR(255),
        REF_FACTURA_PROV VARCHAR(255),
CONSTRAINT PK_ALBARAN_PROVEEDOR PRIMARY KEY (ID));

/* Table: ALBARANES_PROVEEDOR_DETALLES, Owner: SYSDBA */
CREATE TABLE ALBARANES_PROVEEDOR_DETALLES (ID TIPO_ID NOT NULL,
        ID_ALBARAN TIPO_ID NOT NULL,
        POSICION INTEGER,
        TIPO_DETALLE VARCHAR(10),
        ID_ARTICULO TIPO_ID,
        CONCEPTO TIPO_CONCEPTO,
        CANTIDAD INTEGER,
        IMPORTE_UNIDAD TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_PORTE TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        VISIBLE TIPO_BOOLEANO,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
CONSTRAINT PK_ALBARANES_PROVEEDOR_DETALLES PRIMARY KEY (ID));

/* Table: ALMACENES, Owner: SYSDBA */
CREATE TABLE ALMACENES (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID NOT NULL,
        NOMBRE VARCHAR(255),
        CALLE VARCHAR(255),
        PROVINCIA VARCHAR(255),
        POBLACION VARCHAR(255),
        CODIGO_POSTAL VARCHAR(10),
        TELEFONO VARCHAR(25),
        MOVIL VARCHAR(25),
        FAX VARCHAR(25),
        PERSONA_CONTACTO VARCHAR(255),
        OBSERVACIONES TIPO_NOTAS,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
        USUARIO TIPO_USUARIO,
CONSTRAINT PK_ALMACENES PRIMARY KEY (ID));

/* Table: ARTICULOS, Owner: SYSDBA */
CREATE TABLE ARTICULOS (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID,
        REFERENCIA VARCHAR(255),
        DESCRIPCION VARCHAR(255),
        FAMILIA VARCHAR(255),
        IMAGEN TIPO_BINARIO,
        COMISIONABLE TIPO_BOOLEANO,
        ID_PROVEEDOR TIPO_ID,
        REFERENCIA_PROV VARCHAR(255),
        PRECIO_COSTE TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        PRECIO_NETO TIPO_IMPORTE,
        PRECIO_PORTE TIPO_IMPORTE,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
        USUARIO TIPO_USUARIO,
        INVENTARIABLE TIPO_BOOLEANO,
        ELIMINADO TIPO_BOOLEANO,
CONSTRAINT PK_ARTICULOS PRIMARY KEY (ID));

/* Table: CATEGORIAS, Owner: SYSDBA */
CREATE TABLE CATEGORIAS (ID TIPO_ID NOT NULL,
        CATEGORIA VARCHAR(255) NOT NULL,
CONSTRAINT PK_CATEGORIAS PRIMARY KEY (ID));

/* Table: CLIENTES_DATOS, Owner: SYSDBA */
CREATE TABLE CLIENTES_DATOS (ID_CLIENTE TIPO_ID NOT NULL,
        ID_AGENTE TIPO_ID,
        GRUPO_CLIENTE VARCHAR(255),
        NOMBRE_COMERCIAL VARCHAR(255),
        VENCIMIENTO_FACTURAS INTEGER,
        BLOQUEADO TIPO_BOOLEANO DEFAULT 0 NOT NULL,
        REGIMEN_IVA VARCHAR(255),
        MOTIVO_BLOQUEO VARCHAR(255),
        RECARGO_EQUIVALENCIA TIPO_BOOLEANO,
        ID_TIPO_IVA TIPO_ID,
        ID_FORMA_PAGO TIPO_ID,
        TIENDA_WEB TIPO_BOOLEANO,
        DESCUENTO TIPO_PORCENTAJE,
CONSTRAINT PK_CLIENTES_DATOS PRIMARY KEY (ID_CLIENTE));

/* Table: CLIENTES_DTOS_PROVEEDORES, Owner: SYSDBA */
CREATE TABLE CLIENTES_DTOS_PROVEEDORES (ID TIPO_ID NOT NULL,
        ID_CLIENTE TIPO_ID DEFAULT 0 NOT NULL,
        ID_PROVEEDOR SMALLINT DEFAULT 0 NOT NULL,
        DESCUENTO TIPO_PORCENTAJE DEFAULT 0,
CONSTRAINT PK_CLIENTES_DTOS_PROV PRIMARY KEY (ID));

/* Table: CLIENTES_GRUPOS, Owner: SYSDBA */
CREATE TABLE CLIENTES_GRUPOS (DESCRIPCION VARCHAR(255));

/* Table: COMISIONES_LIQUIDADAS, Owner: SYSDBA */
CREATE TABLE COMISIONES_LIQUIDADAS (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID,
        REFERENCIA VARCHAR(255),
        ID_AGENTE TIPO_ID,
        DESCRIPCION VARCHAR(255),
        FECHA DATE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
        USUARIO TIPO_USUARIO,
CONSTRAINT PK_COMISIONES_LIQUIDADAS PRIMARY KEY (ID));

/* Table: CONFIGURACION, Owner: SYSDBA */
CREATE TABLE CONFIGURACION (CODIGO VARCHAR(50) NOT NULL,
        VALOR VARCHAR(255) NOT NULL,
        ID_EMPRESA TIPO_ID);

/* Table: CONTACTOS, Owner: SYSDBA */
CREATE TABLE CONTACTOS (ID TIPO_ID NOT NULL,
        NIF_CIF VARCHAR(15),
        NOMBRE VARCHAR(255) NOT NULL,
        CALLE VARCHAR(255),
        POBLACION VARCHAR(255),
        PROVINCIA VARCHAR(255),
        CODIGO_POSTAL VARCHAR(10),
        TELEFONO_1 VARCHAR(25),
        TELEFONO_2 VARCHAR(25),
        MOVIL_1 VARCHAR(25),
        MOVIL_2 VARCHAR(25),
        FAX VARCHAR(25),
        EMAIL_1 VARCHAR(255),
        EMAIL_2 VARCHAR(255),
        PAGINA_WEB VARCHAR(255),
        NOTAS TIPO_NOTAS,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
        USUARIO TIPO_USUARIO,
        REFERENCIA VARCHAR(255),
        PERSONA_CONTACTO VARCHAR(255),
CONSTRAINT PK_CONTACTOS PRIMARY KEY (ID));

/* Table: CONTACTOS_CATEGORIAS, Owner: SYSDBA */
CREATE TABLE CONTACTOS_CATEGORIAS (ID_CONTACTO TIPO_ID NOT NULL,
        ID_CATEGORIA TIPO_ID NOT NULL,
CONSTRAINT PK_CONTACTOS_CATEGORIAS PRIMARY KEY (ID_CONTACTO, ID_CATEGORIA));

/* Table: CONTACTOS_DATOS_BANCO, Owner: SYSDBA */
CREATE TABLE CONTACTOS_DATOS_BANCO (ID TIPO_ID NOT NULL,
        ID_CONTACTO TIPO_ID NOT NULL,
        TITULAR VARCHAR(255),
        ENTIDAD VARCHAR(15),
        SUCURSAL VARCHAR(15),
        DC VARCHAR(15),
        CUENTA VARCHAR(15),
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
CONSTRAINT PK_CONTACTOS_DATOS_BANCO PRIMARY KEY (ID));

/* Table: CONTACTOS_DIRECCIONES, Owner: SYSDBA */
CREATE TABLE CONTACTOS_DIRECCIONES (ID TIPO_ID NOT NULL,
        ID_CONTACTO TIPO_ID NOT NULL,
        CALLE VARCHAR(255),
        POBLACION VARCHAR(255),
        PROVINCIA VARCHAR(255),
        CODIGO_POSTAL VARCHAR(10),
        PERSONA_CONTACTO VARCHAR(255),
        NOMBRE VARCHAR(255),
        TELEFONO VARCHAR(25),
        MOVIL VARCHAR(25),
        FAX VARCHAR(25),
        EMAIL VARCHAR(255),
        NOTAS TIPO_NOTAS,
        PORTE TIPO_IMPORTE,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
CONSTRAINT PK_CONTACTOS_DIR PRIMARY KEY (ID));

/* Table: EMPLEADOS_DATOS, Owner: SYSDBA */
CREATE TABLE EMPLEADOS_DATOS (ID_EMPLEADO TIPO_ID NOT NULL,
        FECHA_NACIMIENTO DATE,
        CATEGORIA VARCHAR(255),
        FECHA_ALTA_EMPRESA DATE,
        FORMACION_BASE TIPO_NOTAS,
        FORMACION_COMPLE TIPO_NOTAS,
        FORMACION_RECIBIDA TIPO_NOTAS,
        EXPERIENCIA TIPO_NOTAS,
CONSTRAINT PK_EMPLEADOS_DATOS PRIMARY KEY (ID_EMPLEADO));

/* Table: EMPLEADOS_GRUPOS, Owner: SYSDBA */
CREATE TABLE EMPLEADOS_GRUPOS (DESCRIPCION VARCHAR(255));

/* Table: EMPRESAS, Owner: SYSDBA */
CREATE TABLE EMPRESAS (ID TIPO_ID NOT NULL,
        NIF_CIF VARCHAR(15),
        NOMBRE VARCHAR(255),
        RAZON_SOCIAL VARCHAR(255),
        CALLE VARCHAR(255),
        POBLACION VARCHAR(255),
        PROVINCIA VARCHAR(255),
        CODIGO_POSTAL VARCHAR(10),
        TELEFONO_1 VARCHAR(25),
        TELEFONO_2 VARCHAR(25),
        MOVIL_1 VARCHAR(25),
        MOVIL_2 VARCHAR(25),
        FAX VARCHAR(25),
        EMAIL_1 VARCHAR(255),
        EMAIL_2 VARCHAR(255),
        PAGINA_WEB VARCHAR(255),
        NOTAS TIPO_NOTAS,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
        USUARIO TIPO_USUARIO,
        LOGOTIPO TIPO_BINARIO,
        REGISTRO_MERCANTIL VARCHAR(255),
        IVA TIPO_PORCENTAJE,
CONSTRAINT PK_EMPRESAS PRIMARY KEY (ID));

/* Table: EMPRESAS_CONTACTOS, Owner: SYSDBA */
CREATE TABLE EMPRESAS_CONTACTOS (ID_EMPRESA TIPO_ID NOT NULL,
        ID_CONTACTO TIPO_ID NOT NULL,
CONSTRAINT PK_EMPRESAS_CONTACTOS PRIMARY KEY (ID_EMPRESA, ID_CONTACTO));

/* Table: EMPRESAS_DATOS_BANCO, Owner: SYSDBA */
CREATE TABLE EMPRESAS_DATOS_BANCO (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID NOT NULL,
        NOMBRE VARCHAR(255),
        ENTIDAD VARCHAR(15),
        SUCURSAL VARCHAR(15),
        DC VARCHAR(15),
        CUENTA VARCHAR(15),
        SUFIJO_N19 VARCHAR(3),
        SUFIJO_N58 VARCHAR(3),
CONSTRAINT PK_EMPRESAS_DATOS_BANCO PRIMARY KEY (ID));

/* Table: EMPRESAS_USUARIOS, Owner: SYSDBA */
CREATE TABLE EMPRESAS_USUARIOS (ID_EMPRESA TIPO_ID NOT NULL,
        ID_USUARIO TIPO_ID NOT NULL,
CONSTRAINT PK_EMPRESAS_USUARIOS PRIMARY KEY (ID_EMPRESA, ID_USUARIO));

/* Table: FACTURAS_CLIENTE, Owner: SYSDBA */
CREATE TABLE FACTURAS_CLIENTE (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID,
        REFERENCIA VARCHAR(255),
        FECHA_FACTURA DATE,
        BASE_IMPONIBLE TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_DESCUENTO TIPO_IMPORTE,
        IVA TIPO_PORCENTAJE,
        IMPORTE_IVA TIPO_IMPORTE,
        RE TIPO_PORCENTAJE,
        IMPORTE_RE TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        OBSERVACIONES TIPO_NOTAS,
        ID_CLIENTE TIPO_ID,
        NIF_CIF VARCHAR(15),
        NOMBRE VARCHAR(255),
        CALLE VARCHAR(255),
        POBLACION VARCHAR(255),
        PROVINCIA VARCHAR(255),
        CODIGO_POSTAL VARCHAR(10),
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
        USUARIO TIPO_USUARIO,
        ID_FORMA_PAGO TIPO_ID,
        IMPORTE_NETO TIPO_IMPORTE,
        IMPORTE_PORTE TIPO_IMPORTE,
        ID_TIPO_IVA TIPO_ID,
        RECARGO_EQUIVALENCIA TIPO_BOOLEANO,
        ID_COMISION_LIQUIDADA TIPO_ID,
CONSTRAINT PK_FACTURAS_CLIENTE PRIMARY KEY (ID));

/* Table: FACTURAS_CLIENTE_DETALLES, Owner: SYSDBA */
CREATE TABLE FACTURAS_CLIENTE_DETALLES (ID TIPO_ID NOT NULL,
        ID_FACTURA TIPO_ID NOT NULL,
        POSICION INTEGER,
        TIPO_DETALLE VARCHAR(10),
        ID_ARTICULO TIPO_ID,
        CONCEPTO TIPO_CONCEPTO,
        CANTIDAD INTEGER,
        IMPORTE_UNIDAD TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_PORTE TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        VISIBLE TIPO_BOOLEANO,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
CONSTRAINT PK_FACTURAS_CLIENTE_DETALLES PRIMARY KEY (ID));

/* Table: FACTURAS_PROVEEDOR, Owner: SYSDBA */
CREATE TABLE FACTURAS_PROVEEDOR (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID,
        REFERENCIA VARCHAR(255),
        REFERENCIA_PROVEEDOR VARCHAR(255),
        FECHA_FACTURA DATE,
        BASE_IMPONIBLE TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_DESCUENTO TIPO_IMPORTE,
        IVA TIPO_PORCENTAJE,
        IMPORTE_IVA TIPO_IMPORTE,
        RE TIPO_PORCENTAJE,
        IMPORTE_RE TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        OBSERVACIONES TIPO_NOTAS,
        ID_PROVEEDOR TIPO_ID,
        NIF_CIF VARCHAR(15),
        NOMBRE VARCHAR(255),
        CALLE VARCHAR(255),
        POBLACION VARCHAR(255),
        PROVINCIA VARCHAR(255),
        CODIGO_POSTAL VARCHAR(10),
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
        USUARIO TIPO_USUARIO,
        ID_FORMA_PAGO TIPO_ID,
        IMPORTE_NETO TIPO_IMPORTE,
        IMPORTE_PORTE TIPO_IMPORTE,
        ID_TIPO_IVA TIPO_ID,
        RECARGO_EQUIVALENCIA TIPO_BOOLEANO,
CONSTRAINT PK_FACTURAS_PROVEEDOR PRIMARY KEY (ID));

/* Table: FACTURAS_PROVEEDOR_DETALLES, Owner: SYSDBA */
CREATE TABLE FACTURAS_PROVEEDOR_DETALLES (ID TIPO_ID NOT NULL,
        ID_FACTURA TIPO_ID NOT NULL,
        POSICION INTEGER,
        TIPO_DETALLE VARCHAR(10),
        ID_ARTICULO TIPO_ID,
        CONCEPTO TIPO_CONCEPTO,
        CANTIDAD INTEGER,
        IMPORTE_UNIDAD TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_PORTE TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        VISIBLE TIPO_BOOLEANO,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
CONSTRAINT PK_FACTURAS_PROVEEDOR_DETALLES PRIMARY KEY (ID));

/* Table: FAMILIAS, Owner: SYSDBA */
CREATE TABLE FAMILIAS (DESCRIPCION VARCHAR(255));

/* Table: FORMAS_PAGO, Owner: SYSDBA */
CREATE TABLE FORMAS_PAGO (ID TIPO_ID NOT NULL,
        REFERENCIA VARCHAR(255),
        DESCRIPCION VARCHAR(255),
        TITULAR VARCHAR(255),
        ENTIDAD VARCHAR(15),
        SUCURSAL VARCHAR(15),
        DC VARCHAR(15),
        CUENTA VARCHAR(15),
PRIMARY KEY (ID));

/* Table: FORMAS_PAGO_PLAZOS, Owner: SYSDBA */
CREATE TABLE FORMAS_PAGO_PLAZOS (ID TIPO_ID NOT NULL,
        ID_FORMA_PAGO TIPO_ID NOT NULL,
        NUM_DIAS SMALLINT,
        PORCENTAJE TIPO_PORCENTAJE,
PRIMARY KEY (ID));

/* Table: F_PERFILES, Owner: SYSDBA */
CREATE TABLE F_PERFILES (ID TIPO_ID NOT NULL,
        PERFIL TIPO_PERFIL NOT NULL);

/* Table: F_PERFILES_USUARIOS, Owner: SYSDBA */
CREATE TABLE F_PERFILES_USUARIOS (ID_PERFIL TIPO_ID NOT NULL,
        ID_USUARIO TIPO_ID NOT NULL,
CONSTRAINT PK_PERFILES_USUARIOS PRIMARY KEY (ID_PERFIL, ID_USUARIO));

/* Table: F_USUARIOS, Owner: SYSDBA */
CREATE TABLE F_USUARIOS (ID TIPO_ID NOT NULL,
        USUARIO TIPO_USUARIO NOT NULL,
        ACTIVO TIPO_BOOLEANO,
        LAST_LOGIN TIMESTAMP,
        PASS VARCHAR(10));

/* Table: INFORMES, Owner: SYSDBA */
CREATE TABLE INFORMES (ID SMALLINT NOT NULL,
        ID_EMPRESA TIPO_ID,
        CATEGORIA VARCHAR(30),
        CONTROLLER VARCHAR(255),
        ICONO SMALLINT,
        NOMBRE VARCHAR(50),
        DESCRIPCION VARCHAR(255),
        ORDEN SMALLINT,
        MODIFICABLE CHAR(1),
        VISTA BLOB SUB_TYPE BLR SEGMENT SIZE 4096,
CONSTRAINT PK_INFORMES PRIMARY KEY (ID));

/* Table: MOVIMIENTOS, Owner: SYSDBA */
CREATE TABLE MOVIMIENTOS (ID TIPO_ID NOT NULL,
        ID_ALMACEN TIPO_ID,
        ID_ARTICULO TIPO_ID,
        FECHA_MOVIMIENTO DATE,
        TIPO VARCHAR(1),
        CANTIDAD INTEGER,
        CAUSA TIPO_CONCEPTO,
CONSTRAINT PK_MOVIMIENTOS PRIMARY KEY (ID));

/* Table: PAGOS_CLIENTE, Owner: SYSDBA */
CREATE TABLE PAGOS_CLIENTE (ID TIPO_ID NOT NULL,
        ID_RECIBO TIPO_ID,
        TIPO VARCHAR(255),
        FECHA_PAGO DATE,
        TITULAR VARCHAR(255),
        ENTIDAD VARCHAR(15),
        SUCURSAL VARCHAR(15),
        DC VARCHAR(15),
        CUENTA VARCHAR(15),
        FECHA_ALTA DATE,
        FECHA_MODIFICACION DATE,
        USUARIO TIPO_USUARIO,
CONSTRAINT PK_PAGOS_CLIENTE PRIMARY KEY (ID));

/* Table: PAGOS_PROVEEDOR, Owner: SYSDBA */
CREATE TABLE PAGOS_PROVEEDOR (ID TIPO_ID NOT NULL,
        ID_RECIBO TIPO_ID,
        TIPO VARCHAR(255),
        FECHA_PAGO DATE,
        TITULAR VARCHAR(255),
        ENTIDAD VARCHAR(15),
        SUCURSAL VARCHAR(15),
        DC VARCHAR(15),
        CUENTA VARCHAR(15),
        FECHA_ALTA DATE,
        FECHA_MODIFICACION DATE,
        USUARIO TIPO_USUARIO,
CONSTRAINT PK_PAGOS_PROVEEDOR PRIMARY KEY (ID));

/* Table: PEDIDOS_CLIENTE, Owner: SYSDBA */
CREATE TABLE PEDIDOS_CLIENTE (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID,
        ID_CLIENTE TIPO_ID,
        REFERENCIA VARCHAR(255),
        FECHA_PEDIDO DATE,
        CALLE VARCHAR(255),
        CODIGO_POSTAL VARCHAR(10),
        POBLACION VARCHAR(255),
        PROVINCIA VARCHAR(255),
        PERSONA_CONTACTO VARCHAR(255),
        TELEFONO VARCHAR(25),
        OBSERVACIONES TIPO_NOTAS,
        INCIDENCIAS TIPO_NOTAS,
        INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
        USUARIO TIPO_USUARIO,
        IMPORTE_NETO TIPO_IMPORTE,
        IMPORTE_PORTE TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_DESCUENTO TIPO_IMPORTE,
        BASE_IMPONIBLE TIPO_IMPORTE,
        IVA TIPO_PORCENTAJE,
        IMPORTE_IVA TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        ID_FORMA_PAGO TIPO_ID,
        REF_TIENDA_WEB INTEGER,
        FECHA_PREVISTA_ENVIO DATE,
        REFERENCIA_CLIENTE VARCHAR(255) CHARACTER SET ISO8859_1 COLLATE ES_ES,
CONSTRAINT PK_PEDIDOS_CLIENTE PRIMARY KEY (ID));

/* Table: PEDIDOS_CLIENTE_DETALLES, Owner: SYSDBA */
CREATE TABLE PEDIDOS_CLIENTE_DETALLES (ID TIPO_ID NOT NULL,
        ID_PEDIDO TIPO_ID NOT NULL,
        POSICION INTEGER,
        TIPO_DETALLE VARCHAR(10),
        ID_ARTICULO TIPO_ID,
        CONCEPTO TIPO_CONCEPTO,
        CANTIDAD INTEGER,
        IMPORTE_UNIDAD TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_PORTE TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        VISIBLE TIPO_BOOLEANO,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
CONSTRAINT PK_PEDIDOS_CLIENTE_DETALLES PRIMARY KEY (ID));

/* Table: PEDIDOS_PROVEEDOR, Owner: SYSDBA */
CREATE TABLE PEDIDOS_PROVEEDOR (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID,
        ID_PROVEEDOR TIPO_ID,
        REFERENCIA VARCHAR(255),
        FECHA_PEDIDO DATE,
        FECHA_CONFIRMACION DATE,
        FECHA_ENTREGA DATE,
        ID_ALMACEN TIPO_ID,
        OBSERVACIONES TIPO_NOTAS,
        INCIDENCIAS TIPO_NOTAS,
        INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
        USUARIO TIPO_USUARIO,
        CALLE VARCHAR(255),
        CODIGO_POSTAL VARCHAR(10),
        POBLACION VARCHAR(255),
        PROVINCIA VARCHAR(255),
        PERSONA_CONTACTO VARCHAR(255),
        TELEFONO VARCHAR(25),
        ID_PEDIDO_CLIENTE TIPO_ID,
        IMPORTE_NETO TIPO_IMPORTE,
        IMPORTE_PORTE TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_DESCUENTO TIPO_IMPORTE,
        BASE_IMPONIBLE TIPO_IMPORTE,
        IVA TIPO_PORCENTAJE,
        IMPORTE_IVA TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        ID_FORMA_PAGO TIPO_ID,
        FECHA_ENVIO DATE,
CONSTRAINT PK_PEDIDOS_PROVEEDOR PRIMARY KEY (ID));

/* Table: PEDIDOS_PROVEEDOR_DETALLES, Owner: SYSDBA */
CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES (ID TIPO_ID NOT NULL,
        ID_PEDIDO TIPO_ID NOT NULL,
        POSICION INTEGER,
        TIPO_DETALLE VARCHAR(10),
        ID_ARTICULO TIPO_ID,
        CONCEPTO TIPO_CONCEPTO,
        CANTIDAD INTEGER,
        IMPORTE_UNIDAD TIPO_IMPORTE,
        DESCUENTO TIPO_PORCENTAJE,
        IMPORTE_PORTE TIPO_IMPORTE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        VISIBLE TIPO_BOOLEANO,
        FECHA_ALTA TIMESTAMP,
        FECHA_MODIFICACION TIMESTAMP,
CONSTRAINT PK_PEDIDOS_PROVEEDOR_DETALLES PRIMARY KEY (ID));

/* Table: PERMISOS, Owner: SYSDBA */
CREATE TABLE PERMISOS (ID_USUARIO TIPO_ID,
        MODULO VARCHAR(50),
        NOMBRECOMP VARCHAR(50),
        CHECKSUM VARCHAR(250));

/* Table: PERMISOSEX, Owner: SYSDBA */
CREATE TABLE PERMISOSEX (ID_USUARIO TIPO_ID,
        MODULO VARCHAR(50),
        NOMBRECOMP VARCHAR(50),
        NOMBREFORM VARCHAR(50),
        CHECKSUM VARCHAR(250));

/* Table: PROVEEDORES_DATOS, Owner: SYSDBA */
CREATE TABLE PROVEEDORES_DATOS (ID_PROVEEDOR TIPO_ID NOT NULL,
        DESCUENTO TIPO_PORCENTAJE,
        REGIMEN_IVA VARCHAR(255),
        ID_TIPO_IVA TIPO_ID,
        ID_FORMA_PAGO TIPO_ID,
        TIENDA_WEB TIPO_BOOLEANO,
        GRUPO_PROVEEDOR VARCHAR(255),
        DESCRIPCION_PROVEEDOR VARCHAR(255),
        CODIGO_ASIGNADO VARCHAR(255),
        CERTIFICACION VARCHAR(255),
        HOMOLOGADO SMALLINT,
CONSTRAINT PK_PROVEEDORES_DATOS PRIMARY KEY (ID_PROVEEDOR));

/* Table: PROVEEDORES_GRUPOS, Owner: SYSDBA */
CREATE TABLE PROVEEDORES_GRUPOS (DESCRIPCION VARCHAR(255));

/* Table: RECIBOS_CLIENTE, Owner: SYSDBA */
CREATE TABLE RECIBOS_CLIENTE (ID TIPO_ID NOT NULL,
        ID_FACTURA TIPO_ID,
        REFERENCIA VARCHAR(255),
        FECHA_EMISION DATE,
        FECHA_VENCIMIENTO DATE,
        DESCRIPCION VARCHAR(255),
        OBSERVACIONES VARCHAR(255),
        IMPORTE TIPO_IMPORTE,
        OTROS_GASTOS TIPO_IMPORTE,
        FECHA_ALTA DATE,
        FECHA_MODIFICACION DATE,
        USUARIO TIPO_USUARIO,
        ID_REMESA TIPO_ID,
        ID_RECIBO_COMPENSADO INTEGER,
CONSTRAINT PK_RECIBOS_CLIENTE PRIMARY KEY (ID));

/* Table: RECIBOS_PROVEEDOR, Owner: SYSDBA */
CREATE TABLE RECIBOS_PROVEEDOR (ID TIPO_ID NOT NULL,
        ID_FACTURA TIPO_ID,
        REFERENCIA VARCHAR(255),
        REFERENCIA_PROVEEDOR VARCHAR(255),
        FECHA_EMISION DATE,
        FECHA_VENCIMIENTO DATE,
        DESCRIPCION VARCHAR(255),
        OBSERVACIONES VARCHAR(255),
        IMPORTE TIPO_IMPORTE,
        OTROS_GASTOS TIPO_IMPORTE,
        FECHA_ALTA DATE,
        FECHA_MODIFICACION DATE,
        USUARIO TIPO_USUARIO,
        ID_REMESA TIPO_ID,
        ID_RECIBO_COMPENSADO INTEGER,
CONSTRAINT PK_RECIBOS_PROVEEDOR PRIMARY KEY (ID));

/* Table: REFERENCIAS, Owner: SYSDBA */
CREATE TABLE REFERENCIAS (CODIGO VARCHAR(50) NOT NULL,
        VALOR VARCHAR(255) NOT NULL,
        ID_EMPRESA TIPO_ID,
        DESCRIPCION VARCHAR(255) CHARACTER SET ISO8859_1 COLLATE ES_ES);

/* Table: REMESAS_CLIENTE, Owner: SYSDBA */
CREATE TABLE REMESAS_CLIENTE (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID,
        REFERENCIA VARCHAR(255),
        FECHA_REMESA DATE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        DESCRIPCION VARCHAR(255),
        FECHA_ALTA DATE,
        FECHA_MODIFICACION DATE,
        USUARIO TIPO_USUARIO,
        ID_DATOS_BANCO TIPO_ID,
        TIPO VARCHAR(40),
CONSTRAINT PK_REMESAS_CLIENTE PRIMARY KEY (ID));

/* Table: REMESAS_PROVEEDOR, Owner: SYSDBA */
CREATE TABLE REMESAS_PROVEEDOR (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID,
        REFERENCIA VARCHAR(255),
        FECHA_REMESA DATE,
        IMPORTE_TOTAL TIPO_IMPORTE,
        DESCRIPCION VARCHAR(255),
        FECHA_ALTA DATE,
        FECHA_MODIFICACION DATE,
        USUARIO TIPO_USUARIO,
        ID_DATOS_BANCO TIPO_ID,
        TIPO VARCHAR(40),
CONSTRAINT PK_REMESAS_PROVEEDOR PRIMARY KEY (ID));

/* Table: TIENDA_WEB, Owner: SYSDBA */
CREATE TABLE TIENDA_WEB (ID TIPO_ID NOT NULL,
        ID_EMPRESA TIPO_ID NOT NULL,
        TIENDA_ACTIVA TIPO_BOOLEANO DEFAULT 0 NOT NULL,
        ULTIMA_ACTUALIZACION TIMESTAMP,
        BDSERVER VARCHAR(255),
        BDPORT VARCHAR(20),
        BDNAME VARCHAR(255),
        BDUSER VARCHAR(255),
        BDPASS VARCHAR(255),
CONSTRAINT PK_TIENDA_WEB PRIMARY KEY (ID));

/* Table: TIPOS_IVA, Owner: SYSDBA */
CREATE TABLE TIPOS_IVA (ID TIPO_ID NOT NULL,
        REFERENCIA VARCHAR(255),
        DESCRIPCION VARCHAR(255),
        IVA TIPO_PORCENTAJE,
        RE TIPO_PORCENTAJE,
PRIMARY KEY (ID));

/* Table: USUARIOS, Owner: SYSDBA */
CREATE TABLE USUARIOS (ID TIPO_ID NOT NULL,
        USERNAME VARCHAR(30),
        LOGIN TIPO_USUARIO,
        PASS VARCHAR(250),
        PASSEXPIRED DATE,
        BLOQUEADO TIPO_BOOLEANO,
        EMAIL VARCHAR(150),
        USERDAYSSUN INTEGER,
        PRIVILEGED INTEGER,
        TIPO CHAR(1),
        ID_PERFIL TIPO_ID,
        CHECKSUM VARCHAR(250),
CONSTRAINT PK_USUARIOS PRIMARY KEY (ID));

/* Table: USUARIOS_EVENTOS, Owner: SYSDBA */
CREATE TABLE USUARIOS_EVENTOS (APLICACION VARCHAR(250),
        ID_USUARIO TIPO_ID,
        FECHA CHAR(10),
        HORA CHAR(8),
        FORM VARCHAR(250),
        TITULO_FORM VARCHAR(100),
        EVENTO VARCHAR(50),
        NOTAS TIPO_NOTAS,
        TNAME VARCHAR(20));

/* Table: USUARIOS_LOGON, Owner: SYSDBA */
CREATE TABLE USUARIOS_LOGON (LOGONID CHAR(38) NOT NULL,
        ID_USUARIO TIPO_ID,
        APLICACION VARCHAR(50),
        EQUIPO VARCHAR(50),
        DATA VARCHAR(14),
CONSTRAINT PK_USUARIOS_LOGON PRIMARY KEY (LOGONID));

/*  Index definitions for all user tables */
CREATE INDEX IDX_AGENTES_COMISIONES1 ON AGENTES_COMISIONES (ID_AGENTE);
CREATE INDEX IDX_AGENTES_COMISIONES2 ON AGENTES_COMISIONES (ID_PROVEEDOR);
CREATE INDEX IDX_ALBARANES_CLIENTE ON ALBARANES_CLIENTE (ID_FORMA_PAGO);
CREATE INDEX IDX_ALBARANES_CLIENTE_DETALLES ON ALBARANES_CLIENTE_DETALLES (ID_ARTICULO);
CREATE INDEX IDX_ALBARANES_CLIENTE_DETALLES1 ON ALBARANES_CLIENTE_DETALLES (ID_ALBARAN);
CREATE INDEX IDX_ALBARANES_PROVEEDOR ON ALBARANES_PROVEEDOR (ID_ALMACEN);
CREATE INDEX IDX_ALBARANES_PROVEEDOR1 ON ALBARANES_PROVEEDOR (ID_FORMA_PAGO);
CREATE INDEX IDX_ALBARANES_PROV_DETALLES ON ALBARANES_PROVEEDOR_DETALLES (ID_ALBARAN);
CREATE INDEX IDX_ALBARANES_PROV_DETALLES1 ON ALBARANES_PROVEEDOR_DETALLES (ID_ARTICULO);
CREATE INDEX IDX_ARTICULOS ON ARTICULOS (ID_PROVEEDOR);
CREATE INDEX IDX_CLIENTES_DATOS ON CLIENTES_DATOS (ID_TIPO_IVA);
CREATE INDEX IDX_CLIENTES_DATOS1 ON CLIENTES_DATOS (ID_FORMA_PAGO);
CREATE INDEX IDX_CLIENTES_DATOS_ID_AGENTE ON CLIENTES_DATOS (ID_AGENTE);
CREATE INDEX IDX_CLIENTES_DTOS_PROV_ID_CLI ON CLIENTES_DTOS_PROVEEDORES (ID_CLIENTE);
CREATE INDEX IDX_CLIENTES_DTOS_PROV_ID_PROV ON CLIENTES_DTOS_PROVEEDORES (ID_PROVEEDOR);
CREATE INDEX IDX_COMISIONES_LIQUIDADAS ON COMISIONES_LIQUIDADAS (ID_EMPRESA);
CREATE INDEX IDX_CONFIGURACION ON CONFIGURACION (ID_EMPRESA);
CREATE INDEX IDX_CONTACTOS_CATEGORIAS ON CONTACTOS_CATEGORIAS (ID_CONTACTO);
CREATE INDEX IDX_CONTACTOS_CATEGORIAS1 ON CONTACTOS_CATEGORIAS (ID_CATEGORIA);
CREATE INDEX IDX_CONTACTOS_DATOS_BANCO ON CONTACTOS_DATOS_BANCO (ID_CONTACTO);
CREATE INDEX IDX_CONTACTOS_DIR_ID_CONTACTO ON CONTACTOS_DIRECCIONES (ID_CONTACTO);
CREATE INDEX IDX_FACTURAS_CLIENTE ON FACTURAS_CLIENTE (ID_FORMA_PAGO);
CREATE INDEX IDX_FACTURAS_CLIENTE1 ON FACTURAS_CLIENTE (ID_TIPO_IVA);
CREATE INDEX IDX_FACTURAS_CLIENTE2 ON FACTURAS_CLIENTE (ID_COMISION_LIQUIDADA);
CREATE INDEX IDX_FACTURAS_CLIENTE3 ON FACTURAS_CLIENTE (ID_CLIENTE);
CREATE INDEX IDX_FACTURAS_CLIENTE_DETALLES1 ON FACTURAS_CLIENTE_DETALLES (ID_FACTURA);
CREATE INDEX IDX_FACTURAS_CLIENTE_DETALLES2 ON FACTURAS_CLIENTE_DETALLES (ID_ARTICULO);
CREATE INDEX IDX_FACTURAS_PROVEEDOR ON FACTURAS_PROVEEDOR (ID_PROVEEDOR);
CREATE INDEX IDX_FACTURAS_PROVEEDOR1 ON FACTURAS_PROVEEDOR (ID_FORMA_PAGO);
CREATE INDEX IDX_FACTURAS_PROVEEDOR2 ON FACTURAS_PROVEEDOR (ID_TIPO_IVA);
CREATE INDEX IDX_FACTURAS_PROVEEDOR_DETALLES ON FACTURAS_PROVEEDOR_DETALLES (ID_ARTICULO);
CREATE INDEX FORMAS_PAGO_PLAZOS_IDX1 ON FORMAS_PAGO_PLAZOS (ID_FORMA_PAGO);
CREATE INDEX IDX_INFORMES ON INFORMES (ID_EMPRESA);
CREATE INDEX MOVIMIENTOS_IDX1 ON MOVIMIENTOS (TIPO);
CREATE INDEX IDX_PEDIDOS_CLIENTE ON PEDIDOS_CLIENTE (ID_FORMA_PAGO);
CREATE INDEX IDX_PEDIDOS_CLIENTE_DETALLES ON PEDIDOS_CLIENTE_DETALLES (ID_PEDIDO);
CREATE INDEX IDX_PEDIDOS_CLIENTE_DETALLES1 ON PEDIDOS_CLIENTE_DETALLES (ID_ARTICULO);
CREATE INDEX IDX_PEDIDOS_PROVEEDOR ON PEDIDOS_PROVEEDOR (ID_PEDIDO_CLIENTE);
CREATE INDEX IDX_PEDIDOS_PROVEEDOR1 ON PEDIDOS_PROVEEDOR (ID_ALMACEN);
CREATE INDEX IDX_PEDIDOS_PROVEEDOR2 ON PEDIDOS_PROVEEDOR (ID_FORMA_PAGO);
CREATE INDEX IDX_PEDIDOS_PROVEEDOR_DETALLES ON PEDIDOS_PROVEEDOR_DETALLES (ID_ARTICULO);
CREATE INDEX IDX_PROVEEDORES_DATOS ON PROVEEDORES_DATOS (ID_TIPO_IVA);
CREATE INDEX IDX_PROVEEDORES_DATOS1 ON PROVEEDORES_DATOS (ID_FORMA_PAGO);
CREATE INDEX IDX_RECIBOS_CLIENTE ON RECIBOS_CLIENTE (ID_RECIBO_COMPENSADO);
CREATE INDEX IDX_RECIBOS_PROVEEDOR ON RECIBOS_PROVEEDOR (ID_RECIBO_COMPENSADO);
CREATE INDEX IDX_REFERENCIAS ON REFERENCIAS (ID_EMPRESA);
CREATE INDEX IDX_REMESAS_CLIENTE ON REMESAS_CLIENTE (ID_DATOS_BANCO);
CREATE INDEX IDX_REMESAS_PROVEEDOR ON REMESAS_PROVEEDOR (ID_DATOS_BANCO);

ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE1 FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE2 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE3 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_CLIENTE (ID) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE4 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON UPDATE SET NULL ON DELETE SET NULL;

ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARANES_PROVEEDOR3 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_PROVEEDOR (ID) ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARANES_PROVEEDOR4 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON UPDATE CASCADE ON DELETE SET NULL;

ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR1 FOREIGN KEY (ID_PROVEEDOR) REFERENCES CONTACTOS (ID) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR2 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE ALMACENES ADD CONSTRAINT FK_ALMACENES_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE ARTICULOS ADD CONSTRAINT FK_ARTICULOS_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT FK_COMISIONES_LIQUIDADAS FOREIGN KEY (ID_AGENTE) REFERENCES CONTACTOS (ID);

ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT FK_EMPRESAS_CONTACTOS FOREIGN KEY (ID_CONTACTO) REFERENCES CONTACTOS (ID) ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT FK_EMPRESAS_DATOS_BANCO FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT FK_FACTURAS_CLIENTE_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE FACTURAS_CLIENTE_DETALLES ADD CONSTRAINT FK_FACTURAS_CLI_DET_ID_FACTURA FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT FK_FACTURAS_PROVEEDOR_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE FACTURAS_PROVEEDOR_DETALLES ADD CONSTRAINT FK_FACTURAS_PRO_DET_ID_FACTURA FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE MOVIMIENTOS ADD CONSTRAINT FK_MOVIMIENTOS FOREIGN KEY (ID_ARTICULO) REFERENCES ARTICULOS (ID);

ALTER TABLE MOVIMIENTOS ADD CONSTRAINT FK_MOVIMIENTOS2 FOREIGN KEY (ID_ALMACEN) REFERENCES ALMACENES (ID);

ALTER TABLE PAGOS_CLIENTE ADD CONSTRAINT FK_PAGOS_CLIENTE FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_CLIENTE (ID);

ALTER TABLE PAGOS_PROVEEDOR ADD CONSTRAINT FK_PAGOS_PROVEEDOR FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_PROVEEDOR (ID);

ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT FK_PEDIDOS_CLIENTE FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID);

ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT FK_PEDIDOS_CLIENTE_ID_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID);

ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID);

ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR2 FOREIGN KEY (ID_PROVEEDOR) REFERENCES CONTACTOS (ID);

ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT FK_PEDIDOS_PROV_DET_ID_PEDIDO FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_PROVEEDOR (ID) ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT FK_RECIBOS_CLIENTE FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT FK_RECIBOS_CLIENTE2 FOREIGN KEY (ID_REMESA) REFERENCES REMESAS_CLIENTE (ID) ON UPDATE SET NULL ON DELETE SET NULL;

ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT FK_RECIBOS_PROVEEDOR FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT FK_RECIBOS_PROVEEDOR1 FOREIGN KEY (ID_REMESA) REFERENCES REMESAS_PROVEEDOR (ID) ON UPDATE SET NULL ON DELETE SET NULL;

ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT FK_REMESAS_CLIENTE FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID);

ALTER TABLE REMESAS_PROVEEDOR ADD CONSTRAINT FK_REMESAS_PROVEEDOR FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID);

ALTER TABLE TIENDA_WEB ADD CONSTRAINT FK_EMPRESAS_TIENDA_WEB FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON UPDATE CASCADE ON DELETE CASCADE;

/* View: V_CONTACTOS, Owner: SYSDBA */
CREATE VIEW V_CONTACTOS (ID, ID_CATEGORIA, NIF_CIF, NOMBRE, PERSONA_CONTACTO, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_EMPRESA, REFERENCIA) AS


SELECT CONTACTOS.ID,

       CONTACTOS_CATEGORIAS.ID_CATEGORIA,

       CONTACTOS.NIF_CIF,

       CONTACTOS.NOMBRE,

       CONTACTOS.PERSONA_CONTACTO,

       CONTACTOS.CALLE,

       CONTACTOS.POBLACION,

       CONTACTOS.PROVINCIA,

       CONTACTOS.CODIGO_POSTAL,

       CONTACTOS.TELEFONO_1,

       CONTACTOS.TELEFONO_2,

       CONTACTOS.MOVIL_1,

       CONTACTOS.MOVIL_2,

       CONTACTOS.FAX,

       CONTACTOS.EMAIL_1,

       CONTACTOS.EMAIL_2,

       CONTACTOS.PAGINA_WEB,

       CONTACTOS.NOTAS,

       CONTACTOS.FECHA_ALTA,

       CONTACTOS.FECHA_MODIFICACION,

       CONTACTOS.USUARIO,

       EMPRESAS_CONTACTOS.ID_EMPRESA,

       CONTACTOS.REFERENCIA

FROM CONTACTOS

     INNER JOIN CONTACTOS_CATEGORIAS ON (CONTACTOS_CATEGORIAS.ID_CONTACTO =

     CONTACTOS.ID)

     INNER JOIN EMPRESAS_CONTACTOS ON (EMPRESAS_CONTACTOS.ID_CONTACTO =

     CONTACTOS.ID);

/* View: V_CLIENTES, Owner: SYSDBA */
CREATE VIEW V_CLIENTES (ID, ID_CATEGORIA, NIF_CIF, NOMBRE, PERSONA_CONTACTO, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_EMPRESA, REFERENCIA, GRUPO_CLIENTE, NOMBRE_COMERCIAL, VENCIMIENTO_FACTURAS, BLOQUEADO, REGIMEN_IVA, MOTIVO_BLOQUEO, RECARGO_EQUIVALENCIA, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB) AS


SELECT

  V_CONTACTOS.ID,

  V_CONTACTOS.ID_CATEGORIA,

  V_CONTACTOS.NIF_CIF,

  V_CONTACTOS.NOMBRE,

  V_CONTACTOS.PERSONA_CONTACTO,

  V_CONTACTOS.CALLE,

  V_CONTACTOS.POBLACION,

  V_CONTACTOS.PROVINCIA,

  V_CONTACTOS.CODIGO_POSTAL,

  V_CONTACTOS.TELEFONO_1,

  V_CONTACTOS.TELEFONO_2,

  V_CONTACTOS.MOVIL_1,

  V_CONTACTOS.MOVIL_2,

  V_CONTACTOS.FAX,

  V_CONTACTOS.EMAIL_1,

  V_CONTACTOS.EMAIL_2,

  V_CONTACTOS.PAGINA_WEB,

  V_CONTACTOS.NOTAS,

  V_CONTACTOS.FECHA_ALTA,

  V_CONTACTOS.FECHA_MODIFICACION,

  V_CONTACTOS.USUARIO,

  V_CONTACTOS.ID_EMPRESA,

  V_CONTACTOS.REFERENCIA,

  CLIENTES_DATOS.GRUPO_CLIENTE,

  CLIENTES_DATOS.NOMBRE_COMERCIAL,

  CLIENTES_DATOS.VENCIMIENTO_FACTURAS,

  CLIENTES_DATOS.BLOQUEADO,

  CLIENTES_DATOS.REGIMEN_IVA,

  CLIENTES_DATOS.MOTIVO_BLOQUEO,

  CLIENTES_DATOS.RECARGO_EQUIVALENCIA,

  CLIENTES_DATOS.ID_TIPO_IVA,

  CLIENTES_DATOS.ID_FORMA_PAGO,

  CLIENTES_DATOS.TIENDA_WEB

FROM

  V_CONTACTOS

  LEFT OUTER JOIN CLIENTES_DATOS ON (V_CONTACTOS.ID = CLIENTES_DATOS.ID_CLIENTE)

WHERE

  V_CONTACTOS.ID_CATEGORIA = 1;

/* View: V_PROVEEDORES, Owner: SYSDBA */
CREATE VIEW V_PROVEEDORES (ID, ID_CATEGORIA, NIF_CIF, NOMBRE, PERSONA_CONTACTO, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_EMPRESA, REFERENCIA, DESCUENTO, DESCRIPCION_PROVEEDOR, CODIGO_ASIGNADO, GRUPO_PROVEEDOR, REGIMEN_IVA, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB, HOMOLOGADO, CERTIFICACION) AS


SELECT

  V_CONTACTOS.ID,

  V_CONTACTOS.ID_CATEGORIA,

  V_CONTACTOS.NIF_CIF,

  V_CONTACTOS.NOMBRE,

  V_CONTACTOS.PERSONA_CONTACTO,

  V_CONTACTOS.CALLE,

  V_CONTACTOS.POBLACION,

  V_CONTACTOS.PROVINCIA,

  V_CONTACTOS.CODIGO_POSTAL,

  V_CONTACTOS.TELEFONO_1,

  V_CONTACTOS.TELEFONO_2,

  V_CONTACTOS.MOVIL_1,

  V_CONTACTOS.MOVIL_2,

  V_CONTACTOS.FAX,

  V_CONTACTOS.EMAIL_1,

  V_CONTACTOS.EMAIL_2,

  V_CONTACTOS.PAGINA_WEB,

  V_CONTACTOS.NOTAS,

  V_CONTACTOS.FECHA_ALTA,

  V_CONTACTOS.FECHA_MODIFICACION,

  V_CONTACTOS.USUARIO,

  V_CONTACTOS.ID_EMPRESA,

  V_CONTACTOS.REFERENCIA,

  PROVEEDORES_DATOS.DESCUENTO,

  PROVEEDORES_DATOS.DESCRIPCION_PROVEEDOR,

  PROVEEDORES_DATOS.CODIGO_ASIGNADO,

  PROVEEDORES_DATOS.GRUPO_PROVEEDOR,

  PROVEEDORES_DATOS.REGIMEN_IVA,

  PROVEEDORES_DATOS.ID_TIPO_IVA,

  PROVEEDORES_DATOS.ID_FORMA_PAGO,

  PROVEEDORES_DATOS.TIENDA_WEB,

  PROVEEDORES_DATOS.HOMOLOGADO,

  PROVEEDORES_DATOS.CERTIFICACION

FROM

  PROVEEDORES_DATOS

  LEFT OUTER JOIN V_CONTACTOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = V_CONTACTOS.ID)

WHERE

  V_CONTACTOS.ID_CATEGORIA = 2;

/* View: V_EMPLEADOS, Owner: SYSDBA */
CREATE VIEW V_EMPLEADOS (ID, ID_CATEGORIA, NIF_CIF, NOMBRE, PERSONA_CONTACTO, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_EMPRESA, REFERENCIA, FECHA_NACIMIENTO, CATEGORIA, FECHA_ALTA_EMPRESA, FORMACION_BASE, FORMACION_COMPLE, FORMACION_RECIBIDA, EXPERIENCIA) AS


SELECT V_CONTACTOS.ID,

  V_CONTACTOS.ID_CATEGORIA,

  V_CONTACTOS.NIF_CIF,

  V_CONTACTOS.NOMBRE,

  V_CONTACTOS.PERSONA_CONTACTO,

  V_CONTACTOS.CALLE,

  V_CONTACTOS.POBLACION,

  V_CONTACTOS.PROVINCIA,

  V_CONTACTOS.CODIGO_POSTAL,

  V_CONTACTOS.TELEFONO_1,

  V_CONTACTOS.TELEFONO_2,

  V_CONTACTOS.MOVIL_1,

  V_CONTACTOS.MOVIL_2,

  V_CONTACTOS.FAX,

  V_CONTACTOS.EMAIL_1,

  V_CONTACTOS.EMAIL_2,

  V_CONTACTOS.PAGINA_WEB,

  V_CONTACTOS.NOTAS,

  V_CONTACTOS.FECHA_ALTA,

  V_CONTACTOS.FECHA_MODIFICACION,

  V_CONTACTOS.USUARIO,

  V_CONTACTOS.ID_EMPRESA, 

  V_CONTACTOS.REFERENCIA,

  

  EMPLEADOS_DATOS.FECHA_NACIMIENTO,

  EMPLEADOS_DATOS.CATEGORIA,

  EMPLEADOS_DATOS.FECHA_ALTA_EMPRESA,

  EMPLEADOS_DATOS.FORMACION_BASE,

  EMPLEADOS_DATOS.FORMACION_COMPLE,

  EMPLEADOS_DATOS.FORMACION_RECIBIDA,

  EMPLEADOS_DATOS.EXPERIENCIA

  

FROM V_CONTACTOS

LEFT OUTER JOIN EMPLEADOS_DATOS ON (EMPLEADOS_DATOS.ID_EMPLEADO = V_CONTACTOS.ID)



WHERE V_CONTACTOS.ID_CATEGORIA = 3;
SET TERM ^ ;

/* Triggers only will work for SQL triggers */
CREATE TRIGGER TRI_INSERT_ALBARANES_CLIENTE FOR ALBARANES_CLIENTE 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_ALBARANES_CLIENTE FOR ALBARANES_CLIENTE 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_ALBARANES_CLI_DET FOR ALBARANES_CLIENTE_DETALLES 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_ALBARANES_CLI_DET FOR ALBARANES_CLIENTE_DETALLES 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_ALBARANES_PROVEEDOR FOR ALBARANES_PROVEEDOR 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_ALBARANES_PROVEEDOR FOR ALBARANES_PROVEEDOR 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_ALBARANES_PRO_DET FOR ALBARANES_PROVEEDOR_DETALLES 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_ALBARANES_PRO_DET FOR ALBARANES_PROVEEDOR_DETALLES 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_ALMACENES FOR ALMACENES 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_ALMACENES FOR ALMACENES 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_ARTICULOS FOR ARTICULOS 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_ARTICULOS FOR ARTICULOS 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_COMISIONES_LIQUID FOR COMISIONES_LIQUIDADAS 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_COMISIONES_LIQUID FOR COMISIONES_LIQUIDADAS 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_CONTACTOS FOR CONTACTOS 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_CONTACTOS FOR CONTACTOS 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_CONTACTOS_BANCO FOR CONTACTOS_DATOS_BANCO 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_CONTACTOS_BANCO FOR CONTACTOS_DATOS_BANCO 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_CONTACTOS_DIR FOR CONTACTOS_DIRECCIONES 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_CONTACTOS_DIR FOR CONTACTOS_DIRECCIONES 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_FACTURAS_CLIENTE FOR FACTURAS_CLIENTE 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_FACTURAS_CLIENTE FOR FACTURAS_CLIENTE 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_FACTURAS_CLIENTE_DET FOR FACTURAS_CLIENTE_DETALLES 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_FACTURAS_CLIENTE_DET FOR FACTURAS_CLIENTE_DETALLES 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_FACTURAS_PROVEEDOR FOR FACTURAS_PROVEEDOR 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_FACTURAS_PROVEEDOR FOR FACTURAS_PROVEEDOR 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_FACTURAS_PROV_DET FOR FACTURAS_PROVEEDOR_DETALLES 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_FACTURAS_PROV_DET FOR FACTURAS_PROVEEDOR_DETALLES 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_PAGOS_CLIENTE FOR PAGOS_CLIENTE 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_PAGOS_CLIENTE FOR PAGOS_CLIENTE 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_PAGOS_PROVEEDOR FOR PAGOS_PROVEEDOR 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_PAGOS_PROVEEDOR FOR PAGOS_PROVEEDOR 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_PEDIDOS_CLIENTE FOR PEDIDOS_CLIENTE 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_PEDIDOS_CLIENTE FOR PEDIDOS_CLIENTE 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_PEDIDOS_CLI_DET FOR PEDIDOS_CLIENTE_DETALLES 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_PEDIDOS_CLI_DET FOR PEDIDOS_CLIENTE_DETALLES 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_PEDIDOS_PROVEEDOR FOR PEDIDOS_PROVEEDOR 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_PEDIDOS_PROVEEDOR FOR PEDIDOS_PROVEEDOR 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_PEDIDOS_PROV_DET FOR PEDIDOS_PROVEEDOR_DETALLES 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_PEDIDOS_PROV_DET FOR PEDIDOS_PROVEEDOR_DETALLES 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_RECIBOS_CLIENTE FOR RECIBOS_CLIENTE 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_RECIBOS_CLIENTE FOR RECIBOS_CLIENTE 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_RECIBOS_PROVEEDOR FOR RECIBOS_PROVEEDOR 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_RECIBOS_PROVEEDOR FOR RECIBOS_PROVEEDOR 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_REMESAS_CLIENTE FOR REMESAS_CLIENTE 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_REMESAS_CLI FOR REMESAS_CLIENTE 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

CREATE TRIGGER TRI_INSERT_REMESAS_PROVEEDOR FOR REMESAS_PROVEEDOR 
ACTIVE BEFORE INSERT POSITION 0 
AS

begin

  NEW.FECHA_ALTA = current_timestamp;

  NEW.FECHA_MODIFICACION = Null;

end ^

CREATE TRIGGER TRI_UPDATE_REMESAS_PROV FOR REMESAS_PROVEEDOR 
ACTIVE BEFORE UPDATE POSITION 0 
AS

begin

  NEW.FECHA_MODIFICACION = current_timestamp;

end ^

COMMIT WORK ^
SET TERM ; ^
