quarta-feira, 27 de novembro de 2013

Verifica Pedidos, Notas e Duplicatas ( Datasul )


DEFINE VARIABLE de-total    AS DECIMAL FORMAT "->>,>>>,>>>,>>9.99" NO-UNDO.
DEFINE VARIABLE i-contador  AS INTEGER INITIAL 0 NO-UNDO.
DEFINE VARIABLE l-mensagem  AS LOGICAL INITIAL FALSE.

DEFINE TEMP-TABLE tt-ped-nota-tit
        FIELD ped-venda-nome-abrev      LIKE ped-venda.nome-abrev        
        FIELD ped-venda-nr-pedcli       LIKE ped-venda.nr-pedcli        
        FIELD ped-venda-dt-implant      LIKE ped-venda.dt-implant        
        FIELD ped-venda-vl-tot-ped      LIKE ped-venda.vl-tot-ped        
        FIELD ped-venda-vl-liq-abe      LIKE ped-venda.vl-liq-abe        
        FIELD nota-fiscal-cod-estabel   LIKE nota-fiscal.cod-estabel    
        FIELD nota-fiscal-serie         LIKE nota-fiscal.serie          
        FIELD nota-fiscal-nr-nota-fis   LIKE nota-fiscal.nr-nota-fis    
        FIELD nota-fiscal-dt-atual-cr   LIKE nota-fiscal.dt-atual-cr    
        FIELD nota-fiscal-dt-cancela    LIKE nota-fiscal.dt-cancela      
        FIELD nota-fiscal-vl-fatura     LIKE nota-fiscal.vl-fatura      
        FIELD nota-fiscal-vl-tot-nota   LIKE nota-fiscal.vl-tot-nota    
        FIELD titulo-cod-estabel        LIKE titulo.cod-estabel          
        FIELD titulo-cod-esp            LIKE titulo.cod-esp              
        FIELD titulo-serie              LIKE titulo.serie                
        FIELD titulo-nr-docto           LIKE titulo.nr-docto            
        FIELD titulo-parcela            LIKE titulo.parcela              
        FIELD titulo-dt-vencimen        LIKE titulo.dt-vencimen     INITIAL ?          
        FIELD titulo-dt-ult-pagto       LIKE titulo.dt-ult-pagto    INITIAL ?    
        FIELD titulo-dt-ult-baixa       LIKE titulo.dt-ult-baixa    INITIAL ?    
        FIELD titulo-dt-emissao         LIKE titulo.dt-emissao      INITIAL ?    
        FIELD titulo-vl-saldo           LIKE titulo.vl-saldo            
        FIELD titulo-vl-pago            LIKE titulo.vl-pago              
        FIELD titulo-vl-liquido         LIKE titulo.vl-liquido
        FIELD tit-pedido-ou-nota        AS CHAR FORMAT "!!!!"
        INDEX ch-pedido                 ped-venda-nome-abrev      
                                        ped-venda-nr-pedcli
                                        ped-venda-dt-implant.            


DEFINE BUFFER b-natur-oper FOR natur-oper.


FOR EACH natur-oper NO-LOCK
    WHERE natur-oper.emite-duplic = YES,
    EACH ped-venda OF natur-oper
