CE PLUS - Nota 008203

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: Rotina de Pagamento

Data/Hora da Publicação: 17/03/2009 00:00:00

Data/Hora Última Alteração: 18/02/2011 14:03:44

Descrição da Nota: ROTINA DE PAGAMENTO, COMPLEMENTO DO BOLETO, IMPRESSÃO DO BOLETO

Sintoma

Ao tentar criar o processamento do boleto, na tela de impressão do boleto, onde apresentam as

remessas que serão contabilizadas a partir do 6º número ele não aparece, ficando apenas os cinco

primeiros e os demais ficam sem ser informadas.

 

 

Solução

Ajustado relatório da impressão do boleto, para apresentar corretamente o sequencial, o cliente e o

tipo de operação.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

PROCESSAMENTO DE BOLETO E RELATÓRIO DO BOLETO NA REMESSA DE PGTO

Informações Complementares

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

Nota Número 08203 Data: 17/03/2009 Hora: 14:33:18

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

 

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

Nota Número              : 08203

Categoria                : Erro de Programa

Prioridade               : Baixa

Versão PW.CE             : 7.0

Pacote                   : 00009

Agrupamento              : 00090

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

Referência às notas relacionadas:

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

 

07167  - 00001 - 7.0    - 00006  - PROCESSAMENTO DE BOLETO E RELATÓRIO DO BOLETO NA REMESSA DE PGTO

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

ROTINA DE PAGAMENTO, COMPLEMENTO DO BOLETO, IMPRESSÃO DO BOLETO

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

Palavras Chave:

ROTINA DE PAGAMENTO PROCESSAR BOLETO EXIBIÇÃO SEQUENCIAIS AGRUPADOS

 

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

Objetos da nota:

REPS /PWS/MZYGL110F01

REPS /PWS/MZYGL110TOP

REPS /PWS/ZYCBR102

REPS /PWS/ZYCBR105

 

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

Modificações efetuadas em REPS /PWS/MZYGL110F01

 

...

      CLEAR: wa_line.

      MOVE itab_boleto TO wa_line.

      wa_line-vlme = itab_zycbt031-vlme.

      SELECT SINGLE * FROM /pws/zycbt031

        WHERE nrseq     EQ itab_zycbt031-nrseq

          AND dtboleto  EQ itab_zycbt031-dtboleto

          AND nrcorresp EQ itab_zycbt031-nrcorresp.

      CLEAR:   itab_zycbt064_aux2, v_nrchave, v_docto, v_tipo2,

               v_lifnr2, v_total, itab_nrpgfat, itab_selreg.

      REFRESH:  itab_zycbt064_aux2, itab_nrpgfat, itab_selreg.

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

      clear:   itab_sequencia,

               itab_remetente,

               itab_tipos.

      refresh: itab_sequencia,

               itab_remetente,

               itab_tipos.

* << Fim da inclusão

      FREE MEMORY: ID '003',

                   ID '004',

                   ID '005',

                   ID '006',

                   ID '010',

                   ID '093',

                   ID 'E011',

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

                   ID 'E021' .

* << Fim da exclusão

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

                   id 'E021',

                   id 'E024',

                   id 'E025',

                   id 'E026'.

* << Fim da inclusão

      SELECT * FROM /pws/zycbt064

               INTO TABLE itab_zycbt064_aux2

               WHERE nrboleto EQ itab_zycbt031-nrseq.   "#EC CI_NOFIRST

      IF NOT itab_zycbt064_aux2[] IS INITIAL.

        CLEAR   itab_zycbt119.

        REFRESH itab_zycbt119.

        SELECT * FROM /pws/zycbt119

          INTO TABLE itab_zycbt119

          FOR ALL ENTRIES IN itab_zycbt064_aux2

          WHERE nrseq = itab_zycbt064_aux2-nrchave.

      ENDIF.

      DESCRIBE TABLE itab_zycbt064_aux2 LINES v_linhas.

      IF v_linhas > 1.

        LOOP AT itab_zycbt064_aux2.

          IF v_nrchave IS INITIAL.

            v_nrchave = itab_zycbt064_aux2-nrchave.

          ELSE.

            CONCATENATE v_nrchave '-' itab_zycbt064_aux2-nrchave

            INTO v_nrchave.

          ENDIF.

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

          move itab_zycbt064_aux2-nrchave to itab_sequencia-nrchave.

          append itab_sequencia.

