2024-04-16 15:01:14 +00:00
|
|
|
DELIMITER $$
|
2024-04-16 16:26:57 +00:00
|
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`sale_hasComponentLack`(vSelf INT)
|
2024-04-16 15:01:14 +00:00
|
|
|
RETURNS tinyint(1)
|
|
|
|
READS SQL DATA
|
|
|
|
BEGIN
|
|
|
|
/**
|
|
|
|
* Comprueba si la línea de sale tiene todos lo componentes obligatorios
|
|
|
|
*
|
|
|
|
* @return BOOL
|
|
|
|
*/
|
|
|
|
DECLARE vHasComponentLack TINYINT(1);
|
|
|
|
|
|
|
|
WITH componentRequired AS(
|
|
|
|
SELECT COUNT(*)total
|
2024-04-16 16:26:57 +00:00
|
|
|
FROM vn.component
|
2024-04-16 15:01:14 +00:00
|
|
|
WHERE isRequired
|
|
|
|
)SELECT SUM(IF(c.isRequired, TRUE, FALSE)) <> cr.total INTO vHasComponentLack
|
|
|
|
FROM vn.sale s
|
|
|
|
JOIN componentRequired cr
|
|
|
|
LEFT JOIN vn.saleComponent sc ON sc.saleFk = s.id
|
|
|
|
LEFT JOIN vn.component c ON c.id = sc.componentFk
|
|
|
|
WHERE s.id = vSelf;
|
|
|
|
|
|
|
|
RETURN vHasComponentLack;
|
|
|
|
END$$
|
|
|
|
DELIMITER ;
|