/*     WHERE ped-venda.nr-pedcli = "1262"  */
    NO-LOCK:

    FOR EACH nota-fiscal
        WHERE nota-fiscal.nome-ab-cli = ped-venda.nome-abrev
          AND nota-fiscal.nr-pedcli   = ped-venda.nr-pedcli
        USE-INDEX ch-nota          
        NO-LOCK:

        IF l-mensagem THEN

            MESSAGE "ACHOU NOTA" RECID (nota-fiscal)
                VIEW-AS ALERT-BOX INFO BUTTONS OK.

        FIND FIRST estabelec
            WHERE estabelec.cod-estabel = nota-fiscal.cod-estabel
            NO-LOCK
            NO-ERROR.
   
        ASSIGN i-contador = 0.

        /********************************************************************************/

        FOR EACH fat-duplic
            WHERE fat-duplic.cod-estabel = nota-fiscal.cod-estabel
              AND fat-duplic.serie       = nota-fiscal.serie    
              AND fat-duplic.nr-fatura   = nota-fiscal.nr-nota-fis
            NO-LOCK:
           
            IF l-mensagem THEN

                MESSAGE "ACHOU FAT-DUPLIC" RECID (fat-duplic)
                    VIEW-AS ALERT-BOX INFO BUTTONS OK.

            ASSIGN i-contador = i-contador + 1.

            FIND FIRST titulo
              WHERE titulo.ep-codigo      = estabelec.ep-codigo
                AND titulo.cod-estabel    = fat-duplic.cod-estabel
                AND titulo.cod-esp        = fat-duplic.cod-esp
                AND titulo.serie          = fat-duplic.serie
                AND titulo.nr-docto       = fat-duplic.nr-fatura
                AND titulo.parcela        = fat-duplic.parcela
              NO-LOCK
              NO-ERROR.
   
            IF AVAILABLE (titulo) THEN DO:
           
                IF l-mensagem THEN

                    MESSAGE "ACHOU TITULO NOTA" RECID (titulo)
                        VIEW-AS ALERT-BOX INFO BUTTONS OK.

                CREATE tt-ped-nota-tit.

                ASSIGN tt-ped-nota-tit.ped-venda-nome-abrev     = ped-venda.nome-abrev          
                       tt-ped-nota-tit.ped-venda-nr-pedcli      = ped-venda.nr-pedcli            
                       tt-ped-nota-tit.ped-venda-dt-implant     = ped-venda.dt-implant          
                       tt-ped-nota-tit.ped-venda-vl-tot-ped     = ped-venda.vl-tot-ped          
                       tt-ped-nota-tit.ped-venda-vl-liq-abe     = ped-venda.vl-liq-abe          
                       tt-ped-nota-tit.nota-fiscal-cod-estabel  = nota-fiscal.cod-estabel        
                       tt-ped-nota-tit.nota-fiscal-serie        = nota-fiscal.serie              
                       tt-ped-nota-tit.nota-fiscal-nr-nota-fis  = nota-fiscal.nr-nota-fis        
                       tt-ped-nota-tit.nota-fiscal-dt-atual-cr  = nota-fiscal.dt-atual-cr        
                       tt-ped-nota-tit.nota-fiscal-dt-cancela   = nota-fiscal.dt-cancela        
                       tt-ped-nota-tit.nota-fiscal-vl-fatura    = nota-fiscal.vl-fatura          
                       tt-ped-nota-tit.nota-fiscal-vl-tot-nota  = nota-fiscal.vl-tot-nota        
                       tt-ped-nota-tit.titulo-cod-estabel       = titulo.cod-estabel            
                       tt-ped-nota-tit.titulo-cod-esp           = titulo.cod-esp                
                       tt-ped-nota-tit.titulo-serie             = titulo.serie                  
                       tt-ped-nota-tit.titulo-nr-docto          = titulo.nr-docto                
                       tt-ped-nota-tit.titulo-parcela           = titulo.parcela                
                       tt-ped-nota-tit.titulo-dt-vencimen       = titulo.dt-vencimen            
                       tt-ped-nota-tit.titulo-dt-ult-pagto      = titulo.dt-ult-pagto            
                       tt-ped-nota-tit.titulo-dt-ult-baixa      = titulo.dt-ult-baixa            
                       tt-ped-nota-tit.titulo-dt-emissao        = titulo.dt-emissao              
                       tt-ped-nota-tit.titulo-vl-saldo          = titulo.vl-saldo                
                       tt-ped-nota-tit.titulo-vl-pago           = titulo.vl-pago                
                       tt-ped-nota-tit.titulo-vl-liquido        = titulo.vl-liquido
                       tt-ped-nota-tit.tit-pedido-ou-nota       = "NOTA".          
                     
            END.      

            ELSE DO:

                CREATE tt-ped-nota-tit.

                ASSIGN tt-ped-nota-tit.ped-venda-nome-abrev     = ped-venda.nome-abrev          
                       tt-ped-nota-tit.ped-venda-nr-pedcli      = ped-venda.nr-pedcli            
                       tt-ped-nota-tit.ped-venda-dt-implant     = ped-venda.dt-implant          
                       tt-ped-nota-tit.ped-venda-vl-tot-ped     = ped-venda.vl-tot-ped          
                       tt-ped-nota-tit.ped-venda-vl-liq-abe     = ped-venda.vl-liq-abe          
                       tt-ped-nota-tit.nota-fiscal-cod-estabel  = nota-fiscal.cod-estabel        
                       tt-ped-nota-tit.nota-fiscal-serie        = nota-fiscal.serie              
                       tt-ped-nota-tit.nota-fiscal-nr-nota-fis  = nota-fiscal.nr-nota-fis        
                       tt-ped-nota-tit.nota-fiscal-dt-atual-cr  = nota-fiscal.dt-atual-cr        
                       tt-ped-nota-tit.nota-fiscal-dt-cancela   = nota-fiscal.dt-cancela        
                       tt-ped-nota-tit.nota-fiscal-vl-fatura    = nota-fiscal.vl-fatura          
                       tt-ped-nota-tit.nota-fiscal-vl-tot-nota  = nota-fiscal.vl-tot-nota        
                       tt-ped-nota-tit.tit-pedido-ou-nota       = "NADA".          
           
            END.

       END.          
                     
        /********************************************************************************/

        IF i-contador = 0 THEN DO: /*** NOTA  GERA TITULO -  PROCURAR PEDIDOS ***/

            ASSIGN i-contador = 0.

            FOR EACH titulo
                WHERE titulo.nome-abrev     = ped-venda.nome-abrev              
                  AND titulo.nr-pedcli      = ped-venda.nr-pedcli              
                NO-LOCK:

                IF l-mensagem THEN

                    MESSAGE "ACHOU TITULO PEDIDO"
                        VIEW-AS ALERT-BOX INFO BUTTONS OK.

                ASSIGN i-contador = i-contador + 1.

                CREATE tt-ped-nota-tit.

                ASSIGN tt-ped-nota-tit.ped-venda-nome-abrev     = ped-venda.nome-abrev          
                       tt-ped-nota-tit.ped-venda-nr-pedcli      = ped-venda.nr-pedcli            
                       tt-ped-nota-tit.ped-venda-dt-implant     = ped-venda.dt-implant          
                       tt-ped-nota-tit.ped-venda-vl-tot-ped     = ped-venda.vl-tot-ped          
                       tt-ped-nota-tit.ped-venda-vl-liq-abe     = ped-venda.vl-liq-abe          
                       tt-ped-nota-tit.nota-fiscal-cod-estabel  = nota-fiscal.cod-estabel        
                       tt-ped-nota-tit.nota-fiscal-serie        = nota-fiscal.serie              
                       tt-ped-nota-tit.nota-fiscal-nr-nota-fis  = nota-fiscal.nr-nota-fis        
                       tt-ped-nota-tit.nota-fiscal-dt-atual-cr  = nota-fiscal.dt-atual-cr        
                       tt-ped-nota-tit.nota-fiscal-dt-cancela   = nota-fiscal.dt-cancela        
                       tt-ped-nota-tit.nota-fiscal-vl-fatura    = nota-fiscal.vl-fatura          
                       tt-ped-nota-tit.nota-fiscal-vl-tot-nota  = nota-fiscal.vl-tot-nota        
                       tt-ped-nota-tit.titulo-cod-estabel       = titulo.cod-estabel            
                       tt-ped-nota-tit.titulo-cod-esp           = titulo.cod-esp                
                       tt-ped-nota-tit.titulo-serie             = titulo.serie                  
                       tt-ped-nota-tit.titulo-nr-docto          = titulo.nr-docto                
                       tt-ped-nota-tit.titulo-parcela           = titulo.parcela                
                       tt-ped-nota-tit.titulo-dt-vencimen       = titulo.dt-vencimen            
                       tt-ped-nota-tit.titulo-dt-ult-pagto      = titulo.dt-ult-pagto            
                       tt-ped-nota-tit.titulo-dt-ult-baixa      = titulo.dt-ult-baixa            
                       tt-ped-nota-tit.titulo-dt-emissao        = titulo.dt-emissao              
                       tt-ped-nota-tit.titulo-vl-saldo          = titulo.vl-saldo                
                       tt-ped-nota-tit.titulo-vl-pago           = titulo.vl-pago                
                       tt-ped-nota-tit.titulo-vl-liquido        = titulo.vl-liquido
                       tt-ped-nota-tit.tit-pedido-ou-nota       = "PED".          

            END.

        END.

        FIND FIRST b-natur-oper
            WHERE b-natur-oper.nat-operacao = nota-fiscal.nat-operacao
            NO-LOCK
            NO-ERROR.

        IF  AVAILABLE (b-natur-oper) AND
            b-natur-oper.emite-duplic = NO THEN

            ASSIGN tt-ped-nota-tit.tit-pedido-ou-nota       = "NSD".

        /********************************************************************************/

        IF i-contador = 0 THEN DO: /*** NÇO TEM TITULO -  PROCURAR PEDIDOS ***/

            CREATE tt-ped-nota-tit.

            ASSIGN tt-ped-nota-tit.ped-venda-nome-abrev     = ped-venda.nome-abrev          
                   tt-ped-nota-tit.ped-venda-nr-pedcli      = ped-venda.nr-pedcli            
                   tt-ped-nota-tit.ped-venda-dt-implant     = ped-venda.dt-implant          
                   tt-ped-nota-tit.ped-venda-vl-tot-ped     = ped-venda.vl-tot-ped          
                   tt-ped-nota-tit.ped-venda-vl-liq-abe     = ped-venda.vl-liq-abe          
                   tt-ped-nota-tit.nota-fiscal-cod-estabel  = nota-fiscal.cod-estabel        
                   tt-ped-nota-tit.nota-fiscal-serie        = nota-fiscal.serie              
                   tt-ped-nota-tit.nota-fiscal-nr-nota-fis  = nota-fiscal.nr-nota-fis        
                   tt-ped-nota-tit.nota-fiscal-dt-atual-cr  = nota-fiscal.dt-atual-cr        
                   tt-ped-nota-tit.nota-fiscal-dt-cancela   = nota-fiscal.dt-cancela        
                   tt-ped-nota-tit.nota-fiscal-vl-fatura    = nota-fiscal.vl-fatura          
                   tt-ped-nota-tit.nota-fiscal-vl-tot-nota  = nota-fiscal.vl-tot-nota        
                   tt-ped-nota-tit.tit-pedido-ou-nota       = "NADA".          

        END.

    END.
   