* << Fim da inclusão

          IF v_docto IS INITIAL.

            v_docto = itab_zycbt064_aux2-nrinvoic.

          ELSE.

            CONCATENATE v_docto itab_zycbt064_aux2-nrinvoic

            INTO v_docto SEPARATED BY '-'.

          ENDIF.

          IF v_tipo2 IS INITIAL.

            v_tipo2 = itab_zycbt064_aux2-tipo.

          ELSE.

            CONCATENATE v_tipo2 itab_zycbt064_aux2-tipo

            INTO v_tipo2 SEPARATED BY '-'.

          ENDIF.

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

          move itab_zycbt064_aux2-tipo to itab_tipos-tipo.

          append itab_tipos.

* << Fim da inclusão

          SELECT SINGLE name1 INTO (lfa1-name1)

                 FROM lfa1

                 WHERE lifnr EQ itab_zycbt064_aux2-lifnr.

          IF sy-subrc = 0.

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

            move lfa1-name1 to itab_remetente-name1.

            append itab_remetente.

* << Fim da inclusão

            IF v_lifnr2 IS INITIAL.

              v_lifnr2 = lfa1-name1.

...

 

...

      EXPORT: v_vlir     TO MEMORY ID '007' ,

              v_vlcide   TO MEMORY ID '008' ,

              v_vliof    TO MEMORY ID 'I001',

              v_vliss    TO MEMORY ID 'I002',

              v_vlpis    TO MEMORY ID 'I003',

              v_vlcofins TO MEMORY ID 'I004'.

      EXPORT itab_tline[]  TO MEMORY ID 'E020'.

      EXPORT wa_line       TO MEMORY ID 'E021'.

      EXPORT /pws/zycbt031 TO MEMORY ID 'E022'.

      EXPORT /pws/zycbt124 TO MEMORY ID 'E023'.

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

      export itab_sequencia to memory id 'E024'.

      export itab_remetente to memory id 'E025'.

      export itab_tipos     to memory id 'E026'.

* << Fim da inclusão

      DATA: v_nrpgfat LIKE /pws/zycbt119-nrseq,

            v_lifnr   LIKE lfa1-lifnr.

      IF itab_zycbt031-mdcorresp = 'IP'.

        v_nrpgfat = itab_zycbt031-nrcorresp.

        SELECT SINGLE lifnr FROM /pws/zycbt119 INTO v_lifnr

                              WHERE nrseq = v_nrpgfat.

      ELSEIF itab_zycbt031-mdcorresp = 'IA'.

        v_nrpgfat = itab_zycbt031-nrcorresp.

        SELECT SINGLE lifnr FROM /pws/zycbt117 INTO v_lifnr

                              WHERE nrseq = v_nrpgfat.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYGL110TOP

 

...

DATA: END OF itab_thol.

DATA: v_syrepid    LIKE sy-repid,

      v_sydynnr    LIKE sy-dynnr,

      v_visivel    LIKE /pws/zyglt319-visivel,

      v_tcodebotao LIKE /pws/zyglt319-tcode,

      v_f02_trava  LIKE /pws/zycbe033-belnr,

      v_lib(1)     TYPE c.

DATA: wa_log            TYPE char4000,

      wa_zycbt031_log   LIKE /pws/zycbt031,

      wa_zycbt002_log   LIKE /pws/zycbt002.

* >> Início da inclusão:

data: begin of itab_sequencia occurs 10,

            nrchave(10) type c,

      end of itab_sequencia.

data: begin of itab_remetente occurs 10,

            name1(35) type c,

      end of itab_remetente.

data: begin of itab_tipos occurs 10,

            tipo(30) type c,

      end of itab_tipos.

* << Fim da inclusão

SELECTION-SCREEN BEGIN OF SCREEN 0500.

SELECT-OPTIONS: s_forn FOR lfa1-lifnr,

                s_moed FOR /pws/zycbe124-waers,

                s_reme FOR /pws/zycbe124-nrseq MATCHCODE OBJECT

 /pws/zygla006,

                s_desp FOR /pws/zycbe118-nrseq MATCHCODE OBJECT

 /pws/zygla004,

                s_empr FOR /pws/zycbe128-nrseq MATCHCODE OBJECT

 /pws/zygla007.

SELECTION-SCREEN END OF SCREEN 0500.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCBR102

 

...

        include structure rs_result.

data:   colinfo type kkblo_t_specialcol,

      end of i_final.

data: begin of itab_dados occurs 0.

        include structure /pws/zygle500.

data: end of itab_dados.

data: fatura2,

      remessa2.

data itab_zyglt321

  type standard table of /pws/zyglt321 with header line.

* >> Início da inclusão:

data: begin of itab_sequencia occurs 10,

            nrchave(10) type c,

      end of itab_sequencia.

data: begin of itab_remetente occurs 10,

            name1(35) type c,

      end of itab_remetente.

