AbetoDesign_FactuGES2/Database/scripts/factuges.sql

5609 lines
176 KiB
MySQL
Raw Normal View History

/******************************************************************************/
/**** Generated by IBExpert 2007.05.03 14/03/2008 10:23:14 ****/
/******************************************************************************/
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(32767)
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IB_UDF_strlen' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION SUBSTR
CSTRING(255),
SMALLINT,
SMALLINT
RETURNS CSTRING(255) 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_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
FLOAT;
CREATE DOMAIN TIPO_USUARIO AS
VARCHAR(30);
CREATE DOMAIN TIPO_CANTIDAD AS
NUMERIC(11,2);
/******************************************************************************/
/**** Generators ****/
/******************************************************************************/
CREATE GENERATOR GEN_ALBARANES_CLI_DETALLES_ID;
SET GENERATOR GEN_ALBARANES_CLI_DETALLES_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_BALANCES_ID;
SET GENERATOR GEN_BALANCES_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_CLIENTES_PROCEDENCIAS_ID;
SET GENERATOR GEN_CLIENTES_PROCEDENCIAS_ID TO 1;
CREATE GENERATOR GEN_COMISIONES_LIQUID_ID;
SET GENERATOR GEN_COMISIONES_LIQUID_ID TO 1;
CREATE GENERATOR GEN_COMISIONES_VENDEDORES_ID;
SET GENERATOR GEN_COMISIONES_VENDEDORES_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_CONT_APUNTES_ID;
SET GENERATOR GEN_CONT_APUNTES_ID TO 1;
CREATE GENERATOR GEN_CONT_ASIENTOS_ID;
SET GENERATOR GEN_CONT_ASIENTOS_ID TO 1;
CREATE GENERATOR GEN_CONT_BALANCES_ID;
SET GENERATOR GEN_CONT_BALANCES_ID TO 1;
CREATE GENERATOR GEN_CONT_CUENTAS_ESP_ID;
SET GENERATOR GEN_CONT_CUENTAS_ESP_ID TO 1;
CREATE GENERATOR GEN_CONT_CUENTAS_ID;
SET GENERATOR GEN_CONT_CUENTAS_ID TO 1;
CREATE GENERATOR GEN_CONT_EJERCICIOS_ID;
SET GENERATOR GEN_CONT_EJERCICIOS_ID TO 1;
CREATE GENERATOR GEN_CONT_EPIGRAFES_ID;
SET GENERATOR GEN_CONT_EPIGRAFES_ID TO 1;
CREATE GENERATOR GEN_CONT_SUBCUENTAS_ID;
SET GENERATOR GEN_CONT_SUBCUENTAS_ID TO 1;
CREATE GENERATOR GEN_EJERCICIOS_ID;
SET GENERATOR GEN_EJERCICIOS_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_TIENDAS_ID;
SET GENERATOR GEN_EMPRESAS_TIENDAS_ID TO 1;
CREATE GENERATOR GEN_EMPRESAS_USUARIOS_ID;
SET GENERATOR GEN_EMPRESAS_USUARIOS_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_FACTURAS_PROV_CONTRATOS_ID;
SET GENERATOR GEN_FACTURAS_PROV_CONTRATOS_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_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_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_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_CONTRATOS_CLI_ID;
SET GENERATOR GEN_CONTRATOS_CLI_ID TO 1;
CREATE GENERATOR GEN_CONTRATOS_CLI_DETALLE_ID;
SET GENERATOR GEN_CONTRATOS_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_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;
SET TERM ^ ;
/******************************************************************************/
/**** Stored Procedures ****/
/******************************************************************************/
CREATE PROCEDURE PROC_CIERRE_APERTURA (
ID_EJERCICIO_CIERRE INTEGER,
ID_EJERCICIO_APERTURA INTEGER)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE PROC_DELETE_ASIENTO_FACTURA (
IDFACTURA INTEGER,
TIPO VARCHAR(1))
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE PROC_DELETE_ASIENTO_PAGO (
IDPAGO INTEGER,
TIPO VARCHAR(1))
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE PROC_NEW_ASIENTO_FACTURA_CLI (
IDFACTURA INTEGER,
ID_SUBCUENTA_VENTA INTEGER)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE PROC_NEW_ASIENTO_FACTURA_PROV (
IDFACTURA INTEGER,
ID_SUBCUENTA_COMPRA INTEGER)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE PROC_NEW_ASIENTO_PAGO_CLI (
IDPAGO INTEGER,
IDSUBCUENTAPAGO INTEGER)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE PROC_NEW_ASIENTO_PAGO_PROV (
IDPAGO INTEGER,
IDSUBCUENTAPAGO INTEGER)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE PROC_NEW_CUENTAS (
ID_EJERCICIO_COPIA INTEGER,
ID_EJERCICIO INTEGER,
ID_EPIGRAFE_COPIA INTEGER,
ID_EPIGRAFE INTEGER)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE PROC_NEW_EPIGRAFES (
ID_EJERCICIO_COPIA INTEGER,
ID_EJERCICIO INTEGER,
ID_EPIGRAFE_COPIA INTEGER,
ID_EPIGRAFE INTEGER,
ID_PADRE INTEGER,
REF_EPIGRAFE VARCHAR(6),
DESCRIPCION VARCHAR(255))
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE PROC_NEW_PGC (
ID_EJERCICIO_COPIA INTEGER,
ID_EJERCICIO INTEGER)
RETURNS (
RESULTADO INTEGER)
AS
BEGIN
SUSPEND;
END^
CREATE PROCEDURE PROC_NEW_SUBCUENTAS (
ID_EJERCICIO_COPIA INTEGER,
ID_EJERCICIO INTEGER,
ID_CUENTA_COPIA INTEGER,
ID_CUENTA INTEGER)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE PROC_SET_EJERCICIOS_NOACTIVOS (
ID_EMPRESA INTEGER)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE PROC_PRE_CON_CAPITULOS (
aid integer, tipo varchar(15))
as
begin
exit;
end^
CREATE PROCEDURE PROC_PRE_CON_CAPITULOS_CONCEP(
aid integer, tipo varchar(15))
as
begin
exit;
end^
SET TERM ; ^
/******************************************************************************/
/**** Tables ****/
/******************************************************************************/
CREATE TABLE COMISIONES_LIQ_VENDEDORES(
ID TIPO_ID NOT NULL,
ID_COMISION TIPO_ID,
ID_VENDEDOR TIPO_ID,
NOMBRE VARCHAR(255),
COMISION TIPO_PORCENTAJE,
IMPORTE_TOTAL TIPO_IMPORTE);
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),
MOVIL VARCHAR(25),
IMPORTE_NETO TIPO_IMPORTE,
IMPORTE_PORTE TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_DESCUENTO TIPO_IMPORTE,
BASE_IMPONIBLE TIPO_IMPORTE,
ID_TIPO_IVA TIPO_ID,
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),
ID_TIENDA TIPO_ID
);
CREATE TABLE ALBARANES_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_ALBARAN TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD 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 ALBARANES_PROVEEDOR (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_PROVEEDOR TIPO_ID,
FECHA_ALBARAN DATE,
ID_PEDIDO TIPO_ID,
ID_FACTURA TIPO_ID,
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,
ID_TIPO_IVA TIPO_ID,
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_TIENDA TIPO_ID
);
CREATE TABLE ALBARANES_PROVEEDOR_DETALLES (
ID TIPO_ID NOT NULL,
ID_ALBARAN TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD 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 ALMACENES (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID NOT NULL,
NOMBRE VARCHAR(255),
CALLE VARCHAR(255),
PROVINCIA VARCHAR(255),
POBLACION VARCHAR(255),
CODIGO_POSTAL VARCHAR(10),
TELEFONO VARCHAR(25),
MOVIL VARCHAR(25),
FAX VARCHAR(25),
PERSONA_CONTACTO VARCHAR(255),
OBSERVACIONES TIPO_NOTAS,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
CREATE TABLE ARTICULOS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
REFERENCIA VARCHAR(255),
DESCRIPCION VARCHAR(255),
FAMILIA VARCHAR(255),
IMAGEN TIPO_BINARIO,
COMISIONABLE TIPO_BOOLEANO,
ID_PROVEEDOR TIPO_ID,
REFERENCIA_PROV VARCHAR(255),
PRECIO_COSTE TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
PRECIO_NETO TIPO_IMPORTE,
PRECIO_PORTE TIPO_IMPORTE,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO,
INVENTARIABLE TIPO_BOOLEANO,
ELIMINADO TIPO_BOOLEANO
);
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),
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,
CODIGO_ASIGNADO VARCHAR(255),
IGNORAR_CONTABILIDAD TIPO_ID,
TIENE_SUBCUENTA TIPO_ID,
PROCEDENCIA_CLIENTE VARCHAR(255),
VENCIMIENTO_FACTURAS_1 INTEGER,
VENCIMIENTO_FACTURAS_2 INTEGER,
VENCIMIENTO_FACTURAS_3 INTEGER
);
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 CLIENTES_PROCEDENCIAS (
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 TIPO_CONCEPTO NOT NULL,
ID_EMPRESA TIPO_ID,
VALOR_BLOB TIPO_NOTAS
);
CREATE TABLE CONT_APUNTES (
ID TIPO_ID NOT NULL,
ID_ASIENTO TIPO_ID,
ID_SUBCUENTA TIPO_ID,
NUM_ORDEN TIPO_ID,
CONCEPTO VARCHAR(255),
DOCUMENTO VARCHAR(255),
PUNTEADO SMALLINT,
DEBE TIPO_IMPORTE,
HABER TIPO_IMPORTE
);
CREATE TABLE CONT_ASIENTOS (
ID TIPO_ID NOT NULL,
FECHA_ASIENTO DATE,
ORDEN INTEGER,
ID_FACTURA TIPO_ID,
ID_PAGO TIPO_ID,
TIPO VARCHAR(1)
);
CREATE TABLE CONT_BALANCES (
ID TIPO_ID NOT NULL,
REF_BALANCE VARCHAR(255),
NATURALEZA VARCHAR(255),
NIVEL1 TIPO_PERFIL,
DESCRIPCION1 VARCHAR(255),
NIVEL2 TIPO_PERFIL,
DESCRIPCION2 VARCHAR(255),
NIVEL3 TIPO_PERFIL,
DESCRIPCION3 VARCHAR(255)
);
CREATE TABLE CONT_CUENTAS (
ID TIPO_ID NOT NULL,
REF_CUENTA VARCHAR(10),
ID_EJERCICIO TIPO_ID,
ID_EPIGRAFE TIPO_ID,
DESCRIPCION VARCHAR(255),
ID_BALANCE TIPO_ID,
ID_CUENTA_ESPECIAL TIPO_ID
);
CREATE TABLE CONT_CUENTAS_ESPECIALES (
ID TIPO_ID NOT NULL,
REFERENCIA VARCHAR(6),
DESCRIPCION VARCHAR(255)
);
CREATE TABLE CONT_EJERCICIOS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
NOMBRE VARCHAR(255),
FECHA_INICIO DATE,
FECHA_FIN DATE,
ESTADO VARCHAR(255),
LONG_SUB_CUENTA SMALLINT,
ID_ASIENTO_APERTURA TIPO_ID,
ID_ASIENTO_PERYGAN TIPO_ID,
ID_ASIENTO_CIERRE TIPO_ID,
ACTIVO SMALLINT
);
CREATE TABLE CONT_EPIGRAFES (
ID TIPO_ID NOT NULL,
REF_EPIGRAFE VARCHAR(6),
ID_PADRE TIPO_ID,
DESCRIPCION VARCHAR(255),
ID_EJERCICIO TIPO_ID
);
CREATE TABLE CONT_SUBCUENTAS (
ID TIPO_ID NOT NULL,
REF_SUBCUENTA VARCHAR(15),
DESCRIPCION VARCHAR(255),
ID_CUENTA TIPO_ID,
ID_EJERCICIO TIPO_ID,
ID_CONTACTO 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),
ID_TIENDA TIPO_ID
);
CREATE TABLE CONTACTOS_CATEGORIAS (
ID_CONTACTO TIPO_ID NOT NULL,
ID_CATEGORIA TIPO_ID NOT NULL
);
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_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_DIRECCIONES (
ID TIPO_ID NOT NULL,
ID_CONTACTO TIPO_ID NOT NULL,
NIF_CIF VARCHAR(15),
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 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),
ID_TIPO_IVA SMALLINT,
ID_FORMA_PAGO SMALLINT,
VALIDEZ_PRESUPUESTOS 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)
);
CREATE TABLE EMPRESAS_TIENDAS (
ID TIPO_ID NOT NULL,
ID_EMPRESA 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,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
CODIGO_CONTABLE VARCHAR(2)
);
CREATE TABLE EMPRESAS_USUARIOS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID NOT NULL,
ID_USUARIO TIPO_ID NOT NULL
);
CREATE TABLE FACTURAS_CLIENTE (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_FACTURA DATE,
BASE_IMPONIBLE TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_DESCUENTO TIPO_IMPORTE,
IVA TIPO_PORCENTAJE,
IMPORTE_IVA TIPO_IMPORTE,
RE TIPO_PORCENTAJE,
IMPORTE_RE TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
OBSERVACIONES TIPO_NOTAS,
ID_CLIENTE TIPO_ID,
NIF_CIF VARCHAR(15),
NOMBRE VARCHAR(255),
CALLE VARCHAR(255),
POBLACION VARCHAR(255),
PROVINCIA VARCHAR(255),
CODIGO_POSTAL VARCHAR(10),
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO,
ID_FORMA_PAGO TIPO_ID,
IMPORTE_NETO TIPO_IMPORTE,
IMPORTE_PORTE TIPO_IMPORTE,
ID_TIPO_IVA TIPO_ID,
RECARGO_EQUIVALENCIA TIPO_BOOLEANO,
ID_COMISION_LIQUIDADA TIPO_ID,
IGNORAR_CONTABILIDAD SMALLINT,
ID_TIENDA TIPO_ID,
FECHA_VENCIMIENTO DATE,
ID_DIRECCION TIPO_ID,
ID_CONTRATO TIPO_ID,
SIN_COMISION SMALLINT
);
CREATE TABLE FACTURAS_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_FACTURA TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD 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 FACTURAS_PROVEEDOR (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
REFERENCIA VARCHAR(255),
REFERENCIA_PROVEEDOR VARCHAR(255),
FECHA_FACTURA DATE,
FECHA_VENCIMIENTO 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,
IGNORAR_CONTABILIDAD SMALLINT,
ID_TIENDA TIPO_ID
);
CREATE TABLE FACTURAS_PROVEEDOR_DETALLES (
ID TIPO_ID NOT NULL,
ID_FACTURA TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD 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 FACTURAS_PROVEEDOR_CONTRATOS (
ID TIPO_ID NOT NULL,
ID_FACTURA TIPO_ID NOT NULL,
ID_CONTRATO TIPO_ID NOT NULL,
IMPORTE TIPO_IMPORTE
);
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
);
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,
IGNORAR_CONTABILIDAD SMALLINT
);
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,
IGNORAR_CONTABILIDAD SMALLINT
);
CREATE TABLE PEDIDOS_CLIENTE (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CLIENTE TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_PEDIDO DATE,
CALLE VARCHAR(255),
CODIGO_POSTAL VARCHAR(10),
POBLACION VARCHAR(255),
PROVINCIA VARCHAR(255),
PERSONA_CONTACTO VARCHAR(255),
TELEFONO VARCHAR(25),
OBSERVACIONES TIPO_NOTAS,
INCIDENCIAS TIPO_NOTAS,
INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO,
IMPORTE_NETO TIPO_IMPORTE,
IMPORTE_PORTE TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_DESCUENTO TIPO_IMPORTE,
BASE_IMPONIBLE TIPO_IMPORTE,
IVA TIPO_PORCENTAJE,
IMPORTE_IVA TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
ID_FORMA_PAGO TIPO_ID,
REF_TIENDA_WEB INTEGER,
FECHA_PREVISTA_ENVIO DATE,
REFERENCIA_CLIENTE VARCHAR(255),
ID_TIENDA TIPO_ID
);
CREATE TABLE PEDIDOS_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_PEDIDO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD 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_PROVEEDOR (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_PROVEEDOR TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_PEDIDO DATE,
FECHA_CONFIRMACION DATE,
FECHA_ENTREGA DATE,
ID_ALMACEN TIPO_ID,
OBSERVACIONES TIPO_NOTAS,
INCIDENCIAS TIPO_NOTAS,
INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO,
CALLE VARCHAR(255),
CODIGO_POSTAL VARCHAR(10),
POBLACION VARCHAR(255),
PROVINCIA VARCHAR(255),
PERSONA_CONTACTO VARCHAR(255),
TELEFONO VARCHAR(25),
ID_PEDIDO_CLIENTE TIPO_ID,
IMPORTE_NETO TIPO_IMPORTE,
IMPORTE_PORTE TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_DESCUENTO TIPO_IMPORTE,
BASE_IMPONIBLE TIPO_IMPORTE,
IVA TIPO_PORCENTAJE,
IMPORTE_IVA TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
ID_FORMA_PAGO TIPO_ID,
FECHA_ENVIO DATE,
ID_TIENDA TIPO_ID
);
CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES (
ID TIPO_ID NOT NULL,
ID_PEDIDO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO,
CANTIDAD 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 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_CAPITULOS (
ID TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
TIPO_ARTICULO VARCHAR(2) COLLATE ES_ES,
ID_ARTICULO TIPO_ID,
CONCEPTO TIPO_CONCEPTO
);
CREATE TABLE PRESUPUESTOS_VALORES (
ID TIPO_ID NOT NULL,
ID_PROPIEDAD TIPO_ID,
DESCRIPCION TIPO_CONCEPTO
);
CREATE TABLE PRESUPUESTOS_PROPIEDADES (
ID TIPO_ID NOT NULL,
DESCRIPCION VARCHAR(50),
ID_PADRE TIPO_ID
);
CREATE TABLE PRESUPUESTOS_CLIENTE (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CLIENTE TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_PRESUPUESTO DATE,
FECHA_VIGENCIA DATE,
FECHA_DECISION DATE,
SITUACION VARCHAR(255),
FORMA_PAGO TIPO_NOTAS,
PLAZO_ENTREGA 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,
ID_TIENDA TIPO_ID,
ID_VENDEDOR TIPO_ID,
ID_DIRECCION TIPO_ID,
ID_TIPO_IVA TIPO_ID,
PERSONA_CONTACTO VARCHAR(255) COLLATE ES_ES,
RECARGO_EQUIVALENCIA TIPO_BOOLEANO,
RE TIPO_PORCENTAJE,
IMPORTE_RE TIPO_IMPORTE,
ID_CONTRATO TIPO_ID,
NO_VALORADO TIPO_BOOLEANO,
TIPO_PRESUPUESTO VARCHAR(255)
);
CREATE TABLE PRESUPUESTOS_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_PRESUPUESTO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
ID_ARTICULO TIPO_ID,
TIPO_ARTICULO VARCHAR(2) COLLATE ES_ES,
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 CONTRATOS_CLIENTE (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
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),
TELEFONO VARCHAR(25),
MOVIL VARCHAR(25),
REFERENCIA VARCHAR(255),
FECHA_CONTRATO DATE,
SITUACION VARCHAR(255),
FORMA_PAGO TIPO_NOTAS,
PLAZO_ENTREGA 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,
ID_TIENDA TIPO_ID,
ID_VENDEDOR TIPO_ID,
ID_TIPO_IVA TIPO_ID,
PERSONA_CONTACTO VARCHAR(255) COLLATE ES_ES,
RECARGO_EQUIVALENCIA TIPO_BOOLEANO,
RE TIPO_PORCENTAJE,
IMPORTE_RE TIPO_IMPORTE,
TIPO_CONTRATO VARCHAR(255)
);
CREATE TABLE CONTRATOS_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_CONTRATO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
ID_ARTICULO TIPO_ID,
TIPO_ARTICULO VARCHAR(2) COLLATE ES_ES,
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 PROVEEDORES_DATOS (
ID_PROVEEDOR TIPO_ID NOT NULL,
DESCUENTO TIPO_PORCENTAJE,
REGIMEN_IVA VARCHAR(255),
ID_TIPO_IVA TIPO_ID,
ID_FORMA_PAGO TIPO_ID,
TIENDA_WEB TIPO_BOOLEANO,
GRUPO_PROVEEDOR VARCHAR(255),
DESCRIPCION_PROVEEDOR VARCHAR(255),
CODIGO_ASIGNADO VARCHAR(255),
CERTIFICACION VARCHAR(255),
HOMOLOGADO SMALLINT,
IGNORAR_CONTABILIDAD TIPO_ID,
TIENE_SUBCUENTA TIPO_ID,
NOMBRE_COMERCIAL VARCHAR(255),
ES_ACREEDOR SMALLINT,
VENCIMIENTO_FACTURAS_1 INTEGER,
VENCIMIENTO_FACTURAS_2 INTEGER,
VENCIMIENTO_FACTURAS_3 INTEGER
);
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_EMPRESA TIPO_ID,
ID_CLIENTE TIPO_ID,
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,
ID_TIENDA TIPO_ID,
NIF_CIF VARCHAR(15),
NOMBRE VARCHAR(255),
CALLE VARCHAR(255),
POBLACION VARCHAR(255),
PROVINCIA VARCHAR(255),
CODIGO_POSTAL VARCHAR(10)
);
CREATE TABLE RECIBOS_PROVEEDOR (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_PROVEEDOR TIPO_ID,
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,
ID_TIENDA TIPO_ID,
NIF_CIF VARCHAR(15),
NOMBRE VARCHAR(255),
CALLE VARCHAR(255),
POBLACION VARCHAR(255),
PROVINCIA VARCHAR(255),
CODIGO_POSTAL VARCHAR(10)
);
CREATE TABLE REFERENCIAS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_TIENDA 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.ID_PEDIDO,
V_ALB_CLI_SITUACION.SITUACION,
ALBARANES_CLIENTE.ID_ALMACEN,
COALESCE(ALBARANES_CLIENTE_DETALLES.ID_ARTICULO, 0),
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.ID_PEDIDO,
V_ALB_CLI_SITUACION.SITUACION,
ALBARANES_CLIENTE.ID_ALMACEN,
ALBARANES_CLIENTE_DETALLES.ID_ARTICULO
;
/* View: V_ALB_PROV_DETALLES */
CREATE VIEW V_ALB_PROV_DETALLES(
ID_ALBARAN,
ID_PEDIDO,
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN,
ALBARANES_PROVEEDOR.ID_PEDIDO,
ALBARANES_PROVEEDOR.ID_ALMACEN,
COALESCE(ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, 0),
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
;
/* 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,
MOVIL,
IMPORTE_NETO,
IMPORTE_PORTE,
DESCUENTO,
IMPORTE_DESCUENTO,
BASE_IMPONIBLE,
ID_TIPO_IVA,
IVA,
IMPORTE_IVA,
IMPORTE_TOTAL,
OBSERVACIONES,
INCIDENCIAS,
INCIDENCIAS_ACTIVAS,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_FORMA_PAGO,
FECHA_PREVISTA_ENVIO,
FECHA_ENVIO,
FECHA_RECEPCION,
ID_TIENDA,
TIENDA)
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.MOVIL,
ALBARANES_CLIENTE.IMPORTE_NETO,
ALBARANES_CLIENTE.IMPORTE_PORTE,
ALBARANES_CLIENTE.DESCUENTO,
ALBARANES_CLIENTE.IMPORTE_DESCUENTO,
ALBARANES_CLIENTE.BASE_IMPONIBLE,
ALBARANES_CLIENTE.ID_TIPO_IVA,
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,
ALBARANES_CLIENTE.FECHA_PREVISTA_ENVIO,
ALBARANES_CLIENTE.FECHA_ENVIO,
ALBARANES_CLIENTE.FECHA_RECEPCION,
ALBARANES_CLIENTE.ID_TIENDA,
COALESCE(EMPRESAS_TIENDAS.NOMBRE, 'Todas') AS TIENDA
FROM
ALBARANES_CLIENTE
INNER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_CLIENTE.ID_CLIENTE)
INNER JOIN V_ALB_CLI_SITUACION ON (V_ALB_CLI_SITUACION.ID = ALBARANES_CLIENTE.ID)
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 ALMACENES ON (ALMACENES.ID = ALBARANES_CLIENTE.ID_ALMACEN)
LEFT OUTER JOIN EMPRESAS_TIENDAS ON (EMPRESAS_TIENDAS.ID = ALBARANES_CLIENTE.ID_TIENDA)
;
/* View: V_ALBARANES_PROVEEDOR */
CREATE VIEW V_ALBARANES_PROVEEDOR(
ID,
ID_EMPRESA,
ID_PROVEEDOR,
NOMBRE,
FECHA_ALBARAN,
REFERENCIA,
REFERENCIA_PROVEEDOR,
TIPO,
ID_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,
ID_TIPO_IVA,
IVA,
IMPORTE_IVA,
IMPORTE_TOTAL,
OBSERVACIONES,
INCIDENCIAS,
INCIDENCIAS_ACTIVAS,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_FORMA_PAGO,
ID_TIENDA,
TIENDA)
AS
SELECT
ALBARANES_PROVEEDOR.ID,
ALBARANES_PROVEEDOR.ID_EMPRESA,
ALBARANES_PROVEEDOR.ID_PROVEEDOR,
CONTACTOS.NOMBRE,
ALBARANES_PROVEEDOR.FECHA_ALBARAN,
ALBARANES_PROVEEDOR.REFERENCIA,
ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR,
ALBARANES_PROVEEDOR.TIPO,
ALBARANES_PROVEEDOR.ID_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.ID_TIPO_IVA,
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_TIENDA,
COALESCE(EMPRESAS_TIENDAS.NOMBRE, 'Todas') AS TIENDA
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 EMPRESAS_TIENDAS ON (EMPRESAS_TIENDAS.ID = ALBARANES_PROVEEDOR.ID_TIENDA)
;
/* View: V_ARTICULOS */
CREATE VIEW V_ARTICULOS(
ID,
ID_EMPRESA,
REFERENCIA,
DESCRIPCION,
FAMILIA,
IMAGEN,
COMISIONABLE,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
REFERENCIA_PROV,
PRECIO_COSTE,
PRECIO_PORTE,
DESCUENTO,
PRECIO_NETO,
INVENTARIABLE,
ID_PROVEEDOR,
NOMBRE_PROVEEDOR,
ELIMINADO)
AS
SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION,
ARTICULOS.FAMILIA, ARTICULOS.IMAGEN, ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA,
ARTICULOS.FECHA_MODIFICACION, ARTICULOS.USUARIO,
ARTICULOS.REFERENCIA_PROV,
ARTICULOS.PRECIO_COSTE,
ARTICULOS.PRECIO_PORTE,
ARTICULOS.DESCUENTO,
ARTICULOS.PRECIO_NETO,
ARTICULOS.INVENTARIABLE,
ARTICULOS.ID_PROVEEDOR,
CONTACTOS.NOMBRE AS NOMBRE_PROVEEDOR,
ARTICULOS.ELIMINADO
FROM ARTICULOS
LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ARTICULOS.ID_PROVEEDOR)
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,
ID_TIENDA,
TIENDA)
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.ID_TIENDA,
COALESCE(EMPRESAS_TIENDAS.NOMBRE, 'Todas') as TIENDA
FROM CONTACTOS
INNER JOIN CONTACTOS_CATEGORIAS ON (CONTACTOS_CATEGORIAS.ID_CONTACTO =
CONTACTOS.ID)
INNER JOIN EMPRESAS_CONTACTOS ON (EMPRESAS_CONTACTOS.ID_CONTACTO =
CONTACTOS.ID)
LEFT JOIN EMPRESAS_TIENDAS ON (EMPRESAS_TIENDAS.ID = CONTACTOS.ID_TIENDA)
;
/* 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,
ID_TIENDA,
TIENDA,
GRUPO_CLIENTE,
NOMBRE_COMERCIAL,
BLOQUEADO,
REGIMEN_IVA,
MOTIVO_BLOQUEO,
RECARGO_EQUIVALENCIA,
ID_TIPO_IVA,
ID_FORMA_PAGO,
TIENDA_WEB,
CODIGO_ASIGNADO,
IGNORAR_CONTABILIDAD,
TIENE_SUBCUENTA,
PROCEDENCIA_CLIENTE,
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.ID_TIENDA,
V_CONTACTOS.TIENDA,
CLIENTES_DATOS.GRUPO_CLIENTE,
CLIENTES_DATOS.NOMBRE_COMERCIAL,
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.CODIGO_ASIGNADO,
CLIENTES_DATOS.IGNORAR_CONTABILIDAD,
CLIENTES_DATOS.TIENE_SUBCUENTA,
CLIENTES_DATOS.PROCEDENCIA_CLIENTE,
CLIENTES_DATOS.VENCIMIENTO_FACTURAS_1,
CLIENTES_DATOS.VENCIMIENTO_FACTURAS_2,
CLIENTES_DATOS.VENCIMIENTO_FACTURAS_3
FROM V_CONTACTOS
LEFT OUTER JOIN CLIENTES_DATOS ON (V_CONTACTOS.ID = CLIENTES_DATOS.ID_CLIENTE)
WHERE
V_CONTACTOS.ID_CATEGORIA = 1
;
/* View: V_PROVEEDORES */
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,
ID_TIENDA,
TIENDA,
DESCUENTO,
DESCRIPCION_PROVEEDOR,
CODIGO_ASIGNADO,
GRUPO_PROVEEDOR,
REGIMEN_IVA,
ID_TIPO_IVA,
ID_FORMA_PAGO,
TIENDA_WEB,
HOMOLOGADO,
CERTIFICACION,
IGNORAR_CONTABILIDAD,
TIENE_SUBCUENTA,
NOMBRE_COMERCIAL,
ES_ACREEDOR,
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.ID_TIENDA,
V_CONTACTOS.TIENDA,
PROVEEDORES_DATOS.DESCUENTO,
PROVEEDORES_DATOS.DESCRIPCION_PROVEEDOR,
PROVEEDORES_DATOS.CODIGO_ASIGNADO,
PROVEEDORES_DATOS.GRUPO_PROVEEDOR,
PROVEEDORES_DATOS.REGIMEN_IVA,
PROVEEDORES_DATOS.ID_TIPO_IVA,
PROVEEDORES_DATOS.ID_FORMA_PAGO,
PROVEEDORES_DATOS.TIENDA_WEB,
PROVEEDORES_DATOS.HOMOLOGADO,
PROVEEDORES_DATOS.CERTIFICACION,
PROVEEDORES_DATOS.IGNORAR_CONTABILIDAD,
PROVEEDORES_DATOS.TIENE_SUBCUENTA,
PROVEEDORES_DATOS.NOMBRE_COMERCIAL,
PROVEEDORES_DATOS.ES_ACREEDOR,
PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_1,
PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_2,
PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_3
FROM
PROVEEDORES_DATOS
INNER JOIN V_CONTACTOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = V_CONTACTOS.ID)
WHERE
V_CONTACTOS.ID_CATEGORIA = 2
;
/* View: V_CONT_CUENTAS */
CREATE VIEW V_CONT_CUENTAS(
ID,
REF_CUENTA,
ID_EJERCICIO, ESTADO,
DESCRIPCION,
ID_EPIGRAFE,
EPIGRAFE,
ID_BALANCE,
BALANCE,
ID_CUENTA_ESPECIAL,
CUENTA_ESPECIAL)
AS
select CONT_CUENTAS.ID, CONT_CUENTAS.REF_CUENTA, CONT_CUENTAS.ID_EJERCICIO, CONT_EJERCICIOS.ESTADO,
CONT_CUENTAS.DESCRIPCION, CONT_CUENTAS.ID_EPIGRAFE, CONT_EPIGRAFES.DESCRIPCION as EPIGRAFE,
CONT_CUENTAS.ID_BALANCE, CONT_BALANCES.REF_BALANCE as BALANCE,
CONT_CUENTAS.ID_CUENTA_ESPECIAL, CONT_CUENTAS_ESPECIALES.DESCRIPCION as CUENTA_ESPECIAL
from CONT_CUENTAS
left join CONT_EPIGRAFES on (CONT_EPIGRAFES.ID = CONT_CUENTAS.ID_EPIGRAFE)
left join CONT_BALANCES on (CONT_BALANCES.ID = CONT_CUENTAS.ID_BALANCE)
left join CONT_CUENTAS_ESPECIALES on (CONT_CUENTAS_ESPECIALES.ID = CONT_CUENTAS.ID_CUENTA_ESPECIAL)
left join CONT_EJERCICIOS on (CONT_EJERCICIOS.ID = CONT_CUENTAS.ID_EJERCICIO);
/* View: V_CONT_DIARIO */
CREATE VIEW V_CONT_DIARIO(
ID_APUNTE,
ID_ASIENTO,
ID_FACTURA,
ID_PAGO,
TIPO,
ORDEN_ASIENTO,
FECHA_ASIENTO,
ID_SUBCUENTA,
REF_SUBCUENTA,
SUBCUENTA,
ID_EJERCICIO,
ESTADO,
CONCEPTO,
DOCUMENTO,
DEBE,
HABER,
PUNTEADO)
AS
SELECT
CONT_APUNTES.ID,
CONT_APUNTES.ID_ASIENTO,
CONT_ASIENTOS.ID_FACTURA,
CONT_ASIENTOS.ID_PAGO,
CONT_ASIENTOS.TIPO,
CONT_ASIENTOS.ORDEN,
CONT_ASIENTOS.FECHA_ASIENTO,
CONT_APUNTES.ID_SUBCUENTA,
CONT_SUBCUENTAS.REF_SUBCUENTA as REF_SUBCUENTA,
CONT_SUBCUENTAS.DESCRIPCION as SUBCUENTA,
CONT_SUBCUENTAS.ID_EJERCICIO, CONT_EJERCICIOS.ESTADO,
CONT_APUNTES.CONCEPTO,
CONT_APUNTES.DOCUMENTO,
CONT_APUNTES.DEBE,
CONT_APUNTES.HABER,
CONT_APUNTES.PUNTEADO
FROM CONT_APUNTES
LEFT JOIN CONT_ASIENTOS ON (CONT_ASIENTOS.ID = CONT_APUNTES.ID_ASIENTO)
LEFT JOIN CONT_SUBCUENTAS ON (CONT_SUBCUENTAS.ID = CONT_APUNTES.ID_SUBCUENTA)
LEFT JOIN CONT_EJERCICIOS ON (CONT_EJERCICIOS.ID = CONT_SUBCUENTAS.ID_EJERCICIO)
order by CONT_ASIENTOS.FECHA_ASIENTO desc, CONT_ASIENTOS.ORDEN desc
;
/* View: V_CONT_EPIGRAFES */
CREATE VIEW V_CONT_EPIGRAFES(
ID,
REF_EPIGRAFE,
DESCRIPCION,
ID_EJERCICIO, ESTADO,
ID_PADRE,
EPIGRAFE_PADRE)
AS
select CONT_EPI1.ID, CONT_EPI1.REF_EPIGRAFE, CONT_EPI1.DESCRIPCION, CONT_EPI1.ID_EJERCICIO, CONT_EJERCICIOS.ESTADO,
CONT_EPI1.ID_PADRE, CONT_EPI2.DESCRIPCION as EPIGRAFE_PADRE
from CONT_EPIGRAFES CONT_EPI1
left join CONT_EPIGRAFES CONT_EPI2 on (CONT_EPI2.ID = CONT_EPI1.ID_PADRE)
left join CONT_EJERCICIOS on (CONT_EJERCICIOS.ID = CONT_EPI1.ID_EJERCICIO)
;
/* View: V_CONT_FAC_CLI_VENTAS */
CREATE VIEW V_CONT_FAC_CLI_VENTAS(
ID_FACTURA,
ID_SUBCUENTA,
SUBCUENTA,
ID_EJERCICIO,
ESTADO_EJERCICIO,
ASIENTO_PUNTEADO)
AS
select
CONT_ASIENTOS.ID_FACTURA,
CONT_SUBCUENTAS.ID as ID_SUBCUENTA,
CONT_SUBCUENTAS.DESCRIPCION as SUBCUENTA,
CONT_SUBCUENTAS.ID_EJERCICIO,
CONT_EJERCICIOS.ESTADO,
CONT_APUNTES.PUNTEADO
from CONT_ASIENTOS
LEFT JOIN CONT_APUNTES ON (CONT_APUNTES.ID_ASIENTO = CONT_ASIENTOS.ID)
LEFT JOIN CONT_SUBCUENTAS ON (CONT_SUBCUENTAS.ID = CONT_APUNTES.ID_SUBCUENTA)
LEFT JOIN CONT_CUENTAS ON (CONT_CUENTAS.ID = CONT_SUBCUENTAS.ID_CUENTA)
LEFT JOIN CONT_EJERCICIOS ON (CONT_EJERCICIOS.ID = CONT_SUBCUENTAS.ID_EJERCICIO)
left join CONT_EPIGRAFES CONT_EPI1 on (CONT_EPI1.ID = CONT_CUENTAS.ID_EPIGRAFE)
left join CONT_EPIGRAFES CONT_EPI2 on (CONT_EPI2.ID = CONT_EPI1.ID_PADRE)
/* Solo sacaremos aquellas tuplas de apuntes cuya subcuenta contable pertenezca ventas*/
where (CONT_ASIENTOS.ID_FACTURA is not null) and (CONT_ASIENTOS.TIPO = 'c')
and (COALESCE(CONT_EPI2.REF_EPIGRAFE, CONT_EPI1.REF_EPIGRAFE) = 7)
;
CREATE VIEW V_CONT_PAGOS_CLI_VENTAS(
ID_PAGO,
ID_SUBCUENTA,
SUBCUENTA,
ID_EJERCICIO,
ESTADO_EJERCICIO,
ASIENTO_PUNTEADO)
AS
select
CONT_ASIENTOS.ID_PAGO,
CONT_SUBCUENTAS.ID as ID_SUBCUENTA,
CONT_SUBCUENTAS.DESCRIPCION as SUBCUENTA,
CONT_SUBCUENTAS.ID_EJERCICIO,
CONT_EJERCICIOS.ESTADO,
CONT_APUNTES.PUNTEADO
from CONT_ASIENTOS
LEFT JOIN CONT_APUNTES ON (CONT_APUNTES.ID_ASIENTO = CONT_ASIENTOS.ID)
LEFT JOIN CONT_SUBCUENTAS ON (CONT_SUBCUENTAS.ID = CONT_APUNTES.ID_SUBCUENTA)
LEFT JOIN CONT_CUENTAS ON (CONT_CUENTAS.ID = CONT_SUBCUENTAS.ID_CUENTA)
LEFT JOIN CONT_EJERCICIOS ON (CONT_EJERCICIOS.ID = CONT_SUBCUENTAS.ID_EJERCICIO)
left join CONT_EPIGRAFES CONT_EPI1 on (CONT_EPI1.ID = CONT_CUENTAS.ID_EPIGRAFE)
left join CONT_EPIGRAFES CONT_EPI2 on (CONT_EPI2.ID = CONT_EPI1.ID_PADRE)
/* Solo sacaremos aquellas tuplas de apuntes cuya subcuenta contable pertenezca ventas*/
where (CONT_ASIENTOS.ID_PAGO is not null) and (CONT_ASIENTOS.TIPO = 'c')
and (COALESCE(CONT_EPI2.REF_EPIGRAFE, CONT_EPI1.REF_EPIGRAFE) = 5);
/* View: V_CONT_FAC_PRO_COMPRAS */
CREATE VIEW V_CONT_FAC_PRO_COMPRAS(
ID_FACTURA,
ID_SUBCUENTA,
SUBCUENTA,
ID_EJERCICIO,
ESTADO_EJERCICIO,
ASIENTO_PUNTEADO)
AS
select
CONT_ASIENTOS.ID_FACTURA,
CONT_SUBCUENTAS.ID as ID_SUBCUENTA,
CONT_SUBCUENTAS.DESCRIPCION as SUBCUENTA,
CONT_SUBCUENTAS.ID_EJERCICIO,
CONT_EJERCICIOS.ESTADO,
CONT_APUNTES.PUNTEADO
from CONT_ASIENTOS
LEFT JOIN CONT_APUNTES ON (CONT_APUNTES.ID_ASIENTO = CONT_ASIENTOS.ID)
LEFT JOIN CONT_SUBCUENTAS ON (CONT_SUBCUENTAS.ID = CONT_APUNTES.ID_SUBCUENTA)
LEFT JOIN CONT_CUENTAS ON (CONT_CUENTAS.ID = CONT_SUBCUENTAS.ID_CUENTA)
LEFT JOIN CONT_EJERCICIOS ON (CONT_EJERCICIOS.ID = CONT_SUBCUENTAS.ID_EJERCICIO)
left join CONT_EPIGRAFES CONT_EPI1 on (CONT_EPI1.ID = CONT_CUENTAS.ID_EPIGRAFE)
left join CONT_EPIGRAFES CONT_EPI2 on (CONT_EPI2.ID = CONT_EPI1.ID_PADRE)
/* Solo sacaremos aquellas tuplas de apuntes cuya subcuenta contable pertenezca compras*/
where (CONT_ASIENTOS.ID_FACTURA is not null) and (CONT_ASIENTOS.TIPO = 'p')
and (COALESCE(CONT_EPI2.REF_EPIGRAFE, CONT_EPI1.REF_EPIGRAFE) = 6);
CREATE VIEW V_CONT_PAGOS_PRO_COMPRAS(
ID_PAGO,
ID_SUBCUENTA,
SUBCUENTA,
ID_EJERCICIO,
ESTADO_EJERCICIO,
ASIENTO_PUNTEADO)
AS
select
CONT_ASIENTOS.ID_PAGO,
CONT_SUBCUENTAS.ID as ID_SUBCUENTA,
CONT_SUBCUENTAS.DESCRIPCION as SUBCUENTA,
CONT_SUBCUENTAS.ID_EJERCICIO,
CONT_EJERCICIOS.ESTADO,
CONT_APUNTES.PUNTEADO
from CONT_ASIENTOS
LEFT JOIN CONT_APUNTES ON (CONT_APUNTES.ID_ASIENTO = CONT_ASIENTOS.ID)
LEFT JOIN CONT_SUBCUENTAS ON (CONT_SUBCUENTAS.ID = CONT_APUNTES.ID_SUBCUENTA)
LEFT JOIN CONT_CUENTAS ON (CONT_CUENTAS.ID = CONT_SUBCUENTAS.ID_CUENTA)
LEFT JOIN CONT_EJERCICIOS ON (CONT_EJERCICIOS.ID = CONT_SUBCUENTAS.ID_EJERCICIO)
left join CONT_EPIGRAFES CONT_EPI1 on (CONT_EPI1.ID = CONT_CUENTAS.ID_EPIGRAFE)
left join CONT_EPIGRAFES CONT_EPI2 on (CONT_EPI2.ID = CONT_EPI1.ID_PADRE)
/* Solo sacaremos aquellas tuplas de apuntes cuya subcuenta contable pertenezca compras*/
where (CONT_ASIENTOS.ID_PAGO is not null) and (CONT_ASIENTOS.TIPO = 'p')
and (COALESCE(CONT_EPI2.REF_EPIGRAFE, CONT_EPI1.REF_EPIGRAFE) = 5);
CREATE VIEW V_PAGOS_PROVEEDOR(
ID,
ID_RECIBO,
TIPO,
FECHA_PAGO,
TITULAR,
ENTIDAD,
SUCURSAL,
DC,
CUENTA,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
IGNORAR_CONTABILIDAD,
ID_SUBCUENTA,
SUBCUENTA,
ID_EJERCICIO,
ESTADO_EJERCICIO,
ASIENTO_PUNTEADO)
AS
SELECT PAGOS_PROVEEDOR.ID,
PAGOS_PROVEEDOR.ID_RECIBO,
PAGOS_PROVEEDOR.TIPO,
PAGOS_PROVEEDOR.FECHA_PAGO,
PAGOS_PROVEEDOR.TITULAR,
PAGOS_PROVEEDOR.ENTIDAD,
PAGOS_PROVEEDOR.SUCURSAL,
PAGOS_PROVEEDOR.DC,
PAGOS_PROVEEDOR.CUENTA,
PAGOS_PROVEEDOR.FECHA_ALTA,
PAGOS_PROVEEDOR.FECHA_MODIFICACION,
PAGOS_PROVEEDOR.USUARIO,
PAGOS_PROVEEDOR.IGNORAR_CONTABILIDAD,
V_CONT_PAGOS_PRO_COMPRAS.ID_SUBCUENTA,
V_CONT_PAGOS_PRO_COMPRAS.SUBCUENTA,
V_CONT_PAGOS_PRO_COMPRAS.ID_EJERCICIO,
V_CONT_PAGOS_PRO_COMPRAS.ESTADO_EJERCICIO,
V_CONT_PAGOS_PRO_COMPRAS.ASIENTO_PUNTEADO
FROM PAGOS_PROVEEDOR
LEFT JOIN V_CONT_PAGOS_PRO_COMPRAS ON (V_CONT_PAGOS_PRO_COMPRAS.ID_PAGO = PAGOS_PROVEEDOR.ID)
;
CREATE VIEW V_PAGOS_CLIENTE(
ID,
ID_RECIBO,
TIPO,
FECHA_PAGO,
TITULAR,
ENTIDAD,
SUCURSAL,
DC,
CUENTA,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
IGNORAR_CONTABILIDAD,
ID_SUBCUENTA,
SUBCUENTA,
ID_EJERCICIO,
ESTADO_EJERCICIO,
ASIENTO_PUNTEADO)
AS
SELECT PAGOS_CLIENTE.ID,
PAGOS_CLIENTE.ID_RECIBO,
PAGOS_CLIENTE.TIPO,
PAGOS_CLIENTE.FECHA_PAGO,
PAGOS_CLIENTE.TITULAR,
PAGOS_CLIENTE.ENTIDAD,
PAGOS_CLIENTE.SUCURSAL,
PAGOS_CLIENTE.DC,
PAGOS_CLIENTE.CUENTA,
PAGOS_CLIENTE.FECHA_ALTA,
PAGOS_CLIENTE.FECHA_MODIFICACION,
PAGOS_CLIENTE.USUARIO,
PAGOS_CLIENTE.IGNORAR_CONTABILIDAD,
V_CONT_PAGOS_CLI_VENTAS.ID_SUBCUENTA,
V_CONT_PAGOS_CLI_VENTAS.SUBCUENTA,
V_CONT_PAGOS_CLI_VENTAS.ID_EJERCICIO,
V_CONT_PAGOS_CLI_VENTAS.ESTADO_EJERCICIO,
V_CONT_PAGOS_CLI_VENTAS.ASIENTO_PUNTEADO
FROM PAGOS_CLIENTE
LEFT JOIN V_CONT_PAGOS_CLI_VENTAS ON (V_CONT_PAGOS_CLI_VENTAS.ID_PAGO = PAGOS_CLIENTE.ID)
;
/* View: V_CONT_SUBCUENTAS_SALDO */
CREATE VIEW V_CONT_SUBCUENTAS_SALDO(
ID_SUBCUENTA,
DEBE,
HABER,
SALDO)
AS
select cont_subcuentas.ID, COALESCE(SUM(cont_apuntes.DEBE), 0) as DEBE,
COALESCE(SUM(cont_apuntes.HABER), 0) as HABER,
COALESCE(SUM(cont_apuntes.DEBE), 0) - COALESCE(SUM(cont_apuntes.HABER), 0) as SALDO
from cont_subcuentas
left join cont_apuntes on (cont_apuntes.id_subcuenta = cont_subcuentas.ID)
group by cont_subcuentas.ID
;
/* View: V_CONT_SUBCUENTAS */
CREATE VIEW V_CONT_SUBCUENTAS(
ID,
REF_SUBCUENTA,
DESCRIPCION,
ID_EJERCICIO,
ESTADO,
REF_EPIGRAFE_PADRE,
ID_CONTACTO,
ID_CUENTA,
REF_CUENTA,
CUENTA,
DEBE,
HABER,
SALDO)
AS
select CONT_SUBCUENTAS.ID, CONT_SUBCUENTAS.REF_SUBCUENTA, CONT_SUBCUENTAS.DESCRIPCION,
CONT_SUBCUENTAS.ID_EJERCICIO, CONT_EJERCICIOS.ESTADO, COALESCE(CONT_EPI2.REF_EPIGRAFE, CONT_EPI1.REF_EPIGRAFE),
CONT_SUBCUENTAS.ID_CONTACTO, CONT_SUBCUENTAS.ID_CUENTA,
CONT_CUENTAS.REF_CUENTA, CONT_CUENTAS.DESCRIPCION as CUENTA, V_CONT_SUBCUENTAS_SALDO.DEBE, V_CONT_SUBCUENTAS_SALDO.HABER, V_CONT_SUBCUENTAS_SALDO.SALDO
from V_CONT_SUBCUENTAS_SALDO
left join CONT_SUBCUENTAS on (CONT_SUBCUENTAS.ID = V_CONT_SUBCUENTAS_SALDO.ID_SUBCUENTA)
left join CONT_CUENTAS on (CONT_CUENTAS.ID = CONT_SUBCUENTAS.ID_CUENTA)
left join CONT_EPIGRAFES CONT_EPI1 on (CONT_EPI1.ID = CONT_CUENTAS.ID_EPIGRAFE)
left join CONT_EPIGRAFES CONT_EPI2 on (CONT_EPI2.ID = CONT_EPI1.ID_PADRE)
left join CONT_EJERCICIOS on (CONT_EJERCICIOS.ID = CONT_SUBCUENTAS.ID_EJERCICIO)
order by CONT_CUENTAS.REF_CUENTA
;
/* 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,
ID_TIENDA,
TIENDA,
COMISION,
ID_USUARIO)
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.ID_TIENDA,
V_CONTACTOS.TIENDA,
VENDEDORES_DATOS.COMISION,
VENDEDORES_DATOS.ID_USUARIO
FROM V_CONTACTOS
INNER JOIN VENDEDORES_DATOS ON (VENDEDORES_DATOS.ID_VENDEDOR = V_CONTACTOS.ID)
WHERE V_CONTACTOS.ID_CATEGORIA = 3;
;
/* Create 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;
;
/* Create 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;
;
/* Create 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')
AND (RECIBOS_CLIENTE.ID_FACTURA IS NOT NULL)
GROUP BY RECIBOS_CLIENTE.ID_FACTURA;
;
/* Create 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;
/* Create 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;
;
/* Create 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;
;
/* Create 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')
AND (RECIBOS_PROVEEDOR.ID_FACTURA IS NOT NULL)
GROUP BY RECIBOS_PROVEEDOR.ID_FACTURA;
/* Create 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;
/* Create view: V_FACTURAS_CLIENTE */
CREATE VIEW V_FACTURAS_CLIENTE(
ID,
ID_EMPRESA,
REFERENCIA,
TIPO,
ID_COMISION_LIQUIDADA,
FECHA_FACTURA,
FECHA_VENCIMIENTO,
SITUACION,
BASE_IMPONIBLE,
DESCUENTO,
IMPORTE_DESCUENTO,
IVA,
IMPORTE_IVA,
RE,
IMPORTE_RE,
IMPORTE_TOTAL,
OBSERVACIONES,
ID_CLIENTE,
NOMBRE_CLIENTE,
NOMBRE_COMERCIAL_CLIENTE,
NIF_CIF,
NOMBRE,
ID_DIRECCION,
CALLE,
POBLACION,
PROVINCIA,
CODIGO_POSTAL,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_FORMA_PAGO,
RECARGO_EQUIVALENCIA,
ID_TIPO_IVA,
IMPORTE_NETO,
IMPORTE_PORTE,
ID_AGENTE,
REFERENCIA_COMISION,
IGNORAR_CONTABILIDAD,
ID_TIENDA,
TIENDA,
ID_SUBCUENTA,
SUBCUENTA,
ID_EJERCICIO,
ESTADO_EJERCICIO,
ASIENTO_PUNTEADO,
ID_CONTRATO,
REF_CONTRATO,
SIN_COMISION)
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,
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,
CONTACTOS.NOMBRE,
CLIENTES_DATOS.NOMBRE_COMERCIAL,
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.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.IGNORAR_CONTABILIDAD,
FACTURAS_CLIENTE.ID_TIENDA,
COALESCE(EMPRESAS_TIENDAS.NOMBRE, 'Todas') AS TIENDA,
V_CONT_FAC_CLI_VENTAS.ID_SUBCUENTA,
V_CONT_FAC_CLI_VENTAS.SUBCUENTA,
V_CONT_FAC_CLI_VENTAS.ID_EJERCICIO,
V_CONT_FAC_CLI_VENTAS.ESTADO_EJERCICIO,
V_CONT_FAC_CLI_VENTAS.ASIENTO_PUNTEADO,
FACTURAS_CLIENTE.ID_CONTRATO,
CONTRATOS_CLIENTE.REFERENCIA,
FACTURAS_CLIENTE.SIN_COMISION
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)
INNER JOIN CONTACTOS ON (CONTACTOS.ID = FACTURAS_CLIENTE.ID_CLIENTE)
INNER JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = FACTURAS_CLIENTE.ID_CLIENTE)
LEFT JOIN EMPRESAS_TIENDAS ON (EMPRESAS_TIENDAS.ID = FACTURAS_CLIENTE.ID_TIENDA)
LEFT JOIN V_CONT_FAC_CLI_VENTAS ON (V_CONT_FAC_CLI_VENTAS.ID_FACTURA = FACTURAS_CLIENTE.ID)
LEFT JOIN CONTRATOS_CLIENTE ON (CONTRATOS_CLIENTE.ID = FACTURAS_CLIENTE.ID_CONTRATO)
;
/* Create 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,
NOMBRE_PROVEEDOR,
NOMBRE_COMERCIAL_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,
IGNORAR_CONTABILIDAD,
ID_TIENDA,
TIENDA,
ID_SUBCUENTA,
SUBCUENTA,
ID_EJERCICIO,
ESTADO_EJERCICIO,
ASIENTO_PUNTEADO)
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,
CONTACTOS.NOMBRE,
PROVEEDORES_DATOS.NOMBRE_COMERCIAL,
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.IGNORAR_CONTABILIDAD,
FACTURAS_PROVEEDOR.ID_TIENDA,
COALESCE(EMPRESAS_TIENDAS.NOMBRE, 'Todas') AS TIENDA,
V_CONT_FAC_PRO_COMPRAS.ID_SUBCUENTA,
V_CONT_FAC_PRO_COMPRAS.SUBCUENTA,
V_CONT_FAC_PRO_COMPRAS.ID_EJERCICIO,
V_CONT_FAC_PRO_COMPRAS.ESTADO_EJERCICIO,
V_CONT_FAC_PRO_COMPRAS.ASIENTO_PUNTEADO
FROM V_FAC_PRO_SITUACION
LEFT JOIN FACTURAS_PROVEEDOR
ON (FACTURAS_PROVEEDOR.ID = V_FAC_PRO_SITUACION.ID_FACTURA)
LEFT JOIN CONTACTOS
ON (CONTACTOS.ID = FACTURAS_PROVEEDOR.ID_PROVEEDOR)
LEFT JOIN PROVEEDORES_DATOS
ON (PROVEEDORES_DATOS.ID_PROVEEDOR = FACTURAS_PROVEEDOR.ID_PROVEEDOR)
LEFT JOIN EMPRESAS_TIENDAS
ON (EMPRESAS_TIENDAS.ID = FACTURAS_PROVEEDOR.ID_TIENDA)
LEFT JOIN V_CONT_FAC_PRO_COMPRAS ON (V_CONT_FAC_PRO_COMPRAS.ID_FACTURA = FACTURAS_PROVEEDOR.ID);
/* Create view: V_COMISIONES */
CREATE VIEW V_COMISIONES(
ID,
ID_EMPRESA,
REFERENCIA,
ID_AGENTE,
DESCRIPCION,
FECHA,
IMPORTE_TOTAL,
USUARIO,
NOMBRE)
AS
SELECT
COMISIONES_LIQUIDADAS.ID, COMISIONES_LIQUIDADAS.ID_EMPRESA,
COMISIONES_LIQUIDADAS.REFERENCIA, COMISIONES_LIQUIDADAS.ID_AGENTE,
COMISIONES_LIQUIDADAS.DESCRIPCION, COMISIONES_LIQUIDADAS.FECHA,
COMISIONES_LIQUIDADAS.IMPORTE_TOTAL, COMISIONES_LIQUIDADAS.USUARIO,
CONTACTOS.NOMBRE
FROM COMISIONES_LIQUIDADAS
LEFT JOIN CONTACTOS ON (CONTACTOS.ID = COMISIONES_LIQUIDADAS.ID_AGENTE);
;
/* 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 'Entrada'
ELSE 'Salida' 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 'Salida'
ELSE 'Entrada' 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,
CASE WHEN TIPO = 'E' THEN 'Entrada'
ELSE 'Salida' END,
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,
REFERENCIA_PROV,
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.REFERENCIA_PROV,
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_ALB,
ID_EMPRESA,
REFERENCIA_ALB,
SITUACION_ALB,
FECHA_PREVISTA_ENVIO_ALB,
ID_ALMACEN_ALB,
ALMACEN_ALB,
ID_CLIENTE_ALB,
CLIENTE_ALB,
ID_ART,
FAMILIA_ART,
REFERENCIA_ART,
REFERENCIA_PROV_ART,
DESCRIPCION_ART,
CANTIDAD_ART)
AS
SELECT
ALBARANES_CLIENTE_DETALLES.ID_ALBARAN,
ALBARANES_CLIENTE.ID_EMPRESA,
ALBARANES_CLIENTE.REFERENCIA,
V_ALB_CLI_SITUACION.SITUACION,
ALBARANES_CLIENTE.FECHA_PREVISTA_ENVIO,
ALBARANES_CLIENTE.ID_ALMACEN,
ALMACENES.NOMBRE AS ALMACEN,
ALBARANES_CLIENTE.ID_CLIENTE,
CONTACTOS.NOMBRE AS CLIENTE,
ARTICULOS.ID,
ARTICULOS.FAMILIA,
ARTICULOS.REFERENCIA,
ARTICULOS.REFERENCIA_PROV,
ARTICULOS.DESCRIPCION,
SUM(COALESCE(ALBARANES_CLIENTE_DETALLES.CANTIDAD, 0))
FROM ALBARANES_CLIENTE_DETALLES
LEFT JOIN ALBARANES_CLIENTE
ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = ALBARANES_CLIENTE.ID)
LEFT JOIN CONTACTOS
ON (ALBARANES_CLIENTE.ID_CLIENTE = CONTACTOS.ID)
LEFT JOIN ALMACENES
ON (ALBARANES_CLIENTE.ID_ALMACEN = ALMACENES.ID)
LEFT JOIN ARTICULOS
ON (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID)
LEFT JOIN V_ALB_CLI_SITUACION
ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = V_ALB_CLI_SITUACION.ID)
/*Quitamos aquellos detalles que no tengan cabecera existente
aquellos que no se correspondan con un almac<EFBFBD>n es decir albaranes libres
que el albaran este pendiente (los articulos estan reservados en el almacen)
aquellos que no se correspondan con art<EFBFBD>culos existentes en el catalogo
y que no sean inventariables*/
WHERE (ALBARANES_CLIENTE.ID IS NOT NULL)
AND (ALBARANES_CLIENTE.ID_ALMACEN IS NOT NULL)
AND (V_ALB_CLI_SITUACION.SITUACION = 'PENDIENTE')
AND (ARTICULOS.ID is not null)
AND (ARTICULOS.ELIMINADO = 0)
AND (ARTICULOS.INVENTARIABLE = 1)
GROUP BY
ALBARANES_CLIENTE_DETALLES.ID_ALBARAN,
ALBARANES_CLIENTE.ID_EMPRESA,
ALBARANES_CLIENTE.REFERENCIA,
V_ALB_CLI_SITUACION.SITUACION,
ALBARANES_CLIENTE.FECHA_PREVISTA_ENVIO,
ALBARANES_CLIENTE.ID_ALMACEN,
ALMACENES.NOMBRE,
ALBARANES_CLIENTE.ID_CLIENTE,
CONTACTOS.NOMBRE,
ARTICULOS.ID,
ARTICULOS.FAMILIA,
ARTICULOS.REFERENCIA,
ARTICULOS.REFERENCIA_PROV,
ARTICULOS.DESCRIPCION
;
/* 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,
CANTIDAD)
AS
SELECT ID_PEDIDO, ID_ARTICULO, SUM(CANTIDAD) AS CANTIDAD
FROM V_ALB_PROV_DETALLES
WHERE (ID_PEDIDO is not null)
GROUP BY ID_PEDIDO, ID_ARTICULO
;
/* View: V_PED_PROV_DETALLES */
CREATE VIEW V_PED_PROV_DETALLES(
ID_PEDIDO,
ID_ALMACEN,
ID_ARTICULO,
CANTIDAD)
AS
SELECT PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO,
PEDIDOS_PROVEEDOR.ID_ALMACEN,
COALESCE(PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, 0),
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
;
/* View: V_PED_PROV_ARTICULOS_AUX */
CREATE VIEW V_PED_PROV_ARTICULOS_AUX(
ID_PEDIDO,
ID_ARTICULO,
CANTIDAD_PEDIDA,
CANTIDAD_RECIBIDA)
AS
SELECT
V_PED_PROV_DETALLES.ID_PEDIDO,
V_PED_PROV_DETALLES.ID_ARTICULO,
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,
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,
CANTIDAD_PEDIDA,
CANTIDAD_RECIBIDA,
CANTIDAD_PENDIENTE)
AS
SELECT ID_PEDIDO,
/*PEDIDOS_PROVEEDOR.ID_ALMACEN,*/
ID_ARTICULO,
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
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 */
CREATE VIEW V_INV_RESERVAS(
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
;
/* 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,
NOMBRE,
ID_ARTICULO,
REFERENCIA,
FAMILIA,
DESCRIPCION,
REFERENCIA_PROV,
PRECIO_NETO,
STOCK,
UNIDADES_ALMACEN,
COSTE_UNIDADES,
RESERVA,
PENDIENTE_RECEPCION)
AS
SELECT ID_ALMACEN,
ALMACENES.ID_EMPRESA,
ALMACENES.NOMBRE,
ID_ARTICULO,
ARTICULOS.REFERENCIA,
ARTICULOS.FAMILIA,
ARTICULOS.DESCRIPCION,
ARTICULOS.REFERENCIA_PROV,
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.NOMBRE,
ID_ARTICULO,
ARTICULOS.REFERENCIA,
ARTICULOS.FAMILIA,
ARTICULOS.DESCRIPCION,
ARTICULOS.REFERENCIA_PROV,
ARTICULOS.PRECIO_NETO
;
/* 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,
REFERENCIA,
SITUACION,
FECHA_ENVIO,
FECHA_PEDIDO,
FECHA_CONFIRMACION,
FECHA_ENTREGA,
ID_ALMACEN,
NOMBRE_ALMACEN,
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_TIENDA,
TIENDA)
AS
SELECT
PEDIDOS_PROVEEDOR.ID,
PEDIDOS_PROVEEDOR.ID_EMPRESA,
PEDIDOS_PROVEEDOR.ID_PROVEEDOR,
CONTACTOS.NOMBRE,
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.NOMBRE AS NOMBRE_ALMACEN,
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_TIENDA,
COALESCE(EMPRESAS_TIENDAS.NOMBRE, 'Todas') AS TIENDA
FROM
PEDIDOS_PROVEEDOR
INNER JOIN CONTACTOS ON (CONTACTOS.ID = PEDIDOS_PROVEEDOR.ID_PROVEEDOR)
INNER 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 PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = PEDIDOS_PROVEEDOR.ID_PEDIDO_CLIENTE)
LEFT OUTER JOIN EMPRESAS_TIENDAS ON (EMPRESAS_TIENDAS.ID = PEDIDOS_PROVEEDOR.ID_TIENDA)
;
/* View: V_PERFILES */
CREATE VIEW V_PERFILES(
ID,
USERNAME,
LOGIN,
TIPO)
AS
SELECT
ID, USERNAME, LOGIN, TIPO
FROM
USUARIOS
WHERE TIPO = 'P'
ORDER BY USERNAME
;
/* View: V_PRESUPUESTOS_CLIENTE */
CREATE VIEW V_PRESUPUESTOS_CLIENTE(
ID,
ID_EMPRESA,
FECHA_PRESUPUESTO,
FECHA_VIGENCIA,
FECHA_DECISION,
REFERENCIA,
SITUACION,
ID_CLIENTE,
ID_DIRECCION,
NIF_CIF,
NOMBRE,
PERSONA_CONTACTO,
FORMA_PAGO,
PLAZO_ENTREGA,
OBSERVACIONES,
INCIDENCIAS,
INCIDENCIAS_ACTIVAS,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
IMPORTE_NETO,
IMPORTE_PORTE,
DESCUENTO,
IMPORTE_DESCUENTO,
BASE_IMPONIBLE,
ID_TIPO_IVA,
IVA,
IMPORTE_IVA,
RE,
IMPORTE_RE,
RECARGO_EQUIVALENCIA,
IMPORTE_TOTAL,
ID_FORMA_PAGO,
ID_TIENDA,
TIENDA,
ID_VENDEDOR,
VENDEDOR,
ID_CONTRATO,
REF_CONTRATO,
NO_VALORADO,
TIPO_PRESUPUESTO)
AS
SELECT
PRESUPUESTOS_CLIENTE.ID,
/* PRESUPUESTOS_CLIENTE.ID_EMPRESA,*/
EMPRESAS_CONTACTOS.ID_EMPRESA,
PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,
PRESUPUESTOS_CLIENTE.FECHA_VIGENCIA,
PRESUPUESTOS_CLIENTE.FECHA_DECISION,
PRESUPUESTOS_CLIENTE.REFERENCIA,
PRESUPUESTOS_CLIENTE.SITUACION,
PRESUPUESTOS_CLIENTE.ID_CLIENTE,
PRESUPUESTOS_CLIENTE.ID_DIRECCION,
CONTACTOS.NIF_CIF,
CONTACTOS.NOMBRE,
PRESUPUESTOS_CLIENTE.PERSONA_CONTACTO,
PRESUPUESTOS_CLIENTE.FORMA_PAGO,
PRESUPUESTOS_CLIENTE.PLAZO_ENTREGA,
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.ID_TIPO_IVA,
PRESUPUESTOS_CLIENTE.IVA,
PRESUPUESTOS_CLIENTE.IMPORTE_IVA,
PRESUPUESTOS_CLIENTE.RE,
PRESUPUESTOS_CLIENTE.IMPORTE_RE,
PRESUPUESTOS_CLIENTE.RECARGO_EQUIVALENCIA,
PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL,
PRESUPUESTOS_CLIENTE.ID_FORMA_PAGO,
PRESUPUESTOS_CLIENTE.id_tienda,
COALESCE(EMPRESAS_TIENDAS.NOMBRE, 'Todas') AS TIENDA,
PRESUPUESTOS_CLIENTE.ID_VENDEDOR,
CONTACTOS2.NOMBRE AS VENDEDOR,
PRESUPUESTOS_CLIENTE.ID_CONTRATO,
CONTRATOS_CLIENTE.REFERENCIA,
PRESUPUESTOS_CLIENTE.NO_VALORADO,
PRESUPUESTOS_CLIENTE.TIPO_PRESUPUESTO
FROM
PRESUPUESTOS_CLIENTE
LEFT OUTER JOIN CONTACTOS ON (PRESUPUESTOS_CLIENTE.ID_CLIENTE = CONTACTOS.ID)
LEFT JOIN EMPRESAS_CONTACTOS ON (EMPRESAS_CONTACTOS.ID_CONTACTO = CONTACTOS.ID)
LEFT OUTER JOIN CONTACTOS CONTACTOS2 ON (PRESUPUESTOS_CLIENTE.ID_VENDEDOR = CONTACTOS2.ID)
LEFT OUTER JOIN EMPRESAS_TIENDAS ON (EMPRESAS_TIENDAS.ID = PRESUPUESTOS_CLIENTE.ID_TIENDA)
LEFT OUTER JOIN CONTRATOS_CLIENTE ON (CONTRATOS_CLIENTE.ID = PRESUPUESTOS_CLIENTE.ID_CONTRATO)
;
/* View: V_CONTRATOS_CLIENTE */
CREATE VIEW V_CONTRATOS_CLIENTE(
ID,
ID_EMPRESA,
ID_CLIENTE,
NOMBRE_CLIENTE,
REF_CLIENTE,
NOMBRE_COMERCIAL_CLIENTE,
NIF_CIF,
NOMBRE,
ID_DIRECCION,
CALLE,
POBLACION,
PROVINCIA,
CODIGO_POSTAL,
TELEFONO,
MOVIL,
REFERENCIA,
FECHA_CONTRATO,
SITUACION,
FORMA_PAGO,
PLAZO_ENTREGA,
OBSERVACIONES,
INCIDENCIAS,
INCIDENCIAS_ACTIVAS,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
RECARGO_EQUIVALENCIA,
RE,
IMPORTE_RE,
ID_TIPO_IVA,
IVA,
IMPORTE_IVA,
IMPORTE_NETO,
IMPORTE_PORTE,
ID_TIENDA,
TIENDA,
BASE_IMPONIBLE,
DESCUENTO,
IMPORTE_DESCUENTO,
IMPORTE_TOTAL,
ID_FORMA_PAGO,
ID_VENDEDOR,
VENDEDOR,
PERSONA_CONTACTO,
TIPO_CONTRATO)
AS
SELECT CONTRATOS_CLIENTE.ID,
/* CONTRATOS_CLIENTE.ID_EMPRESA,*/
EMPRESAS_CONTACTOS.ID_EMPRESA,
CONTRATOS_CLIENTE.ID_CLIENTE,
CONTACTOS.NOMBRE,
CONTACTOS.REFERENCIA,
CLIENTES_DATOS.NOMBRE_COMERCIAL,
CONTRATOS_CLIENTE.NIF_CIF,
CONTRATOS_CLIENTE.NOMBRE,
CONTRATOS_CLIENTE.ID_DIRECCION,
CONTRATOS_CLIENTE.CALLE,
CONTRATOS_CLIENTE.POBLACION,
CONTRATOS_CLIENTE.PROVINCIA,
CONTRATOS_CLIENTE.CODIGO_POSTAL,
CONTRATOS_CLIENTE.TELEFONO,
CONTRATOS_CLIENTE.MOVIL,
CONTRATOS_CLIENTE.REFERENCIA,
CONTRATOS_CLIENTE.FECHA_CONTRATO,
CONTRATOS_CLIENTE.SITUACION,
CONTRATOS_CLIENTE.FORMA_PAGO,
CONTRATOS_CLIENTE.PLAZO_ENTREGA,
CONTRATOS_CLIENTE.OBSERVACIONES,
CONTRATOS_CLIENTE.INCIDENCIAS,
CONTRATOS_CLIENTE.INCIDENCIAS_ACTIVAS,
CONTRATOS_CLIENTE.FECHA_ALTA,
CONTRATOS_CLIENTE.FECHA_MODIFICACION,
CONTRATOS_CLIENTE.USUARIO,
CONTRATOS_CLIENTE.RECARGO_EQUIVALENCIA,
CONTRATOS_CLIENTE.RE,
CONTRATOS_CLIENTE.IMPORTE_RE,
CONTRATOS_CLIENTE.ID_TIPO_IVA,
CONTRATOS_CLIENTE.IVA,
CONTRATOS_CLIENTE.IMPORTE_IVA,
CONTRATOS_CLIENTE.IMPORTE_NETO,
CONTRATOS_CLIENTE.IMPORTE_PORTE,
CONTRATOS_CLIENTE.ID_TIENDA,
COALESCE(EMPRESAS_TIENDAS.NOMBRE, 'Todas') AS TIENDA,
CONTRATOS_CLIENTE.BASE_IMPONIBLE,
CONTRATOS_CLIENTE.DESCUENTO,
CONTRATOS_CLIENTE.IMPORTE_DESCUENTO,
CONTRATOS_CLIENTE.IMPORTE_TOTAL,
CONTRATOS_CLIENTE.ID_FORMA_PAGO,
CONTRATOS_CLIENTE.ID_VENDEDOR,
CONTACTOS2.NOMBRE AS VENDEDOR,
CONTRATOS_CLIENTE.PERSONA_CONTACTO,
CONTRATOS_CLIENTE.TIPO_CONTRATO
FROM CONTRATOS_CLIENTE
LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = CONTRATOS_CLIENTE.ID_CLIENTE)
LEFT JOIN EMPRESAS_CONTACTOS ON (EMPRESAS_CONTACTOS.ID_CONTACTO = CONTACTOS.ID)
LEFT OUTER JOIN CONTACTOS CONTACTOS2 ON (CONTRATOS_CLIENTE.ID_VENDEDOR = CONTACTOS2.ID)
INNER JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CONTRATOS_CLIENTE.ID_CLIENTE)
LEFT JOIN EMPRESAS_TIENDAS ON (EMPRESAS_TIENDAS.ID = CONTRATOS_CLIENTE.ID_TIENDA)
;
/* 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
;
/* Create view: V_REC_PRO_COMPENSADOS (ViwData.CreateDependDef) */
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;
/* Create view: V_RECIBOS_CLIENTE */
CREATE VIEW V_RECIBOS_CLIENTE(
ID,
ID_RECIBO_COMPENSADO,
REFERENCIA_REC_COMPENSADO,
REFERENCIA,
SITUACION,
ID_FACTURA,
FECHA_FACTURA,
FORMA_PAGO_FACTURA,
IMPORTE_FACTURA,
ID_REMESA,
REFERENCIA_REMESA,
FECHA_EMISION,
FECHA_VENCIMIENTO,
DESCRIPCION,
OBSERVACIONES,
IMPORTE,
OTROS_GASTOS,
IMPORTE_TOTAL,
ID_EMPRESA,
ID_CLIENTE,
NOMBRE_CLIENTE,
ENTIDAD_CLIENTE,
SUCURSAL_CLIENTE,
DC_CLIENTE,
CUENTA_CLIENTE,
NIF_CIF,
NOMBRE,
CALLE,
POBLACION,
CODIGO_POSTAL,
PROVINCIA,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_TIENDA,
TIENDA)
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,
FACTURAS_CLIENTE.FECHA_FACTURA,
FORMAS_PAGO.DESCRIPCION,
FACTURAS_CLIENTE.IMPORTE_TOTAL,
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),
RECIBOS_CLIENTE.ID_EMPRESA,
RECIBOS_CLIENTE.ID_CLIENTE,
CONTACTOS.NOMBRE,
CONTACTOS_DATOS_BANCO.ENTIDAD,
CONTACTOS_DATOS_BANCO.SUCURSAL,
CONTACTOS_DATOS_BANCO.DC,
CONTACTOS_DATOS_BANCO.CUENTA,
RECIBOS_CLIENTE.NIF_CIF,
RECIBOS_CLIENTE.NOMBRE,
RECIBOS_CLIENTE.CALLE,
RECIBOS_CLIENTE.POBLACION,
RECIBOS_CLIENTE.CODIGO_POSTAL,
RECIBOS_CLIENTE.PROVINCIA,
RECIBOS_CLIENTE.FECHA_ALTA,
RECIBOS_CLIENTE.FECHA_MODIFICACION,
RECIBOS_CLIENTE.USUARIO,
RECIBOS_CLIENTE.ID_TIENDA,
COALESCE(EMPRESAS_TIENDAS.NOMBRE, 'Todas') AS TIENDA
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 CONTACTOS
ON (CONTACTOS.ID = RECIBOS_CLIENTE.ID_CLIENTE)
LEFT JOIN CONTACTOS_DATOS_BANCO
ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = CONTACTOS.ID)
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)
LEFT JOIN EMPRESAS_TIENDAS
ON (EMPRESAS_TIENDAS.ID = RECIBOS_CLIENTE.ID_TIENDA);
;
/* Create view: V_RECIBOS_PROVEEDOR (ViwData.CreateDependDef) */
CREATE VIEW V_RECIBOS_PROVEEDOR(
ID,
ID_RECIBO_COMPENSADO,
REFERENCIA_REC_COMPENSADO,
REFERENCIA,
REFERENCIA_PROVEEDOR,
SITUACION,
ID_FACTURA,
REFERENCIA_FACTURA_PROV,
FECHA_FACTURA,
FORMA_PAGO_FACTURA,
IMPORTE_FACTURA,
ID_REMESA,
REFERENCIA_REMESA,
FECHA_EMISION,
FECHA_VENCIMIENTO,
DESCRIPCION,
OBSERVACIONES,
IMPORTE,
OTROS_GASTOS,
IMPORTE_TOTAL,
ID_EMPRESA,
ID_PROVEEDOR,
NOMBRE_PROVEEDOR,
ENTIDAD_PROVEEDOR,
SUCURSAL_PROVEEDOR,
DC_PROVEEDOR,
CUENTA_PROVEEDOR,
NIF_CIF,
NOMBRE,
CALLE,
POBLACION,
CODIGO_POSTAL,
PROVINCIA,
FECHA_ALTA,
FECHA_MODIFICACION,
USUARIO,
ID_TIENDA,
TIENDA)
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,
FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR,
FACTURAS_PROVEEDOR.FECHA_FACTURA,
FORMAS_PAGO.DESCRIPCION,
FACTURAS_PROVEEDOR.IMPORTE_TOTAL,
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),
RECIBOS_PROVEEDOR.ID_EMPRESA,
RECIBOS_PROVEEDOR.ID_PROVEEDOR,
CONTACTOS.NOMBRE,
CONTACTOS_DATOS_BANCO.ENTIDAD,
CONTACTOS_DATOS_BANCO.SUCURSAL,
CONTACTOS_DATOS_BANCO.DC,
CONTACTOS_DATOS_BANCO.CUENTA,
RECIBOS_PROVEEDOR.NIF_CIF,
RECIBOS_PROVEEDOR.NOMBRE,
RECIBOS_PROVEEDOR.CALLE,
RECIBOS_PROVEEDOR.POBLACION,
RECIBOS_PROVEEDOR.CODIGO_POSTAL,
RECIBOS_PROVEEDOR.PROVINCIA,
RECIBOS_PROVEEDOR.FECHA_ALTA,
RECIBOS_PROVEEDOR.FECHA_MODIFICACION,
RECIBOS_PROVEEDOR.USUARIO,
RECIBOS_PROVEEDOR.ID_TIENDA,
COALESCE(EMPRESAS_TIENDAS.NOMBRE, 'Todas') AS TIENDA
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 = RECIBOS_PROVEEDOR.ID_PROVEEDOR)
LEFT JOIN CONTACTOS_DATOS_BANCO
ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = CONTACTOS.ID)
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)
LEFT JOIN EMPRESAS_TIENDAS
ON (EMPRESAS_TIENDAS.ID = RECIBOS_PROVEEDOR.ID_TIENDA);
;
/* Create view: V_REMESAS_CLIENTE */
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 (ViwData.CreateDependDef) */
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;
;
CREATE VIEW V_USUARIOS(
ID,
USERNAME,
LOGIN,
PASS,
PASSEXPIRED,
BLOQUEADO,
EMAIL,
USERDAYSSUN,
PRIVILEGED,
TIPO,
ID_PERFIL,
CHECKSUM)
AS
SELECT
USUARIOS.ID, USUARIOS.USERNAME, USUARIOS.LOGIN, USUARIOS.PASS, USUARIOS.PASSEXPIRED,
USUARIOS.BLOQUEADO, USUARIOS.EMAIL, USUARIOS.USERDAYSSUN, USUARIOS.PRIVILEGED,
USUARIOS.TIPO, USUARIOS.ID_PERFIL, USUARIOS.CHECKSUM
FROM
USUARIOS
WHERE TIPO = 'U'
ORDER BY USERNAME;
;
create view V_CONTRATOS_FACTURAS_PROVEEDOR (ID_CONTRATO, IMPORTE)
AS
select ID_CONTRATO, SUM(IMPORTE) as IMPORTE_GASTOS_PROVEEDORES
from facturas_proveedor_contratos
group by 1;
create view V_CONTRATOS_BENEFICIOS (ID, REFERENCIA, FECHA_CONTRATO, NOMBRE, NIF_CIF,
IMPORTE_NETO, IMPORTE_DESCUENTO, BASE_IMPONIBLE, IMPORTE_FACTURAS_PROVEEDOR,
IMPORTE_BENEFICIO, PORCENTAJE_BENEFICIO)
AS
select
contratos_cliente.ID,
contratos_cliente.referencia, contratos_cliente.fecha_contrato,
contratos_cliente.nombre, contratos_cliente.nif_cif,
contratos_cliente.importe_neto, contratos_cliente.importe_descuento,
contratos_cliente.base_imponible, v_contratos_facturas_proveedor.importe as importe_facturas_proveedor,
(contratos_cliente.base_imponible - coalesce(v_contratos_facturas_proveedor.importe, 0)) as importe_beneficio,
case when (contratos_cliente.base_imponible - coalesce(v_contratos_facturas_proveedor.importe, 0)) = 0 then 0
else (((contratos_cliente.base_imponible - coalesce(v_contratos_facturas_proveedor.importe, 0))*100)/contratos_cliente.importe_neto)
end as porcentaje_beneficio
from contratos_cliente
left join v_contratos_facturas_proveedor
on (v_contratos_facturas_proveedor.ID_CONTRATO = contratos_cliente.ID);
/******************************************************************************/
/**** Primary Keys ****/
/******************************************************************************/
ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT PK_ALBARANES_CLIENTE PRIMARY KEY (ID);
ALTER TABLE ALBARANES_CLIENTE_DETALLES ADD CONSTRAINT PK_ALBARANES_CLIENTE_DETALLES 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 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 CLIENTES_PROCEDENCIAS ADD CONSTRAINT PK_CLIENTES_PROCEDENCIAS PRIMARY KEY (ID);
ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT PK_COMISIONES_LIQUIDADAS PRIMARY KEY (ID);
ALTER TABLE COMISIONES_LIQ_VENDEDORES ADD CONSTRAINT PK_COMISIONES_LIQ_VENDEDORES 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_DIRECCIONES ADD CONSTRAINT PK_CONTACTOS_DIR PRIMARY KEY (ID);
ALTER TABLE CONTACTOS_DATOS_PERSONAL ADD CONSTRAINT PK_CONTACTOS_DATOS_PER PRIMARY KEY (ID);
ALTER TABLE CONT_APUNTES ADD CONSTRAINT PK_CONT_APUNTES PRIMARY KEY (ID);
ALTER TABLE CONT_ASIENTOS ADD CONSTRAINT PK_CONT_ASIENTOS PRIMARY KEY (ID);
ALTER TABLE CONT_BALANCES ADD CONSTRAINT PK_CONT_BALANCES PRIMARY KEY (ID);
ALTER TABLE CONT_CUENTAS ADD CONSTRAINT PK_CONT_CUENTAS PRIMARY KEY (ID);
ALTER TABLE CONT_CUENTAS_ESPECIALES ADD CONSTRAINT PK_CONT_CUENTAS_ESPECIALES PRIMARY KEY (ID);
ALTER TABLE CONT_EJERCICIOS ADD CONSTRAINT PK_CONT_EJERCICIOS PRIMARY KEY (ID);
ALTER TABLE CONT_EPIGRAFES ADD CONSTRAINT PK_CONT_EPIGRAFES PRIMARY KEY (ID);
ALTER TABLE CONT_SUBCUENTAS ADD CONSTRAINT PK_CONT_SUBCUENTAS 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_TIENDAS ADD CONSTRAINT PK_EMPRESAS_TIENDAS PRIMARY KEY (ID);
ALTER TABLE EMPRESAS_USUARIOS ADD CONSTRAINT PK_EMPRESAS_USUARIOS 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_CONTRATOS ADD CONSTRAINT PK_FACTURAS_PROVEEDOR_CONTRATOS 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 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_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_PROPIEDADES ADD CONSTRAINT PK_PRESUPUESTOS_PROPIEDADES PRIMARY KEY (ID);
ALTER TABLE PRESUPUESTOS_VALORES ADD CONSTRAINT PK_PRESUPUESTOS_VALORES PRIMARY KEY (ID);
ALTER TABLE PRESUPUESTOS_CLIENTE_CAPITULOS ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE_CAPITUL 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 CONTRATOS_CLIENTE ADD CONSTRAINT PK_CONTRATOS_CLIENTE PRIMARY KEY (ID);
ALTER TABLE CONTRATOS_CLIENTE_DETALLES ADD CONSTRAINT PK_CONTRATOS_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 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);
ALTER TABLE REFERENCIAS ADD CONSTRAINT PK_REFERENCIAS PRIMARY KEY (ID);
/******************************************************************************/
/**** Foreign Keys ****/
/******************************************************************************/
ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARANES_CLIENTE_1 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL;
ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE_2 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR_2 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 CONT_CUENTAS ADD CONSTRAINT FK_CONT_CUENTAS_1 FOREIGN KEY (ID_EJERCICIO) REFERENCES CONT_EJERCICIOS (ID) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE CONT_EPIGRAFES ADD CONSTRAINT FK_CONT_EPIGRAFES_1 FOREIGN KEY (ID_EJERCICIO) REFERENCES CONT_EJERCICIOS (ID) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE CONT_SUBCUENTAS ADD CONSTRAINT FK_CONT_SUBCUENTAS_1 FOREIGN KEY (ID_EJERCICIO) REFERENCES CONT_EJERCICIOS (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 EMPRESAS_TIENDAS ADD CONSTRAINT FK_EMPRESAS_TIENDAS_1 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 FACTURAS_PROVEEDOR_DETALLES ADD CONSTRAINT FK_FACTURAS_PRO_DET_ID_FACTURA FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE FACTURAS_PROVEEDOR_CONTRATOS ADD CONSTRAINT FK_FACTURAS_PROVEEDOR_CONTRATO2 FOREIGN KEY (ID_CONTRATO) REFERENCES CONTRATOS_CLIENTE (ID) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE FACTURAS_PROVEEDOR_CONTRATOS ADD CONSTRAINT FK_FACTURAS_PROVEEDOR_CONTRATOS FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE MOVIMIENTOS ADD CONSTRAINT FK_MOVIMIENTOS FOREIGN KEY (ID_ARTICULO) REFERENCES ARTICULOS (ID);
ALTER TABLE MOVIMIENTOS ADD CONSTRAINT FK_MOVIMIENTOS2 FOREIGN KEY (ID_ALMACEN) REFERENCES ALMACENES (ID);
ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT FK_PEDIDOS_CLIENTE FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID);
ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT FK_PEDIDOS_CLIENTE_ID_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID);
ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID);
ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR2 FOREIGN KEY (ID_PROVEEDOR) REFERENCES CONTACTOS (ID);
ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT FK_PEDIDOS_PROV_DET_ID_PEDIDO FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE;
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;
ALTER TABLE PAGOS_CLIENTE ADD CONSTRAINT FK_PAGOS_CLIENTE_1 FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_CLIENTE (ID);
ALTER TABLE PAGOS_PROVEEDOR ADD CONSTRAINT FK_PAGOS_PROVEEDOR_1 FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_PROVEEDOR (ID);
ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT FK_PRESUPUESTOS_CLIENTE_1 FOREIGN KEY (ID_CONTRATO) REFERENCES CONTRATOS_CLIENTE (ID) ON DELETE SET NULL 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 IDX_ALBARANES_CLIENTE_DETALLES1 ON ALBARANES_CLIENTE_DETALLES (ID_ARTICULO);
CREATE INDEX IDX_ALBARANES_CLIENTE_DETALLES2 ON ALBARANES_CLIENTE_DETALLES (ID_ALBARAN);
CREATE INDEX IDX_ALBARANES_PROVEEDOR_1 ON ALBARANES_PROVEEDOR (ID_ALMACEN);
CREATE INDEX IDX_ALBARANES_PROVEEDOR_2 ON ALBARANES_PROVEEDOR (ID_FORMA_PAGO);
CREATE INDEX IDX_ALBARANES_PROVEEDOR_3 ON ALBARANES_PROVEEDOR (ID_PEDIDO);
CREATE INDEX IDX_ALBARANES_PROVEEDOR_4 ON ALBARANES_PROVEEDOR (ID_FACTURA);
CREATE INDEX IDX_ALBARANES_PROVEEDOR_5 ON ALBARANES_PROVEEDOR (TIPO);
CREATE INDEX IDX_ALBARANES_PROV_DETALLES ON ALBARANES_PROVEEDOR_DETALLES (ID_ALBARAN);
CREATE INDEX IDX_ALBARANES_PROV_DETALLES1 ON ALBARANES_PROVEEDOR_DETALLES (ID_ARTICULO);
CREATE INDEX IDX_ARTICULOS ON ARTICULOS (ID_PROVEEDOR);
CREATE INDEX IDX_CLIENTES_DATOS ON CLIENTES_DATOS (ID_TIPO_IVA);
CREATE INDEX IDX_CLIENTES_DATOS1 ON CLIENTES_DATOS (ID_FORMA_PAGO);
CREATE INDEX IDX_CLIENTES_DATOS_ID_AGENTE ON CLIENTES_DATOS (ID_AGENTE);
CREATE INDEX IDX_CLIENTES_DTOS_PROV_ID_CLI ON CLIENTES_DTOS_PROVEEDORES (ID_CLIENTE);
CREATE INDEX IDX_CLIENTES_DTOS_PROV_ID_PROV ON CLIENTES_DTOS_PROVEEDORES (ID_PROVEEDOR);
CREATE INDEX IDX_COMISIONES_LIQUIDADAS ON COMISIONES_LIQUIDADAS (ID_EMPRESA);
CREATE INDEX IDX_CONFIGURACION ON CONFIGURACION (ID_EMPRESA);
CREATE INDEX IDX_CONTACTOS_CATEGORIAS ON CONTACTOS_CATEGORIAS (ID_CONTACTO);
CREATE INDEX IDX_CONTACTOS_CATEGORIAS1 ON CONTACTOS_CATEGORIAS (ID_CATEGORIA);
CREATE INDEX IDX_CONTACTOS_DATOS_BANCO ON CONTACTOS_DATOS_BANCO (ID_CONTACTO);
CREATE INDEX IDX_CONTACTOS_DIR_ID_CONTACTO ON CONTACTOS_DIRECCIONES (ID_CONTACTO);
CREATE INDEX IDX_CONTACTOS_PER_ID_CONTACTO ON CONTACTOS_DATOS_PERSONAL (ID_CONTACTO);
CREATE INDEX CONT_APUNTES_IDX1 ON CONT_APUNTES (ID_ASIENTO);
CREATE INDEX CONT_APUNTES_IDX2 ON CONT_APUNTES (ID_SUBCUENTA);
CREATE INDEX CONT_ASIENTOS_IDX1 ON CONT_ASIENTOS (ID_FACTURA);
CREATE INDEX CONT_ASIENTOS_IDX2 ON CONT_ASIENTOS (ID_PAGO);
CREATE INDEX CONT_CUENTAS_IDX1 ON CONT_CUENTAS (ID_BALANCE);
CREATE INDEX CONT_CUENTAS_IDX2 ON CONT_CUENTAS (ID_EPIGRAFE);
CREATE INDEX CONT_SUBCUENTAS_IDX1 ON CONT_SUBCUENTAS (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 IDX_FACTURAS_CLIENTE_DETALLES1 ON FACTURAS_CLIENTE_DETALLES (ID_FACTURA);
CREATE INDEX IDX_FACTURAS_CLIENTE_DETALLES2 ON FACTURAS_CLIENTE_DETALLES (ID_ARTICULO);
CREATE INDEX IDX_FACTURAS_PROVEEDOR ON FACTURAS_PROVEEDOR (ID_PROVEEDOR);
CREATE INDEX IDX_FACTURAS_PROVEEDOR1 ON FACTURAS_PROVEEDOR (ID_FORMA_PAGO);
CREATE INDEX IDX_FACTURAS_PROVEEDOR2 ON FACTURAS_PROVEEDOR (ID_TIPO_IVA);
CREATE INDEX IDX_FACTURAS_PROVEEDOR_DETALLES ON FACTURAS_PROVEEDOR_DETALLES (ID_ARTICULO);
CREATE INDEX 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 IDX_PEDIDOS_CLIENTE ON PEDIDOS_CLIENTE (ID_FORMA_PAGO);
CREATE INDEX IDX_PEDIDOS_CLIENTE_DETALLES ON PEDIDOS_CLIENTE_DETALLES (ID_PEDIDO);
CREATE INDEX IDX_PEDIDOS_CLIENTE_DETALLES1 ON PEDIDOS_CLIENTE_DETALLES (ID_ARTICULO);
CREATE INDEX IDX_PEDIDOS_PROVEEDOR ON PEDIDOS_PROVEEDOR (ID_PEDIDO_CLIENTE);
CREATE INDEX IDX_PEDIDOS_PROVEEDOR1 ON PEDIDOS_PROVEEDOR (ID_ALMACEN);
CREATE INDEX IDX_PEDIDOS_PROVEEDOR2 ON PEDIDOS_PROVEEDOR (ID_FORMA_PAGO);
CREATE INDEX IDX_PEDIDOS_PROVEEDOR_DETALLES ON PEDIDOS_PROVEEDOR_DETALLES (ID_ARTICULO);
CREATE INDEX IDX_PERMISOS ON PERMISOS (ID_USUARIO);
CREATE INDEX IDX_PERMISOSEX ON PERMISOSEX (ID_USUARIO);
CREATE INDEX IDX_PROVEEDORES_DATOS ON PROVEEDORES_DATOS (ID_TIPO_IVA);
CREATE INDEX IDX_PROVEEDORES_DATOS1 ON PROVEEDORES_DATOS (ID_FORMA_PAGO);
CREATE INDEX IDX_RECIBOS_CLIENTE ON RECIBOS_CLIENTE (ID_RECIBO_COMPENSADO);
CREATE INDEX IDX_RECIBOS_PROVEEDOR ON RECIBOS_PROVEEDOR (ID_RECIBO_COMPENSADO);
CREATE INDEX IDX_REFERENCIAS ON REFERENCIAS (ID_EMPRESA);
CREATE INDEX IDX_REFERENCIAS2 ON REFERENCIAS (ID_TIENDA);
CREATE INDEX IDX_REMESAS_CLIENTE ON REMESAS_CLIENTE (ID_DATOS_BANCO);
CREATE INDEX IDX_REMESAS_PROVEEDOR ON REMESAS_PROVEEDOR (ID_DATOS_BANCO);
/******************************************************************************/
/**** Stored Procedures ****/
/******************************************************************************/
SET TERM ^ ;
ALTER PROCEDURE PROC_DELETE_ASIENTO_FACTURA (
IDFACTURA INTEGER,
TIPO VARCHAR(1))
AS
declare variable idasiento integer;
begin
SELECT ID FROM CONT_ASIENTOS
WHERE ID_FACTURA = :IDFACTURA
AND TIPO = :TIPO
INTO :IDASIENTO;
DELETE FROM CONT_APUNTES
WHERE ID_ASIENTO = :IDASIENTO;
DELETE FROM CONT_ASIENTOS
WHERE ID = :IDASIENTO;
suspend;
end
^
ALTER PROCEDURE PROC_DELETE_ASIENTO_PAGO (
IDPAGO INTEGER,
TIPO VARCHAR(1))
AS
declare variable idasiento integer;
begin
SELECT ID FROM CONT_ASIENTOS
WHERE ID_PAGO = :IDPAGO
AND TIPO = :TIPO INTO :IDASIENTO;
DELETE FROM CONT_APUNTES
WHERE ID_ASIENTO = :IDASIENTO;
DELETE FROM CONT_ASIENTOS
WHERE ID = :IDASIENTO;
suspend;
end
^
ALTER PROCEDURE PROC_NEW_ASIENTO_FACTURA_CLI (
idfactura integer,
id_subcuenta_venta integer)
as
declare variable ignorarcontabilidad integer;
declare variable referenciafactura varchar(255);
declare variable razon varchar(255);
declare variable fechafactura date;
declare variable baseimponible numeric(11,2);
declare variable idsubcuenta integer;
declare variable idasiento integer;
declare variable idejercicio integer;
declare variable orden integer;
declare variable importetotal numeric(11,2);
declare variable importeiva numeric(11,2);
declare variable importere numeric(11,2);
declare variable idempresa integer;
declare variable idcontacto integer;
begin
/*BUSCAMOS LA FACTURA DE LA QUE COMPROBAR SI HACER ASIENTO*/
SELECT FACTURAS_CLIENTE.ID_EMPRESA, FACTURAS_CLIENTE.IGNORAR_CONTABILIDAD, FACTURAS_CLIENTE.REFERENCIA,
FACTURAS_CLIENTE.ID_CLIENTE, FACTURAS_CLIENTE.NOMBRE, FACTURAS_CLIENTE.FECHA_FACTURA,
FACTURAS_CLIENTE.BASE_IMPONIBLE, FACTURAS_CLIENTE.IMPORTE_IVA, FACTURAS_CLIENTE.IMPORTE_RE, FACTURAS_CLIENTE.IMPORTE_TOTAL
FROM FACTURAS_CLIENTE
WHERE FACTURAS_CLIENTE.ID = :IDFACTURA INTO :IDEMPRESA, :IGNORARCONTABILIDAD, :REFERENCIAFACTURA,
:IDCONTACTO, :RAZON, :FECHAFACTURA, :BASEIMPONIBLE, :IMPORTEIVA, :IMPORTERE, :IMPORTETOTAL;
/*BUSCAMOS EL EJERCICIO ACTIVO PARA LA EMPRESA DE LA FACTURA*/
SELECT ID
FROM CONT_EJERCICIOS
WHERE ID_EMPRESA = :IDEMPRESA
AND ACTIVO = 1
INTO :IDEJERCICIO;
/*BUSCAMOS LA SUBCUENTA DEL EJERCICIO ACTIVO DE LA EMPRESA DE LA FACTURA PARA EL CLIENTE DE LA FACTURA*/
SELECT ID
FROM CONT_SUBCUENTAS
WHERE ID_CONTACTO = :IDCONTACTO
AND ID_EJERCICIO = :IDEJERCICIO
INTO :IDSUBCUENTA;
SELECT ID FROM CONT_ASIENTOS
WHERE ID_FACTURA = :IDFACTURA
AND TIPO = 'c' INTO :IDASIENTO;
/*SIEMPRE ELIMIAREMOS LOS APUNTES EXISTENTES DEL ASIENTO PARA VOLVERLOS A GENERAR*/
DELETE FROM CONT_APUNTES
WHERE ID_ASIENTO = :IDASIENTO;
/*EN EL CASO DE QUE SE DESEE IGNORAR LA FACTURA EN CONTABILIDAD BORRAMOS EL ASIENTO Y SE ACABO*/
if (IGNORARCONTABILIDAD <> 0) then
BEGIN
DELETE FROM CONT_ASIENTOS
WHERE ID = :IDASIENTO;
END
/*EN EL DE CONTABILIZAR LA FACTURA COMPROBAMOS SI EXISTE ASIENTO ASOCIADO A LA FACTURA*/
ELSE
BEGIN
/*MODIFICAMOS LOS DATOS DEL ASIENTO*/
IF (IDASIENTO <> 0) THEN
BEGIN
UPDATE CONT_ASIENTOS
SET FECHA_ASIENTO = :FECHAFACTURA
WHERE ID = :IDASIENTO;
END
/*INSERTAMOS LOS DATOS DEL NUEVO ASIENTO*/
ELSE
BEGIN
SELECT GEN_ID(GEN_CONT_ASIENTOS_ID, 1), COALESCE(max(V_CONT_DIARIO.ORDEN_ASIENTO),0) + 1
FROM V_CONT_DIARIO
WHERE V_CONT_DIARIO.ID_EJERCICIO = :IDEJERCICIO
INTO :IDASIENTO, :ORDEN;
INSERT INTO CONT_ASIENTOS (ID, FECHA_ASIENTO, ORDEN, ID_FACTURA, TIPO)
VALUES (:IDASIENTO, :FECHAFACTURA, :ORDEN, :IDFACTURA, 'c');
END
IF (IMPORTETOTAL < 0) THEN
BEGIN
/*INSERTAMOS LOS APUNTES DEL ABONO*/
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 1, -1, 'Abono de cliente: ' || :RAZON,
:REFERENCIAFACTURA, NULL, -1*(:IMPORTETOTAL));
END
ELSE
BEGIN
/*INSERTAMOS LOS APUNTES DE LA FACTURA*/
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 1, -1, 'Factura de cliente: ' || :RAZON,
:REFERENCIAFACTURA, :IMPORTETOTAL, NULL);
END
IF (IMPORTEIVA <> 0) THEN
BEGIN
SELECT CONT_SUBCUENTAS.ID FROM CONT_SUBCUENTAS
LEFT JOIN CONT_CUENTAS ON (CONT_CUENTAS.ID = CONT_SUBCUENTAS.ID_CUENTA)
WHERE CONT_CUENTAS.REF_CUENTA = 477
AND CONT_SUBCUENTAS.ID_EJERCICIO = :IDEJERCICIO
INTO :IDSUBCUENTA;
IF (IMPORTETOTAL < 0) THEN
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 2, -1, 'Abono de cliente: ' || :RAZON,
:REFERENCIAFACTURA || ' (IVA)', -1*(:IMPORTEIVA), NULL);
END
ELSE
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 2, -1, 'Factura de cliente: ' || :RAZON,
:REFERENCIAFACTURA || ' (IVA)', NULL, :IMPORTEIVA);
END
END
IF (IMPORTERE <> 0) THEN
BEGIN
SELECT CONT_SUBCUENTAS.ID FROM CONT_SUBCUENTAS
LEFT JOIN CONT_CUENTAS ON (CONT_CUENTAS.ID = CONT_SUBCUENTAS.ID_CUENTA)
WHERE CONT_CUENTAS.REF_CUENTA = 475
AND CONT_SUBCUENTAS.ID_EJERCICIO = :IDEJERCICIO
INTO :IDSUBCUENTA;
IF (IMPORTETOTAL < 0) THEN
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 3, -1, 'Abono de cliente: ' || :RAZON,
:REFERENCIAFACTURA || ' (RE)', -1*(:IMPORTERE), NULL);
END
ELSE
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 3, -1, 'Factura de cliente: ' || :RAZON,
:REFERENCIAFACTURA || ' (RE)', NULL, :IMPORTERE);
END
END
IF (BASEIMPONIBLE <> 0) THEN
BEGIN
IF (IMPORTETOTAL < 0) THEN
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :ID_SUBCUENTA_VENTA, 4, -1, 'Abono de cliente: ' || :RAZON,
:REFERENCIAFACTURA || ' (Base imponible)', -1*(:BASEIMPONIBLE), NULL);
END
ELSE
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :ID_SUBCUENTA_VENTA, 4, -1, 'Factura de cliente: ' || :RAZON,
:REFERENCIAFACTURA || ' (Base imponible)', NULL, :BASEIMPONIBLE);
END
END
END
suspend;
end
^
ALTER PROCEDURE PROC_NEW_ASIENTO_FACTURA_PROV (
idfactura integer,
id_subcuenta_compra integer)
as
declare variable ignorarcontabilidad integer;
declare variable referenciafactura varchar(255);
declare variable razon varchar(255);
declare variable fechafactura date;
declare variable baseimponible numeric(11,2);
declare variable idsubcuenta integer;
declare variable idasiento integer;
declare variable idejercicio integer;
declare variable orden integer;
declare variable importetotal numeric(11,2);
declare variable importeiva numeric(11,2);
declare variable importere numeric(11,2);
declare variable idempresa integer;
declare variable idcontacto integer;
begin
/*BUSCAMOS LA FACTURA DE LA QUE COMPROBAR SI HACER ASIENTO*/
SELECT FACTURAS_PROVEEDOR.ID_EMPRESA, FACTURAS_PROVEEDOR.IGNORAR_CONTABILIDAD,
FACTURAS_PROVEEDOR.REFERENCIA, FACTURAS_PROVEEDOR.ID_PROVEEDOR, FACTURAS_PROVEEDOR.NOMBRE, FACTURAS_PROVEEDOR.FECHA_FACTURA,
FACTURAS_PROVEEDOR.BASE_IMPONIBLE, FACTURAS_PROVEEDOR.IMPORTE_IVA, FACTURAS_PROVEEDOR.IMPORTE_RE, FACTURAS_PROVEEDOR.IMPORTE_TOTAL
FROM FACTURAS_PROVEEDOR
WHERE FACTURAS_PROVEEDOR.ID = :IDFACTURA INTO :IDEMPRESA, :IGNORARCONTABILIDAD, :REFERENCIAFACTURA,
:IDCONTACTO, :RAZON, :FECHAFACTURA, :BASEIMPONIBLE, :IMPORTEIVA, :IMPORTERE, :IMPORTETOTAL;
/*BUSCAMOS EL EJERCICIO ACTIVO PARA LA EMPRESA DE LA FACTURA*/
SELECT ID
FROM CONT_EJERCICIOS
WHERE ID_EMPRESA = :IDEMPRESA
AND ACTIVO = 1
INTO :IDEJERCICIO;
/*BUSCAMOS LA SUBCUENTA DEL EJERCICIO ACTIVO DE LA EMPRESA DE LA FACTURA PARA EL CLIENTE DE LA FACTURA*/
SELECT ID
FROM CONT_SUBCUENTAS
WHERE ID_CONTACTO = :IDCONTACTO
AND ID_EJERCICIO = :IDEJERCICIO
INTO :IDSUBCUENTA;
SELECT ID FROM CONT_ASIENTOS
WHERE ID_FACTURA = :IDFACTURA
AND TIPO = 'p' INTO :IDASIENTO;
/*SIEMPRE ELIMIAREMOS LOS APUNTES EXISTENTES DEL ASIENTO PARA VOLVERLOS A GENERAR*/
DELETE FROM CONT_APUNTES
WHERE ID_ASIENTO = :IDASIENTO;
/*EN EL CASO DE QUE SE DESEE IGNORAR LA FACTURA EN CONTABILIDAD BORRAMOS EL ASIENTO Y SE ACABO*/
if (IGNORARCONTABILIDAD <> 0) then
BEGIN
DELETE FROM CONT_ASIENTOS
WHERE ID = :IDASIENTO;
END
/*EN EL DE CONTABILIZAR LA FACTURA COMPROBAMOS SI EXISTE ASIENTO ASOCIADO A LA FACTURA*/
ELSE
BEGIN
/*MODIFICAMOS LOS DATOS DEL ASIENTO*/
IF (IDASIENTO <> 0) THEN
BEGIN
UPDATE CONT_ASIENTOS
SET FECHA_ASIENTO = :FECHAFACTURA
WHERE ID = :IDASIENTO;
END
/*INSERTAMOS LOS DATOS DEL NUEVO ASIENTO*/
ELSE
BEGIN
SELECT GEN_ID(GEN_CONT_ASIENTOS_ID, 1), COALESCE(max(V_CONT_DIARIO.ORDEN_ASIENTO),0) + 1
FROM V_CONT_DIARIO
WHERE V_CONT_DIARIO.ID_EJERCICIO = :IDEJERCICIO
INTO :IDASIENTO, :ORDEN;
INSERT INTO CONT_ASIENTOS (ID, FECHA_ASIENTO, ORDEN, ID_FACTURA, TIPO)
VALUES (:IDASIENTO, :FECHAFACTURA, :ORDEN, :IDFACTURA, 'p');
END
IF (IMPORTETOTAL < 0) THEN
BEGIN
/*INSERTAMOS LOS APUNTES DEL ABONO*/
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 1, -1, 'Abono de proveedor: ' || :RAZON,
:REFERENCIAFACTURA, -1*(:IMPORTETOTAL), NULL);
END
ELSE
BEGIN
/*INSERTAMOS LOS APUNTES DE LA FACTURA*/
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 1, -1, 'Factura de proveedor: ' || :RAZON,
:REFERENCIAFACTURA, NULL, :IMPORTETOTAL);
END
IF (IMPORTEIVA <> 0) THEN
BEGIN
SELECT CONT_SUBCUENTAS.ID FROM CONT_SUBCUENTAS
LEFT JOIN CONT_CUENTAS ON (CONT_CUENTAS.ID = CONT_SUBCUENTAS.ID_CUENTA)
WHERE CONT_CUENTAS.REF_CUENTA = 472
AND CONT_SUBCUENTAS.ID_EJERCICIO = :IDEJERCICIO
INTO :IDSUBCUENTA;
IF (IMPORTETOTAL < 0) THEN
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 2, -1, 'Abono de proveedor: ' || :RAZON,
:REFERENCIAFACTURA || ' (IVA)', NULL, -1*(:IMPORTEIVA));
END
ELSE
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 2, -1, 'Factura de proveedor: ' || :RAZON,
:REFERENCIAFACTURA || ' (IVA)', :IMPORTEIVA, NULL);
END
END
IF (IMPORTERE <> 0) THEN
BEGIN
SELECT CONT_SUBCUENTAS.ID FROM CONT_SUBCUENTAS
LEFT JOIN CONT_CUENTAS ON (CONT_CUENTAS.ID = CONT_SUBCUENTAS.ID_CUENTA)
WHERE CONT_CUENTAS.REF_CUENTA = 470
AND CONT_SUBCUENTAS.ID_EJERCICIO = :IDEJERCICIO
INTO :IDSUBCUENTA;
IF (IMPORTETOTAL < 0) THEN
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 3, -1, 'Abono de proveedor: ' || :RAZON,
:REFERENCIAFACTURA || ' (RE)', NULL, -1*(:IMPORTERE));
END
ELSE
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 3, -1, 'Factura de proveedor: ' || :RAZON,
:REFERENCIAFACTURA || ' (RE)', :IMPORTERE, NULL);
END
END
IF (BASEIMPONIBLE <> 0) THEN
BEGIN
IF (IMPORTETOTAL < 0) THEN
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :ID_SUBCUENTA_COMPRA, 4, -1, 'Abono de proveedor: ' || :RAZON,
:REFERENCIAFACTURA || ' (Base imponible)', NULL, -1*(:BASEIMPONIBLE));
END
ELSE
BEGIN
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :ID_SUBCUENTA_COMPRA, 4, -1, 'Factura de proveedor: ' || :RAZON,
:REFERENCIAFACTURA || ' (Base imponible)', :BASEIMPONIBLE, NULL);
END
END
END
suspend;
end
^
ALTER PROCEDURE PROC_NEW_ASIENTO_PAGO_CLI (
idpago integer,
idsubcuentapago integer)
as
declare variable ignorarcontabilidad integer;
declare variable referenciarecibo varchar(255);
declare variable fechapago date;
declare variable tipopago varchar(255);
declare variable importe numeric(11,2);
declare variable idsubcuenta integer;
declare variable idasiento integer;
declare variable idejercicio integer;
declare variable orden integer;
declare variable debe numeric(11,2);
declare variable haber numeric(11,2);
declare variable idempresa integer;
declare variable idcontacto integer;
declare variable concepto varchar(2000);
begin
/*BUSCAMOS EL PAGO PARA COMPROBAR SI HACER ASIENTO*/
SELECT PAGOS_CLIENTE.IGNORAR_CONTABILIDAD, RECIBOS_CLIENTE.ID_EMPRESA, RECIBOS_CLIENTE.ID_CLIENTE,
RECIBOS_CLIENTE.REFERENCIA || ': ' || RECIBOS_CLIENTE.NOMBRE,
PAGOS_CLIENTE.FECHA_PAGO, PAGOS_CLIENTE.TIPO,
PAGOS_CLIENTE.TIPO || ': ' || COALESCE(RECIBOS_CLIENTE.DESCRIPCION, 'No hay descripci<63>n'),
RECIBOS_CLIENTE.IMPORTE
FROM PAGOS_CLIENTE
LEFT JOIN RECIBOS_CLIENTE ON (RECIBOS_CLIENTE.ID = PAGOS_CLIENTE.ID_RECIBO)
WHERE PAGOS_CLIENTE.ID = :IDPAGO
INTO :IGNORARCONTABILIDAD, :IDEMPRESA, :IDCONTACTO, :REFERENCIARECIBO, :FECHAPAGO, :TIPOPAGO, :CONCEPTO, :IMPORTE;
/*BUSCAMOS EL EJERCICIO ACTIVO PARA LA EMPRESA DE LA FACTURA*/
SELECT ID
FROM CONT_EJERCICIOS
WHERE ID_EMPRESA = :IDEMPRESA
AND ACTIVO = 1
INTO :IDEJERCICIO;
/*BUSCAMOS LA SUBCUENTA DEL EJERCICIO ACTIVO DE LA EMPRESA DE LA FACTURA PARA EL CLIENTE DE LA FACTURA*/
SELECT ID
FROM CONT_SUBCUENTAS
WHERE ID_CONTACTO = :IDCONTACTO
AND ID_EJERCICIO = :IDEJERCICIO
INTO :IDSUBCUENTA;
SELECT ID FROM CONT_ASIENTOS
WHERE ID_PAGO = :IDPAGO
AND TIPO = 'c' INTO :IDASIENTO;
/*SIEMPRE ELIMIAREMOS LOS APUNTES EXISTENTES DEL ASIENTO PARA VOLVERLOS A GENERAR*/
DELETE FROM CONT_APUNTES
WHERE ID_ASIENTO = :IDASIENTO;
/*EN EL CASO DE QUE SE DESEE IGNORAR EL PAGO EN CONTABILIDAD BORRAMOS EL ASIENTO Y SE ACABO*/
if (IGNORARCONTABILIDAD <> 0) then
BEGIN
DELETE FROM CONT_ASIENTOS
WHERE ID = :IDASIENTO;
END
/*EN EL DE CONTABILIZAR EL PAGO COMPROBAMOS SI EXISTE ASIENTO ASOCIADO AL PAGO*/
ELSE
BEGIN
/*MODIFICAMOS LOS DATOS DEL ASIENTO*/
IF (IDASIENTO <> 0) THEN
BEGIN
UPDATE CONT_ASIENTOS
SET FECHA_ASIENTO = :FECHAPAGO
WHERE ID = :IDASIENTO;
END
/*INSERTAMOS LOS DATOS DEL NUEVO ASIENTO*/
ELSE
BEGIN
SELECT GEN_ID(GEN_CONT_ASIENTOS_ID, 1), COALESCE(max(V_CONT_DIARIO.ORDEN_ASIENTO),0) + 1
FROM V_CONT_DIARIO
WHERE V_CONT_DIARIO.ID_EJERCICIO = :IDEJERCICIO
INTO :IDASIENTO, :ORDEN;
INSERT INTO CONT_ASIENTOS (ID, FECHA_ASIENTO, ORDEN, ID_PAGO, TIPO)
VALUES (:IDASIENTO, :FECHAPAGO, :ORDEN, :IDPAGO, 'c');
END
/*INSERTAMOS LOS APUNTES*/
if (TIPOPAGO = 'Pago') then
begin
DEBE = NULL;
HABER = :IMPORTE;
end
else
begin
DEBE = :IMPORTE;
HABER = NULL;
end
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 1, -1, :CONCEPTO,
:REFERENCIARECIBO, :DEBE, :HABER);
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTAPAGO, 2, -1, :CONCEPTO,
:REFERENCIARECIBO, :HABER, :DEBE);
END
suspend;
end
^
ALTER PROCEDURE PROC_NEW_ASIENTO_PAGO_PROV (
idpago integer,
idsubcuentapago integer)
as
declare variable ignorarcontabilidad integer;
declare variable referenciarecibo varchar(255);
declare variable fechapago date;
declare variable tipopago varchar(255);
declare variable importe numeric(11,2);
declare variable idsubcuenta integer;
declare variable idasiento integer;
declare variable idejercicio integer;
declare variable orden integer;
declare variable debe numeric(11,2);
declare variable haber numeric(11,2);
declare variable idempresa integer;
declare variable idcontacto integer;
declare variable concepto varchar(2000);
begin
/*BUSCAMOS EL PAGO PARA COMPROBAR SI HACER ASIENTO*/
SELECT PAGOS_PROVEEDOR.IGNORAR_CONTABILIDAD, RECIBOS_PROVEEDOR.ID_EMPRESA, RECIBOS_PROVEEDOR.ID_PROVEEDOR,
RECIBOS_PROVEEDOR.REFERENCIA || ': ' || RECIBOS_PROVEEDOR.NOMBRE,
PAGOS_PROVEEDOR.FECHA_PAGO, PAGOS_PROVEEDOR.TIPO,
PAGOS_PROVEEDOR.TIPO || ': ' || COALESCE(RECIBOS_PROVEEDOR.DESCRIPCION, 'No hay descripci<63>n'),
RECIBOS_PROVEEDOR.IMPORTE
FROM PAGOS_PROVEEDOR
LEFT JOIN RECIBOS_PROVEEDOR ON (RECIBOS_PROVEEDOR.ID = PAGOS_PROVEEDOR.ID_RECIBO)
WHERE PAGOS_PROVEEDOR.ID = :IDPAGO
INTO :IGNORARCONTABILIDAD, :IDEMPRESA, :IDCONTACTO, :REFERENCIARECIBO, :FECHAPAGO, :TIPOPAGO, :CONCEPTO, :IMPORTE;
/*BUSCAMOS EL EJERCICIO ACTIVO PARA LA EMPRESA DE LA FACTURA*/
SELECT ID
FROM CONT_EJERCICIOS
WHERE ID_EMPRESA = :IDEMPRESA
AND ACTIVO = 1
INTO :IDEJERCICIO;
/*BUSCAMOS LA SUBCUENTA DEL EJERCICIO ACTIVO DE LA EMPRESA DE LA FACTURA PARA EL CLIENTE DE LA FACTURA*/
SELECT ID
FROM CONT_SUBCUENTAS
WHERE ID_CONTACTO = :IDCONTACTO
AND ID_EJERCICIO = :IDEJERCICIO
INTO :IDSUBCUENTA;
SELECT ID FROM CONT_ASIENTOS
WHERE ID_PAGO = :IDPAGO
AND TIPO = 'p' INTO :IDASIENTO;
/*SIEMPRE ELIMIAREMOS LOS APUNTES EXISTENTES DEL ASIENTO PARA VOLVERLOS A GENERAR*/
DELETE FROM CONT_APUNTES
WHERE ID_ASIENTO = :IDASIENTO;
/*EN EL CASO DE QUE SE DESEE IGNORAR EL PAGO EN CONTABILIDAD BORRAMOS EL ASIENTO Y SE ACABO*/
if (IGNORARCONTABILIDAD <> 0) then
BEGIN
DELETE FROM CONT_ASIENTOS
WHERE ID = :IDASIENTO;
END
/*EN EL DE CONTABILIZAR EL PAGO COMPROBAMOS SI EXISTE ASIENTO ASOCIADO AL PAGO*/
ELSE
BEGIN
/*MODIFICAMOS LOS DATOS DEL ASIENTO*/
IF (IDASIENTO <> 0) THEN
BEGIN
UPDATE CONT_ASIENTOS
SET FECHA_ASIENTO = :FECHAPAGO
WHERE ID = :IDASIENTO;
END
/*INSERTAMOS LOS DATOS DEL NUEVO ASIENTO*/
ELSE
BEGIN
SELECT GEN_ID(GEN_CONT_ASIENTOS_ID, 1), COALESCE(max(V_CONT_DIARIO.ORDEN_ASIENTO),0) + 1
FROM V_CONT_DIARIO
WHERE V_CONT_DIARIO.ID_EJERCICIO = :IDEJERCICIO
INTO :IDASIENTO, :ORDEN;
INSERT INTO CONT_ASIENTOS (ID, FECHA_ASIENTO, ORDEN, ID_PAGO, TIPO)
VALUES (:IDASIENTO, :FECHAPAGO, :ORDEN, :IDPAGO, 'p');
END
/*INSERTAMOS LOS APUNTES*/
if (TIPOPAGO = 'Pago') then
begin
DEBE = :IMPORTE;
HABER = NULL;
end
else
begin
DEBE = NULL;
HABER = :IMPORTE;
end
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 1, -1, :CONCEPTO,
:REFERENCIARECIBO, :DEBE, :HABER);
INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DOCUMENTO, DEBE, HABER)
VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTAPAGO, 2, -1, :CONCEPTO,
:REFERENCIARECIBO, :HABER, :DEBE);
END
suspend;
end
^
ALTER PROCEDURE PROC_NEW_CUENTAS (
ID_EJERCICIO_COPIA INTEGER,
ID_EJERCICIO INTEGER,
ID_EPIGRAFE_COPIA INTEGER,
ID_EPIGRAFE INTEGER)
AS
declare variable id_cuenta_especial integer;
declare variable id_balance integer;
declare variable id_cuenta integer;
declare variable id_cuenta_copia integer;
declare variable descripcion varchar(255);
declare variable ref_cuenta varchar(10);
begin
if (id_ejercicio_copia = 0) then
begin
for select GEN_ID(gen_cont_cuentas_id, 1), ID, REF_CUENTA, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL
from CONT_CUENTAS where (ID_EJERCICIO IS NULL) and (ID_EPIGRAFE = :id_epigrafe_copia)
order by ID
into :id_cuenta, :id_cuenta_copia, :ref_cuenta, :descripcion, :id_balance, :id_cuenta_especial do
begin
insert into CONT_CUENTAS (ID, REF_CUENTA, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL, ID_EJERCICIO, ID_EPIGRAFE)
values (:id_cuenta, :ref_cuenta, :descripcion, :id_balance, :id_cuenta_especial, :id_ejercicio, :id_epigrafe);
/*INSERTAR SUBCUENTAS*/
execute procedure proc_new_subcuentas :id_ejercicio_copia, :id_ejercicio, :id_cuenta_copia, :id_cuenta;
end
end
else
begin
for select GEN_ID(gen_cont_cuentas_id, 1), ID, REF_CUENTA, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL
from CONT_CUENTAS where (ID_EJERCICIO = :id_ejercicio_copia) and (ID_EPIGRAFE = :id_epigrafe_copia)
order by ID
into :id_cuenta, :id_cuenta_copia, :ref_cuenta, :descripcion, :id_balance, :id_cuenta_especial do
begin
insert into CONT_CUENTAS (ID, REF_CUENTA, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL, ID_EJERCICIO, ID_EPIGRAFE)
values (:id_cuenta, :ref_cuenta, :descripcion, :id_balance, :id_cuenta_especial, :id_ejercicio, :id_epigrafe);
/*INSERTAR SUBCUENTAS*/
execute procedure proc_new_subcuentas :id_ejercicio_copia, :id_ejercicio, :id_cuenta_copia, :id_cuenta;
end
end
suspend;
end
^
ALTER PROCEDURE PROC_NEW_EPIGRAFES (
ID_EJERCICIO_COPIA INTEGER,
ID_EJERCICIO INTEGER,
ID_EPIGRAFE_COPIA INTEGER,
ID_EPIGRAFE INTEGER,
ID_PADRE INTEGER,
REF_EPIGRAFE VARCHAR(6),
DESCRIPCION VARCHAR(255))
AS
begin
insert into CONT_EPIGRAFES (ID, REF_EPIGRAFE, DESCRIPCION, ID_EJERCICIO)
values (:id_epigrafe, :ref_epigrafe, :descripcion, :id_ejercicio);
/*MIRAMOS EL NUEVO ID CORREPONDIENTE AL PADRE*/
if (id_padre <> 0) then
begin
select REF_EPIGRAFE from cont_epigrafes
where (ID = :id_padre)
into :ref_epigrafe;
select ID
from cont_epigrafes
where (REF_EPIGRAFE = :ref_epigrafe and ID_EJERCICIO = :ID_ejercicio)
into :id_padre;
end
/*ASIGNAMOS EL ID DEL PADRE*/
update cont_epigrafes
set ID_PADRE = :id_padre
where (ID = :id_epigrafe);
/*INSERTAR CUENTAS*/
execute procedure proc_new_cuentas :id_ejercicio_copia, :id_ejercicio, :id_epigrafe_copia, :id_epigrafe;
suspend;
end
^
ALTER PROCEDURE PROC_NEW_PGC (
ID_EJERCICIO_COPIA INTEGER,
ID_EJERCICIO INTEGER)
RETURNS (
RESULTADO INTEGER)
AS
declare variable id_epigrafe_copia integer;
declare variable ref_epigrafe varchar(6);
declare variable swhere integer;
declare variable descripcion varchar(255);
declare variable id_padre integer;
declare variable id_epigrafe integer;
declare variable id_ejercicio_acopiar integer;
begin
select ID
from CONT_EJERCICIOS
WHERE ID = :id_ejercicio_copia
into :id_ejercicio_acopiar;
/* SI EL EJERCICIO DE COPIA NO EXISTE COPIAMOS EL PGC BASICO*/
if (id_ejercicio_acopiar is null) then
begin
for select GEN_ID(gen_cont_epigrafes_id, 1), ID, REF_EPIGRAFE, DESCRIPCION, ID_PADRE
from CONT_EPIGRAFES where (ID_EJERCICIO IS NULL)
order by ID, ID_PADRE
into :id_epigrafe, :id_epigrafe_copia, :ref_epigrafe, :descripcion, :id_padre do
begin
/*INSERTAR EPIGRAFES*/
execute procedure proc_new_epigrafes :id_ejercicio_copia, :id_ejercicio, :id_epigrafe_copia, :id_epigrafe, :id_padre, :ref_epigrafe, :descripcion;
end
end
/* SI EL EJERCICIO DE COPIA EXISTE COPIAMOS EL PGC DEL EJERCICIO*/
else
begin
for select GEN_ID(gen_cont_epigrafes_id, 1), ID, REF_EPIGRAFE, DESCRIPCION, ID_PADRE
from CONT_EPIGRAFES where (ID_EJERCICIO = :id_ejercicio_copia)
order by ID, ID_PADRE
into :id_epigrafe, :id_epigrafe_copia, :ref_epigrafe, :descripcion, :id_padre do
begin
/*INSERTAR EPIGRAFES*/
execute procedure proc_new_epigrafes :id_ejercicio_copia, :id_ejercicio, :id_epigrafe_copia, :id_epigrafe, :id_padre, :ref_epigrafe, :descripcion;
end
end
suspend;
end
^
ALTER PROCEDURE PROC_NEW_SUBCUENTAS (
id_ejercicio_copia integer,
id_ejercicio integer,
id_cuenta_copia integer,
id_cuenta integer)
as
declare variable descripcion varchar(255);
declare variable ref_subcuenta varchar(15);
declare variable id_subcuenta integer;
declare variable id_contacto integer;
begin
if (id_ejercicio_copia = 0) then
begin
for select GEN_ID(gen_cont_subcuentas_id, 1), REF_SUBCUENTA, DESCRIPCION
from CONT_SUBCUENTAS
where (ID_EJERCICIO IS NULL) and (ID_CUENTA = :id_cuenta_copia)
order by ID
into :id_subcuenta, :ref_subcuenta, :descripcion do
begin
insert into CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_EJERCICIO, ID_CUENTA)
values (:id_subcuenta, :ref_subcuenta, :descripcion, :id_ejercicio, :id_cuenta);
end
end
else
begin
for select GEN_ID(gen_cont_subcuentas_id, 1), REF_SUBCUENTA, DESCRIPCION, ID_CONTACTO
from CONT_SUBCUENTAS
where (ID_EJERCICIO = :id_ejercicio_copia) and (ID_CUENTA = :id_cuenta_copia)
order by ID
into :id_subcuenta, :ref_subcuenta, :descripcion, :id_contacto do
begin
insert into CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_EJERCICIO, ID_CUENTA, ID_CONTACTO)
values (:id_subcuenta, :ref_subcuenta, :descripcion, :id_ejercicio, :id_cuenta, :id_contacto);
end
end
suspend;
end
^
ALTER PROCEDURE PROC_SET_EJERCICIOS_NOACTIVOS (
ID_EMPRESA INTEGER)
AS
begin
update CONT_EJERCICIOS
set ACTIVO = 0
where ID_EMPRESA = :id_empresa;
suspend;
end
^
ALTER PROCEDURE PROC_CIERRE_APERTURA (
ID_EJERCICIO_CIERRE INTEGER,
ID_EJERCICIO_APERTURA INTEGER)
AS
declare variable id_subcuenta_apertura integer;
declare variable id_subcuenta_cierre integer;
declare variable ref_subcuenta varchar(255);
declare variable subcuenta varchar(255);
declare variable num_orden integer;
declare variable diferencia numeric(11,2);
declare variable estado_ejercicio_cierre varchar(255);
declare variable estado_ejercicio_apertura varchar(255);
declare variable nombre_ejercicio_cierre varchar(255);
declare variable nombre_ejercicio_apertura varchar(255);
declare variable id_asiento_cierre integer;
declare variable id_asiento_apertura integer;
declare variable id_apunte_apertura integer;
declare variable id_apunte_cierre integer;
begin
/*Seleccionamos el ejercicio de cierre*/
select ESTADO, NOMBRE, GEN_ID(gen_cont_asientos_id, 1)
from cont_ejercicios
where id = :id_ejercicio_cierre
into :estado_ejercicio_cierre, :nombre_ejercicio_cierre, :id_asiento_cierre;
/*Seleccionamos el ejercicio de apertura*/
select ESTADO, NOMBRE, GEN_ID(gen_cont_asientos_id, 1)
from cont_ejercicios
where id = :id_ejercicio_apertura
into :estado_ejercicio_apertura, :nombre_ejercicio_apertura, :id_asiento_apertura;
/*Si los ejercicios no estan abiertos no hacemos nada*/
if ((estado_ejercicio_cierre = 'ABIERTO') and (estado_ejercicio_apertura = 'ABIERTO')) then
begin
select COALESCE(max(V_CONT_DIARIO.ORDEN_ASIENTO),0) + 1
from V_CONT_DIARIO
into :num_orden;
/* A<>adimos asiento de cierre*/
insert into CONT_ASIENTOS (ID, FECHA_ASIENTO, ORDEN, TIPO)
values (:id_asiento_cierre, current_date, :num_orden, 'x');
num_orden = num_orden + 1;
/* A<>adimos asiento de apertura*/
insert into CONT_ASIENTOS (ID, FECHA_ASIENTO, ORDEN, TIPO)
values (:id_asiento_apertura, current_date, :num_orden, 'a');
num_orden = 1;
/* Para cada cuenta descuadrada se inserta un apunte de cierre asociado al asiento creado anteriormente*/
for select ID_SUBCUENTA, REF_SUBCUENTA, SUBCUENTA, SUM(COALESCE(DEBE,0))-SUM(COALESCE(HABER,0)) as DIFERENCIA,
GEN_ID(gen_cont_apuntes_id, 1), GEN_ID(gen_cont_apuntes_id, 1)
from v_cont_diario where (ID_EJERCICIO = :ID_EJERCICIO_CIERRE)
group by 1, 2, 3
having (SUM(COALESCE(DEBE,0))-SUM(COALESCE(HABER,0))) <> 0
into :id_subcuenta_cierre, :ref_subcuenta, :subcuenta, :diferencia, :id_apunte_cierre, :id_apunte_apertura do
begin
/*Buscamos la subcuenta equibalente en el ejericio de apertura*/
select ID from cont_subcuentas
where REF_SUBCUENTA = :ref_subcuenta
and DESCRIPCION = :subcuenta
and ID_EJERCICIO = :id_ejercicio_apertura
into :id_subcuenta_apertura;
if (diferencia > 0) then
begin
/*APUNTE DE CIERRE*/
insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, HABER)
values (:id_apunte_cierre, :id_asiento_cierre, :id_subcuenta_cierre, :num_orden, -1, 'Asiento de cierre ' || :nombre_ejercicio_cierre, :diferencia);
/*APUNTE DE APERTURA*/
insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DEBE)
values (:id_apunte_apertura, :id_asiento_apertura, :id_subcuenta_apertura, :num_orden, -1, 'Asiento de apertura ' || :nombre_ejercicio_apertura, :diferencia);
end
else
begin
/*APUNTE DE CIERRE*/
insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DEBE)
values (:id_apunte_cierre, :id_asiento_cierre, :id_subcuenta_cierre, :num_orden, -1, 'Asiento de cierre ' || :nombre_ejercicio_cierre, (:diferencia)*-1);
/*APUNTE DE APERTURA*/
insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, HABER)
values (:id_apunte_apertura, :id_asiento_apertura, :id_subcuenta_apertura, :num_orden, -1, 'Asiento de apertura ' || :nombre_ejercicio_apertura, (:diferencia)*-1);
end
num_orden = num_orden + 1;
end
/*Finalmente cambiamos de estado los ejercicio cerrado*/
update cont_ejercicios
set ESTADO = 'CERRADO'
where id = :id_ejercicio_cierre;
end
suspend;
end
^
ALTER PROCEDURE PROC_PRE_CON_CAPITULOS (
aid integer, tipo varchar(15))
returns (
id integer,
id_pre_con integer,
posicion integer,
tipo_detalle varchar(25),
concepto varchar(2000),
importe_total numeric(11,4),
visible smallint,
tipo_articulo varchar(2),
descuento float,
importe_descuento numeric(11,4))
as
declare variable num_filas integer;
declare variable contador integer;
declare variable id_aux integer;
declare variable id_aux_temp integer;
declare variable total_acumulado numeric(11,2);
declare variable posicion_aux integer;
declare variable posicion_aux_temp integer;
declare variable ultimo_tipo_detalle varchar(25);
declare variable tipo_detalle_aux varchar(25);
declare variable tipo_detalle_aux_temp varchar(25);
declare variable concepto_aux varchar(2000);
declare variable concepto_aux_temp varchar(2000);
declare variable tipo_articulo_aux varchar(2);
declare variable tipo_articulo_aux_temp varchar(2);
declare variable importe_descuento_aux numeric(11,2);
declare variable descuento_aux float;
declare variable importe_aux numeric(11,2);
begin
total_acumulado = 0.0;
importe_descuento_aux = 0.0;
descuento_aux = 0.0;
contador = 0;
num_filas = 0;
ID_AUX = -1;
posicion_aux = -1;
concepto_aux = 'General';
tipo_detalle_aux = 'Titulo';
tipo_articulo_aux = 'NA';
if (TIPO = 'Presupuesto') then
begin
/* <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
end
else if (TIPO = 'Contrato') then
begin
/* <20>Existe el contrato? */
for select count(*)
from contratos_cliente_detalles
where id_contrato = :AID
into :num_filas
do
begin
if (num_filas = 0) then
suspend;
end
end
if (TIPO = 'Presupuesto') then
begin
for select id, id_presupuesto, posicion, tipo_detalle, tipo_articulo, F_RTFTOTEXT(concepto) as concepto,
coalesce(descuento,0), coalesce(importe_total,0), coalesce(visible, 1)
from presupuestos_cliente_detalles
where id_presupuesto = :AID
order by id_presupuesto, posicion
into :ID, :ID_PRE_CON, :POSICION, :TIPO_DETALLE, :TIPO_ARTICULO, :CONCEPTO,
:DESCUENTO, :IMPORTE_TOTAL, :VISIBLE
do
begin
contador = contador + 1;
/*CONCEPTO*/
if ((visible <> 0) and (tipo_detalle = 'Concepto')) then
begin
/*Escribimos capitulo anterior*/
if ((Importe_total > 0)
and ((ultimo_tipo_detalle = 'Descuento') or (ultimo_tipo_detalle = 'Subtotal'))) then
begin
Importe_aux = Importe_total;
id = id_aux;
posicion = posicion_aux;
tipo_detalle = tipo_detalle_aux;
tipo_articulo = tipo_articulo_aux;
concepto = concepto_aux;
importe_total = total_acumulado;
importe_descuento = importe_descuento_aux;
descuento = descuento_aux;
visible = 1;
suspend;
total_acumulado = 0.0;
importe_descuento_aux = 0.0;
descuento_aux = 0.0;
/*Inicializamos*/
ID_AUX = -1;
posicion_aux = -1;
concepto_aux = 'General';
tipo_detalle_aux = 'Titulo';
tipo_articulo_aux = 'NA';
importe_total = Importe_aux;
end
total_acumulado = total_acumulado + importe_total;
ultimo_tipo_detalle = tipo_detalle;
end
/*TITULO*/
else if ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo_opc')) then
begin
ultimo_tipo_detalle = tipo_detalle;
id_aux_temp = id;
posicion_aux_temp = posicion;
tipo_detalle_aux_temp = tipo_detalle;
tipo_articulo_aux_temp = tipo_articulo;
concepto_aux_temp = concepto;
/*Escribimos capitulo anterior*/
if (id_aux > 0) then
begin
id = id_aux;
posicion = posicion_aux;
tipo_detalle = tipo_detalle_aux;
tipo_articulo = tipo_articulo_aux;
concepto = concepto_aux;
importe_total = total_acumulado;
importe_descuento = importe_descuento_aux;
descuento = descuento_aux;
visible = 1;
suspend;
total_acumulado = 0.0;
importe_descuento_aux = 0.0;
descuento_aux = 0.0;
end
id_aux = id_aux_temp;
posicion_aux = posicion_aux_temp;
tipo_detalle_aux = tipo_detalle_aux_temp;
tipo_articulo_aux = tipo_articulo_aux_temp;
concepto_aux = concepto_aux_temp;
end
/*SUBTOTAL*/
else if (tipo_detalle = 'Subtotal') then
begin
ultimo_tipo_detalle = tipo_detalle;
end
else if (tipo_detalle = 'Descuento') then
begin
ultimo_tipo_detalle = tipo_detalle;
importe_descuento_aux = importe_total;
descuento_aux = descuento;
end
if (contador = num_filas) then
begin
id = id_aux;
posicion = posicion_aux;
tipo_detalle = tipo_detalle_aux;
tipo_articulo = tipo_articulo_aux;
concepto = concepto_aux;
importe_total = total_acumulado;
importe_descuento = importe_descuento_aux;
descuento = descuento_aux;
visible = 1;
suspend;
break;
end
end
end
else if (TIPO = 'Contrato') then
begin
for select id, id_contrato, posicion, tipo_detalle, tipo_articulo, F_RTFTOTEXT(concepto) as concepto,
coalesce(descuento,0), coalesce(importe_total,0), coalesce(visible, 1)
from contratos_cliente_detalles
where id_contrato = :AID
order by id_contrato, posicion
into :ID, :ID_PRE_CON, :POSICION, :TIPO_DETALLE, :TIPO_ARTICULO, :CONCEPTO,
:DESCUENTO, :IMPORTE_TOTAL, :VISIBLE
do
begin
contador = contador + 1;
/*CONCEPTO*/
if ((visible <> 0) and (tipo_detalle = 'Concepto')) then
begin
/*Escribimos capitulo anterior*/
if ((Importe_total > 0)
and ((ultimo_tipo_detalle = 'Descuento') or (ultimo_tipo_detalle = 'Subtotal'))) then
begin
Importe_aux = Importe_total;
id = id_aux;
posicion = posicion_aux;
tipo_detalle = tipo_detalle_aux;
tipo_articulo = tipo_articulo_aux;
concepto = concepto_aux;
importe_total = total_acumulado;
importe_descuento = importe_descuento_aux;
descuento = descuento_aux;
visible = 1;
suspend;
total_acumulado = 0.0;
importe_descuento_aux = 0.0;
descuento_aux = 0.0;
/*Inicializamos*/
ID_AUX = -1;
posicion_aux = -1;
concepto_aux = 'General';
tipo_detalle_aux = 'Titulo';
tipo_articulo_aux = 'NA';
importe_total = Importe_aux;
end
total_acumulado = total_acumulado + importe_total;
ultimo_tipo_detalle = tipo_detalle;
end
/*TITULO*/
else if ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo_opc')) then
begin
ultimo_tipo_detalle = tipo_detalle;
id_aux_temp = id;
posicion_aux_temp = posicion;
tipo_detalle_aux_temp = tipo_detalle;
tipo_articulo_aux_temp = tipo_articulo;
concepto_aux_temp = concepto;
/*Escribimos capitulo anterior*/
if (id_aux > 0) then
begin
id = id_aux;
posicion = posicion_aux;
tipo_detalle = tipo_detalle_aux;
tipo_articulo = tipo_articulo_aux;
concepto = concepto_aux;
importe_total = total_acumulado;
importe_descuento = importe_descuento_aux;
descuento = descuento_aux;
visible = 1;
suspend;
total_acumulado = 0.0;
importe_descuento_aux = 0.0;
descuento_aux = 0.0;
end
id_aux = id_aux_temp;
posicion_aux = posicion_aux_temp;
tipo_detalle_aux = tipo_detalle_aux_temp;
tipo_articulo_aux = tipo_articulo_aux_temp;
concepto_aux = concepto_aux_temp;
end
/*SUBTOTAL*/
else if (tipo_detalle = 'Subtotal') then
begin
ultimo_tipo_detalle = tipo_detalle;
end
else if (tipo_detalle = 'Descuento') then
begin
ultimo_tipo_detalle = tipo_detalle;
importe_descuento_aux = importe_total;
descuento_aux = descuento;
end
if (contador = num_filas) then
begin
id = id_aux;
posicion = posicion_aux;
tipo_detalle = tipo_detalle_aux;
tipo_articulo = tipo_articulo_aux;
concepto = concepto_aux;
importe_total = total_acumulado;
importe_descuento = importe_descuento_aux;
descuento = descuento_aux;
visible = 1;
suspend;
break;
end
end
end
end^
ALTER PROCEDURE PROC_PRE_CON_CAPITULOS_CONCEP (
aid integer,
tipo varchar(15))
returns (
id integer,
id_pre_con integer,
posicion integer,
tipo_detalle varchar(25),
id_capitulo integer,
tipo_articulo varchar(2),
id_articulo integer,
propiedad varchar(50),
concepto varchar(2000),
cantidad numeric(11,2),
importe_unidad numeric(11,4),
descuento numeric(2,2),
importe_porte numeric(11,4),
importe_total numeric(11,4),
visible smallint)
as
declare variable capitulo_actual integer;
begin
capitulo_actual = -1;
ID_CAPITULO = -1;
if (TIPO = 'Presupuesto') then
begin
for select pre.id, pre.id_presupuesto, pre.posicion, pre.tipo_detalle,
coalesce(pre.tipo_articulo,'NA'), pre.id_articulo, presupuestos_propiedades.descripcion,
/* F_RTFTOTEXT(F_RTFTOTEXT(pre.CONCEPTO)) as CONCEPTO,*/
pre.CONCEPTO,
pre.cantidad,
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 presupuestos_propiedades on (pre.id_articulo = presupuestos_propiedades.id)
where pre.id_presupuesto = :AID
order by pre.id_presupuesto, pre.posicion
into :ID, :ID_PRE_CON, :POSICION, :TIPO_DETALLE,
:TIPO_ARTICULO, :ID_ARTICULO, :PROPIEDAD, :CONCEPTO, :CANTIDAD,
:IMPORTE_UNIDAD, :DESCUENTO, :IMPORTE_PORTE, :IMPORTE_TOTAL, :VISIBLE
do
begin
if ((:tipo_detalle = 'Titulo') or (:tipo_detalle = 'Titulo_opc')) then
begin
capitulo_actual = :ID;
ID_CAPITULO = capitulo_actual;
end
else if ((:tipo_detalle = 'Subtotal')
or (:tipo_detalle = 'Descuento')) then
begin
capitulo_actual = -1;
ID_CAPITULO = capitulo_actual;
end
else if (:tipo_detalle = 'Concepto') then
begin
suspend;
end
end
end
else if (TIPO = 'Contrato') then
begin
for select pre.id, pre.id_contrato, pre.posicion, pre.tipo_detalle,
coalesce(pre.tipo_articulo,'NA'), pre.id_articulo, presupuestos_propiedades.descripcion,
/* F_RTFTOTEXT(F_RTFTOTEXT(pre.CONCEPTO)) as CONCEPTO,*/
pre.CONCEPTO,
pre.cantidad,
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 contratos_cliente_detalles pre
left join presupuestos_propiedades on (pre.id_articulo = presupuestos_propiedades.id)
where pre.id_contrato = :AID
order by pre.id_contrato, pre.posicion
into :ID, :ID_PRE_CON, :POSICION, :TIPO_DETALLE,
:TIPO_ARTICULO, :ID_ARTICULO, :PROPIEDAD, :CONCEPTO, :CANTIDAD,
:IMPORTE_UNIDAD, :DESCUENTO, :IMPORTE_PORTE, :IMPORTE_TOTAL, :VISIBLE
do
begin
if ((:tipo_detalle = 'Titulo') or (:tipo_detalle = 'Titulo_opc') ) then
begin
capitulo_actual = :ID;
ID_CAPITULO = capitulo_actual;
end
else if ((:tipo_detalle = 'Subtotal')
or (:tipo_detalle = 'Descuento')) then
begin
capitulo_actual = -1;
ID_CAPITULO = capitulo_actual;
end
else if (:tipo_detalle = 'Concepto') then
begin
suspend;
end
end
end
end^
SET TERM ; ^