CE PLUS - Nota 005470

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Relatórios

Data/Hora da Publicação: 14/12/2007 00:00:00

Data/Hora Última Alteração: 10/03/2010 17:37:43

Descrição da Nota: RELATÓRIO VALORES RECEBIDOS EM C/C NO EXTERIOR

Sintoma

 

Relatório Valores Recebidos em C/C no Exterior

 

Solução

 

Relatório Valores Recebidos em C/C no Exterior

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

DESENVOLVIMENTO ADICIONAL - SAÍDA DE PAGAMENTO UTILIZANDO CONTA CORRENTE

Informações Complementares

 

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

Nota Número 05470 Data: 14/12/2007 Hora: 19:17:10

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

 

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

Nota Número              : 05470

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00027

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

RELATÓRIO VALORES RECEBIDOS EM C/C NO EXTERIOR

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

Palavras Chave:

RELATÓRIO VALORES RECEBIDOS EM C/C NO EXTERIOR

 

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

Objetos da nota:

REPS /PWS/ZYCBR361

TRAN /PWS/ZYCBR361

 

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

Modificações efetuadas em REPS /PWS/ZYCBR361

 

Classe de desenvolvimento de todos objetos: /PWS/ZYCB

 

 

* ----------------------------------------------------------------------

* PROCWORK Software

* Produto  : Pw.CE - /PWS/ZYCBR146

* Módulo   : CB ¿ Câmbio Exportação

* Descrição: Relatório de controle de valores recebidos no exteriro

* Help Desk: (0XX11) 5504-0270

* ----------------------------------------------------------------------

* ESTE PROGRAMA NÃO DEVE SER ALTERADO SEM PRÉVIA CONSULTA

* ----------------------------------------------------------------------

* Chamado     Data            Descrição

* ----------------------------------------------------------------------

* 421106      20/11/2007      Codificação Inicial

* ----------------------------------------------------------------------

REPORT /pws/zycbr361 MESSAGE-ID /pws/zycbm .

 

* Grupos de tipos

 

TYPE-POOLS: slis,

            kkblo.

* Tabelas

 

TABLES:

/pws/zycbt226,

/pws/zycbt238,

/pws/zycbt240,

/pws/zycbt017,

bsad.

 

* Tabelas internas

 

*Armazena dados para impressão do relatório.

DATA: BEGIN OF it_saida OCCURS 0,

bukrs            LIKE /pws/zycbt226-bukrs,    "Empres

nrseq            LIKE /pws/zycbt226-nrseq,    "Nr.seq. ordem de pgto

tipo_op          LIKE /pws/zycbt226-tipo_op,  "Origem do Recurso

destino(25)      TYPE c,                      "Destino do Recurso

waers            LIKE /pws/zycbt226-waers,    "Moeda

nremb            LIKE /pws/zycbt017-nremb,    "Número do Embarque

nrinvoic         LIKE /pws/zycbt226-nrinvoic, "Fatura

nrparcf          LIKE /pws/zycbt226-nrparcf,  "Parcela

gsberf           LIKE /pws/zycbt226-gsberf,   "Divisão da fatura

werks            LIKE /pws/zycbt226-werks,    "Centro

j_1bbranch       LIKE /pws/zycbt226-j_1bbranch, "Local de Negócio

kunag            LIKE /pws/zycbt226-kunag,      "Código do Cliente

name1            TYPE kna1-name1,               "Desc do Nome do Cliente

vlr_exterior     LIKE /pws/zycbt226-vlr_exterior,  "Vlr Retido Ext ME

sld_exterior     LIKE /pws/zycbt226-sld_exterior,  "Saldo Retido no Ext

vldisp30         LIKE /pws/zycbt238-vldisp,     "Valor disp 30%

vldisp70         LIKE /pws/zycbt238-vldisp,     "Valor disp 70%

vlcred           LIKE /pws/zycbt240-vlcred,     "Valor Rendimento

dtcredext        LIKE /pws/zycbt226-dtcredext,  "Dt de Crédito no Ext

dtlancto         LIKE /pws/zycbt226-dtlancto,   "Data de Lançamento

dtincl           LIKE /pws/zycbt226-dtincl,     "Data de Inclusão

dtlimite         LIKE /pws/zycbt226-dtlimite,   "Dt Lim Utlz Ord Pgto

dtdisp           LIKE /pws/zycbt238-dtdisp,     "Dt da disp

dtreceb          LIKE /pws/zycbt240-dtreceb,    "Dt do receb do rend

bco_me           LIKE /pws/zycbt226-bco_me,     "Código do banco C/C ME

name1_lfa        LIKE lfa1-name1,               "Descr do Banco C/C ME

conta_contabil   LIKE /pws/zycbt226-conta_contabil, "Conta Contb Lcto

belnr_op         LIKE /pws/zycbe226-belnr_op,       "Doc Contb do Lcto

conta_contabil_l LIKE /pws/zycbt238-conta_contabil, "Cta Cntb d Transf

doc_cont         LIKE /pws/zycbe238-doc_cont,    "Doc contb Transf 30 70

ref_op           LIKE /pws/zycbt226-ref_op.      "Ref Ordem de Pgto

DATA: END OF it_saida.

 

*CB - Valores Mantidos no Exterior.

DATA: BEGIN OF it_zycbt226 OCCURS 0,

bukrs            LIKE /pws/zycbt226-bukrs,    "Empres

nrseq            LIKE /pws/zycbt226-nrseq,    "Nr.seq. ordem de pgto

