git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/tags/1.0.9@15 c93665c3-c93d-084d-9b98-7d5f4a9c3376
616 lines
18 KiB
SQL
616 lines
18 KiB
SQL
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); |