CE PLUS - Nota 005718

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Relatórios

Data/Hora da Publicação: 23/01/2008 00:00:00

Data/Hora Última Alteração: 18/02/2011 15:48:56

Descrição da Nota: RELATÓRIO DE COMISSÃO DE AGENTE

Sintoma

No relatório de comissão de agente, filtrar para algumas faturas filtradas como 'Não Pagas,

as colunas "Dt Pagto Fat", "Dt Vencto" e "Perc Comiss" aparecem em branco, não considera considerar

o Valor do Saldo da Fatura da tabela /PWS/ZYCBT017 e não consiste datas e valores referenciando

Liquidação em Andamento e Valores Mantidos no Exterior.

 

 

Solução

Alterado programa /PWS/ZYCBR027 para que a seja informado corretamento no relatório os campos 'Data

de Vencimento' e 'Data de Pagamento de Fatura', considerar o Valor do Saldo da Fatura da tabela

/PWS/ZYCBT017 e verificar também as datas e valores das tabelas /PWS/ZYCBT209 e /PWS/ZYCBT226.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

RELATÓRIO DE COMISSÃO DE AGENTE - DUPLICADE DO VALOR DA FATURA E DO FOB.

REALTORIO DE COMISSÃO DE AGENTE CAMPO VLCOMIS

DUPLICAÇÃO DE VALORES DO CAMPO VLCOMIS.

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 05718 Data: 23/01/2008 Hora: 09:54:16

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 05718

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00004

Agrupamento              : 00031

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

01866  - 00001 - 6.0    - 00024  - DUPLICAÇÃO DE VALORES DO CAMPO VLCOMIS.

01879  - 00002 - 6.0    - 00024  - REALTORIO DE COMISSÃO DE AGENTE CAMPO VLCOMIS

05619  - 00003 - 7.0    - 00004  - RELATÓRIO DE COMISSÃO DE AGENTE - DUPLICADE DO VALOR DA FATURA E

----------------------------------------------------------------------------------------------------

RELATÓRIO DE COMISSÃO DE AGENTE

----------------------------------------------------------------------------------------------------

Palavras Chave:

RELATÓRIO DE COMISSÃO DE AGENTE

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/ZYCBR027

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCBR027

 

...

    nrseqc   TYPE /pws/zycbt006-nrseqc,

    tpdesp   TYPE /pws/zycbt006-tpdesp,

    nrparc   TYPE /pws/zycbt006-nrparc,

    dtincl   TYPE /pws/zycbt006-dtincl,

    nrinvoic TYPE /pws/zycbt006-nrinvoic,

    nrparcf  TYPE /pws/zycbt006-nrparcf,

    gsberf   TYPE /pws/zycbt006-gsberf,

    dtvincul TYPE /pws/zycbt006-dtvincul,

    dtvencto TYPE /pws/zycbt006-dtvencto,

    dtpagto  TYPE /pws/zycbt006-dtpagto,

* >> Início da inclusão:

    vlme     TYPE /pws/zycbt006-vlme,

* << Fim da inclusão

  END OF t_zycbt006,

* >> Início da inclusão:

  BEGIN OF t_zycbt209,

    nrinvoic TYPE /pws/zycbt209-nrinvoic,

    nrparcf  TYPE /pws/zycbt209-nrparcf,

    gsberf   TYPE /pws/zycbt209-gsberf,

    saldo    TYPE /pws/zycbt209-saldo,

    dtbelnr  TYPE /pws/zycbt209-dtbelnr,

  END OF t_zycbt209,

  BEGIN OF t_zycbt226,

    nrinvoic     TYPE /pws/zycbt226-nrinvoic,

    nrparcf      TYPE /pws/zycbt226-nrparcf,

    gsberf       TYPE /pws/zycbt226-gsberf,

    sld_exterior TYPE /pws/zycbt226-sld_exterior,

    dtlancto     TYPE /pws/zycbt226-dtlancto,

  END OF t_zycbt226,

