BEGIN
SELECT JOSN.Parent_ID
FROM PLMJobOrdersSN JOSN
JOIN StoreBatches SB ON JOSN.StoreBatch_ID = SB.ID
WHERE SB.ID = :InComponent_ID
INTO :mManufacturedItem_ID;
IF (mManufacturedItem_ID IS NOT NULL) then begin
FOR
SELECT JOR.ID, JOR.Batch
FROM PLMJOOutputItems MI
JOIN PLMJobOrdersRoutines JOR ON MI.ID = JOR.Parent_ID
WHERE MI.ID = :mManufacturedItem_ID AND JOR.CompulsoryOperation > 0
INTO :mJORoutine_ID, :mBatch
DO BEGIN
IF (mBatch = 'N') THEN
BEGIN
SELECT count(*)
FROM PLMOperations O, plmjoborderssn JOSN
WHERE O.JobOrdersRoutines_ID = :mJORoutine_ID AND OperationResult = 'A'
AND O.JobOrdersSN_ID = JOSN.ID AND JOSN.StoreBatch_ID = :InComponent_ID
INTO :mCount;
END
ELSE BEGIN
SELECT count(*)
FROM PLMOperations
WHERE JobOrdersRoutines_ID = :mJORoutine_ID AND OperationResult = 'A'
INTO :mCount;
END
IF (mBatch = 'N') THEN
BEGIN
SELECT count(*)
FROM PLMCoopRoutines COOPR
JOIN PLMCoopOutputItems COOPOI ON COOPOI.ID = COOPR.Parent_ID
JOIN PLMCoopSN COOPSN ON COOPSN.Parent_ID = COOPR.Parent_ID
JOIN PLMJobOrdersSN JOSN ON JOSN.ID = COOPSN.SN_ID
WHERE
COOPR.JobOrdersRoutine_ID = :mJORoutine_ID AND
COOPSN.ReturnedQuantity > 0 AND
JOSN.StoreBatch_ID = :InComponent_ID
INTO :mCountCoop;
END
ELSE
BEGIN
SELECT count(*)
FROM PLMCoopRoutines COOPR
JOIN PLMCoopOutputItems COOPOI ON COOPOI.ID = COOPR.Parent_ID
WHERE
COOPR.JobOrdersRoutine_ID = :mJORoutine_ID AND
COOPOI.ReturnedQuantity > 0
INTO :mCountCoop;
END
IF (mCount + mCountCoop = 0) THEN
BEGIN
Result = 1;
SUSPEND;
EXIT;
END
END
END
Result = 0;
SUSPEND;
END;