ALTER TABLE PROVEEDORES_DATOS ADD TIENDA_WEB TIPO_BOOLEANO; UPDATE PROVEEDORES_DATOS SET TIENDA_WEB = 0; ALTER TABLE CLIENTES_DATOS ADD TIENDA_WEB TIPO_BOOLEANO; UPDATE CLIENTES_DATOS SET TIENDA_WEB = 0; /*********************************************************************************************** Ahora hay que cambiar las vistas v_clientes y v_proveedores por lo que tengo que borrar las vistas que dependen de ellas, cambiarlas y volver a rehacer las otras vistas. ***********************************************************************************************/ /* Drop the `V_CLIENTES` table with dependent objects : */ DROP VIEW V_ALBARANES_CLIENTE; DROP VIEW V_PEDIDOS_CLIENTE; DROP VIEW V_CLIENTES; /* Drop the `V_PROVEEDORES` table with dependent objects : */ DROP VIEW V_ALBARANES_PROVEEDOR; DROP VIEW V_PEDIDOS_PROVEEDOR; DROP VIEW V_PROVEEDORES; /* Definition for the `V_CLIENTES` view : */ CREATE VIEW V_CLIENTES( ID, ID_CATEGORIA, NIF_CIF, NOMBRE, 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_AGENTE, GRUPO_CLIENTE, NOMBRE_COMERCIAL, VENCIMIENTO_FACTURAS, BLOQUEADO, REGIMEN_IVA, MOTIVO_BLOQUEO, RECARGO_EQUIVALENCIA, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB) AS SELECT V_CONTACTOS.ID, V_CONTACTOS.ID_CATEGORIA, V_CONTACTOS.NIF_CIF, V_CONTACTOS.NOMBRE, 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, CLIENTES_DATOS.ID_AGENTE, 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 FROM V_CONTACTOS LEFT OUTER JOIN CLIENTES_DATOS ON (V_CONTACTOS.ID = CLIENTES_DATOS.ID_CLIENTE) WHERE V_CONTACTOS.ID_CATEGORIA = 1 ; CREATE VIEW V_PEDIDOS_CLIENTE( ID, ID_EMPRESA, ID_CLIENTE, NOMBRE, REFERENCIA, SITUACION, FECHA_PEDIDO, CALLE, CODIGO_POSTAL, POBLACION, PROVINCIA, PERSONA_CONTACTO, TELEFONO, 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) AS SELECT PEDIDOS_CLIENTE.ID, PEDIDOS_CLIENTE.ID_EMPRESA, PEDIDOS_CLIENTE.ID_CLIENTE, V_CLIENTES.NOMBRE, PEDIDOS_CLIENTE.REFERENCIA, V_PED_CLI_SITUACION.SITUACION, PEDIDOS_CLIENTE.FECHA_PEDIDO, PEDIDOS_CLIENTE.CALLE, PEDIDOS_CLIENTE.CODIGO_POSTAL, PEDIDOS_CLIENTE.POBLACION, PEDIDOS_CLIENTE.PROVINCIA, PEDIDOS_CLIENTE.PERSONA_CONTACTO, PEDIDOS_CLIENTE.TELEFONO, PEDIDOS_CLIENTE.OBSERVACIONES, PEDIDOS_CLIENTE.INCIDENCIAS, PEDIDOS_CLIENTE.INCIDENCIAS_ACTIVAS, PEDIDOS_CLIENTE.FECHA_ALTA, PEDIDOS_CLIENTE.FECHA_MODIFICACION, PEDIDOS_CLIENTE.USUARIO, PEDIDOS_CLIENTE.IMPORTE_NETO, PEDIDOS_CLIENTE.IMPORTE_PORTE, PEDIDOS_CLIENTE.DESCUENTO, PEDIDOS_CLIENTE.IMPORTE_DESCUENTO, PEDIDOS_CLIENTE.BASE_IMPONIBLE, PEDIDOS_CLIENTE.IVA, PEDIDOS_CLIENTE.IMPORTE_IVA, PEDIDOS_CLIENTE.IMPORTE_TOTAL, PEDIDOS_CLIENTE.ID_FORMA_PAGO FROM PEDIDOS_CLIENTE LEFT OUTER JOIN V_CLIENTES ON (PEDIDOS_CLIENTE.ID_CLIENTE = V_CLIENTES.ID) LEFT OUTER JOIN V_PED_CLI_SITUACION ON (V_PED_CLI_SITUACION.ID_PEDIDO = PEDIDOS_CLIENTE.ID) ; CREATE VIEW V_ALBARANES_CLIENTE( ID, ID_EMPRESA, ID_CLIENTE, NOMBRE, FECHA_ALBARAN, REFERENCIA, 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_ENVIO, FECHA_RECEPCION) AS SELECT ALBARANES_CLIENTE.ID, ALBARANES_CLIENTE.ID_EMPRESA, ALBARANES_CLIENTE.ID_CLIENTE, V_CLIENTES.NOMBRE, ALBARANES_CLIENTE.FECHA_ALBARAN, ALBARANES_CLIENTE.REFERENCIA, 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_ENVIO, ALBARANES_CLIENTE.FECHA_RECEPCION FROM ALBARANES_CLIENTE LEFT OUTER JOIN V_CLIENTES ON (ALBARANES_CLIENTE.ID_CLIENTE = V_CLIENTES.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 V_ALB_CLI_SITUACION ON (V_ALB_CLI_SITUACION.ID = ALBARANES_CLIENTE.ID) LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_CLIENTE.ID_ALMACEN) ; CREATE VIEW V_PROVEEDORES( ID, ID_CATEGORIA, NIF_CIF, NOMBRE, 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, DESCUENTO, REGIMEN_IVA, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB) AS SELECT V_CONTACTOS.ID, V_CONTACTOS.ID_CATEGORIA, V_CONTACTOS.NIF_CIF, V_CONTACTOS.NOMBRE, 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, PROVEEDORES_DATOS.DESCUENTO, PROVEEDORES_DATOS.REGIMEN_IVA, PROVEEDORES_DATOS.ID_TIPO_IVA, PROVEEDORES_DATOS.ID_FORMA_PAGO, PROVEEDORES_DATOS.TIENDA_WEB FROM PROVEEDORES_DATOS INNER JOIN V_CONTACTOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = V_CONTACTOS.ID) WHERE V_CONTACTOS.ID_CATEGORIA = 2 ; CREATE VIEW V_ALBARANES_PROVEEDOR( ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, FECHA_ALBARAN, REFERENCIA, ID_ALMACEN, NOMBRE_ALMACEN, ID_PEDIDO, REF_PED_PROVEEDOR, ID_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) AS SELECT ALBARANES_PROVEEDOR.ID, ALBARANES_PROVEEDOR.ID_EMPRESA, ALBARANES_PROVEEDOR.ID_PROVEEDOR, V_PROVEEDORES.NOMBRE, ALBARANES_PROVEEDOR.FECHA_ALBARAN, ALBARANES_PROVEEDOR.REFERENCIA, ALBARANES_PROVEEDOR.ID_ALMACEN, ALMACENES.NOMBRE AS NOMBRE_ALMACEN, ALBARANES_PROVEEDOR.ID_PEDIDO, PEDIDOS_PROVEEDOR.REFERENCIA AS REF_PED_PROVEEDOR, ALBARANES_PROVEEDOR.ID_FACTURA, 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 FROM ALBARANES_PROVEEDOR LEFT OUTER JOIN V_PROVEEDORES ON (ALBARANES_PROVEEDOR.ID_PROVEEDOR = V_PROVEEDORES.ID) LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_PEDIDO) LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDOR.ID_ALMACEN) ; 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) AS SELECT PEDIDOS_PROVEEDOR.ID, PEDIDOS_PROVEEDOR.ID_EMPRESA, PEDIDOS_PROVEEDOR.ID_PROVEEDOR, V_PROVEEDORES.NOMBRE, PEDIDOS_PROVEEDOR.REFERENCIA, 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 FROM PEDIDOS_PROVEEDOR LEFT OUTER JOIN V_PROVEEDORES ON (PEDIDOS_PROVEEDOR.ID_PROVEEDOR = V_PROVEEDORES.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 V_PED_PROV_SITUACION ON (V_PED_PROV_SITUACION.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID) ; /*********************************************************************************************** AQUI SE ACABA ***********************************************************************************************/ INSERT INTO REFERENCIAS ("CODIGO", "VALOR", "ID_EMPRESA") VALUES ('REF_COMISIONES', '00001', 1); ALTER TABLE FACTURAS_CLIENTE ADD ID_COMISION_LIQUIDADA TIPO_ID; ALTER TABLE CONTACTOS_DIRECCIONES ADD FECHA_ALTA TIMESTAMP, ADD FECHA_MODIFICACION TIMESTAMP; UPDATE CONTACTOS_DIRECCIONES SET CONTACTOS_DIRECCIONES.FECHA_ALTA = (SELECT CONTACTOS.FECHA_ALTA FROM CONTACTOS WHERE CONTACTOS.ID = CONTACTOS_DIRECCIONES.ID_CONTACTO) WHERE CONTACTOS_DIRECCIONES.FECHA_ALTA IS NULL; COMMIT; CREATE TRIGGER TRI_INSERT_CONTACTOS_DIR FOR CONTACTOS_DIRECCIONES ACTIVE BEFORE INSERT POSITION 0 AS begin NEW.FECHA_ALTA = current_timestamp; NEW.FECHA_MODIFICACION = Null; end; CREATE TRIGGER TRI_UPDATE_CONTACTOS_DIR FOR CONTACTOS_DIRECCIONES ACTIVE BEFORE UPDATE POSITION 0 AS begin NEW.FECHA_MODIFICACION = current_timestamp; end; ALTER TABLE CONTACTOS_DATOS_BANCO ADD FECHA_ALTA TIMESTAMP, ADD FECHA_MODIFICACION TIMESTAMP; UPDATE CONTACTOS_DATOS_BANCO SET CONTACTOS_DATOS_BANCO.FECHA_ALTA = (SELECT CONTACTOS.FECHA_ALTA FROM CONTACTOS WHERE CONTACTOS.ID = CONTACTOS_DATOS_BANCO.ID_CONTACTO) WHERE CONTACTOS_DATOS_BANCO.FECHA_ALTA IS NULL; COMMIT; CREATE TRIGGER TRI_INSERT_CONTACTOS_BANCO FOR CONTACTOS_DATOS_BANCO ACTIVE BEFORE INSERT POSITION 0 AS begin NEW.FECHA_ALTA = current_timestamp; NEW.FECHA_MODIFICACION = Null; end; CREATE TRIGGER TRI_UPDATE_CONTACTOS_BANCO FOR CONTACTOS_DATOS_BANCO ACTIVE BEFORE UPDATE POSITION 0 AS begin NEW.FECHA_MODIFICACION = current_timestamp; end; ALTER TABLE FACTURAS_CLIENTE ADD ID_COMISION_LIQUIDADA TIPO_ID; 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)); ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT PK_EMPRESAS_DATOS_BANCO PRIMARY KEY (ID); ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT FK_EMPRESAS_DATOS_BANCO FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS(ID) ON DELETE CASCADE ON UPDATE CASCADE; CREATE GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID; SET GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID TO 1; ALTER TABLE REMESAS_CLIENTE ADD ID_DATOS_BANCO TIPO_ID; ALTER TABLE REMESAS_CLIENTE DROP TITULAR; ALTER TABLE REMESAS_CLIENTE DROP ENTIDAD; ALTER TABLE REMESAS_CLIENTE DROP SUCURSAL; ALTER TABLE REMESAS_CLIENTE DROP DC; ALTER TABLE REMESAS_CLIENTE DROP CUENTA; 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_VENCIMIENTO, DESCRIPCION, OBSERVACIONES, IMPORTE, OTROS_GASTOS, 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_VENCIMIENTO, RECIBOS_CLIENTE.DESCRIPCION, RECIBOS_CLIENTE.OBSERVACIONES, 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 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 ); ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT PK_COMISIONES_LIQUIDADAS PRIMARY KEY (ID); ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT FK_COMISIONES_LIQUIDADAS FOREIGN KEY (ID_AGENTE) REFERENCES CONTACTOS (ID); /* Trigger: TRI_INSERT_COMISIONES_LIQUID */ CREATE TRIGGER TRI_INSERT_COMISIONES_LIQUID FOR COMISIONES_LIQUIDADAS ACTIVE BEFORE INSERT POSITION 0 AS begin NEW.FECHA_ALTA = current_timestamp; NEW.FECHA_MODIFICACION = Null; end; /* Trigger: TRI_UPDATE_COMISIONES_LIQUID */ CREATE TRIGGER TRI_UPDATE_COMISIONES_LIQUID FOR COMISIONES_LIQUIDADAS ACTIVE BEFORE UPDATE POSITION 0 AS begin NEW.FECHA_MODIFICACION = current_timestamp; end; 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 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)); ALTER TABLE TIENDA_WEB ADD CONSTRAINT PK_TIENDA_WEB PRIMARY KEY (ID); ALTER TABLE TIENDA_WEB ADD CONSTRAINT FK_EMPRESAS_TIENDA_WEB FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS(ID) ON DELETE CASCADE ON UPDATE CASCADE; CREATE GENERATOR GEN_TIENDA_WEB_ID; SET GENERATOR GEN_TIENDA_WEB_ID TO 1;