tipo_op          LIKE /pws/zycbt226-tipo_op,  "Origem do Recurso

waers            LIKE /pws/zycbt226-waers,    "Moeda

nrinvoic         LIKE /pws/zycbt226-nrinvoic, "Fatura

nrparcf          LIKE /pws/zycbt226-nrparcf,  "Parcela

gsberf           LIKE /pws/zycbt226-gsberf,   "Divisão da fatura

werks            LIKE /pws/zycbt226-werks,    "Centro

j_1bbranch       LIKE /pws/zycbt226-j_1bbranch, "Local de Negócio

kunag            LIKE /pws/zycbt226-kunag,      "Código do Cliente

vlr_exterior     LIKE /pws/zycbt226-vlr_exterior,  "Vlr Retido Ext ME

sld_exterior     LIKE /pws/zycbt226-sld_exterior,  "Saldo Retido no Ext

dtcredext        LIKE /pws/zycbt226-dtcredext,  "Dt de Crédito no Ext

dtlancto         LIKE /pws/zycbt226-dtlancto,   "Data de Lançamento

dtincl           LIKE /pws/zycbt226-dtincl,     "Data de Inclusão

dtlimite         LIKE /pws/zycbt226-dtlimite,   "Dt Lim Utlz Ord Pgto

bco_me           LIKE /pws/zycbt226-bco_me,     "Código do banco C/C ME

conta_contabil   LIKE /pws/zycbt226-conta_contabil, "Conta Contb Lcto

belnr_op         LIKE /pws/zycbe226-belnr_op,       "Doc Contb do Lcto

ref_op           LIKE /pws/zycbt226-ref_op,      "Ref Ordem de Pgto

END OF it_zycbt226.

 

*CB - DISPONIBILIDADE DE VALORES MANTIDOS NO EXTERIOR.

DATA: BEGIN OF it_zycbt238 OCCURS 0,

nrseq           LIKE /pws/zycbt238-nrseq,   "Nº Seq-Vlr mant ext

destino         LIKE /pws/zycbt238-destino, "Porcent destino do rec

dtdisp          LIKE /pws/zycbt238-dtdisp,  "Data de lançamento no docu

conta_contabil  LIKE /pws/zycbt238-conta_contabil, "Ct Contb de Transf

doc_cont        LIKE /pws/zycbt238-doc_cont, "Doc. contábil da Transf

vldisp          LIKE /pws/zycbt238-vldisp,

END OF it_zycbt238.

 

*CB - DISPONIBILIDADE DE VALORES MANTIDOS NO EXTERIOR.

DATA: BEGIN OF it_zycbt240 OCCURS 0,

nrseqr       LIKE /pws/zycbt240-nrseqr,

dtreceb      LIKE /pws/zycbt240-dtreceb,

bukrs        LIKE /pws/zycbt240-bukrs,

waers        LIKE /pws/zycbt240-waers,

gsber        LIKE /pws/zycbt240-gsber,

werks        LIKE /pws/zycbt240-werks,

j_1bbranch   LIKE /pws/zycbt240-j_1bbranch,

vlcred       LIKE /pws/zycbt240-vlcred,

bco_ext      LIKE /pws/zycbt240-bco_ext,

nome_bco     LIKE /pws/zycbt240-nome_bco,

END OF it_zycbt240.

 

* Tabela: Fornecedores

DATA: BEGIN OF itab_lfa1 OCCURS 0,

      lifnr           LIKE lfa1-lifnr,                       "Fornecedor

      name1           LIKE lfa1-name1,                       "Nome

END OF itab_lfa1.

 

* Tabela: Clientes

DATA: BEGIN OF itab_kna1 OCCURS 0,

      lifnr           LIKE kna1-lifnr,                       "Fornecedor

      name1           LIKE kna1-name1,                       "Nome

      kunnr           LIKE kna1-kunnr,

END OF itab_kna1.

 

* CB - Cadastro de Faturas

DATA: BEGIN OF it_zycbt017 OCCURS 0,

      nrinvoic LIKE /pws/zycbt017-nrinvoic,

      nrparcf  LIKE /pws/zycbt017-nrparcf,

      gsberf   LIKE /pws/zycbt017-gsberf,

      nremb    LIKE /pws/zycbt017-nremb,

END OF it_zycbt017.

 

*----------------------------------------------------------------------*

* Tabelas Internas para ALV GRID                                       *

*----------------------------------------------------------------------*

* Somente para ALV Grid

DATA: itab_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,

      itab_sort     TYPE slis_sortinfo_alv   OCCURS 0 WITH HEADER LINE.

 

*----------------------------------------------------------------------*

* Estruturas                                                           *

*----------------------------------------------------------------------*

DATA: gs_layout        TYPE slis_layout_alv,                 "L. saída

      gs_top           TYPE slis_t_listheader.               "Cabeçalho

 

*----------------------------------------------------------------------*

* DECLARAÇÃO DE VARIÁVEIS                                              *

*----------------------------------------------------------------------*

DATA:   v_exit(1)        TYPE c,            "Layout relatório

        v_repid          TYPE sy-repid.     "Programa

 

DATA:

        s_selfield TYPE slis_selfield.

*        v_ucomm LIKE sy-ucomm.

 

 

* Tela de Seleção

 

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

SELECT-OPTIONS:

*empresa