data: begin of itab_tipos occurs 10,

            tipo(30) type c,

      end of itab_tipos.

* << Fim da inclusão

data: wa_thead    like thead,

      wa_zycbt011 like /pws/zycbt011,

      wa_zycbt009 like /pws/zycbt009,

      wa_zyglt009 like /pws/zyglt009,

      wa_zycbt089 like /pws/zycbt089.

data: itab_tline  like tline occurs 10 with header line.

data: begin of itab_thol occurs 0.

        include structure thol.

data: end of itab_thol.

data: begin of itab_nrpgfat occurs 0,

...

 

...

           v_vlir,

           v_vlcide,

           v_vlpis,

           v_vlcofins,

           v_vliof,

           v_vliss,

           v_nrfat,

           v_lifnr2,

           v_boleto,

           itab_boleto,

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

           v_total_usd.

* << Fim da exclusão

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

           v_total_usd,

           itab_sequencia,

           itab_remetente,

           itab_tipos.

    refresh: itab_sequencia,

             itab_remetente,

             itab_tipos.

* << Fim da inclusão

    exit.

  endif.

  if itab_selreg_aux-codp ne 'G' or

     itab_selreg_aux-codp ne 'D'.

    export wa_line       to memory id 'E021'.

    export /pws/zycbt031 to memory id 'E022'.

    export itab_tline[]  to memory id 'E020'.

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

    export itab_sequencia[] to memory id 'E024'.

    export itab_remetente[] to memory id 'E025'.

    export itab_tipos[]     to memory id 'E026'.

* << Fim da inclusão

    export v_nrchave to memory  id '003'.

    export v_docto   to memory  id '004'.

    export v_tipo2   to memory  id '005'.

    export v_total   to memory  id '006'.

    export v_vlir    to memory  id '007'.

    export v_vlcide  to memory  id '008'.

    export: v_vliof    to memory id 'I001',

            v_vliss    to memory id 'I002',

            v_vlpis    to memory id 'I003',

            v_vlcofins to memory id 'I004'.

...

 

...

         v_vlir,

         v_vlcide,

         v_vlpis,

         v_vlcofins,

         v_vliof,

         v_vliss,

         v_nrfat,

         v_lifnr2,

         v_boleto,

         itab_boleto,

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

         v_total_usd.

* << Fim da exclusão

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

         v_total_usd,

         itab_sequencia,

         itab_remetente,

         itab_tipos.

  refresh: itab_sequencia,

           itab_remetente,

           itab_tipos.

* << Fim da inclusão

endform.

form verifica_vinculacao.

  select nrinvoic

         nrparcf

         gsberf vlvinc

    into table itab_zycbt005

    from /pws/zycbt005

    where nrseqc eq itab_selreg-nrchave

      and tpdesp eq itab_selreg-tpdesp

      and nrparc eq itab_selreg-nrparc

...

 

...

    perform comparacao.

  endif.

endform.

form totaliza_valores.

  clear: v_nrchave,

         v_docto,

         v_tipo2,

         v_total,

         v_vlir,

         v_nrfat,

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

         v_lifnr2.

* << Fim da exclusão

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

         v_lifnr2,

         itab_sequencia,

         itab_remetente,

         itab_tipos.

  refresh: itab_sequencia,

           itab_remetente,

           itab_tipos.

* << Fim da inclusão

  loop at itab_selreg_aux.

    if v_nrchave is initial.

      v_nrchave = itab_selreg_aux-nrchave.

    else.

      concatenate v_nrchave '-' itab_selreg_aux-nrchave

      into v_nrchave.

    endif.

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

    move itab_selreg_aux-nrchave to itab_sequencia-nrchave.

    append itab_sequencia.

* << Fim da inclusão

    if v_docto is initial.

      v_docto = itab_selreg_aux-docto.

    else.

      concatenate v_docto itab_selreg_aux-docto

      into v_docto separated by '-'.

    endif.

    if v_tipo2 is initial.

      v_tipo2 = itab_selreg_aux-tipo.

    else.

      concatenate v_tipo2 itab_selreg_aux-tipo

      into v_tipo2 separated by '-'.

    endif.

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

    move itab_selreg_aux-tipo to itab_tipos-tipo.

    append itab_tipos.

* << Fim da inclusão

    if v_nrfat is initial.

      v_nrfat = itab_selreg_aux-nrfat.

    else.

      concatenate v_nrfat itab_selreg_aux-nrfat

      into v_nrfat separated by '-'.

    endif.

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

    if not itab_selreg-lifnr is initial.