END.

OUTPUT TO "p:\todos\datasul\lista-pedidos-notas-duplicatas.txt" NO-CONVERT.

FOR EACH tt-ped-nota-tit:

    DISPLAY tt-ped-nota-tit.ped-venda-nome-abrev  
            tt-ped-nota-tit.ped-venda-nr-pedcli  
            tt-ped-nota-tit.ped-venda-dt-implant  
            tt-ped-nota-tit.ped-venda-vl-tot-ped  
            tt-ped-nota-tit.ped-venda-vl-liq-abe  
            tt-ped-nota-tit.nota-fiscal-cod-estabel    
            tt-ped-nota-tit.nota-fiscal-serie    
            tt-ped-nota-tit.nota-fiscal-nr-nota-fis     (COUNT) FORMAT "9999999" COLUMN-LABEL "Nota Fis"
            tt-ped-nota-tit.nota-fiscal-dt-atual-cr
            tt-ped-nota-tit.nota-fiscal-dt-cancela
            tt-ped-nota-tit.nota-fiscal-vl-fatura
            tt-ped-nota-tit.nota-fiscal-vl-tot-nota
            tt-ped-nota-tit.titulo-cod-estabel    
            tt-ped-nota-tit.titulo-cod-esp        
            tt-ped-nota-tit.titulo-serie          
            tt-ped-nota-tit.titulo-nr-docto             FORMAT "9999999" COLUMN-LABEL "Titulo"
            tt-ped-nota-tit.titulo-parcela        
            tt-ped-nota-tit.titulo-dt-emissao    
            tt-ped-nota-tit.titulo-dt-vencimen    
            tt-ped-nota-tit.titulo-dt-ult-pagto  
            tt-ped-nota-tit.titulo-dt-ult-baixa  
            tt-ped-nota-tit.titulo-vl-saldo      
            tt-ped-nota-tit.titulo-vl-pago        
            tt-ped-nota-tit.titulo-vl-liquido    
            tt-ped-nota-tit.tit-pedido-ou-nota          COLUMN-LABEL "?"
            WITH WIDTH 600 STREAM-IO.

END.

OUTPUT CLOSE.

Nenhum comentário:

Postar um comentário