s_bukrs FOR /pws/zycbt226-bukrs OBLIGATORY NO-EXTENSION NO INTERVALS,

  s_gsber   FOR /pws/zycbt226-gsberf,       "divisão

  s_j_1bbr  FOR /pws/zycbt226-j_1bbranch,   "local de negócio

  s_nrseq   FOR /pws/zycbt226-nrseq,        "nr.seq.ord pto

  s_kunag   FOR /pws/zycbt226-kunag,        "código do cliente

  s_waers   FOR /pws/zycbt226-waers,        "moeda

  s_sld_ex  FOR /pws/zycbt226-sld_exterior, "saldo retido exterior

  s_orgrec  FOR /pws/zycbt226-tipo_op,      "origem do recurso

  s_dtcrde  FOR /pws/zycbt226-dtcredext,    "Dt.crédito exterior

  s_dtlcto  FOR /pws/zycbt226-dtlancto,     "Dt.lançamento

  s_dtincl  FOR /pws/zycbt226-dtincl,       "dt.Inclusão

  s_dtdisp  FOR /pws/zycbt238-dtdisp,       "dt.disponibilidade

  s_dtrecb  FOR /pws/zycbt240-dtreceb,      "dt.recb rendimento

  s_bco_me  FOR /pws/zycbt226-bco_me,       "código do banco cc/me

  s_ref_op  FOR /pws/zycbt226-ref_op,       "ref. da ordem

  s_exerc   FOR bsad-gjahr NO INTERVALS NO-EXTENSION OBLIGATORY. "exerc.

SELECTION-SCREEN END OF BLOCK bl_1.

 

SELECTION-SCREEN BEGIN OF BLOCK vlreceb WITH FRAME TITLE text-004.

PARAMETERS: p_receb   AS CHECKBOX DEFAULT 'X',   "recebidos cc/me

            p_disp30  AS CHECKBOX DEFAULT 'X',   "dispoinbilidade 30%

            p_disp70  AS CHECKBOX DEFAULT 'X',   "dispoinbilidade 70%

            p_rendrb  AS CHECKBOX DEFAULT 'X'.   "rendimentos recebidos

 

SELECTION-SCREEN END OF BLOCK vlreceb.

 

*Opções da lista de resultados.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

PARAMETERS: p_varian LIKE disvariant-variant.

SELECTION-SCREEN END OF BLOCK b2.

 

 

*&---------------------------------------------------------------------*

*&     Principal

*&---------------------------------------------------------------------*

 

 

*----------------------------------------------------------------------*

* AT SELECTION SCREEN                                                  *

*----------------------------------------------------------------------*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varian.

 

  v_repid = sy-repid.

 

* Validação da variante de layout de exibição

  PERFORM help_variante

                   USING    v_repid

                            sy-uname

                   CHANGING v_exit

                            p_varian.

 

*----------------------------------------------------------------------*

* AT SELECTION-SCREEN.

*----------------------------------------------------------------------*

AT SELECTION-SCREEN.

  IF p_receb = '' AND p_disp30 = '' AND p_disp70 = '' AND

              p_rendrb = ''.

 

    MESSAGE e015 WITH text-005.

  ENDIF.

 

*----------------------------------------------------------------------*

* INÍCIO DO PROCESSAMENTO                                              *

*----------------------------------------------------------------------*

START-OF-SELECTION.

 

  v_repid = sy-repid.

 

  PERFORM f_seleciona_dados.

 

  PERFORM f_monta_saida.

 

  IF NOT it_saida[] IS INITIAL.

*   Monta layout

    PERFORM f_layout.

  ELSE.

    MESSAGE i306. "Não existe(m) registro(s) a ser(em) exibido(s)

  ENDIF.

 

*&---------------------------------------------------------------------*

*&      Form  f_seleciona_dados

*&---------------------------------------------------------------------*

*       Busca dados para exibição do relatório.

*----------------------------------------------------------------------*

FORM f_seleciona_dados.

 

  CLEAR:

        it_zycbt226[],

        it_zycbt238[],

        it_zycbt240[].

 

  PERFORM f_seleciona_zycbt226.

  PERFORM f_seleciona_zycbt238.

  PERFORM f_seleciona_zycbt240.

 

ENDFORM.                    " f_seleciona_dados

 

*&---------------------------------------------------------------------*

*&      Form  f_seleciona_zycbt226

*&---------------------------------------------------------------------*

*       CB - Valores Mantidos no Exterior

*----------------------------------------------------------------------*

FORM f_seleciona_zycbt226.

 

  CHECK p_receb ='X' OR p_disp30 = 'X' OR p_disp70 = 'X'.

 

  SELECT

        bukrs

        nrseq

        tipo_op

        waers

        nrinvoic

        nrparcf

        gsberf

        werks

        j_1bbranch

        kunag

        vlr_exterior

        sld_exterior

        dtcredext

        dtlancto

        dtincl

        dtlimite

        bco_me

        conta_contabil

        belnr_op

        ref_op

  FROM /pws/zycbt226

  INTO TABLE it_zycbt226

  WHERE

        nrseq         IN s_nrseq.

 

  CHECK it_zycbt226 IS INITIAL.

 

  DELETE it_zycbt226 WHERE NOT bukrs         IN s_bukrs.

  DELETE it_zycbt226 WHERE NOT gsberf        IN s_gsber.

  DELETE it_zycbt226 WHERE NOT j_1bbranch    IN s_j_1bbr.

  DELETE it_zycbt226 WHERE NOT kunag         IN s_kunag.

  DELETE it_zycbt226 WHERE NOT waers         IN s_waers.

  DELETE it_zycbt226 WHERE NOT sld_exterior  IN s_sld_ex.

  DELETE it_zycbt226 WHERE NOT tipo_op       IN s_orgrec.

  DELETE it_zycbt226 WHERE NOT dtcredext     IN s_dtcrde.

  DELETE it_zycbt226 WHERE NOT dtlancto      IN s_dtlcto.

  DELETE it_zycbt226 WHERE NOT dtincl        IN s_dtincl.

  DELETE it_zycbt226 WHERE NOT bco_me        IN s_bco_me.

  DELETE it_zycbt226 WHERE NOT ref_op        IN s_ref_op.

  DELETE it_zycbt226 WHERE NOT dtlancto(4) IN s_exerc.

 

