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.
Noviseda_FactuGES2/Database/scripts/factuges.sql

4554 lines
141 KiB
SQL
Raw Blame History

/******************************************************************************/
/**** Generated by IBExpert 2007.05.03 23/09/2008 10:55:38 ****/
/******************************************************************************/
SET SQL DIALECT 3;
SET NAMES ISO8859_1;
CREATE DATABASE 'FACTUGES.FDB' PAGE_SIZE 4096
DEFAULT CHARACTER SET ISO8859_1;
/******************************************************************************/
/**** User Defined Functions ****/
/******************************************************************************/
DECLARE EXTERNAL FUNCTION F_RTFTOTEXT
CString(32767)
RETURNS CString(32767)
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(254)
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IB_UDF_strlen' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION SUBSTR
CSTRING(254),
SMALLINT,
SMALLINT
RETURNS CSTRING(254) FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';
/******************************************************************************/
/**** Domains ****/
/******************************************************************************/
CREATE DOMAIN TIPO_BINARIO AS
BLOB SUB_TYPE 0 SEGMENT SIZE 80;
CREATE DOMAIN TIPO_BOOLEANO AS
SMALLINT;
CREATE DOMAIN TIPO_CANTIDAD AS
NUMERIC(11,2);
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 1 SEGMENT SIZE 80;
CREATE DOMAIN TIPO_PERFIL AS
VARCHAR(15);
CREATE DOMAIN TIPO_PORCENTAJE AS
NUMERIC(2,2);
CREATE DOMAIN TIPO_USUARIO AS
VARCHAR(30);
/******************************************************************************/
/**** Generators ****/
/******************************************************************************/
CREATE GENERATOR GEN_ALBARANES_CLI_DETALLES_ID;
SET GENERATOR GEN_ALBARANES_CLI_DETALLES_ID TO 1;
CREATE GENERATOR GEN_ALBARANES_CLI_DET_COLOR_ID;
SET GENERATOR GEN_ALBARANES_CLI_DET_COLOR_ID TO 1;
CREATE GENERATOR GEN_ALBARANES_CLI_ID;
SET GENERATOR GEN_ALBARANES_CLI_ID TO 1;
CREATE GENERATOR GEN_ALBARANES_PRO_DETALLES_ID;
SET GENERATOR GEN_ALBARANES_PRO_DETALLES_ID TO 1;
CREATE GENERATOR GEN_ALBARANES_PRO_ID;
SET GENERATOR GEN_ALBARANES_PRO_ID TO 1;
CREATE GENERATOR GEN_ALMACENES_ID;
SET GENERATOR GEN_ALMACENES_ID TO 1;
CREATE GENERATOR GEN_ARTICULOS_ID;
SET GENERATOR GEN_ARTICULOS_ID TO 1;
CREATE GENERATOR GEN_ARTICULOS_PROVEEDORES_ID;
SET GENERATOR GEN_ARTICULOS_PROVEEDORES_ID TO 1;
CREATE GENERATOR GEN_CATEGORIAS_ID;
SET GENERATOR GEN_CATEGORIAS_ID TO 1;
CREATE GENERATOR GEN_CLIENTES_DTOS_PROV_ID;
SET GENERATOR GEN_CLIENTES_DTOS_PROV_ID TO 1;
CREATE GENERATOR GEN_CLIENTES_GRUPOS_ID;
SET GENERATOR GEN_CLIENTES_GRUPOS_ID TO 1;
CREATE GENERATOR GEN_COMISIONES_VENDEDORES_ID;
SET GENERATOR GEN_COMISIONES_VENDEDORES_ID TO 1;
CREATE GENERATOR GEN_COMISIONES_LIQUID_ID;
SET GENERATOR GEN_COMISIONES_LIQUID_ID TO 1;
CREATE GENERATOR GEN_CONFIGURACION_ID;
SET GENERATOR GEN_CONFIGURACION_ID TO 1;
CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID;
SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 1;
CREATE GENERATOR GEN_CONTACTOS_DIR_ID;
SET GENERATOR GEN_CONTACTOS_DIR_ID TO 1;
CREATE GENERATOR GEN_CONTACTOS_ID;
SET GENERATOR GEN_CONTACTOS_ID TO 1;
CREATE GENERATOR GEN_CONTACTOS_PERSONAL_ID;
SET GENERATOR GEN_CONTACTOS_PERSONAL_ID TO 1;
CREATE GENERATOR GEN_EMPLEADOS_GRUPOS_ID;
SET GENERATOR GEN_EMPLEADOS_GRUPOS_ID TO 1;
CREATE GENERATOR GEN_EMPRESAS_CONTACTOS_ID;
SET GENERATOR GEN_EMPRESAS_CONTACTOS_ID TO 1;
CREATE GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID;
SET GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID TO 1;
CREATE GENERATOR GEN_EMPRESAS_ID;
SET GENERATOR GEN_EMPRESAS_ID TO 1;
CREATE GENERATOR GEN_EMPRESAS_USUARIOS_ID;
SET GENERATOR GEN_EMPRESAS_USUARIOS_ID TO 1;
CREATE GENERATOR GEN_FABRICANTES_ID;
SET GENERATOR GEN_FABRICANTES_ID TO 1;
CREATE GENERATOR GEN_FACTURAS_CLIENTE_ID;
SET GENERATOR GEN_FACTURAS_CLIENTE_ID TO 1;
CREATE GENERATOR GEN_FACTURAS_PROVEEDOR_ID;
SET GENERATOR GEN_FACTURAS_PROVEEDOR_ID TO 1;
CREATE GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID;
SET GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID TO 1;
CREATE GENERATOR GEN_FACTURA_PROV_DETALLES_ID;
SET GENERATOR GEN_FACTURA_PROV_DETALLES_ID TO 1;
CREATE GENERATOR GEN_FAMILIAS_ID;
SET GENERATOR GEN_FAMILIAS_ID TO 1;
CREATE GENERATOR GEN_FORMAS_PAGO_ID;
SET GENERATOR GEN_FORMAS_PAGO_ID TO 1;
CREATE GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID;
SET GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID TO 1;
CREATE GENERATOR GEN_INFORMES_ID;
SET GENERATOR GEN_INFORMES_ID TO 1;
CREATE GENERATOR GEN_MOVIMIENTOS_ID;
SET GENERATOR GEN_MOVIMIENTOS_ID TO 1;
CREATE GENERATOR GEN_OBRAS_EJECUCIONES_ID;
SET GENERATOR GEN_OBRAS_EJECUCIONES_ID TO 1;
CREATE GENERATOR GEN_OBRAS_EJEC_PRESUPUESTOS_ID;
SET GENERATOR GEN_OBRAS_EJEC_PRESUPUESTOS_ID TO 1;
CREATE GENERATOR GEN_OBRAS_EJEC_PEDIDOS_PROV_ID;
SET GENERATOR GEN_OBRAS_EJEC_PEDIDOS_PROV_ID TO 1;
CREATE GENERATOR GEN_PAGOS_CLIENTE_ID;
SET GENERATOR GEN_PAGOS_CLIENTE_ID TO 1;
CREATE GENERATOR GEN_PAGOS_PROVEEDOR_ID;
SET GENERATOR GEN_PAGOS_PROVEEDOR_ID TO 1;
CREATE GENERATOR GEN_PEDIDOS_CLI_DETALLES_ID;
SET GENERATOR GEN_PEDIDOS_CLI_DETALLES_ID TO 1;
CREATE GENERATOR GEN_PEDIDOS_CLI_ID;
SET GENERATOR GEN_PEDIDOS_CLI_ID TO 1;
CREATE GENERATOR GEN_PEDIDOS_CLI_DET_COLOR_ID;
SET GENERATOR GEN_PEDIDOS_CLI_DET_COLOR_ID TO 1;
CREATE GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID;
SET GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID TO 1;
CREATE GENERATOR GEN_PEDIDOS_PROV_ID;
SET GENERATOR GEN_PEDIDOS_PROV_ID TO 1;
CREATE GENERATOR GEN_PEDIDOS_PROV_PEDIDOS_ID;
SET GENERATOR GEN_PEDIDOS_PROV_PEDIDOS_ID TO 1;
CREATE GENERATOR GEN_PERMISOSEX_ID;
SET GENERATOR GEN_PERMISOSEX_ID TO 1;
CREATE GENERATOR GEN_PERMISOS_ID;
SET GENERATOR GEN_PERMISOS_ID TO 1;
CREATE GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID;
SET GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID TO 1;
CREATE GENERATOR GEN_PRESUPUESTOS_CLI_ID;
SET GENERATOR GEN_PRESUPUESTOS_CLI_ID TO 1;
CREATE GENERATOR GEN_PROVEEDORES_GRUPOS_ID;
SET GENERATOR GEN_PROVEEDORES_GRUPOS_ID TO 1;
CREATE GENERATOR GEN_RECIBOS_CLIENTE_ID;
SET GENERATOR GEN_RECIBOS_CLIENTE_ID TO 1;
CREATE GENERATOR GEN_RECIBOS_PROVEEDOR_ID;
SET GENERATOR GEN_RECIBOS_PROVEEDOR_ID TO 1;
CREATE GENERATOR GEN_REFERENCIAS_ID;
SET GENERATOR GEN_REFERENCIAS_ID TO 1;
CREATE GENERATOR GEN_REMESAS_CLIENTE_ID;
SET GENERATOR GEN_REMESAS_CLIENTE_ID TO 1;
CREATE GENERATOR GEN_REMESAS_PROVEEDOR_ID;
SET GENERATOR GEN_REMESAS_PROVEEDOR_ID TO 1;
CREATE GENERATOR GEN_TIENDA_WEB_ID;
SET GENERATOR GEN_TIENDA_WEB_ID TO 1;
CREATE GENERATOR GEN_TIPOS_IVA_ID;
SET GENERATOR GEN_TIPOS_IVA_ID TO 1;
CREATE GENERATOR GEN_UNIDADES_MEDIDA_ID;
SET GENERATOR GEN_UNIDADES_MEDIDA_ID TO 1;
CREATE GENERATOR GEN_USUARIOS_ID;
SET GENERATOR GEN_USUARIOS_ID TO 1;
/******************************************************************************/
/**** Tables ****/
/******************************************************************************/
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,
TIPO VARCHAR(1),
REFERENCIA VARCHAR(255),
ID_DIRECCION TIPO_ID,
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),
DESCUENTO2 TIPO_PORCENTAJE,
IMPORTE_DESCUENTO2 TIPO_IMPORTE,
DATOS_BANCARIOS VARCHAR(255) COLLATE ES_ES
);
CREATE TABLE ALBARANES_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_ALBARAN TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(25),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD TIPO_CANTIDAD,
UNIDAD_MEDIDA VARCHAR(255),
IMPORTE_UNIDAD TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_PORTE TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
ID_PEDIDO TIPO_ID,
ID_ARTICULO_REEMPLAZADO TIPO_ID
);
CREATE TABLE ALBARANES_CLIENTE_DETALLE_COLOR (
ID TIPO_ID NOT NULL,
ID_DETALLE TIPO_ID NOT NULL,
COLOR1 INTEGER Default 0,
COLOR2 INTEGER Default 0,
COLOR3 INTEGER Default 0,
COLOR4 INTEGER Default 0,
COLOR5 INTEGER Default 0,
COLOR6 INTEGER Default 0,
COLOR7 INTEGER Default 0,
COLOR8 INTEGER Default 0,
COLOR9 INTEGER Default 0,
COLOR10 INTEGER Default 0,
COLOR11 INTEGER Default 0,
COLOR12 INTEGER Default 0
);
CREATE TABLE ALBARANES_PROVEEDOR (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_PROVEEDOR TIPO_ID,
ID_DIRECCION TIPO_ID,
PERSONA_CONTACTO_PROV VARCHAR(255),
FECHA_ALBARAN DATE,
ID_PEDIDO TIPO_ID,
ID_FACTURA TIPO_ID,
TIPO VARCHAR(1),
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),
ID_ALBARAN TIPO_ID
);
CREATE TABLE ALBARANES_PROVEEDOR_DETALLES (
ID TIPO_ID NOT NULL,
ID_ALBARAN TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(25),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD TIPO_CANTIDAD,
UNIDAD_MEDIDA VARCHAR(255),
IMPORTE_UNIDAD TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_PORTE TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
ID_PEDIDO TIPO_ID
);
CREATE TABLE ALMACENES (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID NOT NULL,
TIPO_ALMACEN VARCHAR(10),
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
);
CREATE TABLE ARTICULOS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
REFERENCIA VARCHAR(255),
DESCRIPCION VARCHAR(255),
FAMILIA VARCHAR(255),
UNIDAD_MEDIDA VARCHAR(255),
IMAGEN TIPO_BINARIO,
COMISIONABLE TIPO_BOOLEANO,
FABRICANTE VARCHAR(255),
REFERENCIA_FABR VARCHAR(255),
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO,
INVENTARIABLE TIPO_BOOLEANO,
ELIMINADO TIPO_BOOLEANO,
PARAM_MARGEN FLOAT,
TIEMPO INTEGER,
PARAM_TIEMPO FLOAT,
MANO_OBRA TIPO_IMPORTE,
PRECIO NUMERIC(11,2) Default 0,
CAMPOTECNICO VARCHAR(200),
CODIGOTECNICO VARCHAR(15),
DISENOTECNICO VARCHAR(6)
);
CREATE TABLE ARTICULOS_PROVEEDORES (
ID TIPO_ID NOT NULL,
ID_ARTICULO TIPO_ID,
ID_PROVEEDOR TIPO_ID,
REFERENCIA_PROV VARCHAR(255),
PRECIO_COSTE TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
PRECIO_NETO TIPO_IMPORTE,
PRECIO_PORTE TIPO_IMPORTE,
PRECIO_PVP_VENTA TIPO_IMPORTE,
PRECIO_PVP_TOTAL TIPO_IMPORTE
);
CREATE TABLE CATEGORIAS (
ID TIPO_ID NOT NULL,
CATEGORIA VARCHAR(255) NOT NULL
);
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,
VENCIMIENTO_FACTURAS_1 SMALLINT,
VENCIMIENTO_FACTURAS_2 SMALLINT,
VENCIMIENTO_FACTURAS_3 SMALLINT,
FELICITACION TIPO_BOOLEANO,
DESCUENTO2 TIPO_PORCENTAJE
);
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
);
CREATE TABLE CLIENTES_GRUPOS (
ID TIPO_ID NOT NULL,
DESCRIPCION VARCHAR(255)
);
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
);
CREATE TABLE CONFIGURACION (
ID TIPO_ID NOT NULL,
CODIGO VARCHAR(50) NOT NULL,
VALOR VARCHAR(255) NOT NULL,
ID_EMPRESA TIPO_ID
);
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),
PAIS VARCHAR(255) COLLATE ES_ES
);
CREATE TABLE CONTACTOS_CATEGORIAS (
ID_CONTACTO TIPO_ID NOT NULL,
ID_CATEGORIA TIPO_ID NOT NULL
);
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
);
CREATE TABLE CONTACTOS_DATOS_PERSONAL (
ID TIPO_ID NOT NULL,
ID_CONTACTO TIPO_ID NOT NULL,
NOMBRE VARCHAR(255),
PUESTO VARCHAR(255),
TELEFONO VARCHAR(25),
MOVIL VARCHAR(25),
FAX VARCHAR(25),
EMAIL VARCHAR(255),
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
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
);
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,
CONTRATO VARCHAR(255),
DURACION VARCHAR(255),
FECHA_BAJA DATE,
CAUSA_BAJA VARCHAR(255)
);
CREATE TABLE EMPLEADOS_GRUPOS (
ID TIPO_ID NOT NULL,
DESCRIPCION VARCHAR(255)
);
CREATE TABLE VENDEDORES_DATOS(
ID_VENDEDOR TIPO_ID NOT NULL,
COMISION TIPO_PORCENTAJE,
ID_USUARIO 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),
PARAM_TIEMPO TIPO_IMPORTE,
PARAM_MARGEN TIPO_PORCENTAJE,
ID_TIPO_IVA SMALLINT,
ID_FORMA_PAGO SMALLINT
);
CREATE TABLE EMPRESAS_CONTACTOS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID NOT NULL,
ID_CONTACTO TIPO_ID NOT NULL
);
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),
IBAN VARCHAR(255) COLLATE ES_ES,
SWIFT VARCHAR(255) COLLATE ES_ES
);
CREATE TABLE EMPRESAS_USUARIOS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID NOT NULL,
ID_USUARIO TIPO_ID NOT NULL
);
CREATE TABLE FABRICANTES (
ID TIPO_ID NOT NULL,
DESCRIPCION VARCHAR(255)
);
CREATE TABLE FACTURAS_CLIENTE (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_FACTURA DATE,
FECHA_VENCIMIENTO DATE,
FECHA_RETENCION 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),
ID_DIRECCION TIPO_ID,
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,
DATOS_BANCARIOS VARCHAR(255),
PERSONA_CONTACTO VARCHAR(255),
RETENCION TIPO_PORCENTAJE,
IMPORTE_RETENCION TIPO_IMPORTE,
DESCUENTO2 TIPO_PORCENTAJE,
IMPORTE_DESCUENTO2 TIPO_IMPORTE
);
CREATE TABLE FACTURAS_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_FACTURA TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(25),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD TIPO_CANTIDAD,
UNIDAD_MEDIDA VARCHAR(255),
IMPORTE_UNIDAD TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_PORTE TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
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,
DATOS_BANCARIOS VARCHAR(255),
FECHA_VENCIMIENTO DATE
);
CREATE TABLE FACTURAS_PROVEEDOR_DETALLES (
ID TIPO_ID NOT NULL,
ID_FACTURA TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(25),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD TIPO_CANTIDAD,
UNIDAD_MEDIDA VARCHAR(255),
IMPORTE_UNIDAD TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_PORTE TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
CREATE TABLE FACTURAS_PROVEEDOR_PEDIDOS (
ID TIPO_ID NOT NULL,
ID_FACTURA TIPO_ID NOT NULL,
ID_PEDIDO TIPO_ID,
IMPORTE_TOTAL TIPO_IMPORTE,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
CREATE TABLE FAMILIAS (
ID TIPO_ID NOT NULL,
DESCRIPCION VARCHAR(255)
);
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)
);
CREATE TABLE FORMAS_PAGO_PLAZOS (
ID TIPO_ID NOT NULL,
ID_FORMA_PAGO TIPO_ID NOT NULL,
NUM_DIAS SMALLINT,
PORCENTAJE TIPO_PORCENTAJE
);
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 2 SEGMENT SIZE 4096
);
CREATE TABLE MOVIMIENTOS (
ID TIPO_ID NOT NULL,
ID_ALMACEN TIPO_ID,
ID_ARTICULO TIPO_ID,
FECHA_MOVIMIENTO DATE,
TIPO VARCHAR(1),
CANTIDAD TIPO_CANTIDAD,
CAUSA TIPO_CONCEPTO,
ID_ALMACEN_RESERVA TIPO_ID
);
CREATE TABLE OBRAS_DATOS (
ID_ALMACEN TIPO_ID NOT NULL,
ID_CLIENTE TIPO_ID
);
CREATE TABLE OBRAS_EJECUCIONES (
ID TIPO_ID NOT NULL,
ID_OBRA TIPO_ID,
FECHA_INICIO DATE,
FECHA_FIN DATE,
ID_SUBCONTRATA TIPO_ID,
OBSERVACIONES TIPO_NOTAS,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
CREATE TABLE OBRAS_EJECUCIONES_PRESUPUESTOS (
ID TIPO_ID NOT NULL,
ID_EJECUCION TIPO_ID,
ID_PRESUPUESTO TIPO_ID
);
CREATE TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV (
ID TIPO_ID NOT NULL,
ID_EJECUCION TIPO_ID,
ID_PEDIDO TIPO_ID,
ID_PRESUPUESTO TIPO_ID
);
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
);
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
);
CREATE TABLE PEDIDOS_CLIENTE (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CLIENTE TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_PEDIDO DATE,
ID_DIRECCION TIPO_ID,
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),
DESCUENTO2 TIPO_PORCENTAJE,
IMPORTE_DESCUENTO2 TIPO_IMPORTE,
DATOS_BANCARIOS VARCHAR(255) COLLATE ES_ES
);
CREATE TABLE PEDIDOS_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_PEDIDO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(25),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD TIPO_CANTIDAD,
IMPORTE_UNIDAD TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_PORTE TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
CREATE TABLE PEDIDOS_CLIENTE_DETALLE_COLOR (
ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */,
ID_DETALLE TIPO_ID NOT NULL /* TIPO_ID = INTEGER */,
COLOR1 INTEGER Default 0,
COLOR2 INTEGER Default 0,
COLOR3 INTEGER Default 0,
COLOR4 INTEGER Default 0,
COLOR5 INTEGER Default 0,
COLOR6 INTEGER Default 0,
COLOR7 INTEGER Default 0,
COLOR8 INTEGER Default 0,
COLOR9 INTEGER Default 0,
COLOR10 INTEGER Default 0,
COLOR11 INTEGER Default 0,
COLOR12 INTEGER Default 0
);
CREATE TABLE PEDIDOS_PROVEEDOR (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_PROVEEDOR TIPO_ID,
ID_DIRECCION TIPO_ID,
PERSONA_CONTACTO_PROV VARCHAR(255),
REFERENCIA VARCHAR(255),
FECHA_PEDIDO DATE,
FECHA_CONFIRMACION DATE,
FECHA_ENTREGA DATE,
ID_ALMACEN TIPO_ID,
ID_OBRA 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,
ID_FACTURA TIPO_ID,
REF_FACTURA_PROV VARCHAR(255) COLLATE ES_ES
);
CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES (
ID TIPO_ID NOT NULL,
ID_PEDIDO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(25),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD TIPO_CANTIDAD,
UNIDAD_MEDIDA VARCHAR(255),
IMPORTE_UNIDAD TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_PORTE TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
CREATE TABLE PERMISOS (
ID TIPO_ID NOT NULL,
ID_USUARIO TIPO_ID,
MODULO VARCHAR(50),
NOMBRECOMP VARCHAR(50),
CHECKSUM VARCHAR(250)
);
CREATE TABLE PERMISOSEX (
ID TIPO_ID NOT NULL,
ID_USUARIO TIPO_ID,
MODULO VARCHAR(50),
NOMBRECOMP VARCHAR(50),
NOMBREFORM VARCHAR(50),
CHECKSUM VARCHAR(250)
);
CREATE TABLE POBLACIONES (
ID TIPO_ID NOT NULL,
ID_PROVINCIA TIPO_ID NOT NULL,
DESCRIPCION VARCHAR(255) NOT NULL
);
CREATE TABLE PRESUPUESTOS_CLIENTE (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CLIENTE TIPO_ID,
REFERENCIA VARCHAR(255),
REFERENCIA_AUX VARCHAR(255),
FECHA_PRESUPUESTO DATE,
FECHA_DECISION DATE,
SITUACION VARCHAR(255),
PORTADA TIPO_NOTAS,
MEMORIA TIPO_NOTAS,
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,
REFERENCIA_CLIENTE VARCHAR(255),
CLIENTE_FINAL VARCHAR(255),
ID_FACTURA TIPO_ID,
PERSONA_CONTACTO VARCHAR(255),
ID_DIRECCION TIPO_ID,
DESCRIPCION_BONIFICACION VARCHAR(255) COLLATE ES_ES,
IMPORTE_BONIFICACION TIPO_IMPORTE
);
CREATE TABLE PRESUPUESTOS_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_PRESUPUESTO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(25),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD TIPO_CANTIDAD,
UNIDAD_MEDIDA VARCHAR(255),
IMPORTE_UNIDAD TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_PORTE TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
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),
CERTIFICACION VARCHAR(255),
HOMOLOGADO SMALLINT,
SUBCONTRATA TIPO_BOOLEANO,
VENCIMIENTO_FACTURAS_1 SMALLINT,
VENCIMIENTO_FACTURAS_2 SMALLINT,
VENCIMIENTO_FACTURAS_3 SMALLINT
);
CREATE TABLE PROVEEDORES_GRUPOS (
ID TIPO_ID NOT NULL,
DESCRIPCION VARCHAR(255)
);
CREATE TABLE PROVINCIAS (
ID TIPO_ID NOT NULL,
DESCRIPCION VARCHAR(255) NOT NULL
);
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
);
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
);
CREATE TABLE REFERENCIAS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
CODIGO VARCHAR(50) NOT NULL,
VALOR VARCHAR(255) NOT NULL,
DESCRIPCION VARCHAR(255)
);
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)
);
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)
);
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)
);
CREATE TABLE TIPOS_IVA (
ID TIPO_ID NOT NULL,
REFERENCIA VARCHAR(255),
DESCRIPCION VARCHAR(255),
IVA TIPO_PORCENTAJE,
RE TIPO_PORCENTAJE
);
CREATE TABLE UNIDADES_MEDIDA (
ID TIPO_ID NOT NULL,
DESCRIPCION VARCHAR(255)
);
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)
);
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)
);
CREATE TABLE USUARIOS_LOGON (
LOGONID CHAR(38) NOT NULL,
ID_USUARIO TIPO_ID,
APLICACION VARCHAR(50),
EQUIPO VARCHAR(50),
DATA VARCHAR(14)
);
/******************************************************************************/
/**** Views ****/
/******************************************************************************/
/* View: V_ALB_CLI_SITUACION */
CREATE VIEW V_ALB_CLI_SITUACION(
ID,
SITUACION)
AS
SELECT ALBARANES_CLIENTE.ID,
case when (FECHA_RECEPCION is not null) then 'SERVIDO'
when (FECHA_ENVIO is null) then 'PENDIENTE'
when (FECHA_ENVIO <= current_date) then 'ENVIADO'
when (FECHA_ENVIO > current_date) then 'PENDIENTE'
else 'N/A'
end as SITUACION
FROM ALBARANES_CLIENTE
;
/* View: V_ALB_CLI_DETALLES */
CREATE VIEW V_ALB_CLI_DETALLES(
ID_ALBARAN,
ID_PEDIDO,
SITUACION,
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT ALBARANES_CLIENTE_DETALLES.ID_ALBARAN,
ALBARANES_CLIENTE_DETALLES.ID_PEDIDO,
V_ALB_CLI_SITUACION.SITUACION,
ALBARANES_CLIENTE.ID_ALMACEN,
CASE WHEN ALBARANES_CLIENTE_DETALLES.ID_ARTICULO_REEMPLAZADO IS NULL then COALESCE(ALBARANES_CLIENTE_DETALLES.ID_ARTICULO, 0)
ELSE ALBARANES_CLIENTE_DETALLES.ID_ARTICULO_REEMPLAZADO
END AS ID_ARTICULO,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLES.CANTIDAD, 0))
FROM ALBARANES_CLIENTE_DETALLES
INNER JOIN ALBARANES_CLIENTE
ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = ALBARANES_CLIENTE.ID)
INNER JOIN V_ALB_CLI_SITUACION
ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = V_ALB_CLI_SITUACION.ID)
/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro cat<61>logo con el fin de no falsear la situaci<63>n de los pedidos
LEFT JOIN ARTICULOS
ON (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID)
WHERE (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO is not null)
AND (ARTICULOS.INVENTARIABLE = 1)
*/
group BY ALBARANES_CLIENTE_DETALLES.ID_ALBARAN,
ALBARANES_CLIENTE_DETALLES.ID_PEDIDO,
V_ALB_CLI_SITUACION.SITUACION,
ALBARANES_CLIENTE.ID_ALMACEN,
ID_ARTICULO
;
/* View: V_ALB_PROV_DETALLES */
CREATE VIEW V_ALB_PROV_DETALLES(
ID_ALBARAN,
ID_PEDIDO,
ID_ALMACEN,
ID_ARTICULO,
DESCRIPCION,
CANTIDAD)
AS
SELECT ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN,
ALBARANES_PROVEEDOR.ID_PEDIDO,
ALBARANES_PROVEEDOR.ID_ALMACEN,
COALESCE(ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, 0),
CASE
WHEN ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO IS NULL THEN ALBARANES_PROVEEDOR_DETALLES.CONCEPTO
ELSE NULL
END,
SUM (COALESCE(ALBARANES_PROVEEDOR_DETALLES.CANTIDAD, 0)) AS CANTIDAD
FROM ALBARANES_PROVEEDOR_DETALLES INNER JOIN ALBARANES_PROVEEDOR ON (ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN = ALBARANES_PROVEEDOR.ID)
/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro cat<61>logo con el fin de no falsear la situaci<63>n de los pedidos
LEFT JOIN ARTICULOS
ON (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID)
WHERE (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO is not null)
AND (ARTICULOS.INVENTARIABLE = 1)
*/
GROUP BY ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN,
ALBARANES_PROVEEDOR.ID_PEDIDO,
ALBARANES_PROVEEDOR.ID_ALMACEN,
ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO,
5
;
/* View: V_ALBARANES_CLIENTE */
CREATE VIEW V_ALBARANES_CLIENTE(
ID,
ID_EMPRESA,
ID_CLIENTE,
NOMBRE,
FECHA_ALBARAN,
REFERENCIA,
REFERENCIA_CLIENTE,
TIPO,
SITUACION,
ID_ALMACEN,
NOMBRE_ALMACEN,
ID_PEDIDO,
REF_PEDIDO,
ID_FACTURA,
REF_FACTURA,
ID_DIRECCION,
CALLE,
CODIGO_POSTAL,
POBLACION,
PROVINCIA,
PERSONA_CONTACTO,
TELEFONO,
IMPORTE_NETO,
IMPORTE_PORTE,
DESCUENTO,
IMPORTE_DESCUENTO,
BASE_IMPONIBLE,
IVA,
IMPORTE_IVA,
IMPORTE_TOTAL,
OBSERVACIONES,
INCIDENCIAS,
INCIDENCIAS_ACTIVAS,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_FORMA_PAGO,
FORMA_PAGO,
FECHA_PREVISTA_ENVIO,
FECHA_ENVIO,
FECHA_RECEPCION,
DESCUENTO2,
IMPORTE_DESCUENTO2,
DATOS_BANCARIOS)
AS
SELECT
ALBARANES_CLIENTE.ID,
ALBARANES_CLIENTE.ID_EMPRESA,
ALBARANES_CLIENTE.ID_CLIENTE,
CONTACTOS.NOMBRE,
ALBARANES_CLIENTE.FECHA_ALBARAN,
ALBARANES_CLIENTE.REFERENCIA,
ALBARANES_CLIENTE.REFERENCIA_CLIENTE,
ALBARANES_CLIENTE.TIPO,
TRIM(V_ALB_CLI_SITUACION.SITUACION),
ALBARANES_CLIENTE.ID_ALMACEN,
ALMACENES.NOMBRE AS NOMBRE_ALMACEN,
ALBARANES_CLIENTE.ID_PEDIDO,
PEDIDOS_CLIENTE.REFERENCIA AS REF_PEDIDO,
ALBARANES_CLIENTE.ID_FACTURA,
FACTURAS_CLIENTE.REFERENCIA AS REF_FACTURA,
ALBARANES_CLIENTE.ID_DIRECCION,
ALBARANES_CLIENTE.CALLE,
ALBARANES_CLIENTE.CODIGO_POSTAL,
ALBARANES_CLIENTE.POBLACION,
ALBARANES_CLIENTE.PROVINCIA,
ALBARANES_CLIENTE.PERSONA_CONTACTO,
ALBARANES_CLIENTE.TELEFONO,
ALBARANES_CLIENTE.IMPORTE_NETO,
ALBARANES_CLIENTE.IMPORTE_PORTE,
ALBARANES_CLIENTE.DESCUENTO,
ALBARANES_CLIENTE.IMPORTE_DESCUENTO,
ALBARANES_CLIENTE.BASE_IMPONIBLE,
ALBARANES_CLIENTE.IVA,
ALBARANES_CLIENTE.IMPORTE_IVA,
ALBARANES_CLIENTE.IMPORTE_TOTAL,
ALBARANES_CLIENTE.OBSERVACIONES,
ALBARANES_CLIENTE.INCIDENCIAS,
ALBARANES_CLIENTE.INCIDENCIAS_ACTIVAS,
ALBARANES_CLIENTE.FECHA_ALTA,
ALBARANES_CLIENTE.FECHA_MODIFICACION,
ALBARANES_CLIENTE.USUARIO,
ALBARANES_CLIENTE.ID_FORMA_PAGO,
FORMAS_PAGO.DESCRIPCION,
ALBARANES_CLIENTE.FECHA_PREVISTA_ENVIO,
ALBARANES_CLIENTE.FECHA_ENVIO,
ALBARANES_CLIENTE.FECHA_RECEPCION,
ALBARANES_CLIENTE.DESCUENTO2,
ALBARANES_CLIENTE.IMPORTE_DESCUENTO2,
ALBARANES_CLIENTE.DATOS_BANCARIOS
FROM
ALBARANES_CLIENTE
LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_CLIENTE.ID_CLIENTE)
LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = ALBARANES_CLIENTE.ID_PEDIDO)
LEFT OUTER JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = ALBARANES_CLIENTE.ID_FACTURA)
LEFT OUTER JOIN V_ALB_CLI_SITUACION ON (V_ALB_CLI_SITUACION.ID = ALBARANES_CLIENTE.ID)
LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_CLIENTE.ID_ALMACEN)
LEFT OUTER JOIN FORMAS_PAGO ON (FORMAS_PAGO.ID = ALBARANES_CLIENTE.ID_FORMA_PAGO)
;
/* View: V_ALBARANES_PROVEEDOR */
CREATE VIEW V_ALBARANES_PROVEEDOR(
ID,
ID_EMPRESA,
ID_PROVEEDOR,
NOMBRE,
ID_DIRECCION,
PERSONA_CONTACTO_PROV,
FECHA_ALBARAN,
REFERENCIA,
REFERENCIA_PROVEEDOR,
TIPO,
ID_ALMACEN,
TIPO_ALMACEN,
NOMBRE_ALMACEN,
ID_PEDIDO,
REF_PED_PROVEEDOR,
ID_FACTURA,
REF_FACTURA,
REF_FACTURA_PROV,
CALLE,
CODIGO_POSTAL,
POBLACION,
PROVINCIA,
PERSONA_CONTACTO,
TELEFONO,
IMPORTE_NETO,
IMPORTE_PORTE,
DESCUENTO,
IMPORTE_DESCUENTO,
BASE_IMPONIBLE,
IVA,
IMPORTE_IVA,
IMPORTE_TOTAL,
OBSERVACIONES,
INCIDENCIAS,
INCIDENCIAS_ACTIVAS,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_FORMA_PAGO,
ID_ALBARAN,
REFERENCIA_ALBARAN)
AS
SELECT
ALBARANES_PROVEEDOR.ID,
ALBARANES_PROVEEDOR.ID_EMPRESA,
ALBARANES_PROVEEDOR.ID_PROVEEDOR,
CONTACTOS.NOMBRE,
ALBARANES_PROVEEDOR.ID_DIRECCION,
ALBARANES_PROVEEDOR.PERSONA_CONTACTO_PROV,
ALBARANES_PROVEEDOR.FECHA_ALBARAN,
ALBARANES_PROVEEDOR.REFERENCIA,
ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR,
ALBARANES_PROVEEDOR.TIPO,
ALBARANES_PROVEEDOR.ID_ALMACEN,
ALMACENES.TIPO_ALMACEN,
ALMACENES.NOMBRE AS NOMBRE_ALMACEN,
ALBARANES_PROVEEDOR.ID_PEDIDO,
PEDIDOS_PROVEEDOR.REFERENCIA AS REF_PED_PROVEEDOR,
ALBARANES_PROVEEDOR.ID_FACTURA,
FACTURAS_PROVEEDOR.REFERENCIA AS REF_FACTURA,
ALBARANES_PROVEEDOR.REF_FACTURA_PROV,
ALBARANES_PROVEEDOR.CALLE,
ALBARANES_PROVEEDOR.CODIGO_POSTAL,
ALBARANES_PROVEEDOR.POBLACION,
ALBARANES_PROVEEDOR.PROVINCIA,
ALBARANES_PROVEEDOR.PERSONA_CONTACTO,
ALBARANES_PROVEEDOR.TELEFONO,
ALBARANES_PROVEEDOR.IMPORTE_NETO,
ALBARANES_PROVEEDOR.IMPORTE_PORTE,
ALBARANES_PROVEEDOR.DESCUENTO,
ALBARANES_PROVEEDOR.IMPORTE_DESCUENTO,
ALBARANES_PROVEEDOR.BASE_IMPONIBLE,
ALBARANES_PROVEEDOR.IVA,
ALBARANES_PROVEEDOR.IMPORTE_IVA,
ALBARANES_PROVEEDOR.IMPORTE_TOTAL,
ALBARANES_PROVEEDOR.OBSERVACIONES,
ALBARANES_PROVEEDOR.INCIDENCIAS,
ALBARANES_PROVEEDOR.INCIDENCIAS_ACTIVAS,
ALBARANES_PROVEEDOR.FECHA_ALTA,
ALBARANES_PROVEEDOR.FECHA_MODIFICACION,
ALBARANES_PROVEEDOR.USUARIO,
ALBARANES_PROVEEDOR.ID_FORMA_PAGO,
ALBARANES_PROVEEDOR.ID_ALBARAN,
ALB2.REFERENCIA AS REFERENCIA_ALBARAN
FROM
ALBARANES_PROVEEDOR
INNER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_PROVEEDOR.ID_PROVEEDOR)
LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_PEDIDO)
LEFT OUTER JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_FACTURA)
LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDOR.ID_ALMACEN)
LEFT OUTER JOIN ALBARANES_PROVEEDOR ALB2 ON (ALB2.ID = ALBARANES_PROVEEDOR.ID_ALBARAN)
;
/* View: V_ALMACENES */
CREATE VIEW V_ALMACENES(
ID,
ID_EMPRESA,
NOMBRE,
CALLE,
PROVINCIA,
POBLACION,
CODIGO_POSTAL,
TELEFONO,
MOVIL,
FAX,
PERSONA_CONTACTO,
OBSERVACIONES,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO)
AS
SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE,
ALMACENES.CALLE, ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL,
ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO,
ALMACENES.OBSERVACIONES, ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, ALMACENES.USUARIO
FROM ALMACENES
WHERE ALMACENES.TIPO_ALMACEN = 'ALMACEN'
;
/* View: V_ARTICULOS_PARA_COMPRA */
CREATE VIEW V_ARTICULOS_PARA_COMPRA(
ID,
ID_EMPRESA,
REFERENCIA,
DESCRIPCION,
UNIDAD_MEDIDA,
FAMILIA,
IMAGEN,
COMISIONABLE,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
REFERENCIA_PROV,
PRECIO_COSTE,
PRECIO_PORTE,
DESCUENTO,
PRECIO_NETO,
INVENTARIABLE,
ID_PROVEEDOR,
NOMBRE_PROVEEDOR,
ELIMINADO,
FABRICANTE,
REFERENCIA_FABR,
PARAM_MARGEN,
PRECIO_PVP_VENTA,
TIEMPO,
PARAM_TIEMPO,
MANO_OBRA,
PRECIO_PVP_TOTAL,
ID_ARTICULO)
AS
SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION,
ARTICULOS.UNIDAD_MEDIDA, ARTICULOS.FAMILIA, ARTICULOS.IMAGEN,
ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA,
ARTICULOS.FECHA_MODIFICACION, ARTICULOS.USUARIO,
ARTICULOS_PROVEEDORES.REFERENCIA_PROV,
ARTICULOS_PROVEEDORES.PRECIO_COSTE,
ARTICULOS_PROVEEDORES.PRECIO_PORTE,
ARTICULOS_PROVEEDORES.DESCUENTO,
ARTICULOS_PROVEEDORES.PRECIO_NETO,
ARTICULOS.INVENTARIABLE,
ARTICULOS_PROVEEDORES.ID_PROVEEDOR,
CONTACTOS.NOMBRE AS NOMBRE_PROVEEDOR,
ARTICULOS.ELIMINADO,
ARTICULOS.FABRICANTE,
ARTICULOS.REFERENCIA_FABR,
ARTICULOS.PARAM_MARGEN,
ARTICULOS_PROVEEDORES.PRECIO_PVP_VENTA,
ARTICULOS.TIEMPO,
ARTICULOS.PARAM_TIEMPO,
ARTICULOS.MANO_OBRA,
ARTICULOS_PROVEEDORES.PRECIO_PVP_TOTAL,
ARTICULOS.ID
FROM ARTICULOS
LEFT OUTER JOIN ARTICULOS_PROVEEDORES ON (ARTICULOS_PROVEEDORES.ID_ARTICULO = ARTICULOS.ID)
LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ARTICULOS_PROVEEDORES.ID_PROVEEDOR)
WHERE (ARTICULOS.ELIMINADO = 0)
;
/* View: V_ARTICULOS_PVP_MAX */
CREATE VIEW V_ARTICULOS_PVP_MAX(
ID_ARTICULO,
PRECIO_PVP_VENTA,
PRECIO_PVP_TOTAL)
AS
select
ID_ARTICULO, MAX(COALESCE(PRECIO_PVP_VENTA,0)) as PRECIO_PVP_VENTA, MAX(COALESCE(PRECIO_PVP_TOTAL,0)) as PRECIO_PVP_TOTAL
from ARTICULOS_PROVEEDORES
group by 1
;
/* View: V_ARTICULOS_PARA_VENTA */
CREATE VIEW V_ARTICULOS_PARA_VENTA(
ID,
ID_EMPRESA,
REFERENCIA,
DESCRIPCION,
UNIDAD_MEDIDA,
FAMILIA,
IMAGEN,
COMISIONABLE,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
REFERENCIA_PROV,
PRECIO_COSTE,
PRECIO_PORTE,
DESCUENTO,
PRECIO_NETO,
INVENTARIABLE,
ELIMINADO,
FABRICANTE,
REFERENCIA_FABR,
PARAM_MARGEN,
PRECIO_PVP_VENTA,
TIEMPO,
PARAM_TIEMPO,
MANO_OBRA,
PRECIO_PVP_TOTAL,
CAMPOTECNICO,
CODIGOTECNICO,
DISENOTECNICO,
PRECIO
)
AS
SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION,
ARTICULOS.UNIDAD_MEDIDA, ARTICULOS.FAMILIA, ARTICULOS.IMAGEN,
ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA,
ARTICULOS.FECHA_MODIFICACION, ARTICULOS.USUARIO,
/*Estos Campos se necesitan para que no se tenga que tocar la l<>gica de selecci<63>n de articulos de toda la aplicaci<63>n*/
'' as REFERENCIA_PROV,
0 as PRECIO_COSTE,
0 as PRECIO_PORTE,
0 as DESCUENTO,
0 as PRECIO_NETO,
ARTICULOS.INVENTARIABLE,
ARTICULOS.ELIMINADO,
ARTICULOS.FABRICANTE,
ARTICULOS.REFERENCIA_FABR,
ARTICULOS.PARAM_MARGEN,
V_ARTICULOS_PVP_MAX.PRECIO_PVP_VENTA,
ARTICULOS.TIEMPO,
ARTICULOS.PARAM_TIEMPO,
ARTICULOS.MANO_OBRA,
V_ARTICULOS_PVP_MAX.PRECIO_PVP_TOTAL,
ARTICULOS.CAMPOTECNICO,
ARTICULOS.CODIGOTECNICO,
ARTICULOS.DISENOTECNICO,
ARTICULOS.PRECIO
FROM ARTICULOS
LEFT OUTER JOIN V_ARTICULOS_PVP_MAX ON (V_ARTICULOS_PVP_MAX.ID_ARTICULO = ARTICULOS.ID)
WHERE (ARTICULOS.ELIMINADO = 0)
;
/* View: V_CONTACTOS */
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,
PAIS)
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,
CONTACTOS.PAIS
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 */
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,
PAIS,
ID_AGENTE,
GRUPO_CLIENTE,
NOMBRE_COMERCIAL,
VENCIMIENTO_FACTURAS_1,
VENCIMIENTO_FACTURAS_2,
VENCIMIENTO_FACTURAS_3,
BLOQUEADO,
REGIMEN_IVA,
MOTIVO_BLOQUEO,
RECARGO_EQUIVALENCIA,
ID_TIPO_IVA,
ID_FORMA_PAGO,
TIENDA_WEB,
DESCUENTO,
DESCUENTO2,
FELICITACION)
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,
V_CONTACTOS.PAIS,
CLIENTES_DATOS.ID_AGENTE,
CLIENTES_DATOS.GRUPO_CLIENTE,
CLIENTES_DATOS.NOMBRE_COMERCIAL,
CLIENTES_DATOS.VENCIMIENTO_FACTURAS_1,
CLIENTES_DATOS.VENCIMIENTO_FACTURAS_2,
CLIENTES_DATOS.VENCIMIENTO_FACTURAS_3,
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,
CLIENTES_DATOS.DESCUENTO,
CLIENTES_DATOS.DESCUENTO2,
CLIENTES_DATOS.FELICITACION
FROM
V_CONTACTOS
LEFT OUTER JOIN CLIENTES_DATOS ON (V_CONTACTOS.ID = CLIENTES_DATOS.ID_CLIENTE)
WHERE
V_CONTACTOS.ID_CATEGORIA = 1
;
/* View: V_EMPLEADOS */
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,
CONTRATO,
DURACION,
FECHA_BAJA,
CAUSA_BAJA)
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,
EMPLEADOS_DATOS.CONTRATO,
EMPLEADOS_DATOS.DURACION,
EMPLEADOS_DATOS.FECHA_BAJA,
EMPLEADOS_DATOS.CAUSA_BAJA
FROM V_CONTACTOS
INNER JOIN EMPLEADOS_DATOS ON (EMPLEADOS_DATOS.ID_EMPLEADO = V_CONTACTOS.ID)
WHERE V_CONTACTOS.ID_CATEGORIA = 3
;
/* View: V_VENDEDORES */
CREATE VIEW V_VENDEDORES(
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,
PAIS,
COMISION)
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,
V_CONTACTOS.PAIS,
VENDEDORES_DATOS.COMISION
FROM V_CONTACTOS
INNER JOIN VENDEDORES_DATOS ON (VENDEDORES_DATOS.ID_VENDEDOR = V_CONTACTOS.ID)
WHERE V_CONTACTOS.ID_CATEGORIA = 3;
;
/* View: V_REC_FAC_CLI */
CREATE VIEW V_REC_FAC_CLI(
ID_FACTURA,
NUM_RECIBOS)
AS
SELECT FACTURAS_CLIENTE.ID, COUNT(RECIBOS_CLIENTE.ID)
FROM FACTURAS_CLIENTE
LEFT JOIN RECIBOS_CLIENTE
ON (RECIBOS_CLIENTE.ID_FACTURA = FACTURAS_CLIENTE.ID)
GROUP BY FACTURAS_CLIENTE.ID
;
/* View: V_REC_CLI_SITUACION */
CREATE VIEW V_REC_CLI_SITUACION(
ID_RECIBO,
SITUACION)
AS
SELECT RECIBOS_CLIENTE.ID,
CASE WHEN (COUNT(PAGOS_CLIENTE.ID_RECIBO)=0) THEN 'PENDIENTE'
WHEN (MOD(COUNT(PAGOS_CLIENTE.ID_RECIBO), 2)=0) THEN 'DEVUELTO'
ELSE 'COBRADO'
END
FROM RECIBOS_CLIENTE
LEFT JOIN PAGOS_CLIENTE
ON (PAGOS_CLIENTE.ID_RECIBO = RECIBOS_CLIENTE.ID)
GROUP BY RECIBOS_CLIENTE.ID
;
/* View: V_REC_FAC_CLI_COBRADOS */
CREATE VIEW V_REC_FAC_CLI_COBRADOS(
ID_FACTURA,
NUM_REC_COBRADOS)
AS
SELECT RECIBOS_CLIENTE.ID_FACTURA, COUNT(V_REC_CLI_SITUACION.ID_RECIBO)
FROM V_REC_CLI_SITUACION LEFT JOIN RECIBOS_CLIENTE ON
(RECIBOS_CLIENTE.ID = V_REC_CLI_SITUACION.ID_RECIBO)
WHERE (TRIM(V_REC_CLI_SITUACION.SITUACION) = 'COBRADO')
GROUP BY RECIBOS_CLIENTE.ID_FACTURA
;
/* View: V_FAC_CLI_SITUACION */
CREATE VIEW V_FAC_CLI_SITUACION(
ID_FACTURA,
SITUACION)
AS
SELECT ID_FACTURA,
CASE
WHEN ((SUM(NUM_RECIBOS) = 0)
OR (SUM(NUM_REC_COBRADOS) = 0)) THEN 'PENDIENTE'
WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_COBRADOS)) THEN 'PAGADA'
ELSE 'PARCIALMENTE PAGADA'
END AS SITUACION
FROM
(
SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_COBRADOS
FROM V_REC_FAC_CLI
UNION ALL
SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_COBRADOS
FROM V_REC_FAC_CLI_COBRADOS
)
GROUP BY ID_FACTURA
;
/* View: V_REC_FAC_PRO */
CREATE VIEW V_REC_FAC_PRO(
ID_FACTURA,
NUM_RECIBOS)
AS
SELECT FACTURAS_PROVEEDOR.ID, COUNT(RECIBOS_PROVEEDOR.ID)
FROM FACTURAS_PROVEEDOR
LEFT JOIN RECIBOS_PROVEEDOR
ON (RECIBOS_PROVEEDOR.ID_FACTURA = FACTURAS_PROVEEDOR.ID)
GROUP BY FACTURAS_PROVEEDOR.ID
;
/* View: V_REC_PRO_SITUACION */
CREATE VIEW V_REC_PRO_SITUACION(
ID_RECIBO,
SITUACION)
AS
SELECT RECIBOS_PROVEEDOR.ID,
CASE WHEN (COUNT(PAGOS_PROVEEDOR.ID_RECIBO)=0) THEN 'PENDIENTE'
WHEN (MOD(COUNT(PAGOS_PROVEEDOR.ID_RECIBO), 2)=0) THEN 'DEVUELTO'
ELSE 'PAGADO'
END
FROM RECIBOS_PROVEEDOR
LEFT JOIN PAGOS_PROVEEDOR
ON (PAGOS_PROVEEDOR.ID_RECIBO = RECIBOS_PROVEEDOR.ID)
GROUP BY RECIBOS_PROVEEDOR.ID
;
/* View: V_REC_FAC_PRO_PAGADOS */
CREATE VIEW V_REC_FAC_PRO_PAGADOS(
ID_FACTURA,
NUM_REC_PAGADOS)
AS
SELECT RECIBOS_PROVEEDOR.ID_FACTURA, COUNT(V_REC_PRO_SITUACION.ID_RECIBO)
FROM V_REC_PRO_SITUACION LEFT JOIN RECIBOS_PROVEEDOR ON
(RECIBOS_PROVEEDOR.ID = V_REC_PRO_SITUACION.ID_RECIBO)
WHERE (TRIM(V_REC_PRO_SITUACION.SITUACION) = 'PAGADO')
GROUP BY RECIBOS_PROVEEDOR.ID_FACTURA
;
/* View: V_FAC_PRO_SITUACION */
CREATE VIEW V_FAC_PRO_SITUACION(
ID_FACTURA,
SITUACION)
AS
SELECT ID_FACTURA,
CASE
WHEN ((SUM(NUM_RECIBOS) = 0)
OR (SUM(NUM_REC_PAGADOS) = 0)) THEN 'PENDIENTE'
WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_PAGADOS)) THEN 'PAGADA'
ELSE 'PARCIALMENTE PAGADA'
END AS SITUACION
FROM
(
SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_PAGADOS
FROM V_REC_FAC_PRO
UNION ALL
SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_PAGADOS
FROM V_REC_FAC_PRO_PAGADOS
)
GROUP BY ID_FACTURA
;
/* View: V_FACTURAS_CLIENTE */
CREATE VIEW V_FACTURAS_CLIENTE(
ID,
ID_EMPRESA,
REFERENCIA,
TIPO,
ID_COMISION_LIQUIDADA,
FECHA_FACTURA,
FECHA_VENCIMIENTO,
FECHA_RETENCION,
SITUACION,
BASE_IMPONIBLE,
DESCUENTO,
IMPORTE_DESCUENTO,
IVA,
IMPORTE_IVA,
RE,
IMPORTE_RE,
IMPORTE_TOTAL,
OBSERVACIONES,
ID_CLIENTE,
NIF_CIF,
NOMBRE,
ID_DIRECCION,
CALLE,
POBLACION,
PROVINCIA,
CODIGO_POSTAL,
DATOS_BANCARIOS,
PERSONA_CONTACTO,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_FORMA_PAGO,
RECARGO_EQUIVALENCIA,
ID_TIPO_IVA,
IMPORTE_NETO,
IMPORTE_PORTE,
ID_AGENTE,
REFERENCIA_COMISION,
RETENCION,
IMPORTE_RETENCION,
DESCUENTO2,
IMPORTE_DESCUENTO2)
AS
SELECT FACTURAS_CLIENTE.ID,
FACTURAS_CLIENTE.ID_EMPRESA,
FACTURAS_CLIENTE.REFERENCIA,
CASE WHEN (FACTURAS_CLIENTE.IMPORTE_TOTAL < 0) THEN 'A' ELSE 'F' END AS TIPO,
FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA,
FACTURAS_CLIENTE.FECHA_FACTURA,
FACTURAS_CLIENTE.FECHA_VENCIMIENTO,
FACTURAS_CLIENTE.FECHA_RETENCION,
TRIM(V_FAC_CLI_SITUACION.SITUACION),
FACTURAS_CLIENTE.BASE_IMPONIBLE,
FACTURAS_CLIENTE.DESCUENTO,
FACTURAS_CLIENTE.IMPORTE_DESCUENTO,
FACTURAS_CLIENTE.IVA,
FACTURAS_CLIENTE.IMPORTE_IVA,
FACTURAS_CLIENTE.RE,
FACTURAS_CLIENTE.IMPORTE_RE,
FACTURAS_CLIENTE.IMPORTE_TOTAL,
FACTURAS_CLIENTE.OBSERVACIONES,
FACTURAS_CLIENTE.ID_CLIENTE,
FACTURAS_CLIENTE.NIF_CIF,
FACTURAS_CLIENTE.NOMBRE,
FACTURAS_CLIENTE.ID_DIRECCION,
FACTURAS_CLIENTE.CALLE,
FACTURAS_CLIENTE.POBLACION,
FACTURAS_CLIENTE.PROVINCIA,
FACTURAS_CLIENTE.CODIGO_POSTAL,
FACTURAS_CLIENTE.DATOS_BANCARIOS,
FACTURAS_CLIENTE.PERSONA_CONTACTO,
FACTURAS_CLIENTE.FECHA_ALTA,
FACTURAS_CLIENTE.FECHA_MODIFICACION,
FACTURAS_CLIENTE.USUARIO,
FACTURAS_CLIENTE.ID_FORMA_PAGO,
FACTURAS_CLIENTE.RECARGO_EQUIVALENCIA,
FACTURAS_CLIENTE.ID_TIPO_IVA,
FACTURAS_CLIENTE.IMPORTE_NETO,
FACTURAS_CLIENTE.IMPORTE_PORTE,
CLIENTES_DATOS.ID_AGENTE,
COMISIONES_LIQUIDADAS.REFERENCIA,
FACTURAS_CLIENTE.RETENCION,
FACTURAS_CLIENTE.IMPORTE_RETENCION,
FACTURAS_CLIENTE.DESCUENTO2,
FACTURAS_CLIENTE.IMPORTE_DESCUENTO2
FROM V_FAC_CLI_SITUACION
LEFT JOIN FACTURAS_CLIENTE
ON (FACTURAS_CLIENTE.ID = V_FAC_CLI_SITUACION.ID_FACTURA)
LEFT JOIN COMISIONES_LIQUIDADAS
ON (COMISIONES_LIQUIDADAS.ID = FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA)
LEFT JOIN CLIENTES_DATOS
ON (CLIENTES_DATOS.ID_CLIENTE = FACTURAS_CLIENTE.ID_CLIENTE);
;
/* View: V_FACTURAS_PROVEEDOR */
CREATE VIEW V_FACTURAS_PROVEEDOR(
ID,
ID_EMPRESA,
REFERENCIA,
TIPO,
REFERENCIA_PROVEEDOR,
FECHA_FACTURA,
FECHA_VENCIMIENTO,
SITUACION,
BASE_IMPONIBLE,
DESCUENTO,
IMPORTE_DESCUENTO,
IVA,
IMPORTE_IVA,
RE,
IMPORTE_RE,
IMPORTE_TOTAL,
OBSERVACIONES,
ID_PROVEEDOR,
NIF_CIF,
NOMBRE,
CALLE,
POBLACION,
PROVINCIA,
CODIGO_POSTAL,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_FORMA_PAGO,
RECARGO_EQUIVALENCIA,
ID_TIPO_IVA,
IMPORTE_NETO,
IMPORTE_PORTE,
DATOS_BANCARIOS)
AS
SELECT FACTURAS_PROVEEDOR.ID,
FACTURAS_PROVEEDOR.ID_EMPRESA,
FACTURAS_PROVEEDOR.REFERENCIA,
CASE WHEN (FACTURAS_PROVEEDOR.IMPORTE_TOTAL < 0) THEN 'A' ELSE 'F' END AS TIPO,
FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR,
FACTURAS_PROVEEDOR.FECHA_FACTURA,
FACTURAS_PROVEEDOR.FECHA_VENCIMIENTO,
TRIM(V_FAC_PRO_SITUACION.SITUACION),
FACTURAS_PROVEEDOR.BASE_IMPONIBLE,
FACTURAS_PROVEEDOR.DESCUENTO,
FACTURAS_PROVEEDOR.IMPORTE_DESCUENTO,
FACTURAS_PROVEEDOR.IVA,
FACTURAS_PROVEEDOR.IMPORTE_IVA,
FACTURAS_PROVEEDOR.RE,
FACTURAS_PROVEEDOR.IMPORTE_RE,
FACTURAS_PROVEEDOR.IMPORTE_TOTAL,
FACTURAS_PROVEEDOR.OBSERVACIONES,
FACTURAS_PROVEEDOR.ID_PROVEEDOR,
FACTURAS_PROVEEDOR.NIF_CIF,
FACTURAS_PROVEEDOR.NOMBRE,
FACTURAS_PROVEEDOR.CALLE,
FACTURAS_PROVEEDOR.POBLACION,
FACTURAS_PROVEEDOR.PROVINCIA,
FACTURAS_PROVEEDOR.CODIGO_POSTAL,
FACTURAS_PROVEEDOR.FECHA_ALTA,
FACTURAS_PROVEEDOR.FECHA_MODIFICACION,
FACTURAS_PROVEEDOR.USUARIO,
FACTURAS_PROVEEDOR.ID_FORMA_PAGO,
FACTURAS_PROVEEDOR.RECARGO_EQUIVALENCIA,
FACTURAS_PROVEEDOR.ID_TIPO_IVA,
FACTURAS_PROVEEDOR.IMPORTE_NETO,
FACTURAS_PROVEEDOR.IMPORTE_PORTE,
FACTURAS_PROVEEDOR.DATOS_BANCARIOS
FROM V_FAC_PRO_SITUACION
LEFT JOIN FACTURAS_PROVEEDOR
ON (FACTURAS_PROVEEDOR.ID = V_FAC_PRO_SITUACION.ID_FACTURA)
LEFT JOIN PROVEEDORES_DATOS
ON (PROVEEDORES_DATOS.ID_PROVEEDOR = FACTURAS_PROVEEDOR.ID_PROVEEDOR)
;
/* View: V_HIS_MOV_ALB_CLI */
CREATE VIEW V_HIS_MOV_ALB_CLI(
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA)
AS
SELECT
ALBARANES_CLIENTE.FECHA_ALBARAN,
V_ALB_CLI_DETALLES.ID_ALMACEN,
V_ALB_CLI_DETALLES.ID_ARTICULO,
CASE WHEN V_ALB_CLI_DETALLES.CANTIDAD < 0 THEN 'E'
ELSE 'S' END,
(-1)*V_ALB_CLI_DETALLES.CANTIDAD,
CASE WHEN ALBARANES_CLIENTE.IMPORTE_TOTAL < 0 THEN 'Orden de devoluci<63>n de cliente ' || ALBARANES_CLIENTE.REFERENCIA
ELSE 'Albar<EFBFBD>n de cliente ' || ALBARANES_CLIENTE.REFERENCIA END
FROM V_ALB_CLI_DETALLES
LEFT JOIN ALBARANES_CLIENTE
ON (V_ALB_CLI_DETALLES.ID_ALBARAN = ALBARANES_CLIENTE.ID)
WHERE (V_ALB_CLI_DETALLES.ID_ALMACEN IS NOT NULL)
AND (V_ALB_CLI_DETALLES.SITUACION in ('ENVIADO', 'SERVIDO'))
;
/* View: V_HIS_MOV_ALB_PROV */
CREATE VIEW V_HIS_MOV_ALB_PROV(
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA)
AS
SELECT
ALBARANES_PROVEEDOR.FECHA_ALBARAN,
V_ALB_PROV_DETALLES.ID_ALMACEN,
V_ALB_PROV_DETALLES.ID_ARTICULO,
CASE WHEN V_ALB_PROV_DETALLES.CANTIDAD < 0 THEN 'S'
ELSE 'E' END,
V_ALB_PROV_DETALLES.CANTIDAD,
CASE WHEN ALBARANES_PROVEEDOR.IMPORTE_TOTAL < 0 THEN 'Orden de devoluci<63>n ' || ALBARANES_PROVEEDOR.REFERENCIA
ELSE 'Albar<EFBFBD>n de proveedor ' || ALBARANES_PROVEEDOR.REFERENCIA END
FROM V_ALB_PROV_DETALLES
LEFT JOIN ALBARANES_PROVEEDOR
ON (V_ALB_PROV_DETALLES.ID_ALBARAN = ALBARANES_PROVEEDOR.ID)
WHERE (V_ALB_PROV_DETALLES.ID_ALMACEN IS NOT NULL)
;
/* View: V_HIS_MOV_REGULARIZACIONES */
CREATE VIEW V_HIS_MOV_REGULARIZACIONES(
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA)
AS
SELECT FECHA_MOVIMIENTO, ID_ALMACEN, ID_ARTICULO, TIPO,
CASE WHEN TIPO = 'S' THEN (-1)* CANTIDAD
ELSE CANTIDAD END,
'Regularizaci<EFBFBD>n por - ' || CAUSA
FROM MOVIMIENTOS
;
/* View: V_HIS_MOV_AUX */
CREATE VIEW V_HIS_MOV_AUX(
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA)
AS
SELECT
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA
FROM V_HIS_MOV_ALB_PROV
UNION ALL
SELECT
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA
FROM V_HIS_MOV_ALB_CLI
UNION ALL
SELECT
FECHA,
ID_ALMACEN,
ID_ARTICULO,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA
FROM V_HIS_MOV_REGULARIZACIONES
;
/* View: V_HISTORICO_MOVIMIENTOS */
CREATE VIEW V_HISTORICO_MOVIMIENTOS(
FECHA,
ID_ALMACEN,
ID_EMPRESA,
NOMBRE_ALMACEN,
ID_ARTICULO,
FAMILIA,
REFERENCIA,
UNIDAD_MEDIDA,
FABRICANTE,
REFERENCIA_FABR,
DESCRIPCION,
TIPO_MOVIMIENTO,
CANTIDAD,
CAUSA)
AS
SELECT
V_HIS_MOV_AUX.FECHA,
V_HIS_MOV_AUX.ID_ALMACEN,
ALMACENES.ID_EMPRESA,
ALMACENES.NOMBRE,
V_HIS_MOV_AUX.ID_ARTICULO,
ARTICULOS.FAMILIA,
ARTICULOS.REFERENCIA,
ARTICULOS.UNIDAD_MEDIDA,
ARTICULOS.FABRICANTE,
ARTICULOS.REFERENCIA_FABR,
ARTICULOS.DESCRIPCION,
V_HIS_MOV_AUX.TIPO_MOVIMIENTO,
V_HIS_MOV_AUX.CANTIDAD,
V_HIS_MOV_AUX.CAUSA
FROM V_HIS_MOV_AUX
LEFT JOIN ALMACENES ON (ALMACENES.ID = V_HIS_MOV_AUX.ID_ALMACEN)
LEFT JOIN ARTICULOS ON (ARTICULOS.ID = V_HIS_MOV_AUX.ID_ARTICULO)
WHERE (V_HIS_MOV_AUX.ID_ARTICULO <> 0)
AND (ARTICULOS.INVENTARIABLE = 1)
;
/* View: V_INV_DETALLE_RESERVAS */
CREATE VIEW V_INV_DETALLE_RESERVAS(
ID,
ID_EMPRESA,
ID_ALMACEN,
NOMBRE_ALMACEN,
FECHA_RESERVA,
CAUSA_RESERVA,
ID_ARTICULO,
REFERENCIA,
DESCRIPCION,
FAMILIA,
UNIDAD_MEDIDA,
FABRICANTE,
REFERENCIA_FABR,
CANTIDAD,
ID_ALMACEN_RESERVA,
NOMBRE_ALMACEN_RESERVA,
ID_EMPRESA_ALMACEN_RESERVA)
AS
select movimientos.id, almacenes1.ID_EMPRESA, movimientos.ID_ALMACEN, almacenes1.nombre as nombre_almacen,
movimientos.fecha_movimiento as fecha_reserva, movimientos.causa, movimientos.id_articulo,
articulos.referencia, articulos.descripcion, articulos.familia,
articulos.unidad_medida, articulos.fabricante, articulos.referencia_fabr,
movimientos.cantidad, movimientos.id_almacen_reserva,
almacenes2.nombre as nombre_almacen_reserva, almacenes2.id_empresa
from movimientos
left join almacenes almacenes1 on (almacenes1.ID = movimientos.ID_ALMACEN)
left join almacenes almacenes2 on (almacenes2.ID = movimientos.ID_ALMACEN_RESERVA)
left join articulos on (articulos.id = movimientos.id_articulo)
where tipo = 'R'
;
;
/* View: V_INV_ENTRADAS_ALB */
CREATE VIEW V_INV_ENTRADAS_ALB(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD)
FROM V_ALB_PROV_DETALLES
WHERE (ID_ALMACEN IS NOT NULL)
GROUP BY ID_ALMACEN, ID_ARTICULO
;
/* View: V_INV_ENTRADAS_MOV */
CREATE VIEW V_INV_ENTRADAS_MOV(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD)
FROM MOVIMIENTOS
WHERE TIPO = 'E'
GROUP BY ID_ALMACEN, ID_ARTICULO
;
/* View: V_INV_ENTRADAS_AUX */
CREATE VIEW V_INV_ENTRADAS_AUX(
TIPO,
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT 'ALB',
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD
FROM V_INV_ENTRADAS_ALB
UNION ALL
SELECT 'MOV',
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD
FROM V_INV_ENTRADAS_MOV
;
/* View: V_INV_ENTRADAS */
CREATE VIEW V_INV_ENTRADAS(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT
ID_ALMACEN,
ID_ARTICULO,
SUM(CANTIDAD) as CANTIDAD
FROM V_INV_ENTRADAS_AUX
GROUP BY ID_ALMACEN,
ID_ARTICULO
;
/* View: V_PED_PROV_ARTICULOS_RECIBIDOS */
CREATE VIEW V_PED_PROV_ARTICULOS_RECIBIDOS(
ID_PEDIDO,
ID_ARTICULO,
DESCRIPCION,
CANTIDAD)
AS
SELECT ID_PEDIDO, ID_ARTICULO, DESCRIPCION,
SUM(CANTIDAD) AS CANTIDAD
FROM V_ALB_PROV_DETALLES
WHERE (ID_PEDIDO is not null)
GROUP BY ID_PEDIDO, ID_ARTICULO, DESCRIPCION;
/* View: V_PED_PROV_DETALLES */
CREATE VIEW V_PED_PROV_DETALLES(
ID_PEDIDO,
ID_ALMACEN,
ID_ARTICULO,
DESCRIPCION,
CANTIDAD)
AS
SELECT PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO,
PEDIDOS_PROVEEDOR.ID_ALMACEN,
COALESCE(PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, 0),
CASE
WHEN PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO IS NULL THEN PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO
ELSE NULL
END,
SUM(COALESCE(PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, 0))
FROM PEDIDOS_PROVEEDOR_DETALLES
LEFT JOIN PEDIDOS_PROVEEDOR
ON (PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID)
/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro cat<61>logo con el fin de no falsear la situaci<63>n de los pedidos
LEFT JOIN ARTICULOS
ON (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID)
WHERE (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO is not null)
AND (ARTICULOS.INVENTARIABLE = 1)
*/
GROUP BY PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO,
PEDIDOS_PROVEEDOR.ID_ALMACEN,
PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO,
4;
/* View: V_PED_PROV_ARTICULOS_AUX */
CREATE VIEW V_PED_PROV_ARTICULOS_AUX(
ID_PEDIDO,
ID_ARTICULO,
DESCRIPCION,
CANTIDAD_PEDIDA,
CANTIDAD_RECIBIDA)
AS
SELECT
V_PED_PROV_DETALLES.ID_PEDIDO,
V_PED_PROV_DETALLES.ID_ARTICULO,
V_PED_PROV_DETALLES.DESCRIPCION,
V_PED_PROV_DETALLES.CANTIDAD AS CANTIDAD_PEDIDA,
0 as CANTIDAD_RECIBIDA
FROM V_PED_PROV_DETALLES
UNION ALL
SELECT
V_PED_PROV_ARTICULOS_RECIBIDOS.ID_PEDIDO,
V_PED_PROV_ARTICULOS_RECIBIDOS.ID_ARTICULO,
V_PED_PROV_ARTICULOS_RECIBIDOS.DESCRIPCION,
NULL as CANTIDAD_PEDIDA,
V_PED_PROV_ARTICULOS_RECIBIDOS.CANTIDAD AS CANTIDAD_RECIBIDA
FROM V_PED_PROV_ARTICULOS_RECIBIDOS
;
/* View: V_PED_PROV_ARTICULOS */
CREATE VIEW V_PED_PROV_ARTICULOS(
ID_PEDIDO,
ID_ARTICULO,
DESCRIPCION,
CANTIDAD_PEDIDA,
CANTIDAD_RECIBIDA,
CANTIDAD_PENDIENTE)
AS
SELECT ID_PEDIDO,
/*PEDIDOS_PROVEEDOR.ID_ALMACEN,*/
ID_ARTICULO,
DESCRIPCION,
SUM(CANTIDAD_PEDIDA) as CANTIDAD_PEDIDA,
SUM(CANTIDAD_RECIBIDA) as CANTIDAD_RECIBIDA,
SUM(CANTIDAD_PEDIDA) - SUM(CANTIDAD_RECIBIDA) as CANTIDAD_PENDIENTE
FROM V_PED_PROV_ARTICULOS_AUX
/*
LEFT JOIN PEDIDOS_PROVEEDOR
ON (PEDIDOS_PROVEEDOR.ID = V_PED_PROV_ARTICULOS_AUX.ID_PEDIDO)
*/
GROUP BY ID_PEDIDO,
/*PEDIDOS_PROVEEDOR.ID_ALMACEN,*/
ID_ARTICULO,
DESCRIPCION
HAVING SUM(CANTIDAD_PEDIDA) IS NOT NULL
;
/* View: V_INV_ENTRADAS_PENDIENTES */
CREATE VIEW V_INV_ENTRADAS_PENDIENTES(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT PEDIDOS_PROVEEDOR.ID_ALMACEN, V_PED_PROV_ARTICULOS.ID_ARTICULO, SUM(V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE)
FROM V_PED_PROV_ARTICULOS
LEFT JOIN PEDIDOS_PROVEEDOR
ON (PEDIDOS_PROVEEDOR.ID = V_PED_PROV_ARTICULOS.ID_PEDIDO)
WHERE (PEDIDOS_PROVEEDOR.ID_ALMACEN IS NOT NULL)
GROUP BY PEDIDOS_PROVEEDOR.ID_ALMACEN, V_PED_PROV_ARTICULOS.ID_ARTICULO
;
/* View: V_INV_RESERVAS_AUX */
CREATE VIEW V_INV_RESERVAS_AUX(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD)
FROM V_ALB_CLI_DETALLES
WHERE (ID_ALMACEN IS NOT NULL)
AND (SITUACION = 'PENDIENTE')
GROUP BY ID_ALMACEN, ID_ARTICULO
UNION ALL
SELECT ID_ALMACEN,
ID_ARTICULO,
CANTIDAD
FROM MOVIMIENTOS
WHERE TIPO = 'R'
;
/* View: V_INV_RESERVAS */
CREATE VIEW V_INV_RESERVAS(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD)
FROM V_INV_RESERVAS_AUX
GROUP BY ID_ALMACEN, ID_ARTICULO
;
/* View: V_INV_SALIDAS_ALB */
CREATE VIEW V_INV_SALIDAS_ALB(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD)
FROM V_ALB_CLI_DETALLES
WHERE (ID_ALMACEN IS NOT NULL)
AND (SITUACION in ('ENVIADO', 'SERVIDO'))
GROUP BY ID_ALMACEN, ID_ARTICULO
;
/* View: V_INV_SALIDAS_MOV */
CREATE VIEW V_INV_SALIDAS_MOV(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD)
FROM MOVIMIENTOS
WHERE TIPO = 'S'
GROUP BY ID_ALMACEN, ID_ARTICULO
;
/* View: V_INV_SALIDAS_AUX */
CREATE VIEW V_INV_SALIDAS_AUX(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT ID_ALMACEN,
ID_ARTICULO,
CANTIDAD
FROM V_INV_SALIDAS_ALB
UNION ALL
SELECT ID_ALMACEN,
ID_ARTICULO,
CANTIDAD
FROM V_INV_SALIDAS_MOV
;
/* View: V_INV_SALIDAS */
CREATE VIEW V_INV_SALIDAS(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT
ID_ALMACEN,
ID_ARTICULO,
SUM(CANTIDAD) as CANTIDAD
FROM V_INV_SALIDAS_AUX
GROUP BY ID_ALMACEN,
ID_ARTICULO
;
/* View: V_INV_STOCK_AUX */
CREATE VIEW V_INV_STOCK_AUX(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD_ENTRADA,
CANTIDAD_SALIDA)
AS
SELECT ID_ALMACEN,
ID_ARTICULO,
CANTIDAD as CANTIDAD_ENTRADA,
0 as CANTIDAD_SALIDA
FROM V_INV_ENTRADAS
UNION ALL
SELECT ID_ALMACEN,
ID_ARTICULO,
0 as CANTIDAD_ENTRADA,
CANTIDAD as CANTIDAD_SALIDA
FROM V_INV_SALIDAS
;
/* View: V_INV_STOCK */
CREATE VIEW V_INV_STOCK(
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT
ID_ALMACEN,
ID_ARTICULO,
(SUM(CANTIDAD_ENTRADA) - SUM(CANTIDAD_SALIDA)) as CANTIDAD
FROM V_INV_STOCK_AUX
GROUP BY ID_ALMACEN,
ID_ARTICULO
;
/* View: V_INVENTARIO_AUX */
CREATE VIEW V_INVENTARIO_AUX(
ID_ALMACEN,
ID_ARTICULO,
STOCK,
PENDIENTE_RECEPCION,
RESERVA)
AS
SELECT ID_ALMACEN, ID_ARTICULO, CANTIDAD as STOCK, 0 as PENDIENTES, 0 as RESERVADAS
FROM V_INV_STOCK
UNION ALL
SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, CANTIDAD as PENDIENTES, 0 AS RESERVADAS
FROM V_INV_ENTRADAS_PENDIENTES
UNION ALL
SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, 0 as PENDIENTES, CANTIDAD AS RESERVADAS
FROM V_INV_RESERVAS
;
/* View: V_INVENTARIO */
CREATE VIEW V_INVENTARIO(
ID_ALMACEN,
ID_EMPRESA,
TIPO_ALMACEN,
NOMBRE,
ID_ARTICULO,
REFERENCIA,
FAMILIA,
DESCRIPCION,
REFERENCIA_FAB,
UNIDAD_MEDIDA,
STOCK,
UNIDADES_ALMACEN,
RESERVA,
PENDIENTE_RECEPCION)
AS
SELECT ID_ALMACEN,
ALMACENES.ID_EMPRESA,
ALMACENES.TIPO_ALMACEN,
ALMACENES.NOMBRE,
ID_ARTICULO,
ARTICULOS.REFERENCIA,
ARTICULOS.FAMILIA,
ARTICULOS.DESCRIPCION,
ARTICULOS.REFERENCIA_FABR,
ARTICULOS.UNIDAD_MEDIDA,
/* COALESCE(ARTICULOS.PRECIO_NETO,0) as PRECIO_NETO,*/
(SUM(STOCK) - SUM(RESERVA)) as STOCK,
SUM(STOCK) as UNIDADES_ALMACEN,
/*Si las unidades son negativas no se tiene en cuenta el coste*/
/* CASE WHEN (SUM(STOCK) < 0) THEN 0
ELSE (COALESCE(ARTICULOS.PRECIO_NETO,0) * SUM(STOCK))
END as COSTE_UNIDADES,
*/
SUM(RESERVA) as RESERVA,
SUM(PENDIENTE_RECEPCION) as PENDIENTE_RECEPCION
FROM V_INVENTARIO_AUX
LEFT JOIN ARTICULOS
ON (ARTICULOS.ID = V_INVENTARIO_AUX.ID_ARTICULO)
LEFT JOIN ALMACENES
ON (ALMACENES.ID = V_INVENTARIO_AUX.ID_ALMACEN)
WHERE (ID_ARTICULO <> 0)
AND (ARTICULOS.ELIMINADO = 0)
AND (ARTICULOS.INVENTARIABLE = 1)
GROUP BY ID_ALMACEN,
ALMACENES.ID_EMPRESA,
ALMACENES.TIPO_ALMACEN,
ALMACENES.NOMBRE,
ID_ARTICULO,
ARTICULOS.REFERENCIA,
ARTICULOS.FAMILIA,
ARTICULOS.DESCRIPCION,
ARTICULOS.REFERENCIA_FABR,
ARTICULOS.UNIDAD_MEDIDA
/* ARTICULOS.PRECIO_NETO*/
/*QUITAMOS AQUELLAS TUPLAS DE LAS QUE NO TENEMOS UNIDADES EN EL ALAMCEN, NO HAY RESERVAS NI PEDIDOS PENDIENTES DE RECIBIR*/
HAVING ((SUM(STOCK) <> 0 ) OR (SUM(RESERVA) <> 0) OR (SUM(PENDIENTE_RECEPCION) <> 0))
;
/* View: V_OBRAS */
CREATE VIEW V_OBRAS(
ID,
ID_EMPRESA,
NOMBRE,
CALLE,
PROVINCIA,
POBLACION,
CODIGO_POSTAL,
TELEFONO,
MOVIL,
FAX,
PERSONA_CONTACTO,
OBSERVACIONES,
ID_CLIENTE,
NOMBRE_CLIENTE,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_EJECUCION)
AS
SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE,
ALMACENES.CALLE, ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL,
ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO,
ALMACENES.OBSERVACIONES, OBRAS_DATOS.ID_CLIENTE, CLIENTES.NOMBRE AS NOMBRE_CLIENTE,
ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, ALMACENES.USUARIO,
CASE
WHEN (OBRAS_EJECUCIONES.FECHA_INICIO IS NULL) THEN NULL
WHEN (OBRAS_EJECUCIONES.FECHA_INICIO IS NOT NULL) THEN OBRAS_EJECUCIONES.ID
END AS ID_EJECUCION
FROM ALMACENES
INNER JOIN OBRAS_DATOS ON (OBRAS_DATOS.ID_ALMACEN = ALMACENES.ID)
LEFT OUTER JOIN CONTACTOS AS CLIENTES ON (CLIENTES.ID = OBRAS_DATOS.ID_CLIENTE)
LEFT OUTER JOIN OBRAS_EJECUCIONES ON ((OBRAS_EJECUCIONES.ID_OBRA = ALMACENES.ID) AND (OBRAS_EJECUCIONES.FECHA_FIN IS NULL))
WHERE ALMACENES.TIPO_ALMACEN = 'OBRA';
/* View: V_OBRAS_EJECUCIONES */
CREATE VIEW V_OBRAS_EJECUCIONES(
ID,
ID_OBRA,
FECHA_INICIO,
FECHA_FIN,
ID_SUBCONTRATA,
NOMBRE,
IMPORTE_GASTOS,
IMPORTE_INGRESOS,
IMPORTE_TOTAL,
OBSERVACIONES,
FECHA_ALTA,
FECHA_MODIFICACION)
AS
SELECT
OBRAS_EJECUCIONES.ID,
OBRAS_EJECUCIONES.ID_OBRA,
OBRAS_EJECUCIONES.FECHA_INICIO,
OBRAS_EJECUCIONES.FECHA_FIN,
OBRAS_EJECUCIONES.ID_SUBCONTRATA,
CONTACTOS.NOMBRE,
COALESCE(SUM(PEDIDOS_PROVEEDOR.BASE_IMPONIBLE), 0) IMPORTE_GASTOS,
COALESCE(SUM(PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE), 0) IMPORTE_INGRESOS,
COALESCE(SUM(PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE), 0) - COALESCE(SUM(PEDIDOS_PROVEEDOR.BASE_IMPONIBLE), 0) IMPORTE_TOTAL,
OBRAS_EJECUCIONES.OBSERVACIONES,
OBRAS_EJECUCIONES.FECHA_ALTA,
OBRAS_EJECUCIONES.FECHA_MODIFICACION
FROM OBRAS_EJECUCIONES
LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = OBRAS_EJECUCIONES.ID_SUBCONTRATA)
LEFT OUTER JOIN OBRAS_EJECUCIONES_PRESUPUESTOS ON (OBRAS_EJECUCIONES_PRESUPUESTOS.ID_EJECUCION = OBRAS_EJECUCIONES.ID)
LEFT OUTER JOIN PRESUPUESTOS_CLIENTE ON (PRESUPUESTOS_CLIENTE.ID = OBRAS_EJECUCIONES_PRESUPUESTOS.ID_PRESUPUESTO)
LEFT OUTER JOIN OBRAS_EJECUCIONES_PEDIDOS_PROV ON (OBRAS_EJECUCIONES_PEDIDOS_PROV.ID_EJECUCION = OBRAS_EJECUCIONES.ID)
LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = OBRAS_EJECUCIONES_PEDIDOS_PROV.ID_PEDIDO)
GROUP BY
OBRAS_EJECUCIONES.ID,
OBRAS_EJECUCIONES.ID_OBRA,
OBRAS_EJECUCIONES.FECHA_INICIO,
OBRAS_EJECUCIONES.FECHA_FIN,
OBRAS_EJECUCIONES.ID_SUBCONTRATA,
CONTACTOS.NOMBRE,
OBRAS_EJECUCIONES.OBSERVACIONES,
OBRAS_EJECUCIONES.FECHA_ALTA,
OBRAS_EJECUCIONES.FECHA_MODIFICACION;
/* View: V_PED_PROV_SITUACION */
CREATE VIEW V_PED_PROV_SITUACION(
ID_PEDIDO,
SITUACION)
AS
SELECT ID_PEDIDO,
CASE WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) = 0) THEN 'PENDIENTE'
WHEN (SUM(CANTIDAD_PENDIENTE) <= 0) THEN 'RECIBIDO'
WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) > 0) THEN 'PARCIAL'
ELSE 'N/A'
END AS SITUACION
FROM V_PED_PROV_ARTICULOS
GROUP BY V_PED_PROV_ARTICULOS.ID_PEDIDO
;
/* View: V_PEDIDOS_PROVEEDOR */
CREATE VIEW V_PEDIDOS_PROVEEDOR(
ID,
ID_EMPRESA,
ID_PROVEEDOR,
NOMBRE,
ID_DIRECCION,
PERSONA_CONTACTO_PROV,
REFERENCIA,
SITUACION,
FECHA_ENVIO,
FECHA_PEDIDO,
FECHA_CONFIRMACION,
FECHA_ENTREGA,
ID_ALMACEN,
TIPO_ALMACEN,
NOMBRE_ALMACEN,
ID_OBRA,
NOMBRE_OBRA,
OBSERVACIONES,
IMPORTE_TOTAL,
INCIDENCIAS,
INCIDENCIAS_ACTIVAS,
CALLE,
POBLACION,
PROVINCIA,
CODIGO_POSTAL,
PERSONA_CONTACTO,
TELEFONO,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_PEDIDO_CLIENTE,
REF_PED_CLIENTE,
IMPORTE_NETO,
IMPORTE_PORTE,
DESCUENTO,
IMPORTE_DESCUENTO,
BASE_IMPONIBLE,
IVA,
IMPORTE_IVA,
ID_FORMA_PAGO,
ID_FACTURA,
REF_FACTURA_PROV)
AS
SELECT
PEDIDOS_PROVEEDOR.ID,
PEDIDOS_PROVEEDOR.ID_EMPRESA,
PEDIDOS_PROVEEDOR.ID_PROVEEDOR,
CONTACTOS.NOMBRE,
PEDIDOS_PROVEEDOR.ID_DIRECCION,
PEDIDOS_PROVEEDOR.PERSONA_CONTACTO_PROV,
PEDIDOS_PROVEEDOR.REFERENCIA,
TRIM(V_PED_PROV_SITUACION.SITUACION),
PEDIDOS_PROVEEDOR.FECHA_ENVIO,
PEDIDOS_PROVEEDOR.FECHA_PEDIDO,
PEDIDOS_PROVEEDOR.FECHA_CONFIRMACION,
PEDIDOS_PROVEEDOR.FECHA_ENTREGA,
PEDIDOS_PROVEEDOR.ID_ALMACEN,
ALMACENES.TIPO_ALMACEN,
ALMACENES.NOMBRE AS NOMBRE_ALMACEN,
PEDIDOS_PROVEEDOR.ID_OBRA,
OBRAS.NOMBRE AS NOMBRE_OBRA,
PEDIDOS_PROVEEDOR.OBSERVACIONES,
PEDIDOS_PROVEEDOR.IMPORTE_TOTAL,
PEDIDOS_PROVEEDOR.INCIDENCIAS,
PEDIDOS_PROVEEDOR.INCIDENCIAS_ACTIVAS,
PEDIDOS_PROVEEDOR.CALLE,
PEDIDOS_PROVEEDOR.POBLACION,
PEDIDOS_PROVEEDOR.PROVINCIA,
PEDIDOS_PROVEEDOR.CODIGO_POSTAL,
PEDIDOS_PROVEEDOR.PERSONA_CONTACTO,
PEDIDOS_PROVEEDOR.TELEFONO,
PEDIDOS_PROVEEDOR.FECHA_ALTA,
PEDIDOS_PROVEEDOR.FECHA_MODIFICACION,
PEDIDOS_PROVEEDOR.USUARIO,
PEDIDOS_PROVEEDOR.ID_PEDIDO_CLIENTE,
PEDIDOS_CLIENTE.REFERENCIA AS REF_PED_CLIENTE,
PEDIDOS_PROVEEDOR.IMPORTE_NETO,
PEDIDOS_PROVEEDOR.IMPORTE_PORTE,
PEDIDOS_PROVEEDOR.DESCUENTO,
PEDIDOS_PROVEEDOR.IMPORTE_DESCUENTO,
PEDIDOS_PROVEEDOR.BASE_IMPONIBLE,
PEDIDOS_PROVEEDOR.IVA,
PEDIDOS_PROVEEDOR.IMPORTE_IVA,
PEDIDOS_PROVEEDOR.ID_FORMA_PAGO,
PEDIDOS_PROVEEDOR.ID_FACTURA,
FACTURAS_PROVEEDOR.REFERENCIA
FROM
PEDIDOS_PROVEEDOR
INNER JOIN CONTACTOS ON (PEDIDOS_PROVEEDOR.ID_PROVEEDOR = CONTACTOS.ID)
LEFT OUTER JOIN V_PED_PROV_SITUACION ON (V_PED_PROV_SITUACION.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID)
LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = PEDIDOS_PROVEEDOR.ID_ALMACEN)
LEFT OUTER JOIN ALMACENES OBRAS ON (OBRAS.ID = PEDIDOS_PROVEEDOR.ID_OBRA)
LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = PEDIDOS_PROVEEDOR.ID_PEDIDO_CLIENTE)
LEFT OUTER JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = PEDIDOS_PROVEEDOR.ID_FACTURA)
;
/* View: V_PRESUPUESTOS_CLIENTE */
CREATE VIEW V_PRESUPUESTOS_CLIENTE(
ID,
ID_EMPRESA,
FECHA_PRESUPUESTO,
FECHA_DECISION,
REFERENCIA,
REFERENCIA_AUX,
SITUACION,
ID_CLIENTE,
ID_DIRECCION,
NIF_CIF,
NOMBRE,
REFERENCIA_CLIENTE,
CLIENTE_FINAL,
PORTADA,
MEMORIA,
OBSERVACIONES,
INCIDENCIAS,
INCIDENCIAS_ACTIVAS,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
IMPORTE_NETO,
IMPORTE_PORTE,
DESCUENTO,
IMPORTE_DESCUENTO,
BASE_IMPONIBLE,
IVA,
IMPORTE_IVA,
IMPORTE_TOTAL,
ID_FORMA_PAGO,
ID_FACTURA,
FACTURA,
PERSONA_CONTACTO,
DESCRIPCION_BONIFICACION,
IMPORTE_BONIFICACION)
AS
SELECT
PRESUPUESTOS_CLIENTE.ID,
PRESUPUESTOS_CLIENTE.ID_EMPRESA,
PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,
PRESUPUESTOS_CLIENTE.FECHA_DECISION,
PRESUPUESTOS_CLIENTE.REFERENCIA,
PRESUPUESTOS_CLIENTE.REFERENCIA_AUX,
PRESUPUESTOS_CLIENTE.SITUACION,
PRESUPUESTOS_CLIENTE.ID_CLIENTE,
PRESUPUESTOS_CLIENTE.ID_DIRECCION,
CONTACTOS.NIF_CIF,
CONTACTOS.NOMBRE,
PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE,
PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,
PRESUPUESTOS_CLIENTE.PORTADA,
PRESUPUESTOS_CLIENTE.MEMORIA,
PRESUPUESTOS_CLIENTE.OBSERVACIONES,
PRESUPUESTOS_CLIENTE.INCIDENCIAS,
PRESUPUESTOS_CLIENTE.INCIDENCIAS_ACTIVAS,
PRESUPUESTOS_CLIENTE.FECHA_ALTA,
PRESUPUESTOS_CLIENTE.FECHA_MODIFICACION,
PRESUPUESTOS_CLIENTE.USUARIO,
PRESUPUESTOS_CLIENTE.IMPORTE_NETO,
PRESUPUESTOS_CLIENTE.IMPORTE_PORTE,
PRESUPUESTOS_CLIENTE.DESCUENTO,
PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO,
PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE,
PRESUPUESTOS_CLIENTE.IVA,
PRESUPUESTOS_CLIENTE.IMPORTE_IVA,
PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL,
PRESUPUESTOS_CLIENTE.ID_FORMA_PAGO,
PRESUPUESTOS_CLIENTE.ID_FACTURA,
FACTURAS_CLIENTE.REFERENCIA,
PRESUPUESTOS_CLIENTE.PERSONA_CONTACTO,
PRESUPUESTOS_CLIENTE.DESCRIPCION_BONIFICACION,
PRESUPUESTOS_CLIENTE.IMPORTE_BONIFICACION
FROM
PRESUPUESTOS_CLIENTE
INNER JOIN CONTACTOS ON (CONTACTOS.ID = PRESUPUESTOS_CLIENTE.ID_CLIENTE)
LEFT OUTER JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = PRESUPUESTOS_CLIENTE.ID_FACTURA)
;
/* View: V_PROVEEDORES */
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,
PAIS,
DESCUENTO,
DESCRIPCION_PROVEEDOR,
GRUPO_PROVEEDOR,
REGIMEN_IVA,
ID_TIPO_IVA,
ID_FORMA_PAGO,
TIENDA_WEB,
HOMOLOGADO,
CERTIFICACION,
SUBCONTRATA,
VENCIMIENTO_FACTURAS_1,
VENCIMIENTO_FACTURAS_2,
VENCIMIENTO_FACTURAS_3)
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,
V_CONTACTOS.PAIS,
PROVEEDORES_DATOS.DESCUENTO,
PROVEEDORES_DATOS.DESCRIPCION_PROVEEDOR,
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,
PROVEEDORES_DATOS.SUBCONTRATA,
PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_1,
PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_2,
PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_3
FROM
V_CONTACTOS
INNER JOIN PROVEEDORES_DATOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = V_CONTACTOS.ID)
WHERE
V_CONTACTOS.ID_CATEGORIA = 2
;
/* View: V_REC_CLI_COMPENSADOS */
CREATE VIEW V_REC_CLI_COMPENSADOS(
ID_RECIBO,
IMPORTE_TOTAL_COMPENSADO)
AS
select ID_RECIBO_COMPENSADO, SUM((IMPORTE + OTROS_GASTOS)) as IMPORTE_TOTAL
from RECIBOS_CLIENTE
where ID_RECIBO_COMPENSADO is not null
group by ID_RECIBO_COMPENSADO
;
/* View: V_REC_PRO_COMPENSADOS */
CREATE VIEW V_REC_PRO_COMPENSADOS(
ID_RECIBO,
IMPORTE_TOTAL_COMPENSADO)
AS
select ID_RECIBO_COMPENSADO, SUM((IMPORTE + OTROS_GASTOS)) as IMPORTE_TOTAL
from RECIBOS_PROVEEDOR
where ID_RECIBO_COMPENSADO is not null
group by ID_RECIBO_COMPENSADO
;
/* View: V_RECIBOS_CLIENTE */
CREATE VIEW V_RECIBOS_CLIENTE(
ID,
ID_RECIBO_COMPENSADO,
REFERENCIA_REC_COMPENSADO,
REFERENCIA,
SITUACION,
ID_FACTURA,
ID_REMESA,
REFERENCIA_REMESA,
FECHA_EMISION,
FECHA_VENCIMIENTO,
DESCRIPCION,
OBSERVACIONES,
IMPORTE,
OTROS_GASTOS,
IMPORTE_TOTAL,
FECHA_FACTURA,
FORMA_PAGO_FACTURA,
IMPORTE_FACTURA,
ID_EMPRESA,
DATOS_BANCARIOS,
ID_CLIENTE,
NOMBRE_CLIENTE,
NIF_CIF_CLIENTE,
CALLE_CLIENTE,
POBLACION_CLIENTE,
CODIGO_POSTAL_CLIENTE,
PROVINCIA_CLIENTE,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO)
AS
SELECT RECIBOS_CLIENTE.ID,
RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO,
RECIBO_COMPENSADO1.REFERENCIA,
RECIBOS_CLIENTE.REFERENCIA,
CASE
WHEN RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO IS NULL
THEN TRIM(V_REC_CLI_SITUACION.SITUACION)
ELSE TRIM(RECIBO_COMPENSADO2.SITUACION)
END,
RECIBOS_CLIENTE.ID_FACTURA,
RECIBOS_CLIENTE.ID_REMESA, REMESAS_CLIENTE.REFERENCIA as REFERENCIA_REMESA,
RECIBOS_CLIENTE.FECHA_EMISION, RECIBOS_CLIENTE.FECHA_VENCIMIENTO, RECIBOS_CLIENTE.DESCRIPCION,
RECIBOS_CLIENTE.OBSERVACIONES, RECIBOS_CLIENTE.IMPORTE, RECIBOS_CLIENTE.OTROS_GASTOS,
COALESCE(RECIBOS_CLIENTE.IMPORTE, 0) + COALESCE(RECIBOS_CLIENTE.OTROS_GASTOS, 0) + COALESCE(V_REC_CLI_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO, 0),
FACTURAS_CLIENTE.FECHA_FACTURA, FORMAS_PAGO.DESCRIPCION, FACTURAS_CLIENTE.IMPORTE_TOTAL,
FACTURAS_CLIENTE.ID_EMPRESA, FACTURAS_CLIENTE.DATOS_BANCARIOS,
FACTURAS_CLIENTE.ID_CLIENTE, FACTURAS_CLIENTE.NOMBRE, FACTURAS_CLIENTE.NIF_CIF,
FACTURAS_CLIENTE.CALLE, FACTURAS_CLIENTE.POBLACION, FACTURAS_CLIENTE.CODIGO_POSTAL, FACTURAS_CLIENTE.PROVINCIA,
RECIBOS_CLIENTE.FECHA_ALTA,
RECIBOS_CLIENTE.FECHA_MODIFICACION,
RECIBOS_CLIENTE.USUARIO
FROM RECIBOS_CLIENTE
LEFT JOIN V_REC_CLI_SITUACION
ON (V_REC_CLI_SITUACION.ID_RECIBO = RECIBOS_CLIENTE.ID)
LEFT JOIN FACTURAS_CLIENTE
ON (FACTURAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_FACTURA)
LEFT JOIN FORMAS_PAGO
ON (FORMAS_PAGO.ID = FACTURAS_CLIENTE.ID_FORMA_PAGO)
LEFT JOIN REMESAS_CLIENTE
ON (REMESAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_REMESA)
LEFT JOIN V_REC_CLI_COMPENSADOS
ON (V_REC_CLI_COMPENSADOS.ID_RECIBO = RECIBOS_CLIENTE.ID)
LEFT JOIN RECIBOS_CLIENTE RECIBO_COMPENSADO1
ON (RECIBO_COMPENSADO1.ID = RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO)
LEFT JOIN V_REC_CLI_SITUACION RECIBO_COMPENSADO2
ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO)
;
/* View: V_RECIBOS_PROVEEDOR */
CREATE VIEW V_RECIBOS_PROVEEDOR(
ID,
ID_RECIBO_COMPENSADO,
REFERENCIA_REC_COMPENSADO,
REFERENCIA,
REFERENCIA_PROVEEDOR,
SITUACION,
ID_FACTURA,
ID_REMESA,
REFERENCIA_REMESA,
FECHA_EMISION,
FECHA_VENCIMIENTO,
DESCRIPCION,
OBSERVACIONES,
IMPORTE,
OTROS_GASTOS,
IMPORTE_TOTAL,
REFERENCIA_FACTURA_PROV,
FECHA_FACTURA,
FORMA_PAGO_FACTURA,
IMPORTE_FACTURA,
ID_EMPRESA,
DATOS_BANCARIOS,
ID_PROVEEDOR,
NOMBRE_PROVEEDOR,
NIF_CIF_PROVEEDOR,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO)
AS
SELECT RECIBOS_PROVEEDOR.ID,
RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO,
RECIBO_COMPENSADO1.REFERENCIA,
RECIBOS_PROVEEDOR.REFERENCIA,
RECIBOS_PROVEEDOR.REFERENCIA_PROVEEDOR,
CASE
WHEN RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO IS NULL
THEN TRIM(V_REC_PRO_SITUACION.SITUACION)
ELSE TRIM(RECIBO_COMPENSADO2.SITUACION)
END,
RECIBOS_PROVEEDOR.ID_FACTURA,
RECIBOS_PROVEEDOR.ID_REMESA, REMESAS_PROVEEDOR.REFERENCIA as REFERENCIA_REMESA,
RECIBOS_PROVEEDOR.FECHA_EMISION, RECIBOS_PROVEEDOR.FECHA_VENCIMIENTO, RECIBOS_PROVEEDOR.DESCRIPCION,
RECIBOS_PROVEEDOR.OBSERVACIONES, RECIBOS_PROVEEDOR.IMPORTE, RECIBOS_PROVEEDOR.OTROS_GASTOS,
COALESCE(RECIBOS_PROVEEDOR.IMPORTE, 0) + COALESCE(RECIBOS_PROVEEDOR.OTROS_GASTOS, 0) + COALESCE(V_REC_PRO_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO, 0),
FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR, FACTURAS_PROVEEDOR.FECHA_FACTURA,
FORMAS_PAGO.DESCRIPCION, FACTURAS_PROVEEDOR.IMPORTE_TOTAL,
FACTURAS_PROVEEDOR.ID_EMPRESA, FACTURAS_PROVEEDOR.DATOS_BANCARIOS,
CONTACTOS.ID as ID_PROVEEDOR, CONTACTOS.NOMBRE, CONTACTOS.NIF_CIF,
RECIBOS_PROVEEDOR.FECHA_ALTA,
RECIBOS_PROVEEDOR.FECHA_MODIFICACION,
RECIBOS_PROVEEDOR.USUARIO
FROM RECIBOS_PROVEEDOR
LEFT JOIN V_REC_PRO_SITUACION
ON (V_REC_PRO_SITUACION.ID_RECIBO = RECIBOS_PROVEEDOR.ID)
LEFT JOIN FACTURAS_PROVEEDOR
ON (FACTURAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_FACTURA)
LEFT JOIN FORMAS_PAGO
ON (FORMAS_PAGO.ID = FACTURAS_PROVEEDOR.ID_FORMA_PAGO)
LEFT JOIN CONTACTOS
ON (CONTACTOS.ID = FACTURAS_PROVEEDOR.ID_PROVEEDOR)
LEFT JOIN REMESAS_PROVEEDOR
ON (REMESAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_REMESA)
LEFT JOIN V_REC_PRO_COMPENSADOS
ON (V_REC_PRO_COMPENSADOS.ID_RECIBO = RECIBOS_PROVEEDOR.ID)
LEFT JOIN RECIBOS_PROVEEDOR RECIBO_COMPENSADO1
ON (RECIBO_COMPENSADO1.ID = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO)
LEFT JOIN V_REC_PRO_SITUACION RECIBO_COMPENSADO2
ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO)
;
CREATE VIEW V_REMESAS_CLIENTE(
ID,
ID_EMPRESA,
REFERENCIA,
TIPO,
FECHA_REMESA,
DESCRIPCION,
ID_DATOS_BANCO,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
NOMBRE,
ENTIDAD,
SUCURSAL,
DC,
CUENTA,
SUFIJO_N19,
SUFIJO_N58,
IMPORTE_TOTAL)
AS
SELECT
REMESAS_CLIENTE.ID,
REMESAS_CLIENTE.ID_EMPRESA,
REMESAS_CLIENTE.REFERENCIA,
REMESAS_CLIENTE.TIPO,
REMESAS_CLIENTE.FECHA_REMESA,
REMESAS_CLIENTE.DESCRIPCION,
REMESAS_CLIENTE.ID_DATOS_BANCO,
REMESAS_CLIENTE.FECHA_ALTA,
REMESAS_CLIENTE.FECHA_MODIFICACION,
REMESAS_CLIENTE.USUARIO,
EMPRESAS_DATOS_BANCO.NOMBRE,
EMPRESAS_DATOS_BANCO.ENTIDAD,
EMPRESAS_DATOS_BANCO.SUCURSAL,
EMPRESAS_DATOS_BANCO.DC,
EMPRESAS_DATOS_BANCO.CUENTA,
EMPRESAS_DATOS_BANCO.SUFIJO_N19,
EMPRESAS_DATOS_BANCO.SUFIJO_N58,
SUM(COALESCE(RECIBOS_CLIENTE.IMPORTE,0) + COALESCE(RECIBOS_CLIENTE.OTROS_GASTOS,0) + COALESCE(V_REC_CLI_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO,0)) as IMPORTE_TOTAL
FROM
REMESAS_CLIENTE
LEFT OUTER JOIN EMPRESAS_DATOS_BANCO ON (EMPRESAS_DATOS_BANCO.ID = REMESAS_CLIENTE.ID_DATOS_BANCO)
LEFT OUTER JOIN RECIBOS_CLIENTE ON (RECIBOS_CLIENTE.ID_REMESA = REMESAS_CLIENTE.ID)
LEFT OUTER JOIN V_REC_CLI_COMPENSADOS ON (V_REC_CLI_COMPENSADOS.ID_RECIBO = RECIBOS_CLIENTE.ID)
GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
;
CREATE VIEW V_REMESAS_PROVEEDOR(
ID,
ID_EMPRESA,
REFERENCIA,
TIPO,
FECHA_REMESA,
DESCRIPCION,
ID_DATOS_BANCO,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
NOMBRE,
ENTIDAD,
SUCURSAL,
DC,
CUENTA,
SUFIJO_N19,
SUFIJO_N58,
IMPORTE_TOTAL)
AS
SELECT
REMESAS_PROVEEDOR.ID,
REMESAS_PROVEEDOR.ID_EMPRESA,
REMESAS_PROVEEDOR.REFERENCIA,
REMESAS_PROVEEDOR.TIPO,
REMESAS_PROVEEDOR.FECHA_REMESA,
REMESAS_PROVEEDOR.DESCRIPCION,
REMESAS_PROVEEDOR.ID_DATOS_BANCO,
REMESAS_PROVEEDOR.FECHA_ALTA,
REMESAS_PROVEEDOR.FECHA_MODIFICACION,
REMESAS_PROVEEDOR.USUARIO,
EMPRESAS_DATOS_BANCO.NOMBRE,
EMPRESAS_DATOS_BANCO.ENTIDAD,
EMPRESAS_DATOS_BANCO.SUCURSAL,
EMPRESAS_DATOS_BANCO.DC,
EMPRESAS_DATOS_BANCO.CUENTA,
EMPRESAS_DATOS_BANCO.SUFIJO_N19,
EMPRESAS_DATOS_BANCO.SUFIJO_N58,
SUM(COALESCE(RECIBOS_PROVEEDOR.IMPORTE,0) + COALESCE(RECIBOS_PROVEEDOR.OTROS_GASTOS,0) + COALESCE(V_REC_PRO_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO,0)) as IMPORTE_TOTAL
FROM
REMESAS_PROVEEDOR
LEFT OUTER JOIN EMPRESAS_DATOS_BANCO ON (EMPRESAS_DATOS_BANCO.ID = REMESAS_PROVEEDOR.ID_DATOS_BANCO)
LEFT OUTER JOIN RECIBOS_PROVEEDOR ON (RECIBOS_PROVEEDOR.ID_REMESA = REMESAS_PROVEEDOR.ID)
LEFT OUTER JOIN V_REC_PRO_COMPENSADOS ON (V_REC_PRO_COMPENSADOS.ID_RECIBO = RECIBOS_PROVEEDOR.ID)
GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
;
/*PEDIDOS DE CLIENTE*/
CREATE VIEW V_PED_CLI_ART_SITUACION(
ID_PEDIDO,
SITUACION,
ID_ARTICULO,
CANTIDAD)
AS
SELECT ID_PEDIDO, SITUACION, ID_ARTICULO, SUM(CANTIDAD) AS CANTIDAD
FROM V_ALB_CLI_DETALLES
WHERE (ID_PEDIDO is not null)
GROUP BY ID_PEDIDO,
SITUACION,
ID_ARTICULO
;
CREATE VIEW V_PED_CLI_ART_SITUACION_CANT(
ID_PEDIDO,
ID_ARTICULO,
CANTIDAD_RESERVADA,
CANTIDAD_ENVIADA,
CANTIDAD_SERVIDA)
AS
SELECT ID_PEDIDO, ID_ARTICULO,
COALESCE((CASE SITUACION when 'PENDIENTE' THEN CANTIDAD END), 0) as CANTIDAD_RESERVADA,
COALESCE((CASE SITUACION when 'ENVIADO' THEN CANTIDAD END), 0) as CANTIDAD_ENVIADA,
COALESCE((CASE SITUACION when 'SERVIDO' THEN CANTIDAD END), 0) as CANTIDAD_SERVIDA
FROM V_PED_CLI_ART_SITUACION
;
CREATE VIEW V_PED_CLI_DETALLES(
ID_PEDIDO,
ID_ARTICULO,
CANTIDAD)
AS
SELECT PEDIDOS_CLIENTE_DETALLES.ID_PEDIDO,
COALESCE(PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO, 0),
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLES.CANTIDAD, 0)) AS CANTIDAD
FROM PEDIDOS_CLIENTE_DETALLES
/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro cat<61>logo con el fin de no falsear la situaci<63>n de los pedidos
LEFT JOIN ARTICULOS
ON (PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID)
WHERE (PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO is not null)
AND (ARTICULOS.INVENTARIABLE = 1)
*/
GROUP BY PEDIDOS_CLIENTE_DETALLES.ID_PEDIDO,
PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO
;
CREATE VIEW V_PED_CLI_ARTICULOS_AUX(
ID_PEDIDO,
ID_ARTICULO,
CANTIDAD_PEDIDA,
CANTIDAD_RESERVADA,
CANTIDAD_ENVIADA,
CANTIDAD_SERVIDA)
AS
SELECT
V_PED_CLI_DETALLES.ID_PEDIDO,
V_PED_CLI_DETALLES.ID_ARTICULO,
V_PED_CLI_DETALLES.CANTIDAD AS CANTIDAD_PEDIDA,
0 AS CANTIDAD_RESERVADA,
0 AS CANTIDAD_ENVIADA,
0 AS CANTIDAD_SERVIDA
FROM V_PED_CLI_DETALLES
UNION ALL
SELECT
V_PED_CLI_ART_SITUACION_CANT.ID_PEDIDO,
V_PED_CLI_ART_SITUACION_CANT.ID_ARTICULO,
0 AS CANTIDAD_PEDIDA,
V_PED_CLI_ART_SITUACION_CANT.CANTIDAD_RESERVADA AS CANTIDAD_RESERVADA,
V_PED_CLI_ART_SITUACION_CANT.CANTIDAD_ENVIADA AS CANTIDAD_ENVIADA,
V_PED_CLI_ART_SITUACION_CANT.CANTIDAD_SERVIDA AS CANTIDAD_SERVIDA
FROM V_PED_CLI_ART_SITUACION_CANT
;
CREATE VIEW V_PED_CLI_ARTICULOS(
ID_PEDIDO,
ID_ARTICULO,
CANTIDAD_PEDIDA,
CANTIDAD_RESERVADA,
CANTIDAD_ENVIADA,
CANTIDAD_SERVIDA,
CANTIDAD_PENDIENTE)
AS
SELECT ID_PEDIDO,
ID_ARTICULO,
SUM(CANTIDAD_PEDIDA),
SUM(CANTIDAD_RESERVADA) as CANTIDAD_RESERVADA,
SUM(CANTIDAD_ENVIADA) as CANTIDAD_ENVIADA,
SUM(CANTIDAD_SERVIDA) as CANTIDAD_SERVIDA,
(SUM(CANTIDAD_PEDIDA) - (SUM(CANTIDAD_RESERVADA) +
SUM(CANTIDAD_ENVIADA) +
SUM(CANTIDAD_SERVIDA))) as CANTIDAD_PENDIENTE
FROM V_PED_CLI_ARTICULOS_AUX
GROUP BY ID_PEDIDO,
ID_ARTICULO
HAVING SUM(CANTIDAD_PEDIDA) IS NOT NULL
;
CREATE VIEW V_PED_CLI_ART_SIN_ALBARAN(
ID,
ID_PEDIDO,
ID_EMPRESA,
REFERENCIA_PEDIDO,
REFERENCIA_CLI_PEDIDO,
FECHA_PEDIDO,
FECHA_PREVISTA_PEDIDO,
ID_CLIENTE,
CALLE,
CODIGO_POSTAL,
POBLACION,
PROVINCIA,
PERSONA_CONTACTO,
TELEFONO,
IVA,
ID_FORMA_PAGO,
CLIENTE,
ID_ARTICULO,
FAMILIA,
REFERENCIA,
DESCRIPCION,
CANTIDAD_PEDIDA,
CANTIDAD_RESERVADA,
CANTIDAD_ENVIADA,
CANTIDAD_SERVIDA,
CANTIDAD_PENDIENTE,
PRECIO)
AS
SELECT
V_PED_CLI_ARTICULOS.ID_PEDIDO || 0 || V_PED_CLI_ARTICULOS.ID_ARTICULO as ID, /*Para tener un ID unico sobre el que poder consultar en la sentencia de selecci<63>n del grid*/
V_PED_CLI_ARTICULOS.ID_PEDIDO,
PEDIDOS_CLIENTE.ID_EMPRESA,
PEDIDOS_CLIENTE.referencia,
PEDIDOS_CLIENTE.referencia_cliente,
PEDIDOS_CLIENTE.fecha_pedido,
PEDIDOS_CLIENTE.fecha_prevista_envio,
PEDIDOS_CLIENTE.id_cliente,
PEDIDOS_CLIENTE.CALLE,
PEDIDOS_CLIENTE.CODIGO_POSTAL,
PEDIDOS_CLIENTE.POBLACION,
PEDIDOS_CLIENTE.PROVINCIA,
PEDIDOS_CLIENTE.PERSONA_CONTACTO,
PEDIDOS_CLIENTE.TELEFONO,
PEDIDOS_CLIENTE.IVA,
PEDIDOS_CLIENTE.ID_FORMA_PAGO,
CONTACTOS.nombre,
V_PED_CLI_ARTICULOS.ID_ARTICULO,
articulos.familia,
articulos.referencia,
articulos.descripcion,
V_PED_CLI_ARTICULOS.CANTIDAD_PEDIDA,
V_PED_CLI_ARTICULOS.CANTIDAD_RESERVADA,
V_PED_CLI_ARTICULOS.CANTIDAD_ENVIADA,
V_PED_CLI_ARTICULOS.CANTIDAD_SERVIDA,
V_PED_CLI_ARTICULOS.CANTIDAD_PENDIENTE,
ARTICULOS.PRECIO
from V_PED_CLI_ARTICULOS
left join PEDIDOS_CLIENTE on (PEDIDOS_CLIENTE.id = V_PED_CLI_ARTICULOS.id_pedido)
left join CONTACTOS on (contactos.id = PEDIDOS_CLIENTE.id_cliente)
left join articulos on (articulos.id = V_PED_CLI_ARTICULOS.ID_ARTICULO)
where cantidad_pendiente > 0
;
CREATE VIEW V_PED_CLI_PENDIENTES_PROCESO(
ID_PEDIDO)
AS
SELECT distinct V_PED_CLI_ARTICULOS.id_pedido
FROM V_PED_CLI_ARTICULOS
WHERE (V_PED_CLI_ARTICULOS.CANTIDAD_PEDIDA > V_PED_CLI_ARTICULOS.CANTIDAD_SERVIDA)
;
CREATE VIEW V_PED_CLI_CON_ALBARANES(
ID_PEDIDO)
AS
SELECT distinct ID_PEDIDO
FROM (SELECT DISTINCT ALBARANES_CLIENTE_DETALLES.ID_PEDIDO, ALBARANES_CLIENTE_DETALLES.ID_ALBARAN
FROM ALBARANES_CLIENTE_DETALLES)
GROUP BY ID_PEDIDO
having COUNT(ID_ALBARAN) > 0
;
CREATE VIEW V_PED_CLI_PROCESO(
ID_PEDIDO)
AS
select v_ped_cli_pendientes_proceso.ID_PEDIDO
from v_ped_cli_pendientes_proceso
inner join v_ped_cli_con_albaranes on (v_ped_cli_con_albaranes.ID_PEDIDO = v_ped_cli_pendientes_proceso.ID_PEDIDO)
;
CREATE VIEW V_PED_CLI_SITUACION(
ID_PEDIDO,
SITUACION)
AS
select id_pedido,
case when sum(enpro) = 3 then 'EN PROCESO'
when sum(enpro) = 2 then 'PENDIENTE'
when sum(enpro) = 1 then 'SERVIDO'
end
from
(
select id as id_pedido, 1 as ser, 1 as pend, 1 as enpro
from pedidos_cliente
union
select id_pedido, 0 as ser, 1 as pend, 1 as enpro
from v_ped_cli_pendientes_proceso
union
select id_pedido, 0 as ser, 0 as pend, 1 as enpro
from v_ped_cli_proceso
)
group by id_pedido
;
CREATE VIEW V_PEDIDOS_CLIENTE(
ID,
ID_EMPRESA,
ID_CLIENTE,
NOMBRE,
REFERENCIA,
REFERENCIA_CLIENTE,
SITUACION,
FECHA_PEDIDO,
ID_DIRECCION,
CALLE,
CODIGO_POSTAL,
POBLACION,
PROVINCIA,
PERSONA_CONTACTO,
TELEFONO,
OBSERVACIONES,
INCIDENCIAS,
INCIDENCIAS_ACTIVAS,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
IMPORTE_NETO,
IMPORTE_PORTE,
DESCUENTO,
IMPORTE_DESCUENTO,
DESCUENTO2,
IMPORTE_DESCUENTO2,
BASE_IMPONIBLE,
IVA,
IMPORTE_IVA,
IMPORTE_TOTAL,
ID_FORMA_PAGO,
FORMA_PAGO,
REF_TIENDA_WEB,
FECHA_PREVISTA_ENVIO,
DATOS_BANCARIOS)
AS
SELECT
PEDIDOS_CLIENTE.ID,
PEDIDOS_CLIENTE.ID_EMPRESA,
PEDIDOS_CLIENTE.ID_CLIENTE,
CONTACTOS.NOMBRE,
PEDIDOS_CLIENTE.REFERENCIA,
PEDIDOS_CLIENTE.REFERENCIA_CLIENTE,
TRIM(V_PED_CLI_SITUACION.SITUACION),
PEDIDOS_CLIENTE.FECHA_PEDIDO,
PEDIDOS_CLIENTE.ID_DIRECCION,
PEDIDOS_CLIENTE.CALLE,
PEDIDOS_CLIENTE.CODIGO_POSTAL,
PEDIDOS_CLIENTE.POBLACION,
PEDIDOS_CLIENTE.PROVINCIA,
PEDIDOS_CLIENTE.PERSONA_CONTACTO,
PEDIDOS_CLIENTE.TELEFONO,
PEDIDOS_CLIENTE.OBSERVACIONES,
PEDIDOS_CLIENTE.INCIDENCIAS,
PEDIDOS_CLIENTE.INCIDENCIAS_ACTIVAS,
PEDIDOS_CLIENTE.FECHA_ALTA,
PEDIDOS_CLIENTE.FECHA_MODIFICACION,
PEDIDOS_CLIENTE.USUARIO,
PEDIDOS_CLIENTE.IMPORTE_NETO,
PEDIDOS_CLIENTE.IMPORTE_PORTE,
PEDIDOS_CLIENTE.DESCUENTO,
PEDIDOS_CLIENTE.IMPORTE_DESCUENTO,
PEDIDOS_CLIENTE.DESCUENTO2,
PEDIDOS_CLIENTE.IMPORTE_DESCUENTO2,
PEDIDOS_CLIENTE.BASE_IMPONIBLE,
PEDIDOS_CLIENTE.IVA,
PEDIDOS_CLIENTE.IMPORTE_IVA,
PEDIDOS_CLIENTE.IMPORTE_TOTAL,
PEDIDOS_CLIENTE.ID_FORMA_PAGO,
FORMAS_PAGO.DESCRIPCION,
PEDIDOS_CLIENTE.REF_TIENDA_WEB,
PEDIDOS_CLIENTE.FECHA_PREVISTA_ENVIO,
PEDIDOS_CLIENTE.DATOS_BANCARIOS
FROM
V_PED_CLI_SITUACION
INNER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = V_PED_CLI_SITUACION.ID_PEDIDO)
INNER JOIN CONTACTOS ON (PEDIDOS_CLIENTE.ID_CLIENTE = CONTACTOS.ID)
LEFT OUTER JOIN FORMAS_PAGO ON (FORMAS_PAGO.ID = PEDIDOS_CLIENTE.ID_FORMA_PAGO)
;
/**************************************************/
/***VISTAS PARA EL CONTROL DE COLORES PENDIENTES***/
/**************************************************/
CREATE VIEW V_ALB_CLI_DETALLE_COLORES(
/* ID_ALBARAN, */
ID_PEDIDO,
/* SITUACION,
ID_ALMACEN,
*/
ID_ARTICULO,
COLOR1,
COLOR2,
COLOR3,
COLOR4,
COLOR5,
COLOR6,
COLOR7,
COLOR8,
COLOR9,
COLOR10,
COLOR11,
COLOR12)
AS
SELECT
/*ALBARANES_CLIENTE_DETALLES.ID_ALBARAN, */
ALBARANES_CLIENTE_DETALLES.ID_PEDIDO,
/* V_ALB_CLI_SITUACION.SITUACION,
ALBARANES_CLIENTE.ID_ALMACEN,
*/
COALESCE(ALBARANES_CLIENTE_DETALLES.ID_ARTICULO, 0) as ID_ARTICULO,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR1, 0)) AS COLOR1,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR2, 0)) AS COLOR2,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR3, 0)) AS COLOR3,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR4, 0)) AS COLOR4,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR5, 0)) AS COLOR5,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR6, 0)) AS COLOR6,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR7, 0)) AS COLOR7,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR8, 0)) AS COLOR8,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR9, 0)) AS COLOR9,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR10, 0)) AS COLOR10,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR11, 0)) AS COLOR11,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLE_COLOR.COLOR12, 0)) AS COLOR12
FROM ALBARANES_CLIENTE_DETALLES
INNER JOIN ALBARANES_CLIENTE
ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = ALBARANES_CLIENTE.ID)
INNER JOIN V_ALB_CLI_SITUACION
ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = V_ALB_CLI_SITUACION.ID)
LEFT JOIN ALBARANES_CLIENTE_DETALLE_COLOR
ON (ALBARANES_CLIENTE_DETALLE_COLOR.ID_DETALLE = ALBARANES_CLIENTE_DETALLES.ID)
group BY
/*ALBARANES_CLIENTE_DETALLES.ID_ALBARAN,*/
ALBARANES_CLIENTE_DETALLES.ID_PEDIDO,
/* V_ALB_CLI_SITUACION.SITUACION,
ALBARANES_CLIENTE.ID_ALMACEN,
*/
ALBARANES_CLIENTE_DETALLES.ID_ARTICULO
;
CREATE VIEW V_PED_CLI_DETALLE_COLORES(
ID_PEDIDO,
ID_ARTICULO,
COLOR1,
COLOR2,
COLOR3,
COLOR4,
COLOR5,
COLOR6,
COLOR7,
COLOR8,
COLOR9,
COLOR10,
COLOR11,
COLOR12)
AS
SELECT PEDIDOS_CLIENTE_DETALLES.ID_PEDIDO,
COALESCE(PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO, 0) as ID_ARTICULO,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR1, 0)) AS COLOR1,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR2, 0)) AS COLOR2,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR3, 0)) AS COLOR3,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR4, 0)) AS COLOR4,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR5, 0)) AS COLOR5,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR6, 0)) AS COLOR6,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR7, 0)) AS COLOR7,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR8, 0)) AS COLOR8,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR9, 0)) AS COLOR9,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR10, 0)) AS COLOR10,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR11, 0)) AS COLOR11,
SUM(COALESCE(PEDIDOS_CLIENTE_DETALLE_COLOR.COLOR12, 0)) AS COLOR12
FROM PEDIDOS_CLIENTE_DETALLES
LEFT JOIN PEDIDOS_CLIENTE_DETALLE_COLOR
ON (PEDIDOS_CLIENTE_DETALLE_COLOR.ID_DETALLE = PEDIDOS_CLIENTE_DETALLES.ID)
GROUP BY PEDIDOS_CLIENTE_DETALLES.ID_PEDIDO,
PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO
;
CREATE VIEW V_PED_CLI_ART_COLORES_PEND(
ID_PEDIDO,
ID_ARTICULO,
COLOR1,
COLOR2,
COLOR3,
COLOR4,
COLOR5,
COLOR6,
COLOR7,
COLOR8,
COLOR9,
COLOR10,
COLOR11,
COLOR12)
AS
select v_ped_cli_detalle_colores.ID_PEDIDO, v_ped_cli_detalle_colores.ID_ARTICULO,
v_ped_cli_detalle_colores.COLOR1 - coalesce(v_alb_cli_detalle_colores.COLOR1, 0),
v_ped_cli_detalle_colores.COLOR2 - coalesce(v_alb_cli_detalle_colores.COLOR2, 0),
v_ped_cli_detalle_colores.COLOR3 - coalesce(v_alb_cli_detalle_colores.COLOR3, 0),
v_ped_cli_detalle_colores.COLOR4 - coalesce(v_alb_cli_detalle_colores.COLOR4, 0),
v_ped_cli_detalle_colores.COLOR5 - coalesce(v_alb_cli_detalle_colores.COLOR5, 0),
v_ped_cli_detalle_colores.COLOR6 - coalesce(v_alb_cli_detalle_colores.COLOR6, 0),
v_ped_cli_detalle_colores.COLOR7 - coalesce(v_alb_cli_detalle_colores.COLOR7, 0),
v_ped_cli_detalle_colores.COLOR8 - coalesce(v_alb_cli_detalle_colores.COLOR8, 0),
v_ped_cli_detalle_colores.COLOR9 - coalesce(v_alb_cli_detalle_colores.COLOR9, 0),
v_ped_cli_detalle_colores.COLOR10 - coalesce(v_alb_cli_detalle_colores.COLOR10, 0),
v_ped_cli_detalle_colores.COLOR11 - coalesce(v_alb_cli_detalle_colores.COLOR11, 0),
v_ped_cli_detalle_colores.COLOR12 - coalesce(v_alb_cli_detalle_colores.COLOR12, 0)
from v_ped_cli_detalle_colores
left join v_alb_cli_detalle_colores
on ((v_alb_cli_detalle_colores .ID_PEDIDO = v_ped_cli_detalle_colores.id_pedido)
and (v_alb_cli_detalle_colores .id_articulo = v_ped_cli_detalle_colores.id_articulo))
;
/******************************************************************************/
/**** Primary Keys ****/
/******************************************************************************/
ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT PK_ALBARAN_CLIENTE PRIMARY KEY (ID);
ALTER TABLE ALBARANES_CLIENTE_DETALLES ADD CONSTRAINT PK_ALBARANES_CLIENTE_DETALLES PRIMARY KEY (ID);
ALTER TABLE ALBARANES_CLIENTE_DETALLE_COLOR ADD CONSTRAINT PK_ALBARANES_CLIENTE_DETALLE_CO PRIMARY KEY (ID);
ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT PK_ALBARAN_PROVEEDOR PRIMARY KEY (ID);
ALTER TABLE ALBARANES_PROVEEDOR_DETALLES ADD CONSTRAINT PK_ALBARANES_PROVEEDOR_DETALLES PRIMARY KEY (ID);
ALTER TABLE ALMACENES ADD CONSTRAINT PK_ALMACENES PRIMARY KEY (ID);
ALTER TABLE ARTICULOS ADD CONSTRAINT PK_ARTICULOS PRIMARY KEY (ID);
ALTER TABLE ARTICULOS_PROVEEDORES ADD CONSTRAINT PK_ARTICULOS_PROVEEDORES PRIMARY KEY (ID);
ALTER TABLE CATEGORIAS ADD CONSTRAINT PK_CATEGORIAS PRIMARY KEY (ID);
ALTER TABLE CLIENTES_DATOS ADD CONSTRAINT PK_CLIENTES_DATOS PRIMARY KEY (ID_CLIENTE);
ALTER TABLE CLIENTES_DTOS_PROVEEDORES ADD CONSTRAINT PK_CLIENTES_DTOS_PROV PRIMARY KEY (ID);
ALTER TABLE CLIENTES_GRUPOS ADD CONSTRAINT PK_CLIENTES_GRUPOS PRIMARY KEY (ID);
ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT PK_COMISIONES_LIQUIDADAS PRIMARY KEY (ID);
ALTER TABLE CONFIGURACION ADD CONSTRAINT PK_CONFIGURACION PRIMARY KEY (ID);
ALTER TABLE CONTACTOS ADD CONSTRAINT PK_CONTACTOS PRIMARY KEY (ID);
ALTER TABLE CONTACTOS_CATEGORIAS ADD CONSTRAINT PK_CONTACTOS_CATEGORIAS PRIMARY KEY (ID_CONTACTO, ID_CATEGORIA);
ALTER TABLE CONTACTOS_DATOS_BANCO ADD CONSTRAINT PK_CONTACTOS_DATOS_BANCO PRIMARY KEY (ID);
ALTER TABLE CONTACTOS_DATOS_PERSONAL ADD CONSTRAINT PK_CONTACTOS_DATOS_PER PRIMARY KEY (ID);
ALTER TABLE CONTACTOS_DIRECCIONES ADD CONSTRAINT PK_CONTACTOS_DIR PRIMARY KEY (ID);
ALTER TABLE EMPLEADOS_DATOS ADD CONSTRAINT PK_EMPLEADOS_DATOS PRIMARY KEY (ID_EMPLEADO);
ALTER TABLE EMPLEADOS_GRUPOS ADD CONSTRAINT PK_EMPLEADOS_GRUPOS PRIMARY KEY (ID);
ALTER TABLE VENDEDORES_DATOS ADD CONSTRAINT PK_VENDEDORES_DATOS PRIMARY KEY (ID_VENDEDOR);
ALTER TABLE EMPRESAS ADD CONSTRAINT PK_EMPRESAS PRIMARY KEY (ID);
ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT PK_EMPRESAS_CONTACTOS PRIMARY KEY (ID);
ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT PK_EMPRESAS_DATOS_BANCO PRIMARY KEY (ID);
ALTER TABLE EMPRESAS_USUARIOS ADD CONSTRAINT PK_EMPRESAS_USUARIOS PRIMARY KEY (ID);
ALTER TABLE FABRICANTES ADD PRIMARY KEY (ID);
ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT PK_FACTURAS_CLIENTE PRIMARY KEY (ID);
ALTER TABLE FACTURAS_CLIENTE_DETALLES ADD CONSTRAINT PK_FACTURAS_CLIENTE_DETALLES PRIMARY KEY (ID);
ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT PK_FACTURAS_PROVEEDOR PRIMARY KEY (ID);
ALTER TABLE FACTURAS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_FACTURAS_PROVEEDOR_DETALLES PRIMARY KEY (ID);
ALTER TABLE FACTURAS_PROVEEDOR_PEDIDOS ADD CONSTRAINT PK_FACTURAS_PROVEEDOR_PEDIDOS PRIMARY KEY (ID);
ALTER TABLE FAMILIAS ADD CONSTRAINT PK_FAMILIAS PRIMARY KEY (ID);
ALTER TABLE FORMAS_PAGO ADD PRIMARY KEY (ID);
ALTER TABLE FORMAS_PAGO_PLAZOS ADD PRIMARY KEY (ID);
ALTER TABLE INFORMES ADD CONSTRAINT PK_INFORMES PRIMARY KEY (ID);
ALTER TABLE MOVIMIENTOS ADD CONSTRAINT PK_MOVIMIENTOS PRIMARY KEY (ID);
ALTER TABLE OBRAS_EJECUCIONES ADD CONSTRAINT PK_OBRAS_EJE PRIMARY KEY (ID);
ALTER TABLE OBRAS_EJECUCIONES_PRESUPUESTOS ADD CONSTRAINT PK_OBRAS_EJE_PRE PRIMARY KEY (ID);
ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT PK_OBRAS_EJE_PED_PROV PRIMARY KEY (ID);
ALTER TABLE PAGOS_CLIENTE ADD CONSTRAINT PK_PAGOS_CLIENTE PRIMARY KEY (ID);
ALTER TABLE PAGOS_PROVEEDOR ADD CONSTRAINT PK_PAGOS_PROVEEDOR PRIMARY KEY (ID);
ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT PK_PEDIDOS_CLIENTE PRIMARY KEY (ID);
ALTER TABLE PEDIDOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PEDIDOS_CLIENTE_DETALLES PRIMARY KEY (ID);
ALTER TABLE PEDIDOS_CLIENTE_DETALLE_COLOR ADD CONSTRAINT PK_PEDIDOS_CLIENTE_DETALLE_CO PRIMARY KEY (ID);
ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR PRIMARY KEY (ID);
ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR_DETALLES PRIMARY KEY (ID);
ALTER TABLE PERMISOS ADD CONSTRAINT PK_PERMISOS PRIMARY KEY (ID);
ALTER TABLE PERMISOSEX ADD CONSTRAINT PK_PERMISOSEX PRIMARY KEY (ID);
ALTER TABLE POBLACIONES ADD CONSTRAINT PK_POBLACIONES PRIMARY KEY (ID);
ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE PRIMARY KEY (ID);
ALTER TABLE PRESUPUESTOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE_DETALLE PRIMARY KEY (ID);
ALTER TABLE PROVEEDORES_DATOS ADD CONSTRAINT PK_PROVEEDORES_DATOS PRIMARY KEY (ID_PROVEEDOR);
ALTER TABLE PROVEEDORES_GRUPOS ADD CONSTRAINT PK_PROVEEDORES_GRUPOS PRIMARY KEY (ID);
ALTER TABLE PROVINCIAS ADD CONSTRAINT PK_PROVINCIAS PRIMARY KEY (ID);
ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT PK_RECIBOS_CLIENTE PRIMARY KEY (ID);
ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT PK_RECIBOS_PROVEEDOR PRIMARY KEY (ID);
ALTER TABLE REFERENCIAS ADD CONSTRAINT PK_REFERENCIAS PRIMARY KEY (ID);
ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT PK_REMESAS_CLIENTE PRIMARY KEY (ID);
ALTER TABLE REMESAS_PROVEEDOR ADD CONSTRAINT PK_REMESAS_PROVEEDOR PRIMARY KEY (ID);
ALTER TABLE TIENDA_WEB ADD CONSTRAINT PK_TIENDA_WEB PRIMARY KEY (ID);
ALTER TABLE TIPOS_IVA ADD PRIMARY KEY (ID);
ALTER TABLE UNIDADES_MEDIDA ADD PRIMARY KEY (ID);
ALTER TABLE USUARIOS ADD CONSTRAINT PK_USUARIOS PRIMARY KEY (ID);
ALTER TABLE USUARIOS_LOGON ADD CONSTRAINT PK_USUARIOS_LOGON PRIMARY KEY (LOGONID);
/******************************************************************************/
/**** Foreign Keys ****/
/******************************************************************************/
ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE1 FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE2 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE3 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_CLIENTE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE4 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL;
ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARANES_PROVEEDOR3 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_PROVEEDOR (ID) ON DELETE NO ACTION ON UPDATE CASCADE;
ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARANES_PROVEEDOR4 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR1 FOREIGN KEY (ID_PROVEEDOR) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR2 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE ALMACENES ADD CONSTRAINT FK_ALMACENES_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE ARTICULOS ADD CONSTRAINT FK_ARTICULOS_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE 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 DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT FK_EMPRESAS_DATOS_BANCO FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE CASCADE ON UPDATE CASCADE;
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;
ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT FK_FACTURAS_PROVEEDOR_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE MOVIMIENTOS ADD CONSTRAINT FK_MOVIMIENTOS2 FOREIGN KEY (ID_ALMACEN) REFERENCES ALMACENES (ID);
ALTER TABLE OBRAS_EJECUCIONES_PRESUPUESTOS ADD CONSTRAINT FK_OBRAS_EJE_PRE_1 FOREIGN KEY (ID_EJECUCION) REFERENCES OBRAS_EJECUCIONES (ID);
ALTER TABLE OBRAS_EJECUCIONES_PRESUPUESTOS ADD CONSTRAINT FK_OBRAS_EJE_PRE_2 FOREIGN KEY (ID_PRESUPUESTO) REFERENCES PRESUPUESTOS_CLIENTE (ID);
ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT FK_OBRAS_EJE_PED_PROV_1 FOREIGN KEY (ID_EJECUCION) REFERENCES OBRAS_EJECUCIONES (ID);
ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT FK_OBRAS_EJE_PED_PROV_2 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_PROVEEDOR (ID);
ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT FK_OBRAS_EJE_PED_PROV_3 FOREIGN KEY (ID_PRESUPUESTO) REFERENCES PRESUPUESTOS_CLIENTE (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 ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR_1 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT FK_PRESUPUESTOS_CLIENTE_1 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID);
ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT FK_PRESUPUESTOS_CLIENTE_2 FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID);
ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT FK_PRESUPUESTOS_CLIENTE_3 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL;
ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT FK_RECIBOS_CLIENTE FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT FK_RECIBOS_CLIENTE2 FOREIGN KEY (ID_REMESA) REFERENCES REMESAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL;
ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT FK_RECIBOS_PROVEEDOR FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT FK_RECIBOS_PROVEEDOR1 FOREIGN KEY (ID_REMESA) REFERENCES REMESAS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE 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 DELETE CASCADE ON UPDATE CASCADE;
/******************************************************************************/
/**** Indices ****/
/******************************************************************************/
CREATE INDEX IDX_ALBARANES_CLIENTE1 ON ALBARANES_CLIENTE (ID_FORMA_PAGO);
CREATE INDEX IDX_ALBARANES_CLIENTE2 ON ALBARANES_CLIENTE (TIPO);
CREATE INDEX ALBARANES_CLIENTE_IDX1 ON ALBARANES_CLIENTE (ID_ALMACEN);
CREATE INDEX ALBARANES_CLIENTE_IDX2 ON ALBARANES_CLIENTE (ID_DIRECCION);
CREATE INDEX ALBARANES_CLIENTE_IDX3 ON ALBARANES_CLIENTE (FECHA_ALBARAN);
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 ALBARANES_CLIENTE_DETALLES_IDX1 ON ALBARANES_CLIENTE_DETALLES (ID_PEDIDO);
CREATE INDEX IDX_ALBARANES_PROVEEDOR1 ON ALBARANES_PROVEEDOR (ID_ALMACEN);
CREATE INDEX IDX_ALBARANES_PROVEEDOR2 ON ALBARANES_PROVEEDOR (ID_FORMA_PAGO);
CREATE INDEX IDX_ALBARANES_PROVEEDOR3 ON ALBARANES_PROVEEDOR (TIPO);
CREATE INDEX ALBARANES_PROVEEDOR_IDX1 ON ALBARANES_PROVEEDOR (ID_ALBARAN);
CREATE INDEX ALBARANES_PROVEEDOR_IDX2 ON ALBARANES_PROVEEDOR (FECHA_ALBARAN);
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 ALBARANES_PROVEEDOR_DETALL_IDX1 ON ALBARANES_PROVEEDOR_DETALLES (ID_PEDIDO);
CREATE INDEX ALMACENES_IDX1 ON ALMACENES (TIPO_ALMACEN);
CREATE INDEX ARTICULOS_PROVEEDORES_IDX1 ON ARTICULOS_PROVEEDORES (ID_ARTICULO);
CREATE INDEX ARTICULOS_PROVEEDORES_IDX2 ON ARTICULOS_PROVEEDORES (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_PER_ID_CONTACTO ON CONTACTOS_DATOS_PERSONAL (ID_CONTACTO);
CREATE INDEX IDX_CONTACTOS_DIR_ID_CONTACTO ON CONTACTOS_DIRECCIONES (ID_CONTACTO);
CREATE INDEX IDX_EMPRESAS_CONTACTOS ON EMPRESAS_CONTACTOS (ID_EMPRESA, ID_CONTACTO);
CREATE INDEX IDX_EMPRESAS_USUARIOS ON EMPRESAS_USUARIOS (ID_EMPRESA, ID_USUARIO);
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 FACTURAS_CLIENTE_IDX1 ON FACTURAS_CLIENTE (FECHA_FACTURA);
CREATE INDEX FACTURAS_CLIENTE_IDX2 ON FACTURAS_CLIENTE (FECHA_VENCIMIENTO);
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 FACTURAS_PROVEEDOR_IDX1 ON FACTURAS_PROVEEDOR (FECHA_FACTURA);
CREATE INDEX FACTURAS_PROVEEDOR_IDX2 ON FACTURAS_PROVEEDOR (FECHA_VENCIMIENTO);
CREATE INDEX IDX_FACTURAS_PROVEEDOR_DETALLES ON FACTURAS_PROVEEDOR_DETALLES (ID_ARTICULO);
CREATE INDEX FACTURAS_PROVEEDOR_DETALLE_IDX1 ON FACTURAS_PROVEEDOR_DETALLES (ID_FACTURA);
CREATE INDEX IDX_FACTURAS_PROVEEDOR_PEDIDOS ON FACTURAS_PROVEEDOR_PEDIDOS (ID_PEDIDO);
CREATE INDEX FACTURAS_PROVEEDOR_PEDIDOS_IDX1 ON FACTURAS_PROVEEDOR_PEDIDOS (ID_FACTURA);
CREATE INDEX IDX_FORMAS_PAGO_PLAZOS ON FORMAS_PAGO_PLAZOS (ID_FORMA_PAGO);
CREATE INDEX IDX_INFORMES ON INFORMES (ID_EMPRESA);
CREATE INDEX IDX_MOVIMIENTOS ON MOVIMIENTOS (TIPO);
CREATE INDEX MOVIMIENTOS_IDX1 ON MOVIMIENTOS (ID_ARTICULO);
CREATE INDEX MOVIMIENTOS_IDX2 ON MOVIMIENTOS (FECHA_MOVIMIENTO);
CREATE INDEX MOVIMIENTOS_IDX3 ON MOVIMIENTOS (ID_ALMACEN_RESERVA);
CREATE INDEX OBRAS_DATOS_IDX1 ON OBRAS_DATOS (ID_ALMACEN);
CREATE INDEX OBRAS_DATOS_IDX2 ON OBRAS_DATOS (ID_CLIENTE);
CREATE INDEX PAGOS_CLIENTE_IDX1 ON PAGOS_CLIENTE (FECHA_PAGO);
CREATE INDEX PAGOS_PROVEEDOR_IDX1 ON PAGOS_PROVEEDOR (FECHA_PAGO);
CREATE INDEX IDX_PEDIDOS_CLIENTE ON PEDIDOS_CLIENTE (ID_FORMA_PAGO);
CREATE INDEX PEDIDOS_CLIENTE_IDX1 ON PEDIDOS_CLIENTE (FECHA_PEDIDO);
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_PROVEEDOR3 ON PEDIDOS_PROVEEDOR (ID_OBRA);
CREATE INDEX IDX_PEDIDOS_PROVEEDOR4 ON PEDIDOS_PROVEEDOR (ID_PROVEEDOR);
CREATE INDEX PEDIDOS_PROVEEDOR_IDX1 ON PEDIDOS_PROVEEDOR (FECHA_PEDIDO);
CREATE INDEX IDX_PEDIDOS_PROVEEDOR_DETALLES ON PEDIDOS_PROVEEDOR_DETALLES (ID_ARTICULO);
CREATE INDEX PEDIDOS_PROVEEDOR_DETALLES_IDX1 ON PEDIDOS_PROVEEDOR_DETALLES (ID_PEDIDO);
CREATE INDEX POBLACIONES_IDX1 ON POBLACIONES (ID_PROVINCIA);
CREATE INDEX PRESUPUESTOS_CLIENTE_IDX1 ON PRESUPUESTOS_CLIENTE (FECHA_PRESUPUESTO);
CREATE INDEX PRESUPUESTOS_CLIENTE_DETAL_IDX1 ON PRESUPUESTOS_CLIENTE_DETALLES (ID_PRESUPUESTO);
CREATE INDEX PRESUPUESTOS_CLIENTE_DETAL_IDX2 ON PRESUPUESTOS_CLIENTE_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 RECIBOS_CLIENTE_IDX1 ON RECIBOS_CLIENTE (FECHA_EMISION);
CREATE INDEX RECIBOS_CLIENTE_IDX2 ON RECIBOS_CLIENTE (FECHA_VENCIMIENTO);
CREATE INDEX IDX_RECIBOS_PROVEEDOR ON RECIBOS_PROVEEDOR (ID_RECIBO_COMPENSADO);
CREATE INDEX RECIBOS_PROVEEDOR_IDX1 ON RECIBOS_PROVEEDOR (FECHA_EMISION);
CREATE INDEX RECIBOS_PROVEEDOR_IDX2 ON RECIBOS_PROVEEDOR (FECHA_VENCIMIENTO);
CREATE INDEX IDX_REFERENCIAS ON REFERENCIAS (ID_EMPRESA);
CREATE INDEX IDX_REMESAS_CLIENTE ON REMESAS_CLIENTE (ID_DATOS_BANCO);
CREATE INDEX REMESAS_CLIENTE_IDX1 ON REMESAS_CLIENTE (FECHA_REMESA);
CREATE INDEX IDX_REMESAS_PROVEEDOR ON REMESAS_PROVEEDOR (ID_DATOS_BANCO);
CREATE INDEX REMESAS_PROVEEDOR_IDX1 ON REMESAS_PROVEEDOR (FECHA_REMESA);
/******************************************************************************/
/**** Stored Procedures ****/
/******************************************************************************/
SET TERM ^ ;
CREATE PROCEDURE PRO_ART_RECALCULAR_PVP (
ID_EMPRESA INTEGER,
PARAM_MARGEN NUMERIC(2,2),
PARAM_TIEMPO NUMERIC(11,2))
AS
declare variable id_articulo integer;
declare variable mano_obra numeric(11,2);
begin
UPDATE ARTICULOS
SET PARAM_TIEMPO = :PARAM_TIEMPO,
PARAM_MARGEN = :PARAM_MARGEN,
MANO_OBRA = (TIEMPO * :PARAM_TIEMPO)
WHERE ID_EMPRESA = :ID_EMPRESA;
for select ID, MANO_OBRA
from articulos
where ID_EMPRESA = :ID_EMPRESA
into :ID_ARTICULO, :MANO_OBRA
do
begin
update articulos_proveedores
set PRECIO_PVP_VENTA = (PRECIO_NETO + PRECIO_PORTE) * (((:PARAM_MARGEN) / 100) + 1),
PRECIO_PVP_TOTAL = ((PRECIO_NETO + PRECIO_PORTE) * (((:PARAM_MARGEN) / 100) + 1)) + :MANO_OBRA
where id_articulo = :ID_ARTICULO;
end
suspend;
end
^
CREATE PROCEDURE PRO_PRES_CAPITULOS (
AID INTEGER)
RETURNS (
ID INTEGER,
ID_PRESUPUESTO INTEGER,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(25),
CONCEPTO VARCHAR(2000),
IMPORTE_TOTAL NUMERIC(11,2),
VISIBLE SMALLINT)
AS
declare variable num_filas integer;
declare variable contador integer;
declare variable existe numeric(11,2);
declare variable total_acumulado numeric(11,2);
begin
existe = 0;
total_acumulado = 0.0;
contador = 0;
num_filas = 0;
/* <20>Existe el presupuesto? */
for select count(*)
from presupuestos_cliente_detalles
where id_presupuesto = :AID
into :num_filas
do
begin
if (num_filas = 0) then
suspend;
end
/* Ver si hay conceptos al principio sin capitulos */
for select id, id_presupuesto, posicion, tipo_detalle
from presupuestos_cliente_detalles
where id_presupuesto = :AID
order by id_presupuesto, posicion
rows 1
into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE
do
begin
if (TIPO_DETALLE = 'Concepto') then
EXISTE = 1;
end
if (existe = 1) then
begin
contador = 0;
/* Existen conceptos sin capitulo */
for select tipo_detalle, importe_total, coalesce(visible, 1)
from presupuestos_cliente_detalles
where id_presupuesto = :AID
order by id_presupuesto, posicion
into :TIPO_DETALLE, :IMPORTE_TOTAL, :VISIBLE
do
begin
contador = contador + 1;
if ((visible <> 0) and (tipo_detalle = 'Concepto')) then
total_acumulado = total_acumulado + importe_total;
if ((tipo_detalle <> 'Concepto') or (contador = num_filas)) then
begin
importe_total = total_acumulado;
tipo_detalle = 'Titulo';
concepto = 'General';
visible = 1;
ID = -1;
posicion = -1;
suspend;
break;
end
end
end
for select id, id_presupuesto, posicion, tipo_detalle, F_RTFTOTEXT(concepto) as concepto,
importe_total, coalesce(visible, 1)
from presupuestos_cliente_detalles
where ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo opcional'))and id_presupuesto = :AID
order by id_presupuesto, posicion
into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :CONCEPTO,
:IMPORTE_TOTAL, :VISIBLE
do
suspend;
end
^
CREATE PROCEDURE PRO_PRES_CAPITULOS_CONCEPTOS (
AID INTEGER)
RETURNS (
ID INTEGER,
ID_PRESUPUESTO INTEGER,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(25),
ID_CAPITULO INTEGER,
ID_ARTICULO INTEGER,
REFERENCIA VARCHAR(255),
CONCEPTO VARCHAR(2000),
CANTIDAD NUMERIC(11,2),
UNIDAD_MEDIDA VARCHAR(255),
IMPORTE_UNIDAD NUMERIC(11,2),
DESCUENTO NUMERIC(2,2),
IMPORTE_PORTE NUMERIC(11,2),
IMPORTE_TOTAL NUMERIC(11,2),
VISIBLE SMALLINT)
AS
declare variable capitulo_actual integer;
begin
capitulo_actual = -1;
ID_CAPITULO = -1;
for select pre.id, pre.id_presupuesto, pre.posicion, pre.tipo_detalle,
pre.id_articulo, articulos.referencia,
F_RTFTOTEXT(F_RTFTOTEXT(pre.CONCEPTO)) as CONCEPTO,
pre.cantidad, pre.unidad_medida,
case
when (pre.descuento <> 0) then (pre.importe_total / pre.cantidad)
else pre.importe_unidad
end as importe_unidad,
pre.descuento, pre.importe_porte,
pre.importe_total, coalesce(pre.visible, 1)
from presupuestos_cliente_detalles pre
left join articulos on (pre.id_articulo = articulos.id)
where pre.id_presupuesto = :AID
order by pre.id_presupuesto, pre.posicion
into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :ID_ARTICULO,
:REFERENCIA, :CONCEPTO, :CANTIDAD, :UNIDAD_MEDIDA, :IMPORTE_UNIDAD, :DESCUENTO,
:IMPORTE_PORTE, :IMPORTE_TOTAL, :VISIBLE
do
begin
if (:tipo_detalle <> 'Concepto') then
begin
capitulo_actual = :ID;
ID_CAPITULO = capitulo_actual;
end
else
suspend;
end
end
^
CREATE PROCEDURE PRO_PRES_RESUMEN (
AID INTEGER)
RETURNS (
ID INTEGER,
ID_PRESUPUESTO INTEGER,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(25),
CONCEPTO VARCHAR(2000),
IMPORTE_TOTAL NUMERIC(11,2),
VISIBLE SMALLINT)
AS
declare variable num_capitulos integer;
declare variable num_filas integer;
declare variable contador integer;
declare variable existe numeric(11,2);
declare variable total_acumulado numeric(11,2);
declare variable concepto_capitulo varchar(2000);
declare variable tipo varchar(25);
begin
existe = 0;
total_acumulado = 0.0;
contador = 0;
num_filas = 0;
num_capitulos = 0;
concepto_capitulo = '';
tipo = '';
/* <20>Existe el presupuesto? */
for select count(*)
from presupuestos_cliente_detalles
where id_presupuesto = :AID
into :num_filas
do
begin
if (num_filas = 0) then
suspend;
end
/* Ver si hay conceptos al principio sin capitulos */
for select id, id_presupuesto, posicion, tipo_detalle
from presupuestos_cliente_detalles
where id_presupuesto = :AID
order by id_presupuesto, posicion
rows 1
into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE
do
begin
if (TIPO_DETALLE = 'Concepto') then
EXISTE = 1;
end
num_capitulos = 1;
if (existe = 1) then
begin
contador = 0;
/* Existen conceptos sin capitulo */
for select tipo_detalle, coalesce(importe_total,0), coalesce(visible, 1)
from presupuestos_cliente_detalles
where id_presupuesto = :AID
order by id_presupuesto, posicion
into :TIPO_DETALLE, :IMPORTE_TOTAL, :VISIBLE
do
begin
contador = contador + 1;
if ((visible <> 0) and (tipo_detalle = 'Concepto')) then
total_acumulado = total_acumulado + importe_total;
if ((tipo_detalle <> 'Concepto') or (contador = num_filas)) then
begin
importe_total = total_acumulado;
tipo_detalle = 'Titulo';
if (num_capitulos > 1) then
concepto = 'CAP<EFBFBD>TULO ' || num_capitulos ||'. General';
else
concepto = 'General';
visible = 1;
ID = -1;
posicion = -1;
suspend;
break;
end
end
end
/* Tratar el resto de las filas */
for select id, id_presupuesto, posicion, tipo_detalle,
F_RTFTOTEXT(concepto) as concepto, coalesce(importe_total,0), coalesce(visible, 1)
from presupuestos_cliente_detalles
where id_presupuesto = :AID and
tipo_detalle in ('Titulo', 'Titulo opcional', 'Subtotal')
order by posicion
into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :CONCEPTO,
:IMPORTE_TOTAL, :VISIBLE
do
begin
contador = contador + 1;
if ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo opcional')) then
begin
concepto_capitulo = concepto;
tipo = tipo_detalle;
end
if (tipo_detalle = 'Subtotal') then
begin
concepto = 'CAP<EFBFBD>TULO ' || num_capitulos || '. ' || concepto_capitulo;
tipo_detalle = tipo;
num_capitulos = num_capitulos + 1;
suspend;
end
end
end
^
SET TERM ; ^
/******************************************************************************/
/**** Descriptions ****/
/******************************************************************************/