This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/BD/factuges.sql
2007-06-11 15:35:41 +00:00

921 lines
25 KiB
SQL

CREATE DOMAIN TIPO_ID AS INTEGER;
CREATE DOMAIN TIPO_PERFIL AS VARCHAR(15);
CREATE DOMAIN TIPO_USUARIO AS VARCHAR(20);
CREATE DOMAIN TIPO_PASSWORD AS VARCHAR(10);
CREATE DOMAIN TIPO_NOTAS AS BLOB SUB_TYPE TEXT;
CREATE DOMAIN TIPO_BINARIO AS BLOB SUB_TYPE 0 SEGMENT SIZE 80;
CREATE DOMAIN TIPO_IMPORTE AS NUMERIC(11, 2);
CREATE DOMAIN TIPO_PORCENTAJE AS FLOAT;
CREATE DOMAIN TIPO_CONCEPTO AS VARCHAR(2000);
CREATE DOMAIN TIPO_BOOLEANO AS SMALLINT;
CREATE TABLE CONFIGURACION (
CODIGO VARCHAR(50) NOT NULL,
VALOR VARCHAR(255) NOT NULL,
ID_EMPRESA TIPO_ID
);
CREATE TABLE REFERENCIAS (
CODIGO VARCHAR(50) NOT NULL,
VALOR VARCHAR(255) NOT NULL,
ID_EMPRESA TIPO_ID
);
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
);
ALTER TABLE EMPRESAS ADD CONSTRAINT
PK_EMPRESAS
PRIMARY KEY (ID);
CREATE GENERATOR GEN_EMPRESAS_ID;
SET GENERATOR GEN_EMPRESAS_ID TO 1;
CREATE TABLE PERFILES (
ID TIPO_ID NOT NULL,
PERFIL TIPO_PERFIL NOT NULL
);
ALTER TABLE PERFILES
ADD CONSTRAINT PK_PERFILES PRIMARY KEY (ID);
CREATE GENERATOR GEN_PERFILES_ID;
SET GENERATOR GEN_PERFILES_ID TO 1;
CREATE TABLE USUARIOS (
ID TIPO_ID NOT NULL,
USUARIO TIPO_USUARIO NOT NULL,
PASS TIPO_PASSWORD,
ACTIVO TIPO_BOOLEANO,
LAST_LOGIN TIMESTAMP
);
ALTER TABLE USUARIOS
ADD CONSTRAINT PK_USUARIOS PRIMARY KEY (ID);
CREATE GENERATOR GEN_USUARIOS_ID;
SET GENERATOR GEN_USUARIOS_ID TO 1;
CREATE TABLE PERFILES_USUARIOS (
ID_PERFIL TIPO_ID NOT NULL,
ID_USUARIO TIPO_ID NOT NULL
);
ALTER TABLE PERFILES_USUARIOS
ADD CONSTRAINT PK_PERFILES_USUARIOS PRIMARY KEY (ID_PERFIL, ID_USUARIO);
CREATE TABLE CATEGORIAS (
ID TIPO_ID NOT NULL,
CATEGORIA VARCHAR(255) NOT NULL
);
ALTER TABLE CATEGORIAS
ADD CONSTRAINT PK_CATEGORIAS PRIMARY KEY (ID);
CREATE GENERATOR GEN_CATEGORIAS_ID;
SET GENERATOR GEN_CATEGORIAS_ID TO 1;
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
);
ALTER TABLE CONTACTOS
ADD CONSTRAINT PK_CONTACTOS PRIMARY KEY (ID);
CREATE GENERATOR GEN_CONTACTOS_ID;
SET GENERATOR GEN_CONTACTOS_ID TO 1;
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 TABLE CONTACTOS_CATEGORIAS (
ID_CONTACTO TIPO_ID NOT NULL,
ID_CATEGORIA TIPO_ID NOT NULL
);
ALTER TABLE CONTACTOS_CATEGORIAS
ADD CONSTRAINT PK_CONTACTOS_CATEGORIAS PRIMARY KEY (ID_CONTACTO, ID_CATEGORIA);
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)
);
ALTER TABLE CONTACTOS_DATOS_BANCO
ADD CONSTRAINT PK_CONTACTOS_DATOS_BANCO PRIMARY KEY (ID);
CREATE INDEX IDX_CONTACTOS_DATOS_BANCO
ON CONTACTOS_DATOS_BANCO (ID_CONTACTO);
CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID;
SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 1;
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)
);
ALTER TABLE CONTACTOS_DIRECCIONES
ADD CONSTRAINT PK_CONTACTOS_DIR PRIMARY KEY (ID);
CREATE GENERATOR GEN_CONTACTOS_DIR_ID;
SET GENERATOR GEN_CONTACTOS_DIR_ID TO 1;
CREATE TABLE CLIENTES_DATOS (
ID_CLIENTE TIPO_ID NOT NULL,
ID_AGENTE TIPO_ID,
GRUPO_CLIENTE VARCHAR(255),
PORTE TIPO_IMPORTE
);
ALTER TABLE CLIENTES_DATOS
ADD CONSTRAINT PK_CLIENTES_DATOS PRIMARY KEY (ID_CLIENTE);
CREATE TABLE CLIENTES_GRUPOS (
DESCRIPCION VARCHAR(255)
);
CREATE TABLE PROVEEDORES_DATOS (
ID_PROVEEDOR TIPO_ID NOT NULL,
DESCUENTO TIPO_PORCENTAJE,
REGIMEN_IVA TIPO_PORCENTAJE
);
ALTER TABLE PROVEEDORES_DATOS
ADD CONSTRAINT PK_PROVEEDORES_DATOS PRIMARY KEY (ID_PROVEEDOR);
CREATE TABLE EMPRESAS_CONTACTOS (
ID_EMPRESA TIPO_ID NOT NULL,
ID_CONTACTO TIPO_ID NOT NULL
);
ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT
PK_EMPRESAS_CONTACTOS
PRIMARY KEY (ID_EMPRESA, ID_CONTACTO);
CREATE TABLE EMPRESAS_USUARIOS (
ID_EMPRESA TIPO_ID NOT NULL,
ID_USUARIO TIPO_ID NOT NULL
);
ALTER TABLE EMPRESAS_USUARIOS ADD CONSTRAINT
PK_EMPRESAS_USUARIOS
PRIMARY KEY (ID_EMPRESA, ID_USUARIO);
CREATE TABLE FACTURAS_CLIENTE (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CONTRATO TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_FACTURA DATE,
VENCIMIENTO INTEGER,
SITUACION VARCHAR(255),
FECHA_PAGADO DATE,
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,
FORMA_PAGO 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
);
ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT PK_FACTURAS_CLIENTE PRIMARY KEY (ID);
ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT FK_FACTURAS_CLIENTE_CONTACTOS FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT FK_FACTURAS_CLIENTE_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE GENERATOR GEN_FACTURAS_CLIENTE_ID;
SET GENERATOR GEN_FACTURAS_CLIENTE_ID TO 1;
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 TABLE FACTURAS_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_FACTURA TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
CONCEPTO TIPO_CONCEPTO,
CANTIDAD INTEGER,
IMPORTE_UNIDAD TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
ALTER TABLE FACTURAS_CLIENTE_DETALLES ADD CONSTRAINT PK_FACTURAS_CLIENTE_DETALLES PRIMARY KEY (ID);
CREATE GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID;
SET GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID TO 1;
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 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
);
ALTER TABLE ALMACENES ADD CONSTRAINT PK_ALMACENES PRIMARY KEY (ID);
ALTER TABLE ALMACENES ADD CONSTRAINT FK_ALMACENES_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE GENERATOR GEN_ALMACENES_ID;
SET GENERATOR GEN_ALMACENES_ID TO 1;
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 TABLE FAMILIAS (
DESCRIPCION VARCHAR(255)
);
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,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE ARTICULOS ADD CONSTRAINT PK_ARTICULOS PRIMARY KEY (ID);
ALTER TABLE ARTICULOS ADD CONSTRAINT FK_ARTICULOS_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE GENERATOR GEN_ARTICULOS_ID;
SET GENERATOR GEN_ARTICULOS_ID TO 1;
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 TABLE ARTICULOS_DATOS_PROV (
ID TIPO_ID NOT NULL,
ID_ARTICULO TIPO_ID,
ID_PROVEEDOR TIPO_ID,
REFERENCIA VARCHAR(255),
PRECIO_COSTE TIPO_IMPORTE,
PRECIO_PORTE TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE
);
ALTER TABLE ARTICULOS_DATOS_PROV ADD CONSTRAINT PK_ARTICULOS_DATOS_PROV PRIMARY KEY (ID);
CREATE GENERATOR GEN_ARTICULOS_DATOS_PROV_ID;
SET GENERATOR GEN_ARTICULOS_DATOS_PROV_ID TO 1;
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,
SITUACION VARCHAR(255),
ID_ALMACEN TIPO_ID,
DIRECCION_ENTREGA TIPO_NOTAS,
OBSERVACIONES TIPO_NOTAS,
IMPORTE_TOTAL TIPO_IMPORTE,
INCIDENCIAS TIPO_NOTAS,
INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR PRIMARY KEY (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);
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 TABLE PEDIDOS_PROVEEDOR_DETALLES (
ID TIPO_ID NOT NULL,
ID_PEDIDO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
REFERENCIA VARCHAR(255),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD INTEGER,
IMPORTE_UNIDAD TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR_DETALLES PRIMARY KEY (ID);
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 TABLE PEDIDOS_CLIENTE (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CLIENTE TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_PEDIDO DATE,
FECHA_CONFIRMACION DATE,
FECHA_ENTREGA DATE,
SITUACION VARCHAR(255),
CALLE VARCHAR(255),
CODIGO_POSTAL VARCHAR(10),
POBLACION VARCHAR(255),
PROVINCIA VARCHAR(255),
PERSONA_CONTACTO VARCHAR(255),
TELEFONO VARCHAR(25),
OBSERVACIONES TIPO_NOTAS,
IMPORTE_TOTAL TIPO_IMPORTE,
INCIDENCIAS TIPO_NOTAS,
INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT PK_PEDIDOS_CLIENTE PRIMARY KEY (ID);
CREATE GENERATOR GEN_PEDIDOS_PROV_ID;
SET GENERATOR GEN_PEDIDOS_PROV_ID TO 1;
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 TABLE PEDIDOS_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_PEDIDO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
REFERENCIA VARCHAR(255),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD INTEGER,
IMPORTE_UNIDAD TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
ALTER TABLE PEDIDOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PEDIDOS_CLIENTE_DETALLES PRIMARY KEY (ID);
CREATE GENERATOR GEN_PEDIDOS_CLI_ID;
SET GENERATOR GEN_PEDIDOS_CLI_ID TO 1;
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 TABLE INVENTARIO (
ID TIPO_ID NOT NULL,
ID_ARTICULO TIPO_ID,
ID_ALMACEN TIPO_ID,
ID_PEDIDO_PROVEEDOR TIPO_ID,
ID_PEDIDO_CLIENTE TIPO_ID
);
ALTER TABLE INVENTARIO ADD CONSTRAINT PK_INVENTARIO PRIMARY KEY (ID);
ALTER TABLE INVENTARIO ADD CONSTRAINT FK_INVENTARIO_ALMACENES FOREIGN KEY (ID_ALMACEN) REFERENCES ALMACENES (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE INVENTARIO ADD CONSTRAINT FK_INVENTARIO_ARTICULOS FOREIGN KEY (ID_ARTICULO) REFERENCES ARTICULOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE INVENTARIO ADD CONSTRAINT FK_INVENTARIO_PEDIDOS_PRO FOREIGN KEY (ID_PEDIDO_PROVEEDOR) REFERENCES PEDIDOS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE CASCADE;
CREATE GENERATOR GEN_INVENTARIO_ID;
SET GENERATOR GEN_INVENTARIO_ID TO 1;
CREATE TABLE PRESUPUESTOS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CLIENTE TIPO_ID,
ID_VENDEDOR TIPO_ID,
TIPO VARCHAR(10),
REFERENCIA VARCHAR(255),
FECHA_PRESUPUESTO DATE,
VIGENCIA INTEGER,
SITUACION VARCHAR(255),
FECHA_DECISION DATE,
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,
PLAZO_ENTREGA TIPO_NOTAS,
FORMA_PAGO TIPO_NOTAS,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE PRESUPUESTOS
ADD CONSTRAINT PK_PRESUPUESTOS PRIMARY KEY (ID);
CREATE GENERATOR GEN_PRESUPUESTOS_ID;
SET GENERATOR GEN_PRESUPUESTOS_ID TO 1;
CREATE TABLE PRESUPUESTOS_DETALLES (
ID TIPO_ID NOT NULL,
ID_PRESUPUESTO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
CONCEPTO TIPO_CONCEPTO,
CANTIDAD INTEGER,
PUNTOS INTEGER,
IMPORTE_PUNTOS TIPO_IMPORTE,
IMPORTE_UNIDAD TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO
);
ALTER TABLE PRESUPUESTOS_DETALLES
ADD CONSTRAINT PK_PRESUPUESTOS_DETALLES PRIMARY KEY (ID);
CREATE GENERATOR GEN_PRESUPUESTOS_DETALLES_ID;
SET GENERATOR GEN_PRESUPUESTOS_DETALLES_ID TO 1;
CREATE TABLE PEDIDOS_PROVEEDOR (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_PROVEEDOR TIPO_ID,
ID_MONTAJE TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_PEDIDO DATE,
FECHA_CONFIRMACION DATE,
FECHA_ENTREGA DATE,
SITUACION VARCHAR(255),
DIRECCION_ENTREGA TIPO_NOTAS,
OBSERVACIONES TIPO_NOTAS,
IMPORTE_TOTAL TIPO_IMPORTE,
INCIDENCIAS TIPO_NOTAS,
INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR PRIMARY KEY (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);
CREATE GENERATOR GEN_PEDIDOS_PROV_ID;
SET GENERATOR GEN_PEDIDOS_PROV_ID TO 1;
CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES (
ID TIPO_ID NOT NULL,
ID_PEDIDO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
CONCEPTO TIPO_CONCEPTO,
CANTIDAD INTEGER,
IMPORTE_UNIDAD TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO
);
ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR_DETALLES PRIMARY KEY (ID);
CREATE GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID;
SET GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID TO 1;
CREATE TABLE COBROS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CLIENTE TIPO_ID,
ID_MONTAJE TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_COBRO TIMESTAMP,
DESCRIPCION TIPO_CONCEPTO,
IMPORTE TIPO_IMPORTE,
FORMA_PAGO VARCHAR(255),
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE COBROS ADD CONSTRAINT PK_COBROS PRIMARY KEY (ID);
ALTER TABLE COBROS ADD CONSTRAINT FK_COBROS FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID);
CREATE GENERATOR GEN_COBROS_CLIENTE_ID;
SET GENERATOR GEN_COBROS_CLIENTE_ID TO 1;
ALTER TABLE PRESUPUESTOS_DETALLES
ADD DESCUENTO TIPO_PORCENTAJE;
ALTER TABLE REFERENCIAS
ADD ID_EMPRESA TIPO_ID;
ALTER TABLE REFERENCIAS
ADD CONSTRAINT FK_REFERENCIAS
FOREIGN KEY (ID_EMPRESA)
REFERENCES EMPRESAS(ID);
ALTER TABLE FACTURAS_CLIENTE_DETALLES
ADD FECHA_ALTA TIMESTAMP;
ALTER TABLE FACTURAS_CLIENTE_DETALLES
ADD FECHA_MODIFICACION TIMESTAMP;
ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES
ADD FECHA_ALTA TIMESTAMP;
ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES
ADD FECHA_MODIFICACION TIMESTAMP;
ALTER TABLE PRESUPUESTOS_DETALLES
ADD FECHA_ALTA TIMESTAMP;
ALTER TABLE PRESUPUESTOS_DETALLES
ADD FECHA_MODIFICACION TIMESTAMP;
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_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_INSERT_PRESUPUESTOS FOR PRESUPUESTOS
ACTIVE BEFORE INSERT POSITION 0
AS
begin
NEW.FECHA_ALTA = current_timestamp;
NEW.FECHA_MODIFICACION = Null;
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_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_INSERT_PRESUPUESTOS_DET FOR PRESUPUESTOS_DETALLES
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_UPDATE_PEDIDOS_PROVEEDOR FOR PEDIDOS_PROVEEDOR
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
NEW.FECHA_MODIFICACION = current_timestamp;
end;
CREATE TRIGGER TRI_UPDATE_PRESUPUESTOS FOR PRESUPUESTOS
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
NEW.FECHA_MODIFICACION = current_timestamp;
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_UPDATE_PEDIDOS_PROV_DET FOR PEDIDOS_PROVEEDOR_DETALLES
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
NEW.FECHA_MODIFICACION = current_timestamp;
end;
CREATE TRIGGER TRI_UPDATE_PRESUPUESTOS_DET FOR PRESUPUESTOS_DETALLES
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
NEW.FECHA_MODIFICACION = current_timestamp;
end;
ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES
ADD REFERENCIA VARCHAR(255);
ALTER TABLE COBROS ADD CONSTRAINT FK_COBROS_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
alter table PRESUPUESTOS add constraint FK_PRESUPUESTOS2 foreign key (ID_CLIENTE) references CONTACTOS(ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
/****************************************************************************/
/* INICIALIZAR GENERADORES */
SET GENERATOR GEN_ALMACENES_ID TO 1;
SET GENERATOR GEN_ARTICULOS_DATOS_PROV_ID TO 1;
SET GENERATOR GEN_ARTICULOS_ID TO 1;
SET GENERATOR GEN_CATEGORIAS_ID TO 4;
SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 1;
SET GENERATOR GEN_CONTACTOS_DIR_ID TO 1;
SET GENERATOR GEN_CONTACTOS_ID TO 1;
SET GENERATOR GEN_EMPRESAS_ID TO 2;
SET GENERATOR GEN_FACTURAS_CLIENTE_ID TO 1;
SET GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID TO 1;
SET GENERATOR GEN_INVENTARIO_ID TO 1;
SET GENERATOR GEN_PEDIDOS_CLI_ID TO 1;
SET GENERATOR GEN_PEDIDOS_PROV_ID TO 1;
SET GENERATOR GEN_PERFILES_ID TO 1;
SET GENERATOR GEN_USUARIOS_ID TO 1;
/****************************************************************************/
/* INSERTAR DATOS */
INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (1, 'CLIENTE');
INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (2, 'PROVEEDOR');
INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (3, 'AGENTE');
COMMIT;
INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA) VALUES('REF_FACTURAS_CLIENTE', '2007/001', 1);
COMMIT;