*   Busca descrição do Banco através do nome do fornecedor

  SELECT lifnr

         name1

  FROM lfa1

  INTO TABLE itab_lfa1

  FOR ALL ENTRIES IN it_zycbt226

  WHERE lifnr EQ it_zycbt226-bco_me.

 

*   Busca Descrição do Nome do Cliente

  SELECT lifnr

         name1

         kunnr

  FROM kna1

  INTO TABLE itab_kna1

  FOR ALL ENTRIES IN it_zycbt226

  WHERE kunnr EQ it_zycbt226-kunag.

 

* CB - Cadastro de Faturas

  SELECT

      nrinvoic

      nrparcf

      gsberf

      nremb

  FROM /pws/zycbt017

  INTO TABLE it_zycbt017

  FOR ALL ENTRIES IN it_zycbt226

  WHERE

      nrinvoic = it_zycbt226-nrinvoic AND

      nrparcf  = it_zycbt226-nrparcf  AND

      gsberf   = it_zycbt226-gsberf.

 

ENDFORM.                    " f_seleciona_zycbt226

 

*&---------------------------------------------------------------------*

*&      Form  f_seleciona_zycbt238

*&---------------------------------------------------------------------*

*       CB - DISPONIBILIDADE DE VALORES MANTIDOS NO EXTERIOR

*----------------------------------------------------------------------*

FORM f_seleciona_zycbt238.

 

  DATA lc_index LIKE sy-tabix.

 

* Verifica o parâmetro Valores recebidos.

  IF p_disp30 = 'X' AND p_disp70 = 'X'.

    SELECT

          nrseq

          destino

          dtdisp

          conta_contabil

          doc_cont

          vldisp

    FROM /pws/zycbt238

    INTO TABLE it_zycbt238

    FOR ALL ENTRIES IN it_zycbt226

    WHERE

          nrseq   = it_zycbt226-nrseq AND

          dtdisp  IN s_dtdisp AND

          ( destino = 30 OR

          destino = 70 ).

  ELSEIF p_disp30 = 'X'.

    SELECT

          nrseq

          destino

          dtdisp

          conta_contabil

          doc_cont

          vldisp

    FROM /pws/zycbt238

    INTO TABLE it_zycbt238

    FOR ALL ENTRIES IN it_zycbt226

    WHERE

          nrseq   = it_zycbt226-nrseq AND

          dtdisp  IN s_dtdisp AND

          destino = 30.

  ELSEIF p_disp70 = 'X'.

    SELECT

          nrseq

          destino

          dtdisp

          conta_contabil

          doc_cont

          vldisp

    FROM /pws/zycbt238

    INTO TABLE it_zycbt238

    FOR ALL ENTRIES IN it_zycbt226

    WHERE

          nrseq   = it_zycbt226-nrseq AND

          dtdisp IN s_dtdisp AND

          destino = 70.

  ENDIF.

 

  IF ( it_zycbt238[] IS INITIAL ) AND ( p_receb IS INITIAL ).

    CLEAR it_zycbt226[].

  ELSE.

    IF p_receb IS INITIAL.

* Exclui os registros da it_zycbt226 que não estejam na tab it_zycbt238

*caso o parâmetro de recebidos cc/me não esteja selecionado.

      SORT: it_zycbt226 BY nrseq,

            it_zycbt238 BY nrseq.

 

      LOOP AT it_zycbt226.

        lc_index = sy-tabix.

        READ TABLE it_zycbt238 WITH KEY it_zycbt226-nrseq.

 

        IF sy-subrc NE 0.

          DELETE it_zycbt226 INDEX lc_index.

        ENDIF.

 

      ENDLOOP.

 

    ENDIF.

 

    CHECK s_exerc IS INITIAL.

    DELETE it_zycbt238 WHERE NOT dtdisp(4) IN s_exerc.

 

  ENDIF.

 

ENDFORM.                    " f_seleciona_zycbt238

 

*&---------------------------------------------------------------------*

*&      Form  f_seleciona_zycbt240

*&---------------------------------------------------------------------*

*       CB - RENDIMENTOS RECEBIDOS

*----------------------------------------------------------------------*

FORM f_seleciona_zycbt240.

 

* Verifica o parâmentro de recebimentos está marcado.

  IF p_rendrb = 'X'.

 

    SELECT

          nrseqr

          dtreceb

          bukrs

          waers

          gsber

          werks

          j_1bbranch

          vlcred

          bco_ext

          nome_bco

    FROM /pws/zycbt240

    INTO TABLE it_zycbt240

      WHERE

          nrseqr  IN s_nrseq .

 

    CHECK it_zycbt240 IS INITIAL.

    DELETE it_zycbt240 WHERE NOT bukrs         IN s_bukrs.

    DELETE it_zycbt240 WHERE NOT waers         IN s_waers.

    DELETE it_zycbt240 WHERE NOT gsber         IN s_gsber.

    DELETE it_zycbt240 WHERE NOT j_1bbranch    IN s_j_1bbr.

    DELETE it_zycbt240 WHERE NOT bco_ext       IN s_bco_me.

    DELETE it_zycbt240 WHERE NOT dtreceb       IN s_dtrecb.

 

    CHECK s_exerc IS INITIAL.

    DELETE it_zycbt240 WHERE NOT dtreceb(4) IN s_exerc.

 

  ENDIF.

 

