68 lines
1.7 KiB
MySQL
68 lines
1.7 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`quadre_clientes`(IN datFEC DATETIME)
|
||
|
BEGIN
|
||
|
|
||
|
|
||
|
DECLARE datSTART DATE;
|
||
|
SET datFEC = TIMESTAMP(datFEC,'23:59:59');
|
||
|
SELECT util.firstDayOfYear(datFEC) INTO datSTART;
|
||
|
|
||
|
SELECT P2.Alias, C.Id_Cliente, C.Cuenta, Gestion, Contaplus, Gestion - Contaplus as Diferencia, empresa_id, Cliente
|
||
|
|
||
|
FROM Clientes C
|
||
|
|
||
|
JOIN pay_met pm ON pm.id = C.pay_met_id
|
||
|
|
||
|
JOIN
|
||
|
|
||
|
(
|
||
|
|
||
|
SELECT empresa_id, Id_Cliente, round(sum(Gestion),2) as Gestion, round(sum(Contaplus),2) as Contaplus
|
||
|
|
||
|
FROM
|
||
|
|
||
|
(
|
||
|
SELECT empresa_id, Id_Cliente, Gestion, 0 as Contaplus
|
||
|
|
||
|
FROM
|
||
|
|
||
|
(
|
||
|
SELECT empresa_id, Id_Cliente, -1 * Importe as Gestion
|
||
|
FROM Facturas
|
||
|
WHERE Fecha BETWEEN datSTART AND datFEC
|
||
|
UNION ALL
|
||
|
SELECT empresa_id, Id_Cliente, Entregado
|
||
|
FROM Recibos
|
||
|
WHERE Fechacobro BETWEEN datSTART AND datFEC
|
||
|
) G
|
||
|
|
||
|
WHERE empresa_id <> 965
|
||
|
|
||
|
UNION ALL
|
||
|
|
||
|
SELECT empresa_id, Id_Cliente, 0, round(nz(Eurohaber) - nz(Eurodebe),2) as Contaplus
|
||
|
|
||
|
FROM bi.XDiario_ALL XD
|
||
|
|
||
|
JOIN Clientes C ON C.Cuenta = XD.SUBCTA
|
||
|
|
||
|
WHERE Fecha BETWEEN datSTART AND datFEC
|
||
|
|
||
|
) sub1
|
||
|
|
||
|
GROUP BY empresa_id, Id_Cliente
|
||
|
|
||
|
) sub2 USING(Id_Cliente)
|
||
|
|
||
|
JOIN Proveedores P2 ON P2.Id_Proveedor = sub2.empresa_id
|
||
|
|
||
|
WHERE pm.deudaviva -- Cliente de perdidas no vale la pena revisarlo
|
||
|
|
||
|
HAVING ABS(Diferencia) > 0.05
|
||
|
|
||
|
ORDER BY Cliente;
|
||
|
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|