salix/db/routines/vn/procedures/supplier_disablePayMethodCh...

26 lines
892 B
SQL

DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`supplier_disablePayMethodChecked`()
BEGIN
/*
* Deshabilita la comprobación de los datos bancarios de todos aquellos proveedores que tengan
* un número que no sea 0 en el campo graceMonthsDisableChecked de la tabla vn.payMethod
* y que no hayan recibido un pago desde el mes indicado
*/
UPDATE vn.supplier s
JOIN ( SELECT p.supplierFk
FROM supplier s
JOIN payMethod pm ON pm.id = s.payMethodFk
JOIN (SELECT supplierFk,MAX(created) created
FROM payment
GROUP BY supplierFk) p ON p.supplierFk = s.id
WHERE p.created < (util.VN_CURDATE() - INTERVAL pm.graceMonthsDisableChecked MONTH)
AND pm.graceMonthsDisableChecked
AND s.isPayMethodChecked
GROUP BY p.supplierFk) sdpmc ON sdpmc.supplierFk = s.id
SET s.isPayMethodChecked = FALSE;
END$$
DELIMITER ;