ENDFORM.                    " f_seleciona_zycbt240

 

*&---------------------------------------------------------------------*

*&      Form  f_monta_saida

*&---------------------------------------------------------------------*

*       Monta tabela para impressão do relatório

*----------------------------------------------------------------------*

FORM f_monta_saida.

 

  SORT: it_zycbt226 BY nrseq,

        it_zycbt238 BY nrseq,

        it_zycbt240 BY nrseqr,

        itab_kna1   BY kunnr,

        itab_lfa1   BY lifnr,

        it_zycbt017 BY nrinvoic nrparcf  gsberf.

 

  LOOP AT it_zycbt226.

    IF p_receb EQ 'X'.

      it_saida-destino  = 'Recebidos C/C ME'.

      PERFORM f_preenche_zycbt226.

    ENDIF.

    clear: it_saida-sld_exterior,

           it_saida-vlr_exterior.

*   Seleciona todos os registros referentes a CB - DISPONIBILIDADE DE

*VALORES MANTIDOS NO EXTERIOR

 

    LOOP AT it_zycbt238 WHERE nrseq = it_zycbt226-nrseq.

      IF it_zycbt238-destino = 30 .

        it_saida-destino  = 'Disponibilidade 30%'.

        it_saida-vldisp30 = it_zycbt238-vldisp.

        clear it_saida-vldisp70.

      ELSEIF it_zycbt238-destino = 70 .

        it_saida-destino  = 'Disponibilidade 70%'.

        it_saida-vldisp70 = it_zycbt238-vldisp.

        clear it_saida-vldisp30.

      ENDIF.

      it_saida-dtdisp           = it_zycbt238-dtdisp.

      it_saida-conta_contabil_l = it_zycbt238-conta_contabil.

      it_saida-doc_cont         = it_zycbt238-doc_cont.

 

      CLEAR: it_zycbt226-vlr_exterior,

             it_zycbt226-sld_exterior.

 

      PERFORM f_preenche_zycbt226.

 

    ENDLOOP.

    CLEAR: it_saida-vldisp70,

           it_saida-vldisp30.

  ENDLOOP.

 

  CLEAR it_saida.

 

*valores de rendimentos sobre o saldo da conta corrente ME

*não rendimentos ligados a um crédito específico na cc

  LOOP AT it_zycbt240.

 

    it_saida-nrseq      = it_zycbt240-nrseqr.

    it_saida-bukrs      = it_zycbt240-bukrs.

    it_saida-destino    = 'Rendimentos'.

    it_saida-waers      = it_zycbt240-waers.

    it_saida-gsberf     = it_zycbt240-gsber.

    it_saida-werks      = it_zycbt240-werks.

    it_saida-j_1bbranch = it_zycbt240-j_1bbranch.

    it_saida-vlcred     = it_zycbt240-vlcred.

    it_saida-dtreceb    = it_zycbt240-dtreceb.

    it_saida-bco_me     = it_zycbt240-bco_ext.

    it_saida-name1_lfa  = it_zycbt240-nome_bco.

 

    APPEND it_saida.

  ENDLOOP.

 

ENDFORM.                    " f_monta_saida

 

*&---------------------------------------------------------------------*

*&      Form  f_layout

*&---------------------------------------------------------------------*

*       Monta ALV

*----------------------------------------------------------------------*

FORM f_layout.

 

* Efetua quebra

  PERFORM f_monta_quebra.

 

* Layout de impressão do ALV

  PERFORM f_define_layout.

 

* Montagem dos campos

  PERFORM f_monta_campos.

 

*Imprime ALV

  PERFORM f_imprime_alv.

 

ENDFORM.                    " f_layout

 

*&---------------------------------------------------------------------*

*&      Form  F_monta_quebra

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM f_monta_quebra.

 

  REFRESH itab_sort.

 

* Quebra por moeda ME

  CLEAR itab_sort.

  itab_sort-spos      = 1.

  itab_sort-fieldname = 'WAERS'.  "Nome do campo

  itab_sort-tabname   = 'IT_SAIDA'.  "Nome da tabela

  itab_sort-up        = 'X'.

  itab_sort-subtot    = 'X'.

  APPEND itab_sort.

 

ENDFORM.                    " F_monta_quebra

 

*&---------------------------------------------------------------------*

*&      Form  f_define_layout

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM f_define_layout.

 

  gs_layout-group_change_edit    = 'X'.

  gs_layout-colwidth_optimize    = 'X'.

  gs_layout-box_tabname          = 'IT_SAIDA'.

  gs_layout-zebra                = 'X'. "Listrado (Linha clara->escura)

 

ENDFORM.                    " f_define_layout

 

*&---------------------------------------------------------------------*