* << Fim da inclusão

  BEGIN OF t_zycbt017,

    nrinvoic TYPE /pws/zycbt017-nrinvoic,

    nrparcf  TYPE /pws/zycbt017-nrparcf,

    gsberf   TYPE /pws/zycbt017-gsberf,

    bukrs    TYPE /pws/zycbt017-bukrs,

    kunag    TYPE /pws/zycbt017-kunag,

    waers    TYPE /pws/zycbt017-waers,

    vlavinc  TYPE /pws/zycbt017-vlavinc,

    vlslf    TYPE /pws/zycbt017-vlslf,

    vlfob    TYPE /pws/zycbt017-vlfob,

...

 

...

    dtpagto  TYPE /pws/zycet010-dtpagto,

    dtlanc   TYPE /pws/zycet010-dtlanc,

  END OF t_zycet010,

  BEGIN OF t_zycet013,

    nrseq   TYPE /pws/zycet013-nrseq,

    lifnr   TYPE /pws/zycet013-lifnr,

    gsber   TYPE /pws/zycet013-gsber,

    prctr   TYPE /pws/zycet013-prctr,

    vlme    TYPE /pws/zycet013-vlme,

    dtpagto TYPE /pws/zycet013-dtpagto,

* >> Início da inclusão:

    dtvencto TYPE /pws/zycet010-dtvencto,

* << Fim da inclusão

  END OF t_zycet013,

  BEGIN OF t_registro,

    parvw        TYPE /pws/zycbt017-parvw,

    nrseq        TYPE /pws/zycet001-nrseq,

    nremb        TYPE /pws/zycet001-nremb,

    kunag        TYPE /pws/zycet002-kunag,

    benefic      TYPE /pws/zycet010-lifnr,

    gsber        TYPE /pws/zycet013-gsber,

    prctr        TYPE /pws/zycet013-prctr,

    nbconeg      TYPE lfa1-name1,

...

 

...

    WITH HEADER LINE,

  itab_kna1 TYPE STANDARD TABLE OF t_kna1

    WITH HEADER LINE,

  itab_vbak TYPE STANDARD TABLE OF t_vbak

    WITH HEADER LINE,

  itab_vbkd TYPE STANDARD TABLE OF t_vbkd

    WITH HEADER LINE,

  itab_zycbt005 TYPE STANDARD TABLE OF t_zycbt005

    WITH HEADER LINE,

  itab_zycbt006 TYPE STANDARD TABLE OF t_zycbt006

* >> Início da inclusão:

    WITH HEADER LINE,

  itab_zycbt209 TYPE STANDARD TABLE OF t_zycbt209

    WITH HEADER LINE,

  itab_zycbt226 TYPE STANDARD TABLE OF t_zycbt226

* << Fim da inclusão

    WITH HEADER LINE,

  itab_zycbt017 TYPE STANDARD TABLE OF t_zycbt017

    WITH HEADER LINE,

  itab_zycbt031 TYPE STANDARD TABLE OF t_zycbt031

    WITH HEADER LINE,

  itab_zycbt045 TYPE STANDARD TABLE OF t_zycbt045

    WITH HEADER LINE,

  itab_zycbt048 TYPE STANDARD TABLE OF t_zycbt048

    WITH HEADER LINE,

  itab_zycbt064 TYPE STANDARD TABLE OF t_zycbt064

...

 

...

    v_nrseq(20)   TYPE c,

    v_dia(2)      TYPE c,

    v_mes(2)      TYPE c,

    v_ano(4)      TYPE c,

    v_dir         TYPE rlgrap-filename,

    v_dir2        TYPE rlgrap-filename,

    v_dir3        TYPE rlgrap-filename,

    v_data(10)    TYPE c,

    v_flag2(1)    TYPE c,

    v_cont(3)     TYPE n,

