quarta-feira, 27 de novembro de 2013

Manutenção OS ( Busca Requisição e Ordem de Compra ) Ems204


DEF VAR de-saldo-est LIKE saldo-estoq.qtidade-atu.
DEF VAR qt-ordens    LIKE prazo-compra.quantidade.

DEF TEMP-TABLE tt-item
    FIELD codigo    LIKE ITEM.it-codigo
    FIELD qtde      LIKE saldo-estoq.qtidade-atu
    FIELD saldo     LIKE saldo-estoq.qtidade-atu
    FIELD compra    LIKE saldo-estoq.qtidade-atu
    FIELD qt-ordens LIKE prazo-compra.quantidade
    INDEX i-codigo codigo.

EMPTY temp-table tt-item.

FOR EACH requisicao NO-LOCK
   WHERE requisicao.dt-requisicao >= 09/20/2007
     AND (requisicao.nome-abrev    = "2868"
      OR requisicao.nome-abrev     = "2690"):

   FOR EACH it-requisicao OF requisicao:
       FIND FIRST tt-item WHERE tt-item.codigo = it-requisicao.it-codigo NO-LOCK NO-ERROR.
       IF NOT AVAIL tt-item
       THEN DO:
           CREATE tt-item.
           ASSIGN tt-item.codigo = it-requisicao.it-codigo
                  tt-item.qtde   = it-requisicao.qt-requis.
       END.
       ELSE DO:
          ASSIGN tt-item.qtde = tt-item.qtde + it-requisicao.qt-requis.
       END.
   END.
END.

FOR EACH tt-item:
    for each saldo-estoq no-lock
      WHERE saldo-estoq.it-codigo      = tt-item.codigo  and
            saldo-estoq.cod-estabel    = "101"           and
            saldo-estoq.cod-refer      = "":
     assign de-saldo-est = de-saldo-est + saldo-estoq.qtidade-atu.
    end.
    ASSIGN tt-item.saldo = de-saldo-est
           de-saldo-est  = 0.
END.

FOR EACH requisicao NO-LOCK
   WHERE requisicao.dt-requisicao >= 09/20/2007
     AND requisicao.nome-abrev    = "entressafra":

   FOR EACH it-requisicao OF requisicao:
       FIND FIRST tt-item WHERE tt-item.codigo = it-requisicao.it-codigo NO-LOCK NO-ERROR.
       IF AVAIL tt-item THEN DO:
          ASSIGN tt-item.compra = tt-item.compra + it-requisicao.qt-requis.
       END.
   END.
END.

FOR EACH tt-item:
    FOR EACH ordem-compra NO-LOCK
       WHERE ordem-compra.data-emissao >= 09/21/2007
         AND ordem-compra.it-codigo     = tt-item.codigo
         AND ordem-compra.num-pedido    = 0:
        FOR EACH prazo-compra OF ordem-compra:
          ASSIGN qt-ordens = qt-ordens + prazo-compra.quantidade.
        END.
    END.
    ASSIGN tt-item.qt-ordens = tt-item.qt-ordens + qt-ordens
           qt-ordens = 0.
END.

OUTPUT TO e:\req-ordens.txt.

FOR EACH tt-item:
    FIND ITEM WHERE ITEM.it-codigo = tt-item.codigo NO-LOCK NO-ERROR.
     put tt-item.codigo
         ';'
         ITEM.desc-item
         ';'
         tt-item.qtde
         ';'
         tt-item.saldo
         ';'
         tt-item.compra
         ';'
         tt-item.qt-ordens
         SKIP.
END.

OUTPUT CLOSE.

Nenhum comentário:

Postar um comentário