alter table "FACTURAS_CLIENTE" drop "FECHA_PAGADO"; ALTER TABLE RECIBOS_CLIENTE ADD FECHA_EMISION DATE; DROP VIEW V_AGENTES_COMISIONES_DET_FAC; DROP VIEW V_FACTURAS_CLIENTE; DROP VIEW V_FAC_CLI_SITUACION; DROP VIEW V_REC_FAC_CLI_COBRADOS; DROP VIEW V_RECIBOS_CLIENTE; CREATE VIEW V_RECIBOS_CLIENTE( ID, REFERENCIA, SITUACION, ID_FACTURA, ID_REMESA, REFERENCIA_REMESA, FECHA_EMISION, FECHA_VENCIMIENTO, DESCRIPCION, OBSERVACIONES, IMPORTE, OTROS_GASTOS, IMPORTE_TOTAL, FECHA_FACTURA, FORMA_PAGO_FACTURA, IMPORTE_FACTURA, ID_EMPRESA, ID_CLIENTE, NOMBRE_CLIENTE, NIF_CIF_CLIENTE, ENTIDAD_CLIENTE, SUCURSAL_CLIENTE, DC_CLIENTE, CUENTA_CLIENTE, FECHA_ALTA, FECHA_MODIFICACION, USUARIO) AS SELECT RECIBOS_CLIENTE.ID, RECIBOS_CLIENTE.REFERENCIA, V_REC_CLI_SITUACION.SITUACION, RECIBOS_CLIENTE.ID_FACTURA, RECIBOS_CLIENTE.ID_REMESA, REMESAS_CLIENTE.REFERENCIA as REFERENCIA_REMESA, RECIBOS_CLIENTE.FECHA_EMISION, RECIBOS_CLIENTE.FECHA_VENCIMIENTO, RECIBOS_CLIENTE.DESCRIPCION, RECIBOS_CLIENTE.OBSERVACIONES, RECIBOS_CLIENTE.IMPORTE, RECIBOS_CLIENTE.OTROS_GASTOS, RECIBOS_CLIENTE.IMPORTE + RECIBOS_CLIENTE.OTROS_GASTOS, FACTURAS_CLIENTE.FECHA_FACTURA, FORMAS_PAGO.DESCRIPCION, FACTURAS_CLIENTE.IMPORTE_TOTAL, FACTURAS_CLIENTE.ID_EMPRESA, CONTACTOS.ID as ID_CLIENTE, CONTACTOS.NOMBRE, CONTACTOS.NIF_CIF, CONTACTOS_DATOS_BANCO.ENTIDAD, CONTACTOS_DATOS_BANCO.SUCURSAL, CONTACTOS_DATOS_BANCO.DC, CONTACTOS_DATOS_BANCO.CUENTA, RECIBOS_CLIENTE.FECHA_ALTA, RECIBOS_CLIENTE.FECHA_MODIFICACION, RECIBOS_CLIENTE.USUARIO FROM V_REC_CLI_SITUACION LEFT JOIN RECIBOS_CLIENTE ON (RECIBOS_CLIENTE.ID = V_REC_CLI_SITUACION.ID_RECIBO) 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 = FACTURAS_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); CREATE VIEW V_REC_FAC_CLI_COBRADOS( ID_FACTURA, NUM_REC_COBRADOS) AS SELECT V_RECIBOS_CLIENTE.ID_FACTURA, COUNT(V_RECIBOS_CLIENTE.ID) FROM V_RECIBOS_CLIENTE WHERE (V_RECIBOS_CLIENTE.SITUACION = 'COBRADO') GROUP BY V_RECIBOS_CLIENTE.ID_FACTURA; CREATE VIEW V_FAC_CLI_SITUACION( ID_FACTURA, SITUACION) AS SELECT V_REC_FAC_CLI.ID_FACTURA, CASE WHEN ((V_REC_FAC_CLI.NUM_RECIBOS = 0) OR (COALESCE (V_REC_FAC_CLI_COBRADOS.NUM_REC_COBRADOS,0) = 0)) THEN 'PENDIENTE' WHEN (V_REC_FAC_CLI.NUM_RECIBOS = COALESCE (V_REC_FAC_CLI_COBRADOS.NUM_REC_COBRADOS, 0)) THEN 'PAGADA' ELSE 'PARCIALMENTE PAGADA' END FROM V_REC_FAC_CLI LEFT JOIN V_REC_FAC_CLI_COBRADOS ON (V_REC_FAC_CLI_COBRADOS.ID_FACTURA = V_REC_FAC_CLI.ID_FACTURA); CREATE VIEW V_FACTURAS_CLIENTE( ID, ID_EMPRESA, REFERENCIA, ID_COMISION_LIQUIDADA, FECHA_FACTURA, SITUACION, BASE_IMPONIBLE, DESCUENTO, IMPORTE_DESCUENTO, IVA, IMPORTE_IVA, RE, IMPORTE_RE, IMPORTE_TOTAL, OBSERVACIONES, ID_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) AS SELECT FACTURAS_CLIENTE.ID, FACTURAS_CLIENTE.ID_EMPRESA, FACTURAS_CLIENTE.REFERENCIA, FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA, FACTURAS_CLIENTE.FECHA_FACTURA, V_FAC_CLI_SITUACION.SITUACION, FACTURAS_CLIENTE.BASE_IMPONIBLE, FACTURAS_CLIENTE.DESCUENTO, FACTURAS_CLIENTE.IMPORTE_DESCUENTO, FACTURAS_CLIENTE.IVA, FACTURAS_CLIENTE.IMPORTE_IVA, FACTURAS_CLIENTE.RE, FACTURAS_CLIENTE.IMPORTE_RE, FACTURAS_CLIENTE.IMPORTE_TOTAL, FACTURAS_CLIENTE.OBSERVACIONES, FACTURAS_CLIENTE.ID_CLIENTE, FACTURAS_CLIENTE.NIF_CIF, FACTURAS_CLIENTE.NOMBRE, FACTURAS_CLIENTE.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 FROM V_FAC_CLI_SITUACION LEFT JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = V_FAC_CLI_SITUACION.ID_FACTURA) LEFT JOIN COMISIONES_LIQUIDADAS ON (COMISIONES_LIQUIDADAS.ID = FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA) LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = FACTURAS_CLIENTE.ID_CLIENTE); CREATE VIEW V_AGENTES_COMISIONES_DET_FAC( ID_FACTURA, ID_EMPRESA, FECHA, REFERENCIA, SITUACION, ID_COMISION_LIQUIDADA, ID_CLIENTE, ID_AGENTE, ID_ARTICULO, ID_PROVEEDOR, IMPORTE_TOTAL, COMISION, IMPORTE_COMISION) AS SELECT V_FACTURAS_CLIENTE.ID, V_FACTURAS_CLIENTE.ID_EMPRESA, V_FACTURAS_CLIENTE.FECHA_FACTURA, V_FACTURAS_CLIENTE.REFERENCIA, V_FACTURAS_CLIENTE.SITUACION, V_FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA, V_FACTURAS_CLIENTE.ID_CLIENTE, V_FACTURAS_CLIENTE.ID_AGENTE, FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, ARTICULOS.ID_PROVEEDOR, FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL, COALESCE(AGENTES_COMISIONES.COMISION, 0) as COMISION, (CASE COALESCE(AGENTES_COMISIONES.COMISION, 0) WHEN 0 THEN 0 ELSE ((FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL * AGENTES_COMISIONES.COMISION)/100) END) as IMPORTE_COMISION FROM V_FACTURAS_CLIENTE LEFT JOIN FACTURAS_CLIENTE_DETALLES ON (FACTURAS_CLIENTE_DETALLES.ID_FACTURA = V_FACTURAS_CLIENTE.ID) LEFT JOIN ARTICULOS ON (ARTICULOS.ID = FACTURAS_CLIENTE_DETALLES.ID_ARTICULO) LEFT JOIN AGENTES_COMISIONES ON ((AGENTES_COMISIONES.ID_AGENTE = V_FACTURAS_CLIENTE.ID_AGENTE) AND (AGENTES_COMISIONES.ID_PROVEEDOR = ARTICULOS.ID_PROVEEDOR)); CREATE VIEW V_REMESAS_CLIENTE( ID, ID_EMPRESA, REFERENCIA, 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.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(RECIBOS_CLIENTE.IMPORTE + RECIBOS_CLIENTE.OTROS_GASTOS) 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) GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16; CREATE TABLE FACTURAS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, REFERENCIA VARCHAR(255), REFERENCIA_PROVEEDOR VARCHAR(255), FECHA_FACTURA DATE, VENCIMIENTO INTEGER, SITUACION VARCHAR(255), 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 ); ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT PK_FACTURAS_PROVEEDOR PRIMARY KEY (ID); 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; /* Trigger: TRI_INSERT_FACTURAS_PROVEEDOR */ CREATE TRIGGER TRI_INSERT_FACTURAS_PROVEEDOR FOR FACTURAS_PROVEEDOR ACTIVE BEFORE INSERT POSITION 0 AS begin NEW.FECHA_ALTA = current_timestamp; NEW.FECHA_MODIFICACION = Null; end; /* Trigger: TRI_UPDATE_FACTURAS_PROVEEDOR */ CREATE TRIGGER TRI_UPDATE_FACTURAS_PROVEEDOR FOR FACTURAS_PROVEEDOR ACTIVE BEFORE UPDATE POSITION 0 AS begin NEW.FECHA_MODIFICACION = current_timestamp; end; 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 ); ALTER TABLE FACTURAS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_FACTURAS_PROVEEDOR_DETALLES PRIMARY KEY (ID); 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; /* Trigger: TRI_INSERT_FACTURAS_PROVEEDOR_DET */ CREATE TRIGGER TRI_INSERT_FACTURAS_PROV_DET FOR FACTURAS_PROVEEDOR_DETALLES ACTIVE BEFORE INSERT POSITION 0 AS begin NEW.FECHA_ALTA = current_timestamp; NEW.FECHA_MODIFICACION = Null; end; /* Trigger: TRI_UPDATE_FACTURAS_PROVEEDOR_DET */ CREATE TRIGGER TRI_UPDATE_FACTURAS_PROV_DET FOR FACTURAS_PROVEEDOR_DETALLES ACTIVE BEFORE UPDATE POSITION 0 AS begin NEW.FECHA_MODIFICACION = current_timestamp; end; CREATE GENERATOR GEN_FACTURAS_PROVEEDOR_ID; SET GENERATOR GEN_FACTURAS_PROVEEDOR_ID TO 1; CREATE GENERATOR GEN_FACTURA_PROV_DETALLES_ID; SET GENERATOR GEN_FACTURA_PROV_DETALLES_ID TO 1; CREATE TABLE RECIBOS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_FACTURA TIPO_ID, REFERENCIA VARCHAR(255), REFERENCIA_PROVEEDOR VARCHAR(255), FECHA_EMISION DATE, FECHA_VENCIMIENTO DATE, DESCRIPCION VARCHAR(255), OBSERVACIONES VARCHAR(255), IMPORTE TIPO_IMPORTE, OTROS_GASTOS TIPO_IMPORTE, FECHA_ALTA DATE, FECHA_MODIFICACION DATE, USUARIO TIPO_USUARIO ); ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT PK_RECIBOS_PROVEEDOR PRIMARY KEY (ID); ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT FK_RECIBOS_PROVEEDOR FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE; /* Trigger: TRI_INSERT_RECIBOS_PROVEEDOR */ CREATE TRIGGER TRI_INSERT_RECIBOS_PROVEEDOR FOR RECIBOS_PROVEEDOR ACTIVE BEFORE INSERT POSITION 0 AS begin NEW.FECHA_ALTA = current_timestamp; NEW.FECHA_MODIFICACION = Null; end; /* Trigger: TRI_UPDATE_RECIBOS_PROVEEDOR */ CREATE TRIGGER TRI_UPDATE_RECIBOS_PROVEEDOR FOR RECIBOS_PROVEEDOR ACTIVE BEFORE UPDATE POSITION 0 AS begin NEW.FECHA_MODIFICACION = current_timestamp; end; CREATE GENERATOR GEN_RECIBOS_PROVEEDOR_ID; SET GENERATOR GEN_RECIBOS_PROVEEDOR_ID TO 1; 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 ); ALTER TABLE PAGOS_PROVEEDOR ADD CONSTRAINT PK_PAGOS_PROVEEDOR PRIMARY KEY (ID); ALTER TABLE PAGOS_PROVEEDOR ADD CONSTRAINT FK_PAGOS_PROVEEDOR FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_PROVEEDOR (ID); /* Trigger: TRI_INSERT_PAGOS_CLIENTE */ CREATE TRIGGER TRI_INSERT_PAGOS_PROVEEDOR FOR PAGOS_PROVEEDOR ACTIVE BEFORE INSERT POSITION 0 AS begin NEW.FECHA_ALTA = current_timestamp; NEW.FECHA_MODIFICACION = Null; end; /* Trigger: TRI_UPDATE_PAGOS_CLIENTE */ CREATE TRIGGER TRI_UPDATE_PAGOS_PROVEEDOR FOR PAGOS_PROVEEDOR ACTIVE BEFORE UPDATE POSITION 0 AS begin NEW.FECHA_MODIFICACION = current_timestamp; end; CREATE GENERATOR GEN_PAGOS_PROVEEDOR_ID; SET GENERATOR GEN_PAGOS_PROVEEDOR_ID TO 1; 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_RECIBOS_PROVEEDOR( ID, REFERENCIA, REFERENCIA_PROVEEDOR, SITUACION, ID_FACTURA, FECHA_EMISION, FECHA_VENCIMIENTO, DESCRIPCION, OBSERVACIONES, IMPORTE, OTROS_GASTOS, IMPORTE_TOTAL, FECHA_FACTURA, FORMA_PAGO_FACTURA, IMPORTE_FACTURA, ID_EMPRESA, ID_PROVEEDOR, NOMBRE_PROVEEDOR, NIF_CIF_PROVEEDOR, ENTIDAD_PROVEEDOR, SUCURSAL_PROVEEDOR, DC_PROVEEDOR, CUENTA_PROVEEDOR, FECHA_ALTA, FECHA_MODIFICACION, USUARIO) AS SELECT RECIBOS_PROVEEDOR.ID, RECIBOS_PROVEEDOR.REFERENCIA, RECIBOS_PROVEEDOR.REFERENCIA_PROVEEDOR, V_REC_PRO_SITUACION.SITUACION, RECIBOS_PROVEEDOR.ID_FACTURA, RECIBOS_PROVEEDOR.FECHA_EMISION, RECIBOS_PROVEEDOR.FECHA_VENCIMIENTO, RECIBOS_PROVEEDOR.DESCRIPCION, RECIBOS_PROVEEDOR.OBSERVACIONES, RECIBOS_PROVEEDOR.IMPORTE, RECIBOS_PROVEEDOR.OTROS_GASTOS, RECIBOS_PROVEEDOR.IMPORTE + RECIBOS_PROVEEDOR.OTROS_GASTOS, FACTURAS_PROVEEDOR.FECHA_FACTURA, FORMAS_PAGO.DESCRIPCION, FACTURAS_PROVEEDOR.IMPORTE_TOTAL, FACTURAS_PROVEEDOR.ID_EMPRESA, CONTACTOS.ID as ID_PROVEEDOR, CONTACTOS.NOMBRE, CONTACTOS.NIF_CIF, CONTACTOS_DATOS_BANCO.ENTIDAD, CONTACTOS_DATOS_BANCO.SUCURSAL, CONTACTOS_DATOS_BANCO.DC, CONTACTOS_DATOS_BANCO.CUENTA, RECIBOS_PROVEEDOR.FECHA_ALTA, RECIBOS_PROVEEDOR.FECHA_MODIFICACION, RECIBOS_PROVEEDOR.USUARIO FROM V_REC_PRO_SITUACION LEFT JOIN RECIBOS_PROVEEDOR ON (RECIBOS_PROVEEDOR.ID = V_REC_PRO_SITUACION.ID_RECIBO) LEFT JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_FACTURA) LEFT JOIN FORMAS_PAGO ON (FORMAS_PAGO.ID = FACTURAS_PROVEEDOR.ID_FORMA_PAGO) LEFT JOIN CONTACTOS ON (CONTACTOS.ID = FACTURAS_PROVEEDOR.ID_PROVEEDOR) LEFT JOIN CONTACTOS_DATOS_BANCO ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = CONTACTOS.ID); /*CREAR REF_FACTURAS_PROVEEDOR*/ 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_FAC_PRO_PAGADOS( ID_FACTURA, NUM_REC_PAGADOS) AS SELECT V_RECIBOS_PROVEEDOR.ID_FACTURA, COUNT(V_RECIBOS_PROVEEDOR.ID) FROM V_RECIBOS_PROVEEDOR WHERE (V_RECIBOS_PROVEEDOR.SITUACION = 'PAGADO') GROUP BY V_RECIBOS_PROVEEDOR.ID_FACTURA; CREATE VIEW V_FAC_PRO_SITUACION( ID_FACTURA, SITUACION) AS SELECT V_REC_FAC_PRO.ID_FACTURA, CASE WHEN ((V_REC_FAC_PRO.NUM_RECIBOS = 0) OR (COALESCE (V_REC_FAC_PRO_PAGADOS.NUM_REC_PAGADOS,0) = 0)) THEN 'PENDIENTE' WHEN (V_REC_FAC_PRO.NUM_RECIBOS = COALESCE (V_REC_FAC_PRO_PAGADOS.NUM_REC_PAGADOS, 0)) THEN 'PAGADA' ELSE 'PARCIALMENTE PAGADA' END FROM V_REC_FAC_PRO LEFT JOIN V_REC_FAC_PRO_PAGADOS ON (V_REC_FAC_PRO_PAGADOS.ID_FACTURA = V_REC_FAC_PRO.ID_FACTURA); CREATE VIEW V_FACTURAS_PROVEEDOR( ID, ID_EMPRESA, REFERENCIA, REFERENCIA_PROVEEDOR, FECHA_FACTURA, SITUACION, BASE_IMPONIBLE, DESCUENTO, IMPORTE_DESCUENTO, IVA, IMPORTE_IVA, RE, IMPORTE_RE, IMPORTE_TOTAL, OBSERVACIONES, ID_PROVEEDOR, NIF_CIF, NOMBRE, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_FORMA_PAGO, RECARGO_EQUIVALENCIA, ID_TIPO_IVA, IMPORTE_NETO, IMPORTE_PORTE) AS SELECT FACTURAS_PROVEEDOR.ID, FACTURAS_PROVEEDOR.ID_EMPRESA, FACTURAS_PROVEEDOR.REFERENCIA, FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR, FACTURAS_PROVEEDOR.FECHA_FACTURA, V_FAC_PRO_SITUACION.SITUACION, FACTURAS_PROVEEDOR.BASE_IMPONIBLE, FACTURAS_PROVEEDOR.DESCUENTO, FACTURAS_PROVEEDOR.IMPORTE_DESCUENTO, FACTURAS_PROVEEDOR.IVA, FACTURAS_PROVEEDOR.IMPORTE_IVA, FACTURAS_PROVEEDOR.RE, FACTURAS_PROVEEDOR.IMPORTE_RE, FACTURAS_PROVEEDOR.IMPORTE_TOTAL, FACTURAS_PROVEEDOR.OBSERVACIONES, FACTURAS_PROVEEDOR.ID_PROVEEDOR, FACTURAS_PROVEEDOR.NIF_CIF, FACTURAS_PROVEEDOR.NOMBRE, FACTURAS_PROVEEDOR.CALLE, FACTURAS_PROVEEDOR.POBLACION, FACTURAS_PROVEEDOR.PROVINCIA, FACTURAS_PROVEEDOR.CODIGO_POSTAL, FACTURAS_PROVEEDOR.FECHA_ALTA, FACTURAS_PROVEEDOR.FECHA_MODIFICACION, FACTURAS_PROVEEDOR.USUARIO, FACTURAS_PROVEEDOR.ID_FORMA_PAGO, FACTURAS_PROVEEDOR.RECARGO_EQUIVALENCIA, FACTURAS_PROVEEDOR.ID_TIPO_IVA, FACTURAS_PROVEEDOR.IMPORTE_NETO, FACTURAS_PROVEEDOR.IMPORTE_PORTE FROM V_FAC_PRO_SITUACION LEFT JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = V_FAC_PRO_SITUACION.ID_FACTURA) LEFT JOIN PROVEEDORES_DATOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = FACTURAS_PROVEEDOR.ID_PROVEEDOR);