BEGIN
SELECT Parent_ID, CompulsoryOperation
FROM PLMJobOrdersRoutines
WHERE ID = :InJobOrdersRoutine_ID
INTO :mManufacturedItem_ID, :mCompulsoryOperation;
IF (mCompulsoryOperation <> 0) then BEGIN
FOR
SELECT ID
FROM PLMJobOrdersRoutines
WHERE Parent_ID = :mManufacturedItem_ID AND CompulsoryOperation < :mCompulsoryOperation AND CompulsoryOperation > 0
INTO :mJORoutine_ID
DO BEGIN
SELECT count(*)
FROM PLMOperations
WHERE JobOrdersRoutines_ID = :mJORoutine_ID AND (JobOrdersSN_ID = :InJobOrdersSN_ID OR :InJobOrdersSN_ID is null OR JobOrdersSN_ID is null) AND OperationResult = 'A'
INTO :mCount;
IF (:InJobOrdersSN_ID > '0000000000') THEN
BEGIN
SELECT count(*)
FROM PLMCoopOutputItems COI
JOIN PLMCoopRoutines CR ON (CR.Parent_ID = COI.ID)
JOIN PLMCoopSN CSN ON (CSN.Parent_ID = COI.ID)
WHERE CR.JobOrdersRoutine_ID = :mJORoutine_ID
AND CSN.ReturnedQuantity > 0
AND CSN.SN_ID = :InJobOrdersSN_ID
INTO :mCountCoop;
END
ELSE
BEGIN
SELECT count(*)
FROM PLMCoopOutputItems COI
JOIN PLMCoopRoutines CR ON (CR.Parent_ID = COI.ID)
WHERE CR.JobOrdersRoutine_ID = :mJORoutine_ID
AND COI.ReturnedQuantity > 0
INTO :mCountCoop;
END
IF (mCount + mCountCoop = 0) THEN BEGIN
Result = 1;
SUSPEND;
EXIT;
END
END
END
Result = 0;
SUSPEND;
END;