58 lines
2.0 KiB
MySQL
58 lines
2.0 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`comercial_caducado`()
|
||
|
BEGIN
|
||
|
|
||
|
-- Este procedimiento le pasa los clientes al jefe de ventas cuando llevan dos meses inactivos
|
||
|
|
||
|
IF day(util.VN_CURDATE()) = 5 then -- solo se ejecuta los dias 5 de cada mes
|
||
|
|
||
|
Update Clientes
|
||
|
join
|
||
|
(
|
||
|
Select c.Id_Cliente
|
||
|
from Clientes c
|
||
|
join jerarquia j on j.worker_id = c.Id_Trabajador -- este filtro es para que solo toque los de los comerciales
|
||
|
|
||
|
join
|
||
|
(
|
||
|
select Id_Cliente, sum(Importe) as Saldo
|
||
|
from
|
||
|
(
|
||
|
select Id_Cliente, Importe from Facturas
|
||
|
union all
|
||
|
select Id_Cliente, - Entregado from Recibos
|
||
|
) sub
|
||
|
group by Id_Cliente
|
||
|
) sindeuda on sindeuda.Id_Cliente = c.Id_Cliente
|
||
|
|
||
|
left join
|
||
|
(
|
||
|
select distinct Id_Cliente
|
||
|
from Facturas
|
||
|
where Fecha BETWEEN util.VN_CURDATE() - INTERVAL 12 MONTH AND util.VN_CURDATE()
|
||
|
) f on f.Id_Cliente = c.Id_Cliente
|
||
|
|
||
|
left join
|
||
|
(
|
||
|
select distinct Id_Cliente
|
||
|
from Tickets
|
||
|
where Fecha between util.VN_CURDATE() - INTERVAL 2 DAY AND util.VN_CURDATE() + INTERVAL 200 DAY
|
||
|
|
||
|
) tic_vivos on tic_vivos.Id_Cliente = c.Id_Cliente
|
||
|
|
||
|
where c.Created < util.VN_CURDATE() - INTERVAL 2 MONTH -- este filtro respeta a los recien nacidos....
|
||
|
and j.boss_id = 87 -- sólo afecta a los comerciales de Alfredo
|
||
|
and f.Id_Cliente is null -- comprueba que no tenga facturas en los dos ultimos meses
|
||
|
and sindeuda.Saldo < 10 -- sólo cambia a los clientes con deuda escasa o nula
|
||
|
and tic_vivos.Id_Cliente is null -- si tiene tickets vivos, lo respeta
|
||
|
|
||
|
|
||
|
) sub using(Id_Cliente)
|
||
|
|
||
|
set Id_Trabajador = 87 ;-- Alfredo Giner;
|
||
|
|
||
|
end if;
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|