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/SCRIPTS/SCRIPT RECIBOS.txt

180 lines
4.9 KiB
Plaintext

/*VISTAS*/
DROP VIEW V_FACTURAS_CLIENTE;
/*
DROP VIEW V_FAC_CLI_SITUACION;
DROP VIEW V_REC_FAC_CLI_COBRADOS;
DROP VIEW V_REC_FAC_CLI;
DROP VIEW V_RECIBOS_CLIENTE;
DROP 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_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,
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.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(
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_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,
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,
ID_TIPO_IVA,
IMPORTE_NETO,
IMPORTE_PORTE)
AS
SELECT FACTURAS_CLIENTE.ID,
FACTURAS_CLIENTE.ID_EMPRESA,
FACTURAS_CLIENTE.REFERENCIA,
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.ID_TIPO_IVA,
FACTURAS_CLIENTE.IMPORTE_NETO,
FACTURAS_CLIENTE.IMPORTE_PORTE
FROM V_FAC_CLI_SITUACION
LEFT JOIN FACTURAS_CLIENTE
ON (FACTURAS_CLIENTE.ID = V_FAC_CLI_SITUACION.ID_FACTURA);