* >> Início da inclusão:

    wa_zycbt017 TYPE t_zycbt017,

    v_vlslf     TYPE /pws/zycbt017-vlslf,

    v_liq_tot     TYPE /pws/zycbt006-vlme,

    v_sum_vl_006  TYPE /pws/zycbt006-vlme,

    v_sum_vl_209  TYPE /pws/zycbt209-saldo,

    v_sum_vl_226  TYPE /pws/zycbt226-sld_exterior,

    v_dtpagfat    TYPE /pws/zycbt006-dtpagto,

* << Fim da inclusão

    v_percomis    TYPE p DECIMALS 2.

SELECTION-SCREEN BEGIN OF BLOCK tela1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: empresa   FOR /pws/zycbt017-bukrs,

                divisao   FOR /pws/zycbt017-gsberf,

                embarque  FOR /pws/zycet001-nrseq,

                benefi    FOR /pws/zycet010-lifnr,

                cliente   FOR /pws/zycet002-kunag,

                tipcomis  FOR /pws/zycbt017-parvw,

                dt_averb  FOR /pws/zycet001-dtaverb,

                dt_pagto  FOR /pws/zycet010-dtpagto.

...

 

...

  ENDCASE.

TOP-OF-PAGE.

END-OF-PAGE.

  ULINE.

FORM selec_dados_010.

  DATA: v_slpagar   TYPE /pws/zycbt005-slpagar,

        v_lin_re    TYPE i,

        v_lin_bco   TYPE i,

        v_index     TYPE sy-tabix,

        v_zlspr     TYPE bseg-zlspr,

* >> Início da exclusão: FORM SELEC_DADOS_010

        wa_zycbt017 TYPE t_zycbt017,

        v_vlslf     TYPE /pws/zycbt017-vlslf,

* << Fim da exclusão

        itab_nrseq TYPE STANDARD TABLE OF t_nrseq

          WITH HEADER LINE,

        itab_re TYPE STANDARD TABLE OF t_re

          WITH HEADER LINE,

        itab_bconegoc TYPE STANDARD TABLE OF t_bconegoc

          WITH HEADER LINE.

  SELECT nrseq lifnr dtvencto vlcomis belnr dtpagto dtlanc

    FROM /pws/zycet010

    INTO TABLE itab_zycet010

    WHERE

...

 

...

        gsberf   EQ itab_zycbt017-gsberf.               "#EC CI_NOFIRST

    IF sy-subrc EQ 0.

      SELECT lifnr name1

        FROM lfa1

        APPENDING TABLE itab_lfa1

        FOR ALL ENTRIES IN itab_zycbt005

        WHERE lifnr EQ itab_zycbt005-bconegoc.

      SELECT

        nrseqc   tpdesp  nrparc dtincl nrinvoic nrparcf gsberf dtvincul

        dtvencto dtpagto

* >> Início da inclusão: FORM SELEC_DADOS_010

        vlme

* << Fim da inclusão

        FROM /pws/zycbt006

        INTO TABLE itab_zycbt006

        FOR ALL ENTRIES IN itab_zycbt005

        WHERE

          nrseqc   EQ itab_zycbt005-nrseqc   AND

          tpdesp   EQ itab_zycbt005-tpdesp   AND

          nrparc   EQ itab_zycbt005-nrparc   AND

          dtincl   EQ itab_zycbt005-dtincl   AND

          nrinvoic EQ itab_zycbt005-nrinvoic AND

          nrparcf  EQ itab_zycbt005-nrparcf  AND

          gsberf   EQ itab_zycbt005-gsberf   AND

          dtvincul EQ itab_zycbt005-dtvincul AND

          dtvencto EQ itab_zycbt005-dtvencto.

      SORT itab_zycbt006 BY nrinvoic nrparcf gsberf dtpagto DESCENDING.

    ENDIF.

* >> Início da inclusão: FORM SELEC_DADOS_010

    PERFORM f_sel_209_226.

