/******************************************************************************/ /**** 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); /******************************************************************************/ /**** Generators ****/ /******************************************************************************/ CREATE GENERATOR GEN_AGENTES_COMISIONES_ID; SET GENERATOR GEN_AGENTES_COMISIONES_ID TO 1; 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_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_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_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^ SET TERM ; ^ /******************************************************************************/ /**** Tables ****/ /******************************************************************************/ CREATE TABLE AGENTES_COMISIONES ( ID TIPO_ID NOT NULL, ID_AGENTE TIPO_ID DEFAULT 0 NOT NULL, ID_PROVEEDOR SMALLINT DEFAULT 0 NOT NULL, COMISION TIPO_PORCENTAJE DEFAULT 0 ); CREATE TABLE COMISIONES_LIQ_VENDEDORES( ID TIPO_ID NOT NULL, ID_COMISION TIPO_ID, ID_VENDEDOR TIPO_ID, NOMBRE VARCHAR(255) COLLATE ES_ES, 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), CALLE VARCHAR(255), CODIGO_POSTAL VARCHAR(10), POBLACION VARCHAR(255), PROVINCIA VARCHAR(255), PERSONA_CONTACTO VARCHAR(255), TELEFONO VARCHAR(25), IMPORTE_NETO TIPO_IMPORTE, IMPORTE_PORTE TIPO_IMPORTE, DESCUENTO TIPO_PORCENTAJE, IMPORTE_DESCUENTO TIPO_IMPORTE, BASE_IMPONIBLE TIPO_IMPORTE, IVA TIPO_PORCENTAJE, IMPORTE_IVA TIPO_IMPORTE, IMPORTE_TOTAL TIPO_IMPORTE, OBSERVACIONES TIPO_NOTAS, INCIDENCIAS TIPO_NOTAS, INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, FECHA_ALTA TIMESTAMP, FECHA_MODIFICACION TIMESTAMP, USUARIO TIPO_USUARIO, ID_FORMA_PAGO TIPO_ID, FECHA_ENVIO DATE, FECHA_RECEPCION DATE, FECHA_PREVISTA_ENVIO DATE, REFERENCIA_CLIENTE VARCHAR(255) COLLATE ES_ES, 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 INTEGER, IMPORTE_UNIDAD TIPO_IMPORTE, DESCUENTO TIPO_PORCENTAJE, IMPORTE_PORTE TIPO_IMPORTE, IMPORTE_TOTAL TIPO_IMPORTE, VISIBLE TIPO_BOOLEANO, FECHA_ALTA TIMESTAMP, FECHA_MODIFICACION TIMESTAMP ); 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, 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 INTEGER, IMPORTE_UNIDAD TIPO_IMPORTE, DESCUENTO TIPO_PORCENTAJE, IMPORTE_PORTE TIPO_IMPORTE, IMPORTE_TOTAL TIPO_IMPORTE, VISIBLE TIPO_BOOLEANO, FECHA_ALTA TIMESTAMP, FECHA_MODIFICACION TIMESTAMP ); 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), VENCIMIENTO_FACTURAS INTEGER, BLOQUEADO TIPO_BOOLEANO DEFAULT 0 NOT NULL, REGIMEN_IVA VARCHAR(255), MOTIVO_BLOQUEO VARCHAR(255), RECARGO_EQUIVALENCIA TIPO_BOOLEANO, ID_TIPO_IVA TIPO_ID, ID_FORMA_PAGO TIPO_ID, TIENDA_WEB TIPO_BOOLEANO, DESCUENTO TIPO_PORCENTAJE, CODIGO_ASIGNADO VARCHAR(255), IGNORAR_CONTABILIDAD TIPO_ID, TIENE_SUBCUENTA TIPO_ID, PROCEDENCIA_CLIENTE VARCHAR(255) COLLATE ES_ES ); 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 VARCHAR(255) NOT NULL, ID_EMPRESA TIPO_ID ); 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) COLLATE ES_ES, 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 ); 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) COLLATE ES_ES ); CREATE TABLE EMPRESAS_USUARIOS ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID NOT NULL, ID_USUARIO TIPO_ID NOT NULL ); CREATE TABLE 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 ); CREATE TABLE FACTURAS_CLIENTE_DETALLES ( ID TIPO_ID NOT NULL, ID_FACTURA TIPO_ID NOT NULL, POSICION INTEGER, TIPO_DETALLE VARCHAR(10), ID_ARTICULO TIPO_ID, CONCEPTO TIPO_CONCEPTO, CANTIDAD INTEGER, IMPORTE_UNIDAD TIPO_IMPORTE, DESCUENTO TIPO_PORCENTAJE, IMPORTE_PORTE TIPO_IMPORTE, IMPORTE_TOTAL TIPO_IMPORTE, VISIBLE TIPO_BOOLEANO, FECHA_ALTA TIMESTAMP, FECHA_MODIFICACION TIMESTAMP ); 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 INTEGER, IMPORTE_UNIDAD TIPO_IMPORTE, DESCUENTO TIPO_PORCENTAJE, IMPORTE_PORTE TIPO_IMPORTE, IMPORTE_TOTAL TIPO_IMPORTE, VISIBLE TIPO_BOOLEANO, FECHA_ALTA TIMESTAMP, FECHA_MODIFICACION TIMESTAMP ); 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 INTEGER, 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) COLLATE ES_ES, 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 INTEGER, IMPORTE_UNIDAD TIPO_IMPORTE, DESCUENTO TIPO_PORCENTAJE, IMPORTE_PORTE TIPO_IMPORTE, IMPORTE_TOTAL TIPO_IMPORTE, VISIBLE TIPO_BOOLEANO, FECHA_ALTA TIMESTAMP, FECHA_MODIFICACION TIMESTAMP ); 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 INTEGER, IMPORTE_UNIDAD TIPO_IMPORTE, DESCUENTO TIPO_PORCENTAJE, IMPORTE_PORTE TIPO_IMPORTE, IMPORTE_TOTAL TIPO_IMPORTE, VISIBLE TIPO_BOOLEANO, FECHA_ALTA TIMESTAMP, FECHA_MODIFICACION TIMESTAMP ); CREATE TABLE PERMISOS ( ID TIPO_ID NOT NULL, ID_USUARIO TIPO_ID, MODULO VARCHAR(50), NOMBRECOMP VARCHAR(50), CHECKSUM VARCHAR(250) ); CREATE TABLE PERMISOSEX ( ID TIPO_ID NOT NULL, ID_USUARIO TIPO_ID, MODULO VARCHAR(50), NOMBRECOMP VARCHAR(50), NOMBREFORM VARCHAR(50), CHECKSUM VARCHAR(250) ); CREATE TABLE POBLACIONES ( ID TIPO_ID NOT NULL, ID_PROVINCIA TIPO_ID NOT NULL, DESCRIPCION VARCHAR(255) NOT NULL ); CREATE TABLE PRESUPUESTOS_CLIENTE ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, ID_CLIENTE TIPO_ID, REFERENCIA VARCHAR(255), FECHA_PRESUPUESTO DATE, FECHA_DECISION DATE, SITUACION VARCHAR(255), PORTADA TIPO_NOTAS, MEMORIA TIPO_NOTAS, OBSERVACIONES TIPO_NOTAS, INCIDENCIAS TIPO_NOTAS, INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, FECHA_ALTA TIMESTAMP, FECHA_MODIFICACION TIMESTAMP, USUARIO TIPO_USUARIO, IMPORTE_NETO TIPO_IMPORTE, IMPORTE_PORTE TIPO_IMPORTE, DESCUENTO TIPO_PORCENTAJE, IMPORTE_DESCUENTO TIPO_IMPORTE, BASE_IMPONIBLE TIPO_IMPORTE, IVA TIPO_PORCENTAJE, IMPORTE_IVA TIPO_IMPORTE, IMPORTE_TOTAL TIPO_IMPORTE, ID_FORMA_PAGO TIPO_ID, REFERENCIA_CLIENTE VARCHAR(255) COLLATE ES_ES, CLIENTE_FINAL VARCHAR(255) COLLATE ES_ES, ID_TIENDA TIPO_ID, ID_VENDEDOR TIPO_ID ); 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, CONCEPTO TIPO_CONCEPTO, CANTIDAD INTEGER, IMPORTE_UNIDAD TIPO_IMPORTE, DESCUENTO TIPO_PORCENTAJE, IMPORTE_PORTE TIPO_IMPORTE, IMPORTE_TOTAL TIPO_IMPORTE, VISIBLE TIPO_BOOLEANO, FECHA_ALTA TIMESTAMP, FECHA_MODIFICACION TIMESTAMP ); 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 ); 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) COLLATE ES_ES, NOMBRE VARCHAR(255) COLLATE ES_ES, CALLE VARCHAR(255) COLLATE ES_ES, POBLACION VARCHAR(255) COLLATE ES_ES, PROVINCIA VARCHAR(255) COLLATE ES_ES, CODIGO_POSTAL VARCHAR(10) COLLATE ES_ES ); 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) COLLATE ES_ES, NOMBRE VARCHAR(255) COLLATE ES_ES, CALLE VARCHAR(255) COLLATE ES_ES, POBLACION VARCHAR(255) COLLATE ES_ES, PROVINCIA VARCHAR(255) COLLATE ES_ES, CODIGO_POSTAL VARCHAR(10) COLLATE ES_ES ); 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) COLLATE ES_ES ); 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álogo con el fin de no falsear la situació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álogo con el fin de no falsear la situació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, CALLE, CODIGO_POSTAL, POBLACION, PROVINCIA, PERSONA_CONTACTO, TELEFONO, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, IMPORTE_TOTAL, OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_FORMA_PAGO, 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.CALLE, ALBARANES_CLIENTE.CODIGO_POSTAL, ALBARANES_CLIENTE.POBLACION, ALBARANES_CLIENTE.PROVINCIA, ALBARANES_CLIENTE.PERSONA_CONTACTO, ALBARANES_CLIENTE.TELEFONO, ALBARANES_CLIENTE.IMPORTE_NETO, ALBARANES_CLIENTE.IMPORTE_PORTE, ALBARANES_CLIENTE.DESCUENTO, ALBARANES_CLIENTE.IMPORTE_DESCUENTO, ALBARANES_CLIENTE.BASE_IMPONIBLE, ALBARANES_CLIENTE.IVA, ALBARANES_CLIENTE.IMPORTE_IVA, ALBARANES_CLIENTE.IMPORTE_TOTAL, ALBARANES_CLIENTE.OBSERVACIONES, ALBARANES_CLIENTE.INCIDENCIAS, ALBARANES_CLIENTE.INCIDENCIAS_ACTIVAS, ALBARANES_CLIENTE.FECHA_ALTA, ALBARANES_CLIENTE.FECHA_MODIFICACION, ALBARANES_CLIENTE.USUARIO, ALBARANES_CLIENTE.ID_FORMA_PAGO, 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, 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.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, VENCIMIENTO_FACTURAS, BLOQUEADO, REGIMEN_IVA, MOTIVO_BLOQUEO, RECARGO_EQUIVALENCIA, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB, CODIGO_ASIGNADO, IGNORAR_CONTABILIDAD, TIENE_SUBCUENTA, PROCEDENCIA_CLIENTE) 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.VENCIMIENTO_FACTURAS, CLIENTES_DATOS.BLOQUEADO, CLIENTES_DATOS.REGIMEN_IVA, CLIENTES_DATOS.MOTIVO_BLOQUEO, CLIENTES_DATOS.RECARGO_EQUIVALENCIA, CLIENTES_DATOS.ID_TIPO_IVA, CLIENTES_DATOS.ID_FORMA_PAGO, CLIENTES_DATOS.TIENDA_WEB, CLIENTES_DATOS.CODIGO_ASIGNADO, CLIENTES_DATOS.IGNORAR_CONTABILIDAD, CLIENTES_DATOS.TIENE_SUBCUENTA, CLIENTES_DATOS.PROCEDENCIA_CLIENTE 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) 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 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, 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_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) ; /* 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, 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_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) 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, ID_PADRE, EPIGRAFE_PADRE) AS select CONT_EPI1.ID, CONT_EPI1.REF_EPIGRAFE, CONT_EPI1.DESCRIPCION, CONT_EPI1.ID_EJERCICIO, 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) ; /* View: V_CONT_FAC_CLI_VENTAS */ CREATE VIEW V_CONT_FAC_CLI_VENTAS( ID_FACTURA, ID_SUBCUENTA, SUBCUENTA) AS select CONT_ASIENTOS.ID_FACTURA, CONT_SUBCUENTAS.ID as ID_SUBCUENTA, CONT_SUBCUENTAS.DESCRIPCION as SUBCUENTA 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) /* Solo sacaremos aquellas tuplas de apuntes cuya subcuenta contable pertenezca ventas*/ where (CONT_ASIENTOS.ID_FACTURA is not null) and (CONT_CUENTAS.ref_cuenta = 700) ; /* View: V_CONT_FAC_PRO_COMPRAS */ CREATE VIEW V_CONT_FAC_PRO_COMPRAS( ID_FACTURA, ID_SUBCUENTA, SUBCUENTA) AS select CONT_ASIENTOS.ID_FACTURA, CONT_SUBCUENTAS.ID as ID_SUBCUENTA, CONT_SUBCUENTAS.DESCRIPCION as SUBCUENTA 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) /* Solo sacaremos aquellas tuplas de apuntes cuya subcuenta contable pertenezca compras*/ where (CONT_ASIENTOS.ID_FACTURA is not null) and (CONT_CUENTAS.ref_cuenta = 600) ; /* 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, 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_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) 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') 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') 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, 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, 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) 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, 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.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 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); ; /* 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) 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 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ón de cliente ' || ALBARANES_CLIENTE.REFERENCIA ELSE 'Albará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ón ' || ALBARANES_PROVEEDOR.REFERENCIA ELSE 'Albará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ó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én es decir albaranes libres que el albaran este pendiente (los articulos estan reservados en el almacen) aquellos que no se correspondan con artí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álogo con el fin de no falsear la situació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_DECISION, REFERENCIA, SITUACION, ID_CLIENTE, NIF_CIF, NOMBRE, REFERENCIA_CLIENTE, CLIENTE_FINAL, PORTADA, MEMORIA, OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, IMPORTE_TOTAL, ID_FORMA_PAGO, ID_TIENDA, TIENDA, ID_VENDEDOR, VENDEDOR) AS SELECT PRESUPUESTOS_CLIENTE.ID, PRESUPUESTOS_CLIENTE.ID_EMPRESA, PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO, PRESUPUESTOS_CLIENTE.FECHA_DECISION, PRESUPUESTOS_CLIENTE.REFERENCIA, PRESUPUESTOS_CLIENTE.SITUACION, PRESUPUESTOS_CLIENTE.ID_CLIENTE, CONTACTOS.NIF_CIF, CONTACTOS.NOMBRE, PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE, PRESUPUESTOS_CLIENTE.CLIENTE_FINAL, PRESUPUESTOS_CLIENTE.PORTADA, PRESUPUESTOS_CLIENTE.MEMORIA, PRESUPUESTOS_CLIENTE.OBSERVACIONES, PRESUPUESTOS_CLIENTE.INCIDENCIAS, PRESUPUESTOS_CLIENTE.INCIDENCIAS_ACTIVAS, PRESUPUESTOS_CLIENTE.FECHA_ALTA, PRESUPUESTOS_CLIENTE.FECHA_MODIFICACION, PRESUPUESTOS_CLIENTE.USUARIO, PRESUPUESTOS_CLIENTE.IMPORTE_NETO, PRESUPUESTOS_CLIENTE.IMPORTE_PORTE, PRESUPUESTOS_CLIENTE.DESCUENTO, PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO, PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE, PRESUPUESTOS_CLIENTE.IVA, PRESUPUESTOS_CLIENTE.IMPORTE_IVA, PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL, PRESUPUESTOS_CLIENTE.ID_FORMA_PAGO, PRESUPUESTOS_CLIENTE.id_tienda, COALESCE(EMPRESAS_TIENDAS.NOMBRE, 'Todas') AS TIENDA, PRESUPUESTOS_CLIENTE.ID_VENDEDOR, CONTACTOS2.NOMBRE AS VENDEDOR FROM PRESUPUESTOS_CLIENTE LEFT OUTER JOIN CONTACTOS ON (PRESUPUESTOS_CLIENTE.ID_CLIENTE = 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) ; /* 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; ; /******************************************************************************/ /**** Primary Keys ****/ /******************************************************************************/ ALTER TABLE AGENTES_COMISIONES ADD CONSTRAINT PK_AGENTES_COMISIONES PRIMARY KEY (ID); 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 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_CLIENTE ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE PRIMARY KEY (ID); ALTER TABLE PRESUPUESTOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE_DETALLE PRIMARY KEY (ID); ALTER TABLE PROVEEDORES_DATOS ADD CONSTRAINT PK_PROVEEDORES_DATOS PRIMARY KEY (ID_PROVEEDOR); ALTER TABLE PROVEEDORES_GRUPOS ADD CONSTRAINT PK_PROVEEDORES_GRUPOS PRIMARY KEY (ID); ALTER TABLE PROVINCIAS ADD CONSTRAINT PK_PROVINCIAS PRIMARY KEY (ID); ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT PK_RECIBOS_CLIENTE PRIMARY KEY (ID); ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT PK_RECIBOS_PROVEEDOR PRIMARY KEY (ID); ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT PK_REMESAS_CLIENTE PRIMARY KEY (ID); ALTER TABLE REMESAS_PROVEEDOR ADD CONSTRAINT PK_REMESAS_PROVEEDOR PRIMARY KEY (ID); ALTER TABLE TIENDA_WEB ADD CONSTRAINT PK_TIENDA_WEB PRIMARY KEY (ID); ALTER TABLE TIPOS_IVA ADD PRIMARY KEY (ID); ALTER TABLE UNIDADES_MEDIDA ADD PRIMARY KEY (ID); ALTER TABLE USUARIOS ADD CONSTRAINT PK_USUARIOS PRIMARY KEY (ID); ALTER TABLE USUARIOS_LOGON ADD CONSTRAINT PK_USUARIOS_LOGON PRIMARY KEY (LOGONID); /******************************************************************************/ /**** Foreign Keys ****/ /******************************************************************************/ ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_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 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); /******************************************************************************/ /**** Indices ****/ /******************************************************************************/ CREATE INDEX IDX_AGENTES_COMISIONES1 ON AGENTES_COMISIONES (ID_AGENTE); CREATE INDEX IDX_AGENTES_COMISIONES2 ON AGENTES_COMISIONES (ID_PROVEEDOR); 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); begin /*BUSCAMOS LA FACTURA DE LA QUE COMPROBAR SI HACER ASIENTO*/ SELECT FACTURAS_CLIENTE.IGNORAR_CONTABILIDAD, FACTURAS_CLIENTE.REFERENCIA, FACTURAS_CLIENTE.NOMBRE, FACTURAS_CLIENTE.FECHA_FACTURA, FACTURAS_CLIENTE.BASE_IMPONIBLE, FACTURAS_CLIENTE.IMPORTE_IVA, FACTURAS_CLIENTE.IMPORTE_RE, FACTURAS_CLIENTE.IMPORTE_TOTAL, CONT_SUBCUENTAS.ID, CONT_SUBCUENTAS.ID_EJERCICIO FROM FACTURAS_CLIENTE LEFT JOIN CONT_SUBCUENTAS ON (CONT_SUBCUENTAS.ID_CONTACTO = FACTURAS_CLIENTE.ID_CLIENTE) WHERE FACTURAS_CLIENTE.ID = :IDFACTURA INTO :IGNORARCONTABILIDAD, :REFERENCIAFACTURA, :RAZON, :FECHAFACTURA, :BASEIMPONIBLE, :IMPORTEIVA, :IMPORTERE, :IMPORTETOTAL, :IDSUBCUENTA, :IDEJERCICIO; 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, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 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, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 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, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 2, 'Abono de cliente: ' || :RAZON, :REFERENCIAFACTURA || ' (IVA)', -1*(:IMPORTEIVA), NULL); END ELSE BEGIN INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 2, '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, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 3, 'Abono de cliente: ' || :RAZON, :REFERENCIAFACTURA || ' (RE)', -1*(:IMPORTERE), NULL); END ELSE BEGIN INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 3, '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, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :ID_SUBCUENTA_VENTA, 4, 'Abono de cliente: ' || :RAZON, :REFERENCIAFACTURA || ' (Base imponible)', -1*(:BASEIMPONIBLE), NULL); END ELSE BEGIN INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :ID_SUBCUENTA_VENTA, 4, '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); begin /*BUSCAMOS LA FACTURA DE LA QUE COMPROBAR SI HACER ASIENTO*/ SELECT FACTURAS_PROVEEDOR.IGNORAR_CONTABILIDAD, FACTURAS_PROVEEDOR.REFERENCIA, FACTURAS_PROVEEDOR.NOMBRE, FACTURAS_PROVEEDOR.FECHA_FACTURA, FACTURAS_PROVEEDOR.BASE_IMPONIBLE, FACTURAS_PROVEEDOR.IMPORTE_IVA, FACTURAS_PROVEEDOR.IMPORTE_RE, FACTURAS_PROVEEDOR.IMPORTE_TOTAL, CONT_SUBCUENTAS.ID, CONT_SUBCUENTAS.ID_EJERCICIO FROM FACTURAS_PROVEEDOR LEFT JOIN CONT_SUBCUENTAS ON (CONT_SUBCUENTAS.ID_CONTACTO = FACTURAS_PROVEEDOR.ID_PROVEEDOR) WHERE FACTURAS_PROVEEDOR.ID = :IDFACTURA INTO :IGNORARCONTABILIDAD, :REFERENCIAFACTURA, :RAZON, :FECHAFACTURA, :BASEIMPONIBLE, :IMPORTEIVA, :IMPORTERE, :IMPORTETOTAL, :IDSUBCUENTA, :IDEJERCICIO; 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, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 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, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 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, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 2, 'Abono de proveedor: ' || :RAZON, :REFERENCIAFACTURA || ' (IVA)', NULL, -1*(:IMPORTEIVA)); END ELSE BEGIN INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 2, '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, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 3, 'Abono de proveedor: ' || :RAZON, :REFERENCIAFACTURA || ' (RE)', NULL, -1*(:IMPORTERE)); END ELSE BEGIN INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 3, '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, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :ID_SUBCUENTA_COMPRA, 4, 'Abono de proveedor: ' || :RAZON, :REFERENCIAFACTURA || ' (Base imponible)', NULL, -1*(:BASEIMPONIBLE)); END ELSE BEGIN INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :ID_SUBCUENTA_COMPRA, 4, '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); begin /*BUSCAMOS EL PAGO PARA COMPROBAR SI HACER ASIENTO*/ SELECT PAGOS_CLIENTE.IGNORAR_CONTABILIDAD, RECIBOS_CLIENTE.REFERENCIA || ': ' || RECIBOS_CLIENTE.NOMBRE, PAGOS_CLIENTE.FECHA_PAGO, PAGOS_CLIENTE.TIPO || ': ' || RECIBOS_CLIENTE.DESCRIPCION, RECIBOS_CLIENTE.IMPORTE, CONT_SUBCUENTAS.ID, CONT_SUBCUENTAS.ID_EJERCICIO FROM PAGOS_CLIENTE LEFT JOIN RECIBOS_CLIENTE ON (RECIBOS_CLIENTE.ID = PAGOS_CLIENTE.ID_RECIBO) /* LEFT JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_FACTURA) (ya no esta atado a las facturas)*/ LEFT JOIN CONT_SUBCUENTAS ON (CONT_SUBCUENTAS.ID_CONTACTO = RECIBOS_CLIENTE.ID_CLIENTE) WHERE PAGOS_CLIENTE.ID = :IDPAGO INTO :IGNORARCONTABILIDAD, :REFERENCIARECIBO, :FECHAPAGO, :TIPOPAGO, :IMPORTE, :IDSUBCUENTA, :IDEJERCICIO; 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 = :IMPORTE; HABER = NULL; end else begin DEBE = NULL; HABER = :IMPORTE; end INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 1, :TIPOPAGO, :REFERENCIARECIBO, :DEBE, :HABER); INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTAPAGO, 1, :TIPOPAGO, :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); begin /*BUSCAMOS EL PAGO PARA COMPROBAR SI HACER ASIENTO*/ SELECT PAGOS_PROVEEDOR.IGNORAR_CONTABILIDAD, RECIBOS_PROVEEDOR.REFERENCIA || ': ' || RECIBOS_PROVEEDOR.NOMBRE, PAGOS_PROVEEDOR.FECHA_PAGO, PAGOS_PROVEEDOR.TIPO || ': ' || RECIBOS_PROVEEDOR.DESCRIPCION, RECIBOS_PROVEEDOR.IMPORTE, CONT_SUBCUENTAS.ID, CONT_SUBCUENTAS.ID_EJERCICIO FROM PAGOS_PROVEEDOR LEFT JOIN RECIBOS_PROVEEDOR ON (RECIBOS_PROVEEDOR.ID = PAGOS_PROVEEDOR.ID_RECIBO) /* LEFT JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_FACTURA) (ya no esta atado a las facturas)*/ LEFT JOIN CONT_SUBCUENTAS ON (CONT_SUBCUENTAS.ID_CONTACTO = RECIBOS_PROVEEDOR.ID_PROVEEDOR) WHERE PAGOS_PROVEEDOR.ID = :IDPAGO INTO :IGNORARCONTABILIDAD, :REFERENCIARECIBO, :FECHAPAGO, :TIPOPAGO, :IMPORTE, :IDSUBCUENTA, :IDEJERCICIO; 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 = NULL; HABER = :IMPORTE; end else begin DEBE = :IMPORTE; HABER = NULL; end INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTA, 1, :TIPOPAGO, :REFERENCIARECIBO, :DEBE, :HABER); INSERT INTO CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, CONCEPTO, DOCUMENTO, DEBE, HABER) VALUES (GEN_ID(GEN_CONT_APUNTES_ID, 1), :IDASIENTO, :IDSUBCUENTAPAGO, 1, :TIPOPAGO, :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; 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 from CONT_SUBCUENTAS where (ID_EJERCICIO = :id_ejercicio_copia) 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 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 ^ SET TERM ; ^