* << Fim da inclusão

    read table itab_lfa1 with key lifnr = itab_selreg-lifnr.

    if sy-subrc = 0.

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

          move itab_lfa1-name1 to itab_remetente-name1.

          append itab_remetente.

* << Fim da inclusão

      if v_lifnr2 is initial.

        v_lifnr2 = itab_lfa1-name1.

      else.

        concatenate v_nrfat itab_lfa1-name1

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

             into v_lifnr2 separated by '-'.

          endif.

       endif.

    else.

       read table itab_lfa1_aux with key lifnr = itab_selreg-benefic.

       if sy-subrc = 0.

          move itab_lfa1_aux-name1 to itab_remetente-name1.

          append itab_remetente.

          if v_lifnr2 is initial.

             v_lifnr2 = itab_lfa1_aux-name1.

          else.

             concatenate v_nrfat itab_lfa1_aux-name1

* << Fim da inclusão

        into v_lifnr2 separated by '-'.

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

          endif.

* << Fim da inclusão

      endif.

    endif.

    v_total    = v_total  + itab_selreg_aux-vlme.

    v_vlir     = v_vlir   + itab_selreg_aux-vlir.

    v_vlcide   = v_vlcide + itab_selreg_aux-vlcide.

    v_vlpis    = v_vlpis  + itab_selreg_aux-vlpis.

...

 

...

           v_tipo2,

           v_total,

           v_vlir,

           v_vlcide,

           v_vlpis,

           v_vlcofins,

           v_nrfat,

           v_lifnr2,

           v_boleto,

           itab_boleto,

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

           v_total_usd.

* << Fim da exclusão

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

           v_total_usd,

           itab_sequencia,

           itab_remetente,

           itab_tipos.

    refresh: itab_sequencia,

             itab_remetente,

             itab_tipos.

* << Fim da inclusão

    exit.

  endif.

  if itab_selreg_aux-codp ne 'G' or

     itab_selreg_aux-codp ne 'D'.

    export wa_line       to memory id 'E021'.

    export /pws/zycbt031 to memory id 'E022'.

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

    export itab_sequencia[] to memory id 'E024'.

    export itab_remetente[] to memory id 'E025'.

    export itab_tipos[]     to memory id 'E026'.

* << Fim da inclusão

    export v_nrchave     to memory  id '003'.

    export v_docto       to memory  id '004'.

    export v_tipo2       to memory  id '005'.

    export v_total       to memory  id '006'.

    export v_vlir        to memory  id '007'.

    export v_vlcide      to memory  id '008'.

    export: v_vliof      to memory id 'I001',

            v_vliss      to memory id 'I002',

            v_vlpis      to memory id 'I003',

            v_vlcofins   to memory id 'I004'.

...

 

...

    message i015 with text-133 /pws/zycbt031-nrseq.

    if not sy-binpt is initial.

      import itab_boleto[] from memory id 'AGILES'.

      itab_boleto-nrseq = /pws/zycbt031-nrseq.

      append itab_boleto.

      export itab_boleto[] to memory id 'AGILES'.

    endif.

  endif.

  clear: /pws/zycbt031, v_nrchave, v_docto, v_tipo2, v_total, v_vlir,

         v_vlcide, v_nrfat, v_lifnr2, v_boleto, itab_boleto,

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

         v_total_usd, v_identheader.

* << Fim da exclusão

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

         v_total_usd, v_identheader,

         itab_sequencia, itab_remetente, itab_tipos.

  refresh: itab_sequencia,

           itab_remetente,

           itab_tipos.

* << Fim da inclusão

  export v_identheader to memory id 'E013'.

  if v_contador = 0.

    refresh itab_selreg[].

  else.

    loop at i_final where selk = 'X'.

      if sy-subrc = 0 .

        i_final-selk = ''.

        modify i_final.

      endif.

    endloop.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCBR105

 

...

  v_cabecalho(30) TYPE c,

  v_data(10)      TYPE c,

  v_nrfat(60)     TYPE c,

  v_lifnr2(80)    TYPE c,

  v_textadic(60)  TYPE c,

  v_cnpj          LIKE j_1bwfield-cgc_number,

  v_cgc(20),

  v_branch        LIKE j_1bwfield-cgc_branch,

  v_sort2         LIKE j_1bwfield-cgc_compan,

  v_endereco_completo(55) TYPE c.

* >> Início da inclusão:

data: begin of itab_sequencia occurs 10,

            nrchave(10) type c,

      end of itab_sequencia.

data: begin of itab_remetente occurs 10,

            name1(35) type c,

      end of itab_remetente.

data: begin of itab_tipos occurs 10,

            tipo(30) type c,

      end of itab_tipos.

