50 lines
1.4 KiB
MySQL
50 lines
1.4 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`customerDebtEvolution`(IN vCustomer INT)
|
||
|
BEGIN
|
||
|
|
||
|
SELECT * FROM
|
||
|
(
|
||
|
SELECT day, date, @s:= round(IFNULL(Euros,0) + @s,2) as Saldo, Euros, Credito, 0 as Cero
|
||
|
FROM
|
||
|
(
|
||
|
SELECT day, date, IFNULL(Euros,0) as Euros, Credito
|
||
|
FROM time
|
||
|
JOIN (SELECT @s:= 0, - Credito as Credito FROM Clientes WHERE Id_Cliente = vCustomer) c
|
||
|
LEFT JOIN
|
||
|
(SELECT Euros, date(Fecha) as Fecha FROM
|
||
|
(
|
||
|
SELECT Fechacobro as Fecha, Entregado as Euros
|
||
|
FROM Recibos
|
||
|
WHERE Id_Cliente = vCustomer
|
||
|
AND Fechacobro >= '2017-01-01'
|
||
|
UNION ALL
|
||
|
SELECT vn.getDueDate(f.Fecha,c.Vencimiento), - Importe
|
||
|
FROM Facturas f
|
||
|
JOIN Clientes c ON f.Id_Cliente = c.Id_Cliente
|
||
|
WHERE f.Id_Cliente = vCustomer
|
||
|
AND Fecha >= '2017-01-01'
|
||
|
UNION ALL
|
||
|
SELECT '2016-12-31', Debt
|
||
|
FROM bi.customerDebtInventory
|
||
|
WHERE Id_Cliente = vCustomer
|
||
|
UNION ALL
|
||
|
SELECT Fecha, - SUM(Cantidad * Preu * (100 - Descuento ) * 1.10 / 100)
|
||
|
FROM Tickets t
|
||
|
JOIN Movimientos m on m.Id_Ticket = t.Id_Ticket
|
||
|
WHERE Id_Cliente = vCustomer
|
||
|
AND Factura IS NULL
|
||
|
AND Fecha >= '2017-01-01'
|
||
|
GROUP BY Fecha
|
||
|
) sub2
|
||
|
ORDER BY Fecha
|
||
|
)sub ON time.date = sub.Fecha
|
||
|
WHERE time.date BETWEEN '2016-12-31' AND util.VN_CURDATE()
|
||
|
ORDER BY date
|
||
|
) sub3
|
||
|
)sub4
|
||
|
;
|
||
|
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|