Procedura-PLMComponentTest

Popis:
zamontovávaná komponenta musí mít hotové všechny povinné operace ('A') 0 - vše je OK 1 - CHYBA

Parametry:

NázevPopisDatový typ
InComponent_IDChar(10)

Návratové hodnoty:

NázevPopisDatový typ
ResultInteger

Tělo:

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;

Generated by ABRA Software a.s. 27.10.2021 16:34:50