26 lines
652 B
MySQL
26 lines
652 B
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE FUNCTION vn.sale_hasComponentLack(vSelf INT)
|
||
|
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
|
||
|
FROM component
|
||
|
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 ;
|