data: v_nrchave_imp(70)   type c,

      v_lifnr_imp(75)     type c,

      v_tipos_imp(70)     type c,

      v_seq               type i,

      v_reg               type i,

      v_imprime           type c.

* << Fim da inclusão

INCLUDE /pws/zycbi102.

IMPORT:

  itab_tline[]  FROM MEMORY ID 'E020',

  wa_line       FROM MEMORY ID 'E021',

  /pws/zycbt031 FROM MEMORY ID 'E022',

  v_nrchave     FROM MEMORY ID '003',

  v_docto       FROM MEMORY ID '004',

  v_tipo2       FROM MEMORY ID '005',

  v_total       FROM MEMORY ID '006',

  v_vlir        FROM MEMORY ID '007',

...

 

...

  v_vlpis       FROM MEMORY ID 'I003',

  v_vlcofins    FROM MEMORY ID 'I004',

  v_nrfat       FROM MEMORY ID '009',

  v_lifnr2      FROM MEMORY ID '010',

  v_boleto      FROM MEMORY ID '011',

  v_lifnr       FROM MEMORY ID '091',

  itab_boleto   FROM MEMORY ID '012',

  v_total_usd   FROM MEMORY ID '013',

  itab_nrpgfat  FROM MEMORY ID '093',

  itab_selreg_aux[] FROM MEMORY ID 'E014',

* >> Início da exclusão:

  itab_selreg  FROM  MEMORY ID 'E011'.

* << Fim da exclusão

* >> Início da inclusão:

  itab_selreg  from  memory id 'E011',

  itab_sequencia from memory id 'E024',

  itab_remetente from memory id 'E025',

  itab_tipos     from memory id 'E026'.

* << Fim da inclusão

SELECT *

  FROM /pws/zycbt134

    UP TO 1 ROWS

  INTO wa_zycbt134

  WHERE nrseq    EQ /pws/zycbt031-nrseq

    AND dtboleto EQ /pws/zycbt031-dtboleto.

ENDSELECT.

SET PF-STATUS '0200'.

SET TITLEBAR '0001'.

IF wa_line-mod(3) = 'IMP'.

...

 

...

  ENDIF.

  IF ( /pws/zycbt031-mdcorresp EQ 'IP' OR

       /pws/zycbt031-mdcorresp EQ 'IA' ) AND

       NOT v_cgc IS INITIAL.

    WRITE : 45 text-085, v_cgc.

  ENDIF.

  SKIP.

  IF v_nrchave IS INITIAL.

    WRITE:  02 text-029, 13 wa_line-nrchave.

  ELSE.

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

    WRITE:   02 text-029, 13 v_nrchave.

* << Fim da exclusão

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

    v_seq     =  0.

    v_imprime = 'S'.

    loop at itab_sequencia.

         v_seq = v_seq + 1.

         if v_nrchave_imp is initial.

            v_nrchave_imp = itab_sequencia-nrchave.

         else.

            concatenate v_nrchave_imp '-' itab_sequencia-nrchave

            into v_nrchave_imp.

         endif.

         if v_seq = 6.

            if v_imprime = 'S'.

               write: /02 text-029, 13 v_nrchave_imp.

            else.

               write: /02 '',       13 v_nrchave_imp.

            endif.

            v_seq         =  0.

            v_nrchave_imp = ''.

            v_imprime     = 'N'.

         endif.

    endloop.

    if not v_nrchave_imp is initial.

       if v_imprime = 'S'.

          write: /02 text-029, 13 v_nrchave_imp.

       else.

          write: /02 '',       13 v_nrchave_imp.

       endif.

    endif.

    clear itab_sequencia.

    refresh itab_sequencia.

* << Fim da inclusão

  ENDIF.

  SKIP.

  IF v_nrchave IS INITIAL.

    WRITE:  02 text-030, 20 wa_line-tipo.

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

  else.

    delete adjacent duplicates from itab_tipos comparing tipo.

    v_seq     =  0.

    v_imprime = 'S'.

    loop at itab_tipos.

         v_seq = v_seq + 1.

         if v_tipos_imp is initial.

            v_tipos_imp = itab_tipos-tipo.

         else.

            concatenate v_tipos_imp '-' itab_tipos-tipo

            into v_tipos_imp.

         endif.

         if v_seq = 2.

            if v_imprime = 'S'.

               write: /02 text-030, 20 v_tipos_imp.

            else.

               write: /02 '',       20 v_tipos_imp.

            endif.

            v_seq        =  0.

            v_tipos_imp  = ''.

            v_imprime    = 'N'.

         endif.

    endloop.

    if not v_tipos_imp is initial.

       if v_imprime = 'S'.

          write: /02 text-030, 20 v_tipos_imp.