*&      Form  f_monta_campos

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM f_monta_campos.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'BUKRS'

           'Empresa'           'C' '07' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'NRSEQ'

           'Nr.Seq. Ordem de Pgto' 'C' '10' ' ' ' ' ' ' ' ' 'X' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'TIPO_OP'

           'Origem do Recurso' 'C' '01' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'DESTINO'

           'Destino do Recurso' 'C' '25' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'WAERS'

           'Moeda' 'P' '05' ' ' ' ' ' ' 'X' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'NREMB'

           'Número do Embarque' 'C' '20' ' ' ' ' ' ' ' ' 'X' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'NRINVOIC'

           'Fatura' 'C' '20' ' ' ' ' ' ' ' ' 'X' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'NRPARCF'

           'Parcela' 'N' '02' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'GSBERF'

           'Divisão da fatura' 'C' '04' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'WERKS'

           'Centro' 'C' '04' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'J_1BBRANCH'

           'Local de Negócio' 'C' '04' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'KUNAG'

           'Código do Cliente' 'C' '10' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'NAME1'

           'Descrição do Nome do Cliente' 'C'

           '35' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'VLR_EXTERIOR'

           'Valor Retido no Exterior' 'P' '13' ' ' ' '

           'X' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'SLD_EXTERIOR'

          'Saldo Retido no Exterior' 'P' '13' ' ' ' '

          'X' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'VLDISP30'

          'Valor Disponibilidade 30%' 'P' '13' ' ' ' '

          'X' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'VLDISP70'

          'Valor Disponibilidade 70%' 'P' '13' ' ' ' '

          'X' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'VLCRED'

          'Valor Rendimento' 'P' '13' ' ' ' ' 'X' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'DTCREDEXT'

          'Data de Crédito no Exterior' 'D'

          '13' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'DTLANCTO'

          'Data de Lançamento' 'D' '08' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'DTINCL'

          'Data de Inclusão' 'D' '08' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'DTLIMITE'

          'Data Limite para Utilização da Ordem de Pagamento' 'D' '08'

          ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'DTDISP'

          'Data da Disponibilidade' 'D'

          '08' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'DTRECEB'

          'Data do Recebimento do Rendimento' 'D' '08' ' ' ' ' ' ' ' '

           ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'BCO_ME'

          'Código do Banco C/C ME' 'D' '10' ' ' ' ' ' ' ' ' ' '

          'LIFNR' 'KNA1'.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'NAME1_LFA'

          'Descrição do Banco C/C ME' 'C'

          '35' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'CONTA_CONTABIL'

          'Conta Contábil Lançamento' 'C'

          '10' ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'BELNR_OP'

          'Documento Contábil do Lançamento' 'C' '10'

          ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'CONTA_CONTABIL_L'

          'Conta Contábil da Transferência' 'C' '10' ' ' ' ' ' ' ' '

           ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'DOC_CONT'

          'Documento Contábil da Transferência' 'C' '10'

          ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

  PERFORM: inclui_campo USING 'IT_SAIDA' 'REF_OP'

          'Referência da Ordem de Pagamento' 'C' '30'

          ' ' ' ' ' ' ' ' ' ' ' ' ' '.

 

ENDFORM.                    " f_monta_campos

 

*&---------------------------------------------------------------------*

*&      Form  inclui_campo

*&---------------------------------------------------------------------*

*       FIELDCAT

*----------------------------------------------------------------------*

FORM inclui_campo USING  value(p_tabela) value(p_campo) value(p_titcol)

                         value(p_tipo)   value(p_tam)   value(p_check)

                         value(p_just)   value(p_soma)  value(p_chave)

                         value(p_hotspot) value(p_ref_campo)

                         value(p_ref_tabela).

 

  CLEAR itab_fieldcat.

  itab_fieldcat-fieldname    = p_campo.      " Nome do campo

  itab_fieldcat-tabname      = p_tabela.     " Nome da tabela

  itab_fieldcat-reptext_ddic = p_titcol.     " Titulo da coluna

  itab_fieldcat-inttype      = p_tipo.       " Tipo de dado do campo

  itab_fieldcat-outputlen    = p_tam.        " Tamanho do campo

  itab_fieldcat-checkbox     = p_check.      " Checkbox

  itab_fieldcat-just         = p_just.       " Alinhamento

  itab_fieldcat-do_sum       = p_soma.       " Somatório

  itab_fieldcat-key          = p_chave.      " Chave

  itab_fieldcat-hotspot      = p_hotspot.    " hotspot

  itab_fieldcat-REF_FIELDNAME = p_ref_campo. " Campo de referencia

  itab_fieldcat-REF_TABNAME  = p_ref_tabela. " Tabela de referencia.

 

  APPEND itab_fieldcat.

 

ENDFORM.                    " inclui_campo

 

*&---------------------------------------------------------------------*

*&      Form  f_imprime_alv

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM f_imprime_alv.

 

  DATA: s_variant    LIKE disvariant,

        vl_repid     TYPE sy-repid.

 

  vl_repid = sy-repid.

 

* Variante de layout

  IF NOT p_varian IS INITIAL.

    IMPORT p_varian FROM MEMORY ID 'VARI'.

  ELSE.

    CLEAR: p_varian.

  ENDIF.

 

* Função para ALV

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

       EXPORTING

            i_callback_program       = vl_repid

            i_callback_top_of_page   = 'ZF_TOP_OF_PAGE'

            i_callback_pf_status_set = 'F_STATUS'

            i_callback_user_command  = 'F_USER_COMMAND'

            is_layout                = gs_layout

            it_fieldcat              = itab_fieldcat[]

            it_sort                  = itab_sort[]

            i_default                = 'X'

            i_save                   = 'A'

            is_variant               = s_variant

       TABLES

            t_outtab                 = it_saida

       EXCEPTIONS

            program_error            = 1

            OTHERS                   = 2.

 

ENDFORM.                    " f_imprime_alv

 

*&---------------------------------------------------------------------*

*&      Form  ZF_TOP_OF_PAGE

