quinta-feira, 28 de novembro de 2013

Programa Gera o arquivo com as Batidas do Funcionario do período informado, para serem atualizados no PIMS / Colcam


DEF VAR c_saida    AS CHAR FORMAT "x(70)"  INITIAL "E:\BATIDAS\BATIDAS.TXT" LABEL "Situa‡äes".
def var emp_ini             as int  format 999              initial 10          label "Empresa".
def var est_ini             as int  format 999              initial 50          label "Estabelecimento".
DEF VAR dt_ini              AS DATE FORMAT "99/99/9999"     INITIAL 08/21/2006  LABEL "Data".
DEF VAR dt_fim              AS DATE FORMAT "99/99/9999"     INITIAL 09/30/2006  LABEL "Data".
def stream s_saida.

update  "Este programa gerar  o arquivo com as Batidas do funcionario,"             SKIP
        "do per¡odo informado, para serem atualizados no PIMS / Colcam"             SKIP (1)
        emp_ini     AT  25   skip
        est_ini     AT  25   skip
        dt_ini      AT  25   SKIP
        dt_fim      AT  25   SKIP
        with frame pede with SIDE-LABELS view-as DIALOG-BOX SCROLLABLE.

REPEAT WHILE dt_ini <> (dt_fim + 1):

    DISP emp_ini est_ini dt_ini dt_fim WITH FRAME f-dados VIEW-AS DIALOG-BOX. PAUSE 0.

    ASSIGN c_saida = "E:\BATIDAS\MP" + STRING(dt_ini,"999999") + ".txt".

    DEF TEMP-TABLE TT-AG-MVDET
        FIELD EP-CODIGO LIKE AG-MVDET.EP-CODIGO
        FIELD ES-CODIGO LIKE AG-MVDET.ES-CODIGO
        FIELD FC-CODIGO LIKE AG-MVDET.FC-CODIGO
        FIELD DATA-REF  LIKE AG-MVDET.DATA-REF.

    EMPTY TEMP-TABLE TT-AG-MVDET.

    FOR EACH ag-mvdet
       WHERE ag-mvdet.ep-codigo = emp_ini
         AND ag-mvdet.es-codigo = est_ini
         AND ag-mvdet.data-ref  = dt_ini:

        FIND FIRST TT-AG-MVDET
       WHERE TT-AG-MVDET.EP-CODIGO = AG-MVDET.EP-CODIGO
         AND TT-AG-MVDET.ES-CODIGO = AG-MVDET.ES-CODIGO
         AND TT-AG-MVDET.FC-CODIGO = AG-MVDET.FC-CODIGO
         AND TT-AG-MVDET.DATA-REF  = AG-MVDET.DATA-REF NO-LOCK NO-ERROR.

        IF NOT AVAIL TT-AG-MVDET
        THEN DO:
            CREATE TT-AG-MVDET.
            ASSIGN TT-AG-MVDET.EP-CODIGO = AG-MVDET.EP-CODIGO
                   TT-AG-MVDET.ES-CODIGO = AG-MVDET.ES-CODIGO
                   TT-AG-MVDET.FC-CODIGO = AG-MVDET.FC-CODIGO
                   TT-AG-MVDET.DATA-REF  = AG-MVDET.DATA-REF.
        END.
    END.

    output stream s_saida TO VALUE (c_saida) CONVERT TARGET SESSION:CHARSET.

    FOR EACH TT-AG-MVDET:
        FIND ag-batida
           WHERE ag-batida.ep-codigo = TT-ag-mvdet.ep-codigo
             AND ag-batida.es-codigo = TT-ag-mvdet.es-codigo
             AND ag-batida.data-ref  = TT-ag-mvdet.data-ref
             AND ag-batida.fc-codigo = TT-ag-mvdet.fc-codigo NO-ERROR.

        IF AVAIL ag-batida
        THEN DO:    
            PUT STREAM s_saida
                 TT-ag-mvdet.fc-codigo   
                 TT-ag-mvdet.data-ref    
                 ag-batida.hora-inic     
                 "10:00 " "11:00 "
                 "14:00 " "14:30 "
                 ag-batida.hora-final
                 SKIP.
        END.
    END.

    ASSIGN dt_ini = dt_ini + 1.

    OUTPUT CLOSE.
END.

Nenhum comentário:

Postar um comentário