* << Fim da inclusão

  ELSE.

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

    WRITE:  02 text-030, 20 v_tipo2.

* << Fim da exclusão

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

          write: /02 '',       20 v_tipos_imp.

* << Fim da inclusão

  ENDIF.

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

    endif.

    clear itab_tipos.

    refresh itab_tipos.

  endif.

* << Fim da inclusão

  SKIP.

  READ TABLE itab_zycbt108.                                 "#EC *

  IF sy-subrc EQ 0.

    WRITE: /02 text-031.

    LOOP AT itab_zycbt108.

      v_count = v_count + 1.

      IF v_count = 4.

        WRITE: /11 itab_zycbt108-belnr.

        v_count = 1.

      ELSE.

...

 

...

    IF v_nrfat IS INITIAL.

      WRITE: /02 text-031, wa_line-nrfat.

    ELSE.

      WRITE: /02 text-031, 13 v_nrfat.

    ENDIF.

  ENDIF.

  SKIP.

  CLEAR: v_count.

  IF v_nrchave IS INITIAL.

    WRITE: /02 text-032, v_lifnr NO-GAP, v_fornec+0(30) NO-GAP.

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

  else.

    delete adjacent duplicates from itab_remetente comparing

                                    name1.

    v_seq     =  0.

    v_imprime = 'S'.

    loop at itab_remetente.

         v_seq = v_seq + 1.

         if v_lifnr_imp is initial.

            v_lifnr_imp = itab_remetente-name1.

         else.

            concatenate v_lifnr_imp '-' itab_remetente-name1

            into v_lifnr_imp.

         endif.

         if v_seq = 2.

            if v_imprime = 'S'.

               write: /02 text-032,   v_lifnr_imp.

* << Fim da inclusão

  ELSE.

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

    WRITE: /02 text-032, v_lifnr2 NO-GAP, v_fornec+0(30) NO-GAP.

* << Fim da exclusão

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

               write: /02 '',      13 v_lifnr_imp.

* << Fim da inclusão

  ENDIF.

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

            v_seq         =  0.

            v_lifnr_imp   = ''.

            v_imprime     = 'N'.

         endif.

    endloop.

    if not v_lifnr_imp is initial.

       if v_imprime = 'S'.

          write: /02 text-032,    v_lifnr_imp.

       else.

          write: /02 '',       13 v_lifnr_imp.

       endif.

    endif.

    write: /02 '', 13 v_fornec+0(30) no-gap.

    clear: itab_remetente.

    refresh: itab_remetente.

  endif.

* << Fim da inclusão

  SKIP.

  IF /pws/zycbt031-mdcorresp EQ 'IP'.

    IF NOT itab_nrpgfat[] IS INITIAL.

      CLEAR v_count.

      LOOP AT itab_selreg_aux.

        v_count = v_count + 1.

        READ TABLE itab_zycbt111

          WITH KEY codmod = itab_selreg_aux-modalidade

          TRANSPORTING descricao.

        IF v_count EQ 1.

...

 

...

  WRITE: /02 text-027, /pws/zycbt031-nrseq.

  SKIP.

  IF v_nrchave IS INITIAL.

    WRITE:  02 text-028, wa_line-docto.

  ELSE.

    WRITE:  02 text-028, 22 v_docto.

  ENDIF.

  SKIP.

  IF v_nrchave IS INITIAL.

    WRITE:  02 text-029, 13 wa_line-nrchave.

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

  else.

    v_seq     =  0.

    v_imprime = 'S'.

    loop at itab_sequencia.

         v_seq = v_seq + 1.

         if v_nrchave_imp is initial.

            v_nrchave_imp = itab_sequencia-nrchave.

         else.

            concatenate v_nrchave_imp '-' itab_sequencia-nrchave

            into v_nrchave_imp.

         endif.

         if v_seq = 6.

            if v_imprime = 'S'.

               write: /02 text-029, 13 v_nrchave_imp.

            else.

               write: /02 '',       13 v_nrchave_imp.

            endif.

            v_seq         =  0.

            v_nrchave_imp = ''.

            v_imprime     = 'N'.

         endif.

    endloop.

    if not v_nrchave_imp is initial.

       if v_imprime = 'S'.

          write: /02 text-029, 13 v_nrchave_imp.

* << Fim da inclusão

  ELSE.

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

    WRITE:  02 text-029, 13 v_nrchave.

* << Fim da exclusão

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

          write: /02 '',       13 v_nrchave_imp.

       endif.

    endif.

    clear itab_sequencia.

    refresh itab_sequencia.