* << Fim da inclusão

  ENDIF.

  SELECT

    nrchave  nrinvoic nrparcf nrboleto dtboleto tpparc nrparc dtliquid

    dtvencto lifnr    gsberf  prctr    tpjuros

    FROM /pws/zycbt064

    INTO TABLE itab_zycbt064

    FOR ALL ENTRIES IN itab_nrseq

    WHERE

      nrchave   EQ itab_nrseq-nrseq2   AND

      lifnr     EQ itab_nrseq-lifnr    AND

...

 

...

        CONTINUE.

      ENDIF.

      CLEAR:   itab_bconegoc,

               v_slpagar,

               v_lin_bco.

      REFRESH: itab_bconegoc.

      LOOP AT itab_zycbt005 WHERE nrinvoic = itab_zycbt017-nrinvoic AND

                                  nrparcf  = itab_zycbt017-nrparcf  AND

                                  gsberf   = itab_zycbt017-gsberf   AND

                                  belnr    <> ' '.

* >> Início da exclusão: FORM SELEC_DADOS_010

        v_slpagar = v_slpagar + itab_zycbt005-slpagar.

* << Fim da exclusão

        IF itab_zycbt005-bconegoc IS INITIAL.

          CONTINUE.

        ENDIF.

        itab_bconegoc-bconegoc = itab_zycbt005-bconegoc.

        APPEND itab_bconegoc.

      ENDLOOP.

      IF sy-subrc EQ 0.

        SORT itab_bconegoc.

        DELETE ADJACENT DUPLICATES FROM itab_bconegoc.

        DESCRIBE TABLE itab_bconegoc LINES v_lin_bco.

...

 

...

             v_lin_re.

      REFRESH: itab_re.

      LOOP AT itab_zycet003 WHERE nrseq = itab_zycet010-nrseq

                            AND NOT nrre IS initial.

        itab_re-nrre = itab_zycet003-nrre.

        APPEND itab_re.

        v_lin_re = v_lin_re + 1.

      ENDLOOP.

      LOOP AT itab_bconegoc.

        v_index = sy-tabix.

* >> Início da exclusão: FORM SELEC_DADOS_010

        IF v_slpagar           EQ 0 AND

           itab_zycbt017-vlslf EQ 0.

          READ TABLE itab_zycbt006

                     WITH KEY nrinvoic = itab_zycbt017-nrinvoic

                              nrparcf  = itab_zycbt017-nrparcf

                              gsberf   = itab_zycbt017-gsberf.

          IF sy-subrc EQ 0.

            itab_registro-dtpgtofat = itab_zycbt006-dtpagto.

          ENDIF.

        ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM SELEC_DADOS_010

        PERFORM: f_verifica_dtpagfat.

* << Fim da inclusão

        CLEAR itab_zycbt064.

        READ TABLE itab_zycbt064 WITH KEY

                                      nrchave  = itab_zycet010-nrseq

                                      lifnr    = itab_zycet010-lifnr

                                      dtvencto = itab_zycet010-dtvencto.

        IF sy-subrc EQ 0.

       READ TABLE itab_zycbt031 WITH KEY nrseq = itab_zycbt064-nrboleto

                                            lifnr = itab_zycet010-lifnr.

          IF sy-subrc EQ 0.

            itab_registro-nrseq_     = itab_zycbt031-nrseq.

...

 

...

  DATA: v_slpagar LIKE /pws/zycbt005-slpagar,

        v_lin_re  TYPE i,

        v_lin_bco TYPE i,

        v_index   LIKE sy-tabix.

  DATA: BEGIN OF itab_nrseq OCCURS 5,

          nrseq   LIKE /pws/zycbt017-nrinvoic,

          nrseq2  LIKE /pws/zycet010-nrseq,

          lifnr   LIKE /pws/zycet013-lifnr,

          gsber   LIKE /pws/zycet013-gsber,

          prctr   LIKE /pws/zycet013-prctr,

* >> Início da inclusão: FORM SELEC_DADOS_013

          dtvencto LIKE /pws/zycet010-dtvencto,

          dtpror   LIKE /pws/zycbt045-dtpror,