*&---------------------------------------------------------------------*

*       Cabeçalho do ALV de ORDEM

*----------------------------------------------------------------------*

FORM zf_top_of_page.                                        "#EC CALLED

 

 

  DATA:  lc_data_header(33) TYPE c,

         lc_empresa(30)     TYPE c,

         ls_line            TYPE slis_listheader.

 

* Cabeçalho: EMPRESA

  READ TABLE s_bukrs INDEX 1.

 

  CONCATENATE text-006 s_bukrs-low INTO lc_empresa

  SEPARATED BY space.

 

  CLEAR: ls_line, gs_top.

  ls_line-typ      = 'A'.

  ls_line-info     = lc_empresa.

  APPEND ls_line TO gs_top.

 

* CABEÇALHO: PERÍODO

  CONCATENATE text-007 s_exerc-low INTO lc_data_header

  SEPARATED BY space.

 

  ls_line-typ      = 'A'.

  ls_line-info     = lc_data_header.

  APPEND ls_line TO gs_top.

 

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

       EXPORTING

            it_list_commentary = gs_top.

 

 

ENDFORM.                    " ZF_TOP_OF_PAGE

 

*&---------------------------------------------------------------------*

*&      Form  f_status

*&---------------------------------------------------------------------*

FORM f_status USING extab TYPE slis_t_extab.                "#EC CALLED

 

  SET PF-STATUS 'ZSTANDARD'.

 

ENDFORM.                    "f_status

 

*&---------------------------------------------------------------------*

*&      Form  help_variante

*&---------------------------------------------------------------------*

*       Variante de Layout

*&---------------------------------------------------------------------*

FORM help_variante USING    vc_repid  LIKE sy-repid

                            vc_uname  LIKE sy-uname

                   CHANGING vc_exit   TYPE char01

                            p_vari    LIKE disvariant-variant.

 

  DATA: s_variant LIKE disvariant.

 

* popup F4 help to select a layout

  s_variant-report   = vc_repid.

  s_variant-username = vc_uname.

 

  CALL FUNCTION 'LVC_VARIANT_F4'

       EXPORTING

            is_variant = s_variant

            i_save     = 'A'

       IMPORTING

            e_exit     = vc_exit

            es_variant = s_variant

       EXCEPTIONS

            not_found  = 1

            OTHERS     = 2.

 

  IF sy-subrc NE 0.

    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1

               sy-msgv2 sy-msgv3 sy-msgv4.

  ELSE.

    IF vc_exit NE 'X'.

      EXPORT s_variant TO MEMORY ID 'VARI'.

      p_vari    = s_variant-variant.

    ENDIF.

  ENDIF.

 

ENDFORM.                    " help_variante

 

*---------------------------------------------------------------------*

*       FORM user_command                                             *

*---------------------------------------------------------------------*

*       ........                                                      *

*---------------------------------------------------------------------*

FORM f_user_command USING ucomm    type sy-ucomm

                          p_s_selfield type slis_selfield.

 

  CASE p_s_selfield-sel_tab_field.

 

*   Número Seqüencial da Ordem Pagamento

    WHEN 'IT_SAIDA-NRSEQ'.

*      para ler linha do clique.

      READ TABLE it_saida INDEX p_s_selfield-tabindex.

*      valor da célula do clique

      SET PARAMETER ID '/PWS/ZYGLP115' FIELD p_s_selfield-value.

      SET PARAMETER ID 'BUK' FIELD it_saida-bukrs.

 

      CALL TRANSACTION '/PWS/ZYCB034_E' AND SKIP FIRST SCREEN.

 

*   Número do Embarque

    WHEN 'IT_SAIDA-NREMB'.

      READ TABLE it_saida INDEX p_s_selfield-tabindex.

*      valor da célula do clique

      SET PARAMETER ID '/PWS/ZYCBP084' FIELD p_s_selfield-value.

      SET PARAMETER ID 'BUK' FIELD it_saida-bukrs.

      SET PARAMETER ID 'GSB' FIELD it_saida-gsberf.

      SET PARAMETER ID '/PWS/ZYCBP375' FIELD it_saida-nrparcf.

 

      CALL TRANSACTION '/PWS/ZYCB005_E' AND SKIP FIRST SCREEN.

 

*   Fatura

    WHEN 'IT_SAIDA-NRINVOIC'.

      READ TABLE it_saida INDEX p_s_selfield-tabindex.

*      valor da célula do clique

      SET PARAMETER ID '/PWS/ZYCBP084' FIELD p_s_selfield-value.

      SET PARAMETER ID 'BUK' FIELD it_saida-bukrs.

      SET PARAMETER ID 'GSB' FIELD it_saida-gsberf.

      SET PARAMETER ID '/PWS/ZYCBP375' FIELD it_saida-nrparcf.

 

      CALL TRANSACTION '/PWS/ZYCB005_E' AND SKIP FIRST SCREEN.

 

  ENDCASE.

 

ENDFORM.

 

*&---------------------------------------------------------------------*