* << Fim da inclusão

  ENDIF.

  SKIP.

  IF v_nrchave IS INITIAL.

    WRITE:  02 text-030, 20 wa_line-tipo.

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

  else.

    delete adjacent duplicates from itab_tipos comparing tipo.

    v_seq     =  0.

    v_imprime = 'S'.

    loop at itab_tipos.

         v_seq = v_seq + 1.

         if v_tipos_imp is initial.

            v_tipos_imp = itab_tipos-tipo.

         else.

            concatenate v_tipos_imp '-' itab_tipos-tipo

            into v_tipos_imp.

         endif.

         if v_seq = 2.

            if v_imprime = 'S'.

               write: /02 text-030, 20 v_tipos_imp.

            else.

               write: /02 '',       20 v_tipos_imp.

            endif.

            v_seq        =  0.

            v_tipos_imp  = ''.

            v_imprime    = 'N'.

         endif.

    endloop.

    if not v_tipos_imp is initial.

       if v_imprime = 'S'.

          write: /02 text-030, 20 v_tipos_imp.

* << Fim da inclusão

  ELSE.

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

    WRITE:  02 text-030, 20 v_tipo2.

* << Fim da exclusão

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

          write: /02 '',       20 v_tipos_imp.

       endif.

* << Fim da inclusão

  ENDIF.

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

    clear itab_tipos.

    refresh itab_tipos.

  endif.

* << Fim da inclusão

  WRITE: /17 /pws/zycbt016-txtdesc.

  SKIP.

  IF wa_line-fmd = 'EL'.

    IF v_nrchave IS INITIAL.

      WRITE: /02 text-031, wa_line-docto.

    ELSE.

      WRITE: /02 text-031, v_docto.

    ENDIF.

  ELSE.

    WRITE: /02 text-031.

...

 

...

  INTO v_cabecalho SEPARATED BY space.

  WRITE: /24 text-006, v_cabecalho.

  WRITE: /30 text-073.

  WRITE: /36 text-074.

  SKIP 2.

  WRITE: /02 text-027, /pws/zycbt031-nrseq,

         045 text-065, wa_line-bukrs.

  SKIP.

  IF v_nrchave IS INITIAL.

    WRITE: /02 text-029, 13 wa_line-nrchave.

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

  else.

    v_seq     =  0.

    v_imprime = 'S'.

    loop at itab_sequencia.

         v_seq = v_seq + 1.

         if v_nrchave_imp is initial.

            v_nrchave_imp = itab_sequencia-nrchave.

         else.

            concatenate v_nrchave_imp '-' itab_sequencia-nrchave

            into v_nrchave_imp.

         endif.

         if v_seq = 6.

            if v_imprime = 'S'.

               write: /02 text-029, 13 v_nrchave_imp.

            else.

               write: /02 '',       13 v_nrchave_imp.

            endif.

            v_seq         =  0.

            v_nrchave_imp = ''.

            v_imprime     = 'N'.

         endif.

    endloop.

    if not v_nrchave_imp is initial.

       if v_imprime = 'S'.

          write: /02 text-029, 13 v_nrchave_imp.

* << Fim da inclusão

  ELSE.

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

    WRITE: /02 text-029, 13 v_nrchave.

* << Fim da exclusão

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

          write: /02 '',       13 v_nrchave_imp.

       endif.

    endif.

    clear itab_sequencia.

    refresh itab_sequencia.

* << Fim da inclusão

  ENDIF.

  SKIP.

  IF v_docto IS INITIAL.

    WRITE: /02 text-008, wa_line-docto.

  ELSE.

    WRITE:  02 text-031, 22 v_docto.

  ENDIF.

  SKIP 2.

  WRITE: /02 text-075, /pws/zycbt017-nrre,

          45 text-077, /pws/zycbt017-nrsd.

...

 

...

    WRITE /26 text-091.

  ELSE.

    WRITE /26 text-007.

  ENDIF.

  SKIP.

  WRITE: /02 text-027, /pws/zycbt031-nrseq.

  WRITE:  45 text-065, wa_line-bukrs.

  SKIP.

  IF v_nrchave IS INITIAL.

    WRITE: 02 text-029, 13 wa_line-nrchave.

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

  else.

    v_seq     =  0.

    v_imprime = 'S'.

    loop at itab_sequencia.

         v_seq = v_seq + 1.

         if v_nrchave_imp is initial.

            v_nrchave_imp = itab_sequencia-nrchave.

         else.

            concatenate v_nrchave_imp '-' itab_sequencia-nrchave

            into v_nrchave_imp.

         endif.

         if v_seq = 6.

            if v_imprime = 'S'.

               write: /02 text-029, 13 v_nrchave_imp.

            else.

               write: /02 '',       13 v_nrchave_imp.

            endif.

            v_seq         =  0.

            v_nrchave_imp = ''.

            v_imprime     = 'N'.

         endif.

    endloop.

    if not v_nrchave_imp is initial.

       if v_imprime = 'S'.

          write: /02 text-029, 13 v_nrchave_imp.