* << Fim da inclusão

        END OF itab_nrseq.

  DATA: BEGIN OF itab_re OCCURS 2,

          nrre LIKE /pws/zycet003-nrre,

        END OF itab_re.

  DATA: BEGIN OF itab_bconegoc OCCURS 3,

          bconegoc LIKE /pws/zycbt005-bconegoc,

        END OF itab_bconegoc.

* >> Início da exclusão: FORM SELEC_DADOS_013

  SELECT nrseq lifnr gsber prctr vlme dtpagto

    FROM /pws/zycet013

* << Fim da exclusão

* >> Início da inclusão: FORM SELEC_DADOS_013

  SELECT t013~nrseq   t013~lifnr t013~gsber t013~prctr t013~vlme

         t013~dtpagto t010~dtvencto

    FROM /pws/zycet013 AS t013 INNER JOIN /pws/zycet010 AS t010

      ON t013~nrseq = t010~nrseq AND

         t013~lifnr = t010~lifnr

* << Fim da inclusão

    INTO TABLE itab_zycet013

    WHERE

* >> Início da exclusão: FORM SELEC_DADOS_013

      nrseq   IN embarque AND

      dtpagto IN dt_pagto AND

      lifnr   IN benefi   AND

      gsber   IN divisao

    ORDER BY NRSEQ.

* << Fim da exclusão

* >> Início da inclusão: FORM SELEC_DADOS_013

      t013~nrseq   IN embarque AND

      t013~dtpagto IN dt_pagto AND

      t013~lifnr   IN benefi   AND

      t013~gsber   IN divisao

    ORDER BY T013~NRSEQ.

* << Fim da inclusão

  IF NOT paga IS INITIAL.

    DELETE itab_zycet013 WHERE dtpagto IS initial.

  ELSEIF NOT npaga IS INITIAL.

    DELETE itab_zycet013 WHERE NOT dtpagto IS initial.

  ENDIF.

  IF itab_zycet013[] IS INITIAL.

    EXIT.

* >> Início da inclusão: FORM SELEC_DADOS_013

  ELSE.

    SELECT

      nrinvoic nrparcf gsberf dtpror

      FROM /pws/zycbt045

      INTO TABLE itab_zycbt045

      WHERE nrinvoic IN embarque.

    SORT itab_zycbt045 BY nrinvoic nrparcf dtpror DESCENDING.

    DELETE ADJACENT DUPLICATES FROM itab_zycbt045 COMPARING nrinvoic

                                                            nrparcf .

* << Fim da inclusão

  ENDIF.

  SELECT lifnr name1

    FROM lfa1

    INTO TABLE itab_lfa1

    FOR ALL ENTRIES IN itab_zycet013

    WHERE lifnr EQ itab_zycet013-lifnr.

  SELECT

    nrseq bukrs dtaverb dtemb nremb nrsd

    FROM /pws/zycet001

    INTO TABLE itab_zycet001

...

 

...

    FROM /pws/zycet003

    INTO TABLE itab_zycet003

    FOR ALL ENTRIES IN itab_zycet013

    WHERE nrseq EQ itab_zycet013-nrseq.

  LOOP AT itab_zycet013.

    MOVE: itab_zycet013-nrseq    TO itab_nrseq-nrseq,

          itab_zycet013-nrseq    TO itab_nrseq-nrseq2,

          itab_zycet013-lifnr    TO itab_nrseq-lifnr,

          itab_zycet013-gsber    TO itab_nrseq-gsber,

          itab_zycet013-prctr    TO itab_nrseq-prctr.

* >> Início da inclusão: FORM SELEC_DADOS_013

    CLEAR itab_zycbt045.

    READ TABLE itab_zycbt045

      WITH KEY nrinvoic = itab_zycet010-nrseq.

    IF sy-subrc EQ '0'.

      itab_nrseq-dtpror   = itab_zycbt045-dtpror.

    ENDIF.

    itab_nrseq-dtvencto = itab_zycet013-dtvencto.

* << Fim da inclusão

    APPEND itab_nrseq.

