This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/script.sql
2007-06-12 13:52:41 +00:00

849 lines
22 KiB
SQL

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;