* << Fim da inclusão

  ELSE.

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

    WRITE: 02 text-029, 13 v_nrchave.

* << Fim da exclusão

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

          write: /02 '',       13 v_nrchave_imp.

* << Fim da inclusão

  ENDIF.

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

    endif.

    clear itab_sequencia.

    refresh itab_sequencia.

  endif.

* << Fim da inclusão

  SKIP.

  IF wa_line-fmd EQ 'CP'.

    WRITE 02 text-028.

    SKIP.

  ENDIF.

  IF v_nrchave IS INITIAL.

    WRITE: /02 text-008, wa_line-nrfat.

  ELSE.

    WRITE: /02 text-008, v_nrfat.

  ENDIF.

  SKIP.

  IF v_nrchave IS INITIAL.

    IF wa_line-oper = 'R'.

      WRITE: /02 text-009, wa_line-lifnr, v_cliente.

    ELSEIF wa_line-oper = 'P'.

      WRITE: /02 text-032, wa_line-lifnr, v_cliente.

    ENDIF.

  ELSE.

    IF wa_line-oper = 'R'.

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

      WRITE: /02 text-009, v_lifnr2, v_cliente.

* << Fim da exclusão

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

      delete adjacent duplicates from itab_remetente comparing

                                    name1.

      v_seq     =  0.

      v_imprime = 'S'.

      loop at itab_remetente.

           v_seq = v_seq + 1.

           if v_lifnr_imp is initial.

              v_lifnr_imp = itab_remetente-name1.

           else.

              concatenate v_lifnr_imp '-' itab_remetente-name1

              into v_lifnr_imp.

           endif.

           if v_seq = 2.

              if v_imprime = 'S'.

                 write: /02 text-009,   v_lifnr_imp.

              else.

                 write: /02 '',      13 v_lifnr_imp.

              endif.

              v_seq         =  0.

              v_lifnr_imp   = ''.

              v_imprime     = 'N'.

           endif.

      endloop.

      if not v_lifnr_imp is initial.

         if v_imprime = 'S'.

            write: /02 text-009,    v_lifnr_imp.

         else.

            write: /02 '',       13 v_lifnr_imp.

         endif.

      endif.

      write: /02 '', 13 v_cliente.

      clear: itab_remetente.

      refresh: itab_remetente.

* << Fim da inclusão

    ELSEIF wa_line-oper = 'P'.

      WRITE: /02 text-032, wa_line-lifnr, v_cliente.

    ENDIF.

  ENDIF.

  SKIP.

  IF wa_line-fmd EQ 'CP'.

    WRITE 02 text-013.

    SKIP.

    WRITE 02 text-033.

    SKIP.

  ENDIF.

  IF v_nrchave IS INITIAL.

    WRITE: 02 text-030, wa_line-tipo.

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

  else.

    delete adjacent duplicates from itab_tipos comparing tipo.

    v_seq     =  0.

    v_imprime = 'S'.

    loop at itab_tipos.

         v_seq = v_seq + 1.

         if v_tipos_imp is initial.

            v_tipos_imp = itab_tipos-tipo.

         else.

            concatenate v_tipos_imp '-' itab_tipos-tipo

            into v_tipos_imp.

         endif.

         if v_seq = 2.

            if v_imprime = 'S'.

               write: /02 text-030, 20 v_tipos_imp.

            else.

               write: /02 '',       20 v_tipos_imp.

            endif.

            v_seq        =  0.

            v_tipos_imp  = ''.

            v_imprime    = 'N'.

         endif.

    endloop.

    if not v_tipos_imp is initial.

       if v_imprime = 'S'.

          write: /02 text-030, 20 v_tipos_imp.

* << Fim da inclusão

  ELSE.

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

    WRITE: 02 text-030, 20 v_tipo2.

* << Fim da exclusão

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

          write: /02 '',       20 v_tipos_imp.

       endif.

    endif.

    clear itab_tipos.

    refresh itab_tipos.

* << Fim da inclusão

  ENDIF.

  SKIP.

  IF wa_line-fmd EQ 'CP'.

    WRITE: 02 text-035, 45 text-052.

    SKIP.

    WRITE: 02 text-037, v_rof.

    SKIP.

    WRITE 02 text-038.

    SKIP.

    WRITE 02 text-039.

...