* >> Início da inclusão: FORM SELEC_DADOS_013

    CLEAR itab_nrseq.

* << Fim da inclusão

  ENDLOOP.

  SELECT

    nrinvoic nrparcf gsberf bukrs kunag waers vlavinc vlslf vlfob

    vlcomis  parvw

    FROM /pws/zycbt017

    INTO TABLE itab_zycbt017

...

 

...

        gsberf   EQ itab_zycbt017-gsberf.               "#EC CI_NOFIRST

    IF sy-subrc EQ 0.

      SELECT lifnr name1

        FROM lfa1

        APPENDING TABLE itab_lfa1

        FOR ALL ENTRIES IN itab_zycbt005

        WHERE lifnr EQ itab_zycbt005-bconegoc.

      SELECT

        nrseqc   tpdesp nrparc dtincl nrinvoic nrparcf gsberf dtvincul

        dtvencto dtpagto

* >> Início da inclusão: FORM SELEC_DADOS_013

        vlme

* << Fim da inclusão

        FROM /pws/zycbt006

        INTO TABLE itab_zycbt006

* >> Início da inclusão: FORM SELEC_DADOS_013

        FOR ALL ENTRIES IN itab_zycbt005

* << Fim da inclusão

        WHERE

          nrseqc   EQ itab_zycbt005-nrseqc   AND

          tpdesp   EQ itab_zycbt005-tpdesp   AND

          nrparc   EQ itab_zycbt005-nrparc   AND

          dtincl   EQ itab_zycbt005-dtincl   AND

          nrinvoic EQ itab_zycbt005-nrinvoic AND

          nrparcf  EQ itab_zycbt005-nrparcf  AND

          gsberf   EQ itab_zycbt005-gsberf   AND

          dtvincul EQ itab_zycbt005-dtvincul AND

          dtvencto EQ itab_zycbt005-dtvencto.

      SORT itab_zycbt006 BY nrinvoic nrparcf gsberf dtpagto DESCENDING.

    ENDIF.

* >> Início da inclusão: FORM SELEC_DADOS_013

    PERFORM f_sel_209_226.

* << Fim da inclusão

  ENDIF.

  SELECT

    nrchave  nrinvoic nrparcf nrboleto dtboleto tpparc nrparc dtliquid

    dtvencto lifnr    gsberf  prctr    tpjuros

    FROM /pws/zycbt064

    INTO TABLE itab_zycbt064

    FOR ALL ENTRIES IN itab_nrseq

    WHERE

      nrchave   EQ itab_nrseq-nrseq2 AND

      lifnr     EQ itab_nrseq-lifnr  AND

...

 

...

        CONTINUE.

      ENDIF.

      CLEAR:   itab_bconegoc,

               v_slpagar,

               v_lin_bco.

      REFRESH: itab_bconegoc.

      LOOP AT itab_zycbt005 WHERE nrinvoic = itab_zycbt017-nrinvoic AND

                                  nrparcf  = itab_zycbt017-nrparcf  AND

                                  gsberf   = itab_zycbt017-gsberf   AND

                                  belnr    <> ' '.

* >> Início da exclusão: FORM SELEC_DADOS_013

        v_slpagar = v_slpagar + itab_zycbt005-slpagar.

* << Fim da exclusão

        IF itab_zycbt005-bconegoc IS INITIAL.

          CONTINUE.

        ENDIF.

        itab_bconegoc-bconegoc = itab_zycbt005-bconegoc.

        APPEND itab_bconegoc.

      ENDLOOP.

      IF sy-subrc EQ 0.

        SORT itab_bconegoc.

        DELETE ADJACENT DUPLICATES FROM itab_bconegoc.

        DESCRIBE TABLE itab_bconegoc LINES v_lin_bco.

...

 