*&      Form  f_preenche_zycbt226

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM f_preenche_zycbt226.

 

  it_saida-bukrs        = it_zycbt226-bukrs.

  it_saida-waers        = it_zycbt226-waers.

  it_saida-gsberf       = it_zycbt226-gsberf.

  it_saida-werks        = it_zycbt226-werks.

  it_saida-j_1bbranch   = it_zycbt226-j_1bbranch.

  it_saida-vlr_exterior = it_zycbt226-vlr_exterior.

  it_saida-sld_exterior = it_zycbt226-sld_exterior.

  it_saida-bco_me       = it_zycbt226-bco_me.

 

  it_saida-nrseq = it_zycbt226-nrseq.

  it_saida-tipo_op = it_zycbt226-tipo_op.

 

  READ TABLE it_zycbt017 WITH KEY

                                nrinvoic = it_zycbt226-nrinvoic

                                nrparcf  = it_zycbt226-nrparcf

                                gsberf   = it_zycbt226-gsberf.

  IF sy-subrc = 0.

    it_saida-nremb = it_zycbt017-nremb.

  ENDIF.

 

  it_saida-nrinvoic = it_zycbt226-nrinvoic.

  it_saida-nrparcf  = it_zycbt226-nrparcf.

  it_saida-kunag    = it_zycbt226-kunag. "código do cliente

 

  READ TABLE itab_kna1 WITH KEY kunnr = it_zycbt226-kunag BINARY SEARCH.

  IF sy-subrc = 0.

    it_saida-name1 = itab_kna1-name1.

  ENDIF.

 

  it_saida-dtcredext = it_zycbt226-dtcredext.

  it_saida-dtlancto  = it_zycbt226-dtlancto.

  it_saida-dtincl    = it_zycbt226-dtincl.

  it_saida-dtlimite  = it_zycbt226-dtlimite.

 

 READ TABLE itab_lfa1 WITH KEY lifnr = it_zycbt226-bco_me BINARY SEARCH.

  IF sy-subrc = 0.

    it_saida-name1_lfa = itab_lfa1-name1.

  ENDIF.

 

  it_saida-conta_contabil = it_zycbt226-conta_contabil.

  it_saida-belnr_op       = it_zycbt226-belnr_op.

  it_saida-ref_op         = it_zycbt226-ref_op.

 

  APPEND it_saida.

ENDFORM.                    " f_preenche_zycbt226

 

 

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

Modificações efetuadas em TRAN /PWS/ZYCBR361

 

CÓDIGO DE TRANSAÇÃO: /PWS/ZYCBR361

 

ATRIBUTOS DA TRANSAÇÃO

TEXTO BREVE: Controle de Valores Recebidos no Ext

Classe de Desenvolvimento: /PWS/ZYCB

 

 

OBJETO DE EXECUÇÃO

( ) - PROGRAMA E TELA (TRANSAÇÃO DE DIÁLOGO)

(X) - PROGRAMA E TELA DE SELEÇÃO (TRANSAÇÃO DE REPORT)

 

TEXTO DA TRANSAÇÃO: Controle de Valores Recebidos no Ext

PROGRAMA: /PWS/ZYCBR361

TELA(SELEÇÃO): 1000

INÍCIO COM VARIANTE: _____________________________________________

OBJETO DE AUTORIZAÇÃO: ___________________________________________

( ) - ATUALIZAÇÃO DA VARIANTE DA TRANSAÇÃO STANDARD PERMITIDA

 

CLASSIFICAÇÃO

 

CLASSIFICAÇÃO DE TRANSAÇÃO:

(X) - TRANSAÇÃO PROFESSIONAL USER

( ) - TRANSAÇÃO EASY WEB      SERVIÇO: ___________________________

 

CAPACIDADE GUI:

( ) SAP GUI PARA HTML

( ) SAP GUI PARA JAVA

( ) SAP GUI PARA WINDOWS

 

 

 

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

Símbolos de Texto

 

001 Critérios de Seleção

002 Opções da Lista de Resultados

003 Layout

004 Valores Recebidos

005 Marcar pelo menos uma Origem de Recurso

006 EMPRESA:

007 Exercício:

 

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

Textos de Seleção

 

P_DISP30 Disponibilidade 30%

P_DISP70 Disponibilidade 70%

P_RECEB Recebidos C/C ME

P_RENDRB Rendimentos Recebidos

P_VARIAN Layout

S_BCO_ME Código do Banco C/C ME

S_BUKRS Empresa

S_DTCRDE Data de Crédito no Exterior

S_DTDISP Data da Disponibilidade

S_DTINCL Data de Inclusão

S_DTLCTO Data de Lançamento

S_DTRECB Data Recebimento do Rendimento

S_EXERC Exercício

S_GSBER Divisão

S_J_1BBR Local de Negócio

S_KUNAG Código do Cliente

S_NRSEQ Nr.Seq.Ordem de Pagamento

S_ORGREC Origem do Recurso

S_REF_OP Referência da Ordem

S_SLD_EX Saldo Retido no Exterior

S_WAERS Moeda

S_WAERS Moeda

S_WAERS Moeda

 

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

Status-gui

 

Efetuar cópia do status-gui STANDARD_FULLSCREEN do grupo de funções SLVC_FULLSCREEN, criando no

programa /PWS/ZYCBR361 com o nome de ZSTANDARD.

 

 

 

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

05469  - 00001 - DESENVOLVIMENTO ADICIONAL - SAÍDA DE PAGAMENTO UTILIZANDO CONTA CORRENTE

05471  - 00002 - DEREX - AJUSTES PARA NOVA ORDEM DE PAGAMENTO

05475  - 00003 - RELATÓRIO DE PAGAMENTOS COM RECURSOS NO EXTERIOR

05478  - 00004 - DA - ASSOCIAÇÃO DE ORDENS DE PAGAMENTO

05479  - 00005 - CAPTAÇÂO - ORDEM DE PAGAMENTO

05482  - 00006 - VALORES MANTIDOS NO EXTERIOR - DA COMPLETO