26 lines
652 B
SQL
26 lines
652 B
SQL
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 ; |