...

             v_lin_re.

      REFRESH: itab_re.

      LOOP AT itab_zycet003 WHERE nrseq = itab_zycet013-nrseq

                            AND NOT nrre IS initial.

        itab_re-nrre = itab_zycet003-nrre.

        APPEND itab_re.

        v_lin_re = v_lin_re + 1.

      ENDLOOP.

      LOOP AT itab_bconegoc.

        v_index = sy-tabix.

* >> Início da exclusão: FORM SELEC_DADOS_013

        IF v_slpagar           EQ 0 AND

           itab_zycbt017-vlslf EQ 0.

          READ TABLE itab_zycbt006

                     WITH KEY nrinvoic = itab_zycbt017-nrinvoic

                              nrparcf  = itab_zycbt017-nrparcf

                              gsberf   = itab_zycbt017-gsberf.

          IF sy-subrc EQ 0.

            itab_registro-dtpgtofat = itab_zycbt006-dtpagto.

          ENDIF.

        ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM SELEC_DADOS_013

        PERFORM: f_verifica_dtpagfat.

* << Fim da inclusão

        CLEAR itab_zycbt064.

        READ TABLE itab_zycbt064 WITH KEY

                                      nrchave  = itab_zycet013-nrseq

                                      lifnr    = itab_zycet013-lifnr

                                      gsberf   = itab_zycet013-gsber

                                      prctr    = itab_zycet013-prctr.

        IF sy-subrc EQ 0.

          READ TABLE itab_zycbt031 WITH KEY

                                        nrseq  = itab_zycbt064-nrboleto

                                        lifnr  = itab_zycet013-lifnr

...

 

...

        itab_registro-dtpagto    = itab_zycet013-dtpagto.

        itab_registro-gsber      = itab_zycet013-gsber.

        itab_registro-prctr      = itab_zycet013-prctr.

       READ TABLE itab_registroa WITH KEY nrseq   = itab_zycet001-nrseq

                                        vlfob   = itab_zycbt017-vlavinc

                                         vlavinc = itab_zycbt017-vlfob.

        IF sy-subrc NE 0.

          itab_registro-vlfob      = itab_zycbt017-vlfob.

          itab_registro-vlavinc    = itab_zycbt017-vlavinc.

        ENDIF.

* >> Início da inclusão: FORM SELEC_DADOS_013

        LOOP AT itab_zycbt017 INTO wa_zycbt017

          WHERE nrinvoic = itab_registro-nrseq

            AND gsberf   = itab_registro-gsber.

          v_vlslf = v_vlslf + wa_zycbt017-vlslf.

        ENDLOOP.

* << Fim da inclusão

        ON CHANGE OF itab_registro-nrseq OR itab_registro-gsber

          OR itab_registro-prctr

          OR itab_zycet013-lifnr.

          itab_registro-vlcomis    = itab_zycet013-vlme.

* >> Início da inclusão: FORM SELEC_DADOS_013

            itab_registro-vlslf    = v_vlslf.

* << Fim da inclusão

        ENDON.

* >> Início da inclusão: FORM SELEC_DADOS_013

        CLEAR itab_nrseq.

        READ TABLE itab_nrseq WITH KEY nrseq2 = itab_zycet010-nrseq.

        IF sy-subrc EQ '0' AND NOT itab_nrseq-dtpror IS INITIAL.

          itab_registro-dtvencto = itab_nrseq-dtpror.

        ELSE.

          itab_registro-dtvencto = itab_zycet013-dtvencto.

        ENDIF.

* << Fim da inclusão

        APPEND itab_registro.

        AT LAST.

          IF v_lin_re GT v_lin_bco.

            v_index = v_index + 1.

            LOOP AT itab_re FROM v_index.

              itab_registro-nrre = itab_re-nrre.

              CLEAR: itab_registro-vlcomis,

                     itab_registro-waers  .

              APPEND itab_registro.

            ENDLOOP.

          ENDIF.

        ENDAT.

        itab_registroa[] = itab_registro[].

        CLEAR itab_registro.

        CLEAR itab_zycet010-vlcomis.

* >> Início da inclusão: FORM SELEC_DADOS_013

        CLEAR v_vlslf.

