Código SQL
[-]
--Actualizamos los ingredientes
--reduciendo la cantidad de los mismos
--en la proporción requerida por los detalles de la formula
FOR SELECT
FD.INGR_UUID, FD.FODE_CANTIDAD
FROM
TBLFORMULA F
INNER JOIN TBLFORMULA_DETALLE FD ON F.FORM_UUID = FD.FORM_UUID
--INNER JOIN TBLINGREDIENTE I ON FD.INGR_UUID = I.INGR_UUID
WHERE
F.FORM_UUID = CHAR_TO_UUID(:FORM_UUID_IN)
AND (FD.FODE_ACTIVO = '1') --Sólo se consulta lo activo.
--AND (I.INGR_CANTIDAD < (FD.FODE_CANTIDAD * :CANTIDAD)) --Menor cantidad de ingredientes de los necesarios
INTO
:INGR_UUID,
:FODE_CANTIDAD
DO
UPDATE TBLINGREDIENTE IU
SET
IU.INGR_CANTIDAD = IU.INGR_CANTIDAD - (:FODE_CANTIDAD * :CANTIDAD)
WHERE
IU.INGR_UUID = :INGR_UUID;
Yo acabo de hacer esto y me funciona perfectamente =)