Procedura-PLMOperationTest

Popis:
0 - vše je OK 1 - ještě není dokončena některá povinná operace s nižším pořadovým číslem (není zadán pracovní listek nebo operace vyráběná v kooperaci s nastavením přivezení)

Parametry:

NázevPopisDatový typ
InJobOrdersSN_IDChar(10)
InJobOrdersRoutine_IDChar(10)

Návratové hodnoty:

NázevPopisDatový typ
ResultInteger

Tělo:

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;

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