* << Fim da inclusão

      ENDLOOP.

    ENDLOOP.

  ENDLOOP.

ENDFORM.

FORM impri_dados.

  DATA: v_flag(1)      TYPE c,

        v_subtot       LIKE /pws/zycbt017-vlcomis,

        v_waers        LIKE /pws/zycbt017-waers,

        status         LIKE sy-subrc,

        line           LIKE sy-tabix,

...

 

...

  ENDIF.

ENDFORM.

FORM f_filtra_dados.

  LOOP AT itab_registro.

    IF itab_registro-vlcomis = 0.

      DELETE itab_registro WHERE nrseq   = itab_registro-nrseq AND

                                 vlcomis = 0.

    ENDIF.

  ENDLOOP.

ENDFORM.

* >> Início da inclusão:

FORM f_sel_209_226.

  SELECT nrinvoic

         nrparcf

         gsberf

         saldo

         dtbelnr

    FROM /pws/zycbt209

    INTO TABLE itab_zycbt209

    FOR ALL ENTRIES IN itab_zycbt017

   WHERE nrinvoic = itab_zycbt017-nrinvoic

     AND nrparcf  = itab_zycbt017-nrparcf

     AND gsberf   = itab_zycbt017-gsberf.

  SORT itab_zycbt209 BY nrinvoic nrparcf gsberf dtbelnr DESCENDING.

  SELECT nrinvoic

         nrparcf

         gsberf

         sld_exterior

         dtlancto

    FROM /pws/zycbt226

    INTO TABLE itab_zycbt226

    FOR ALL ENTRIES IN itab_zycbt017

   WHERE nrinvoic = itab_zycbt017-nrinvoic

     AND nrparcf  = itab_zycbt017-nrparcf

     AND gsberf   = itab_zycbt017-gsberf.

  SORT itab_zycbt226 BY nrinvoic nrparcf gsberf dtlancto DESCENDING.

ENDFORM.

FORM f_verifica_dtpagfat.

  CLEAR: v_sum_vl_006,

         v_sum_vl_209,

         v_sum_vl_226,

         v_liq_tot,

         v_dtpagfat.

  LOOP AT itab_zycbt006 WHERE nrinvoic = itab_zycbt017-nrinvoic

                          AND nrparcf  = itab_zycbt017-nrparcf

                          AND gsberf   = itab_zycbt017-gsberf.

    IF v_dtpagfat < itab_zycbt006-dtpagto.

      v_dtpagfat = itab_zycbt006-dtpagto.

    ENDIF.

    v_sum_vl_006 = v_sum_vl_006 + itab_zycbt006-vlme.

  ENDLOOP.

  LOOP AT itab_zycbt209 WHERE nrinvoic = itab_zycbt017-nrinvoic

                          AND nrparcf  = itab_zycbt017-nrparcf

                          AND gsberf   = itab_zycbt017-gsberf.

    IF v_dtpagfat < itab_zycbt209-dtbelnr.

      v_dtpagfat = itab_zycbt209-dtbelnr.

    ENDIF.

    v_sum_vl_209 = v_sum_vl_209 + itab_zycbt209-saldo.

  ENDLOOP.

  LOOP AT itab_zycbt226 WHERE nrinvoic = itab_zycbt017-nrinvoic

                          AND nrparcf  = itab_zycbt017-nrparcf

                          AND gsberf   = itab_zycbt017-gsberf.

    IF v_dtpagfat < itab_zycbt226-dtlancto.

      v_dtpagfat = itab_zycbt226-dtlancto.

    ENDIF.

    v_sum_vl_226 = v_sum_vl_226 + itab_zycbt226-sld_exterior.

  ENDLOOP.

  v_liq_tot = v_sum_vl_006 + v_sum_vl_209 + v_sum_vl_226.

  IF v_liq_tot = itab_zycbt017-vlavinc.

    itab_registro-dtpgtofat = v_dtpagfat.

  ENDIF.

ENDFORM.

* << Fim da inclusão