CE PLUS - Nota 009894

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Associação Ordem de Pagamento

Data/Hora da Publicação: 03/03/2010 00:00:00

Data/Hora Última Alteração: 18/02/2011 16:23:28

Descrição da Nota: ASSOCIAÇÃO VALORES MANTIDOS NO EXTERIOR - ARBITRAGEM APENAS NO EMBARQUE

Sintoma

O programa não trata arbitragem nos casos de Associação Valores Mantidos no Exterior de embarque com

Ordens. Deverá tornar possível esta associação de faturas com a moeda estrangeira diferente da Ordem

(arbitragem).

 

 

Solução

Foi criados um tratamento de Associação de Valores Mantidos no Exterior com Embarque, onde deverão

existe campos para trazer o valor associado da fatura mais taxa de conversão entre as duas moedas. O

último lançamento será em BRL, tratando a variação cambial.

 

 

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

LIQUIDAÇÃO DE CONTRATO

ASSOCIAÇÃO ORDEM DE PAGAMENTO - ATRIBUIÇÃO COMPENSAÇÃO

VALOR DE ``BASE DE CÁLCULO DO ICMS`` INCORRETO PARA

VALORES MANTIDOS NO EXTERIOR - DA COMPLETO

ASSOCIAÇÃO - ERRO NA MODIFICAÇÃO DA ASSOCIAÇÃO DE ORDEM DE PAGAMENTO

LIQUIDAÇÃO DE FATURAS

ASSOCIAÇÃO DE VALORES MANTIDOS NO EXTERIOR - HOMOLOGAÇÃO PACOTE

ASSOCIAÇÃO - SELEÇÃO DA ATRIBUIÇÃO DO CLEARING

DA - SISTEMA DE PAGAMENTOS EM MOEDA LOCAL E ASSOCIAÇÃO(SML)

ASSOCIAÇÃO - PARAMETRO 321 - ZFBDT - DTINCL - NÃO TRAZ A DATA NO BI

ASSOCIAÇÃO ORDEM PAGAMENTO - ESTORNO - ATUALIZAÇÃO/CONTABILIZAÇÃO ORDEM

Informações Complementares

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

Nota Número 09894 Data: 03/03/2010 Hora: 09:26:03

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

 

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

Nota Número              : 09894

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00002

Agrupamento              : 00011

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

Referência às notas relacionadas:

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

 

00941  - 00011 - 6.0    - 00022  - VALOR DE ``BASE DE CÁLCULO DO ICMS`` INCORRETO PARA

04068  - 00001 - 7.0    - 00002  - ASSOCIAÇÃO ORDEM DE PAGAMENTO - ATRIBUIÇÃO COMPENSAÇÃO

04683  - 00002 - 7.0    - 00002  - ASSOCIAÇÃO ORDEM PAGAMENTO - ESTORNO - ATUALIZAÇÃO/CONTABILIZAÇÃO

04786  - 00003 - 7.0    - 00003  - LIQUIDAÇÃO DE FATURAS

05336  - 00004 - 7.0    - 00003  - ASSOCIAÇÃO - SELEÇÃO DA ATRIBUIÇÃO DO CLEARING

05482  - 00005 - 7.0    - 00003  - VALORES MANTIDOS NO EXTERIOR - DA COMPLETO

07221  - 00006 - 7.0    - 00006  - LIQUIDAÇÃO DE CONTRATO

07931  - 00007 - 7.0    - 00008  - DA - SISTEMA DE PAGAMENTOS EM MOEDA LOCAL E ASSOCIAÇÃO(SML)

08399  - 00008 - 7.0    - 00009  - ASSOCIAÇÃO - PARAMETRO 321 - ZFBDT - DTINCL - NÃO TRAZ A DATA NO

09503  - 00009 - 8.0    - 00001  - ASSOCIAÇÃO - ERRO NA MODIFICAÇÃO DA ASSOCIAÇÃO DE ORDEM DE PAGAME

09574  - 00010 - 8.0    - 00001  - ASSOCIAÇÃO DE VALORES MANTIDOS NO EXTERIOR - HOMOLOGAÇÃO PACOTE

09894  - 00012 - 8.0    - 00002  - ASSOCIAÇÃO VALORES MANTIDOS NO EXTERIOR - ARBITRAGEM APENAS NO EM

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

ASSOCIAÇÃO VALORES MANTIDOS NO EXTERIOR - ARBITRAGEM APENAS NO EMBARQUE

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

Palavras Chave:

ASSOCIAÇÃO VALORES MANTIDOS NO EXTERIOR - ARBITRAGEM APENAS NO EMBARQUE

 

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

Objetos da nota:

DYNP /PWS/SAPMZYCB035                        0001

DYNP /PWS/SAPMZYCB035                        0102

FUNC /PWS/ZYCB_TRANSACAO_F_30_W

REPS /PWS/MZYCB035F01

REPS /PWS/MZYCB035F02

REPS /PWS/MZYCB035F03

REPS /PWS/MZYCB035I01

REPS /PWS/MZYCB035T02

REPS /PWS/MZYCB035TOP

REPT /PWS/SAPMZYCB035

TABD /PWS/ZYCBE227

TABD /PWS/ZYCBE227A

TABD /PWS/ZYCBE228A

TABD /PWS/ZYCBE229

TABD /PWS/ZYCBE229A

TABD /PWS/ZYCBT227

TABD /PWS/ZYCBT228

TABD /PWS/ZYCBT229

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB035                        0001

 

MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0001

...

  chain.

    field: /pws/zycbe227a-nrinvoic,

      /pws/zycbe227a-nrparcf,

      /pws/zycbe227a-gsberf,

      /pws/zycbe227a-dtassoc.

    module consiste_embarque.

  endchain.

  chain.

    field: btn_remessa,

          /pws/zycbe229a-nrseq,

* >> Início da exclusão:

        /pws/zycbe227a-dtassoc module consiste_campos on chain-request .

* << Fim da exclusão

* >> Início da inclusão:

        /pws/zycbe227a-dtassoc module consiste_campos on chain-request.

* << Fim da inclusão

  endchain.

  module user_command.

  module user_command_exit at exit-command.

process on value-request.

  field:

    /pws/zycbe227a-nrinvoic module ajuda_fatura,

    /pws/zycbe229a-nrseq    module ajuda_remessa,

    /pws/zycbe227a-dtassoc  module ajuda_dtassoc.

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB035                        0102

 

 

LAY-OUT TELA

-Solicitar arquivo para upload da tela - equipe produto pw.CE Câmbio - 5504-0170

 

 

 

 

MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0102

PROCESS BEFORE OUTPUT.

  MODULE screen.

  LOOP WITH CONTROL tc_ordens.

    MODULE insere_linha_tc.

  ENDLOOP.

PROCESS AFTER INPUT.

  LOOP WITH CONTROL tc_ordens.

* >> Início da inclusão:

    field /pws/zycbe228a-parid.

* << Fim da inclusão

    FIELD /pws/zycbe228a-vlr_associado

* >> Início da exclusão:

      MODULE atualiza_saldos ON REQUEST.

* << Fim da exclusão

* >> Início da inclusão:

      module atualiza_saldos

    on request.

    field /pws/zycbe228a-parid

      module atualiza_saldos

    on request.

* << Fim da inclusão

    MODULE modifica_linha_tc.

  ENDLOOP.

* >> Início da inclusão:

  module atualiza_dados.

* << Fim da inclusão

  MODULE user_command.

PROCESS ON VALUE-REQUEST.

  FIELD /pws/zycbe228a-nrseq MODULE ajuda_ordem_venda.

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_W

 

...

    v_pos_wrbtr          type i,

    v_vl_min(16)         value '0,01',

    v_vl_max(16)         value '9.999.999.999,99',

    v_partidas(1),

    v_xpos_belnr2(2) type n,

    v_selecao(2)    type n,

    v_tabix         like sy-tabix,

    v_agkoa         like /pws/zycbe033-agkoa,

    v_fdtdoc             type /pws/zycbt007-fdtdoc,

    v_year          like bkpf-gjahr.

* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W

  data: v_chv(1) type c.

* << Fim da inclusão

  data: begin of itab_parts occurs 0,

          tabela  like /pws/zycbe033-tabela,

          cpochv  like /pws/zycbe033-cpochv,

          tcode   like /pws/zycbe033-tcode,

          agkoa   like /pws/zycbe033-agkoa,

          agkon   like /pws/zycbe033-agkon,

          agums   like /pws/zycbe033-agums,

          shkzg   like /pws/zycbe033-shkzg,

          v_sinal type /pws/zycbe033-v_sinal,

          dtdocto type /pws/zycbe033-dtdocto,

...

 

...

      perform bdc_field  using 'BDC_OKCODE' '=OSE'.

      perform bdc_screen using 'SAPDF05X'   '3100'.

      perform bdc_field  using 'BDC_CURSOR' 'RF05A-ABPOS'.

      perform bdc_field  using 'BDC_OKCODE' '=OSE'.

    endif.

    perform bdc_screen using 'SAPDF05X'   '3100'.

    perform bdc_field using: 'BDC_OKCODE' '=DBR'.

    perform bdc_screen using 'SAPDF05X'   '3100'.

    perform bdc_field  using 'BDC_CURSOR' 'RF05A-ABPOS'.

    perform bdc_field  using 'BDC_OKCODE' '=Z+'.

* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W

    if not t_dados-newbs1   is initial and

       not t_dados-d_newko1 is initial and

       not t_dados-wrbtr1   is initial.

      perform determina_string using t_dados-newbs1

                                     t_dados-bukrs

                                     t_dados-d_newko1

                               changing v_string_debito.

      if t_dados-newbs1 = '40'.

        perform trata_string_debito tables t_dados

                                     t_campo

                                     itab_oculto

                             using   v_string_debito.

        v_chv = 'D'.

      elseif t_dados-newbs1 = '50'.

        perform trata_string_credito tables t_dados

                                     t_campo

                                     itab_oculto

                             using   v_string_debito.

        v_chv = 'C'.

      endif.

      perform bdc_screen using 'SAPDF05X'    '3100'.

      perform bdc_field  using 'RF05A-ABPOS' '1'.

      perform bdc_field  using 'BDC_CURSOR'  'DF05B-PSBET(02)'.

      perform bdc_field  using 'BDC_OKCODE'  '=AB'.

      loop at t_partidas where tcode   = t_dados-tcode

                           and tabela  = t_dados-tabela

                           and cpochv  = t_dados-cpochv.

        if itab_bdc-fval = '=PI'.

          continue.

        endif.

        perform verifica_empresas using t_dados-bukrs

                                        'UMBUCHNG'

                                        t_partidas-agkon

                                        t_partidas-agkoa.

      endloop.

      perform bdc_screen using 'SAPMF05A'    '0700'.

      perform bdc_field  using 'BDC_CURSOR'  'RF05A-NEWKO'.

      perform bdc_field  using 'RF05A-NEWBS' t_dados-newbs1.

      perform bdc_field  using 'RF05A-NEWKO' t_dados-d_newko1.

      perform bdc_field  using 'BDC_OKCODE'  '/00'.

      write t_dados-wrbtr1 to v_wrbtr currency t_dados-waers.

      perform bdc_screen using 'SAPMF05A'    '0300'.

      perform bdc_field  using 'BDC_CURSOR'  'BKPF-XMWST'.

      perform bdc_field  using 'BSEG-WRBTR'  v_wrbtr.

      read table itab_oculto with key campo = 'BSEG-SGTXT'

                                              chave = v_chv.

      if sy-subrc ne 0.

        if not t_dados-d_sgtxt is initial.

          perform bdc_field using 'BSEG-SGTXT' t_dados-d_sgtxt.

        endif.

      endif.

      perform bdc_field  using 'BDC_OKCODE'  '/00'.

      perform bdc_screen using 'SAPLKACB'    '0002'.

      read table itab_oculto with key campo = 'COBL-GSBER'

                                      chave = v_chv.

      if sy-subrc ne 0.

        if not t_dados-d_gsber is initial.

          perform bdc_field using:

              'BDC_CURSOR'  'COBL-GSBER',

              'COBL-GSBER'  t_dados-d_gsber.

        endif.

      endif.

      if not t_dados-d_prctr is initial.

        read table itab_oculto with key campo = 'COBL-PRCTR'

                                        chave = v_chv.

        if sy-subrc <> 0.

          perform bdc_field using 'COBL-PRCTR' t_dados-d_prctr.

        endif.

      endif.

      if not t_dados-d_kostl is initial.

        read table itab_oculto with key campo = 'COBL-KOSTL'

                                        chave = v_chv.

        if sy-subrc <> 0.

          perform bdc_field using 'COBL-KOSTL' t_dados-d_kostl.

        endif.

      endif.

      perform bdc_field  using 'BDC_OKCODE'  '=ENTE'.

      perform bdc_screen using 'SAPMF05A'    '0300'.

      perform bdc_field  using 'BDC_CURSOR'  'RF05A-NEWBS'.

      perform bdc_field  using 'BDC_OKCODE'  '=BU'.

      perform bdc_screen using 'SAPLKACB'    '0002'.

      perform bdc_field  using 'BDC_OKCODE'  '=ENTE'.

    else.

* << Fim da inclusão

    perform bdc_screen using 'SAPDF05X'   '3100'.

    perform bdc_field using: 'BDC_CURSOR' 'DF05B-PSDIF(01)',

                             'BDC_OKCODE' '=PI'.

    perform bdc_screen using 'SAPDF05X'   '3100'.

    if t_dados-flag_nc eq 'X'.

      perform bdc_field using: 'BDC_OKCODE' '=BU'.

    else.

      perform bdc_field using: 'BDC_OKCODE' '=BS'.

    endif .

    if v_desc_rec is initial.

...

 

...

        endif.

        if not t_dados-werks is initial.

          read table itab_oculto with key campo = 'COBL-WERKS'

                                          chave = 'D'.

          if sy-subrc <> 0.

            perform bdc_field using 'COBL-WERKS' t_dados-werks.

          endif.

        endif.

      endif.

    endloop.

* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W

    endif.

* << Fim da inclusão

    refresh itab_msg.

    clear itab_msg.

    v_transacao = 'F-30'.

    v_update    = 'S'.

    v_msgid     = 'F5'.

    v_msgno     = '312'.

    if v_modo is initial.

      v_mode = 'N'.

    else.

      v_mode = v_modo.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB035F01

 

* >> Início da exclusão:

  field-symbols:

    <fs_zycbt228a> like line of itab_zycbt228a.

* << Fim da exclusão

  form carrega_constantes.

    check wa_controle-constantes_carregadas is initial.

    perform:

      cons_define_tabstrips,

      cons_define_tbcontrols,

      cons_define_drilldown.

    wa_controle-nivel_tela = 'HDR'.

    wa_controle-constantes_carregadas = 'X'.

  endform.

  form cons_define_tabstrips.

...

 

...

        v_index = tc_ordens-current_line.

        read table itab_zycbt228a index v_index

          assigning <fs_zycbt228a>.

        if sy-subrc = 0.

          perform icone_status

            using <fs_zycbt228a>-oper

            changing wa_zycbe228a_comp-icone.

          move-corresponding <fs_zycbt228a> to:

            /pws/zycbe228a,

            wa_zycbe228a_comp.

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

        endif.

        check not btn_embarque is initial and

              sy-tcode+13(3) ne 'SML'     and

              sy-tcode ne c_transacao_e   and

              sy-tcode ne c_transacao_a.

        loop at screen.

          if screen-group2 eq 'WAE'.

            read table itab_zycbt228a index v_index

                                      assigning <fs_zycbt228a>.

            check <fs_zycbt228a> is assigned.

            if <fs_zycbt228a>-waers ne /pws/zycbe227a-waers.

              screen-input    = '1'.

              screen-required = '1'.

            else.

              screen-input    = '0'.

              screen-required = '0'.

            endif.

            modify screen.

* << Fim da inclusão

        endif.

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

        endloop.

* << Fim da inclusão

    endcase.

  endform.

  form icone_status

    using value(p_operacao) type t_s_zycbt228a-oper

    changing p_icone type icon-name.

    data:

...

 

...

    changing p_wa_zycbt228a_at like line of itab_zycbt228a.

    p_wa_zycbt228a_at-nrseq         = p_wa_zycbe228a-nrseq.

    p_wa_zycbt228a_at-gjahr         = p_wa_zycbe228a-gjahr.

    p_wa_zycbt228a_at-dtincl        = p_wa_zycbe228a-dtincl.

    p_wa_zycbt228a_at-j_1bbranch    = p_wa_zycbe228a-j_1bbranch.

    p_wa_zycbt228a_at-waers         = p_wa_zycbe228a-waers.

    p_wa_zycbt228a_at-sld_associar  = p_wa_zycbe228a-sld_associar.

    p_wa_zycbt228a_at-vlr_associado = p_wa_zycbe228a-vlr_associado.

    p_wa_zycbt228a_at-belnr         = p_wa_zycbe228a-belnr.

    p_wa_zycbt228a_at-mark          = p_wa_zycbe228a_comp-mark.

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

    p_wa_zycbt228a_at-parid         = p_wa_zycbe228a-parid.

    p_wa_zycbt228a_at-vlr_assoc_fat = p_wa_zycbe228a-vlr_assoc_fat.

    if not btn_embarque is initial.

      /pws/zycbe227a-parid         = p_wa_zycbe228a-parid.

      /pws/zycbe227a-vlr_assoc_fat = p_wa_zycbe228a-vlr_assoc_fat.

    else.

      /pws/zycbe229a-parid         = p_wa_zycbe228a-parid.

      /pws/zycbe229a-vlr_assoc_fat = p_wa_zycbe228a-vlr_assoc_fat.

      /pws/zycbe227a-waers         = /pws/zycbe229a-waers.

    endif.

* << Fim da inclusão

  endform.

  form paginacao_table_control

    using value(p_linhas) type sy-tabix

    changing p_pagina type i.

    field-symbols

      <fs_tbcontrol> like line of itab_tbcontrol.

    read table itab_tbcontrol

      with table key

        level = wa_controle-nivel_tela

        dynnr = sy-dynnr

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB035F02

 

...

  select single nrseq nrfech bukrs gsber j_1bbranch werks recrem dtincl

    dtvencto waers vlme txtinf dtpagto kursf ftaxa dtdocto belnr

    sld_associar dtassoc belnr_assoc

    from /pws/zycbt124

    into wa_zycbt124

    where nrseq = p_nrseq.

endform.

form seleciona_dados_liq_andamento

  using value(p_wa_fatura) type t_s_fatura.

  check not p_wa_fatura is initial.

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

  select bukrs nrinvoic belnr nrparcf gsberf dtincl waers saldo belnr2

* << Fim da exclusão

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

  select bukrs nrinvoic belnr nrparcf gsberf dtincl waers

  vlme

  saldo belnr2

* << Fim da inclusão

    dtbelnr koart hkont umskz

    from /pws/zycbt209

    into table itab_zycbt209

    where

      nrinvoic = p_wa_fatura-nrinvoic and

      nrparcf  = p_wa_fatura-nrparcf  and

      gsberf   = p_wa_fatura-gsberf.                    "#EC CI_NOFIRST

endform.

form seleciona_dados_associacao

  using

...

 

...

    <fs_processo>     type c_12,

    <fs_zycbt228a>    like line of itab_zycbt228a,

    <fs_sld_associar> type /pws/zycbe227a-vlsltrans.

  if wa_controle-processo = c_flag_embarque.

    assign: text-m14 to <fs_processo>,

      /pws/zycbe227a-vlsltrans to <fs_sld_associar>.

  else.

    assign: text-m06 to <fs_processo>,

      /pws/zycbe229a-sld_associar to <fs_sld_associar>.

  endif.

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

  if not btn_remessa is initial.

    /pws/zycbe227a-waers         = /pws/zycbe229a-waers.

  endif.

  if ( /pws/zycbe228a-waers eq /pws/zycbe227a-waers and not

       btn_embarque is initial ) or

     ( /pws/zycbe228a-waers eq /pws/zycbe229a-waers and not

       btn_remessa is initial ).

    /pws/zycbe228a-parid         = 1.

    /pws/zycbe228a-vlr_assoc_fat = /pws/zycbe228a-vlr_associado.

    /pws/zycbe227a-parid         = 1.

    /pws/zycbe227a-vlr_assoc_fat = /pws/zycbe228a-vlr_associado.

    /pws/zycbe229a-parid         = 1.

    /pws/zycbe229a-vlr_assoc_fat = /pws/zycbe228a-vlr_associado.

  elseif ( /pws/zycbe228a-waers ne /pws/zycbe227a-waers and not

           /pws/zycbe228a-parid is initial and not

           btn_embarque is initial ) or

         ( /pws/zycbe228a-waers ne /pws/zycbe229a-waers and not

           /pws/zycbe228a-parid is initial and not

           btn_remessa is initial ).

    clear: v_decimais_f, v_decimais_o, v_defator, v_parafator.

    select single currdec from tcurx

      into v_decimais_f

      where currkey = /pws/zycbe227a-waers.

    if sy-subrc <> 0.

      v_decimais_f = 2.

    endif.

    select single currdec from tcurx

      into v_decimais_o

      where currkey = /pws/zycbe228a-waers.

    if sy-subrc <> 0.

      v_decimais_o = 2.

    endif.

    select ffact tfact

      up to 1 rows

      from tcurf

      into  (v_defator,v_parafator)

      where fcurr =  /pws/zycbe228a-waers

        and tcurr =  /pws/zycbe227a-waers

        and gdatu >= sy-datum.

    endselect.

    if v_defator is initial.

      v_defator = 1.

    endif.

    if v_parafator is initial.

      v_parafator = 1.

    endif.

    /pws/zycbe228a-vlr_assoc_fat =

                         ( ( /pws/zycbe228a-parid / v_defator ) *

                         v_parafator ) * /pws/zycbe228a-vlr_associado.

    if v_decimais_o ne v_decimais_f.

      if v_decimais_o eq 0.

        /pws/zycbe228a-vlr_assoc_fat =

        /pws/zycbe228a-vlr_assoc_fat * 100.

      else.

        /pws/zycbe228a-vlr_assoc_fat =

        /pws/zycbe228a-vlr_assoc_fat / 100.

      endif.

    endif.

    /pws/zycbe227a-parid         = /pws/zycbe228a-parid.

    /pws/zycbe227a-vlr_assoc_fat = /pws/zycbe228a-vlr_associado.

    /pws/zycbe229a-parid         = /pws/zycbe228a-parid.

    /pws/zycbe229a-vlr_assoc_fat = /pws/zycbe228a-vlr_associado.

  endif.

* << Fim da inclusão

  read table itab_zycbt228a

    with table key nrseq = /pws/zycbe228a-nrseq

    assigning <fs_zycbt228a>.

  if <fs_zycbt228a> is assigned.

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

    v_vlr_associar = <fs_sld_associar> - /pws/zycbe228a-vlr_associado +

      <fs_zycbt228a>-vlr_associado.

* << Fim da exclusão

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

    v_vlr_associar = <fs_sld_associar> - /pws/zycbe228a-vlr_assoc_fat +

                     <fs_zycbt228a>-vlr_assoc_fat.

* << Fim da inclusão

    v_sld_associar = /pws/zycbe228a-sld_associar -

      /pws/zycbe228a-vlr_associado + <fs_zycbt228a>-vlr_associado.

    unassign <fs_zycbt228a>.

  else.

    v_vlr_associar = <fs_sld_associar> - /pws/zycbe228a-vlr_associado.

    v_sld_associar = /pws/zycbe228a-sld_associar -

      /pws/zycbe228a-vlr_associado.

  endif.

  if v_vlr_associar >= 0 and v_sld_associar >= 0.

    <fs_sld_associar> = v_vlr_associar.

...

 

...

    else.

      message e015 with

        'Valor a associar maior que o saldo'(m24)

        'da ordem de pagamento.'(m25).

    endif.

  endif.

endform.

form salva_dados.

  data

    v_excecao(1) type c.

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

  perform carga_paridade.

* << Fim da inclusão

  perform verifica_dados changing v_excecao.

  if v_excecao is initial.

    perform efetua_contabilizacoes.

    perform atualiza_tabelas.

    if not itab_mensagem is initial.

      export itab_mensagem to memory id c_mensagem.

      submit (c_rel_contabil) and return.

      free memory id c_mensagem.

      if wa_controle-processo = c_flag_remessa.

        set parameter id c_id_remessa field c_flag_remessa.

...

 

...

  endif.

  if not itab_zycbt229_i is initial.

    insert /pws/zycbt229 from table itab_zycbt229_i.

    insert /pws/zycbt230 from table itab_zycbt230_i.

  endif.

  if <fs_zycbt228a>-oper = 'D' and

     <fs_zycbt228a>-mark = 'X'.

    delete /pws/zycbt228 from table itab_zycbt228_e.

    commit work.

    v_erro = 'X'.

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

    leave to screen '0001'.

* << Fim da exclusão

  endif.

endform.

form verifica_ordem

  using value(p_wa_zycbt226) like line of itab_zycbt226

  changing p_excecao type c.

  types

    c_12(12) type c.

  field-symbols:

    <fs_mensagem> type c_12,

    <fs_bukrs>    type /pws/zycbe227a-bukrs,

...

 

...

              msgv4                  = <fs_mensagem>

              txtnr                  = 061

         exceptions

              message_type_not_valid = 1

              not_active             = 2

              others                 = 3.

    if sy-subrc <> 0.

      exit.

    endif.

  endif.

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

  if <fs_waers> <> p_wa_zycbt226-waers.

* << Fim da exclusão

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

  if <fs_waers> <> p_wa_zycbt226-waers

     and ( wa_controle-processo eq c_flag_remessa

           or sy-tcode+13(3) eq 'SML' ).

* << Fim da inclusão

    p_excecao = 'X'.

    call function 'MESSAGE_STORE'

         exporting

              arbgb                  = c_grupo_mensagem

              msgty                  = 'E'

              msgv1                  =

                'A moeda da ordem de pagamento'(m28)

              msgv2                  = p_wa_zycbt226-nrseq

              msgv3                  = 'deve ser a mesma'(m29)

              msgv4                  = <fs_mensagem>

...

 

...

  field-symbols:

    <fs_zycbt226> like line of itab_zycbt226,

    <fs_zycbt227> like line of itab_zycbt227,

    <fs_zycbt228> like line of itab_zycbt228,

    <fs_zycbt229> like line of itab_zycbt229,

    <fs_zycbt230> like line of itab_zycbt230.

  check not ( itab_zycbt227 is initial and itab_zycbt229 is initial ).

  check v_erro is initial.

  loop at itab_zycbt227 assigning <fs_zycbt227>.

    wa_zycbt228a-nrseq         = <fs_zycbt227>-nrseq.

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

    wa_zycbt228a-waers         = <fs_zycbt227>-waers.

* << Fim da exclusão

    wa_zycbt228a-vlr_associado = <fs_zycbt227>-vlr_associado.

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

    wa_zycbt228a-parid         = <fs_zycbt227>-parid.

    wa_zycbt228a-vlr_assoc_fat = <fs_zycbt227>-vlr_assoc_fat.

    if not wa_zycbt228a-parid > 0.

      wa_zycbt228a-parid         = 1.

      wa_zycbt228a-vlr_assoc_fat = <fs_zycbt227>-vlr_associado.

    endif.

* << Fim da inclusão

    read table itab_zycbt226

      with table key nrseq = <fs_zycbt227>-nrseq

      assigning <fs_zycbt226>.

    if <fs_zycbt226> is assigned.

      wa_zycbt228a-dtincl       = <fs_zycbt226>-dtincl.

      wa_zycbt228a-j_1bbranch   = <fs_zycbt226>-j_1bbranch.

      wa_zycbt228a-sld_associar = <fs_zycbt226>-sld_associar.

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

      wa_zycbt228a-waers         = <fs_zycbt226>-waers.

* << Fim da inclusão

      unassign <fs_zycbt226>.

    endif.

    read table itab_zycbt228

      with key

        nrseq    = <fs_zycbt227>-nrseq

        nrinvoic = <fs_zycbt227>-nrinvoic

        nrparcf  = <fs_zycbt227>-nrparcf

        gsberf   = <fs_zycbt227>-gsberf

        tp_docto = c_tp_docto_assoc

      assigning <fs_zycbt228>.

    if <fs_zycbt228> is assigned.

      wa_zycbt228a-gjahr = <fs_zycbt228>-gjahr.

      wa_zycbt228a-belnr = <fs_zycbt228>-belnr.

      unassign <fs_zycbt228>.

    endif.

    append wa_zycbt228a to itab_zycbt228a.

  endloop.

  loop at itab_zycbt229 assigning <fs_zycbt229>.

    wa_zycbt228a-nrseq         = <fs_zycbt229>-nrseq.

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

    wa_zycbt228a-waers         = <fs_zycbt229>-waers.

* << Fim da exclusão

    wa_zycbt228a-vlr_associado = <fs_zycbt229>-vlr_associado.

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

    wa_zycbt228a-parid         = <fs_zycbt229>-parid.

    wa_zycbt228a-vlr_assoc_fat = <fs_zycbt229>-vlr_assoc_fat.

    if not wa_zycbt228a-parid > 0.

      wa_zycbt228a-parid         = 1.

      wa_zycbt228a-vlr_assoc_fat = <fs_zycbt229>-vlr_associado.

    endif.

* << Fim da inclusão

    read table itab_zycbt226

      with table key nrseq = <fs_zycbt229>-nrseq

      assigning <fs_zycbt226>.

    if <fs_zycbt226> is assigned.

      wa_zycbt228a-dtincl       = <fs_zycbt226>-dtincl.

      wa_zycbt228a-j_1bbranch   = <fs_zycbt226>-j_1bbranch.

      wa_zycbt228a-sld_associar = <fs_zycbt226>-sld_associar.

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

      wa_zycbt228a-waers         = <fs_zycbt226>-waers.

* << Fim da inclusão

      unassign <fs_zycbt226>.

    endif.

    read table itab_zycbt230

      with key

        nrseq         = <fs_zycbt229>-nrseq

        nrseq_remessa = <fs_zycbt229>-nrseq_remessa

        tp_docto = c_tp_docto_assoc

      assigning <fs_zycbt230>.

    if <fs_zycbt230> is assigned.

      wa_zycbt228a-gjahr = <fs_zycbt230>-gjahr.

...

 

...

    wa_zycbt227-nrseq         = p_wa_zycbt228a-nrseq.

    wa_zycbt227-nrinvoic      = /pws/zycbe227a-nrinvoic.

    wa_zycbt227-gsberf        = /pws/zycbe227a-gsberf.

    wa_zycbt227-dtassoc       = /pws/zycbe227a-dtassoc.

    wa_zycbt227-nrparcf       = /pws/zycbe227a-nrparcf.

    wa_zycbt227-nremb         = /pws/zycbe227a-nremb.

    wa_zycbt227-dtlancto      = /pws/zycbe227a-budat.

    wa_zycbt227-waers         = /pws/zycbe227a-waers.

    wa_zycbt227-vlr_associado = p_wa_zycbt228a-vlr_associado.

    wa_zycbt227-saldo = p_wa_zycbt228a-saldo.

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

    wa_zycbt227-parid         = p_wa_zycbt228a-parid.

    wa_zycbt227-vlr_assoc_fat = p_wa_zycbt228a-vlr_assoc_fat.

* << Fim da inclusão

    case p_wa_zycbt228a-oper.

      when c_alterado.

        insert wa_zycbt227 into table p_itab_zycbt227_a.

      when c_eliminado.

        if not p_wa_zycbt228a-belnr is initial.

          insert wa_zycbt227 into table p_itab_zycbt227_e.

          else.

            if p_wa_zycbt228a-mark = 'X'.

              insert wa_zycbt227 into table p_itab_zycbt227_e.

            endif.

...

 

...

          insert <fs_zycbt228> into table p_itab_zycbt228_i.

      endcase.

    endloop.

  else.

    wa_zycbt229-mandt         = sy-mandt.

    wa_zycbt229-nrseq         = p_wa_zycbt228a-nrseq.

    wa_zycbt229-nrseq_remessa = /pws/zycbe229a-nrseq.

    wa_zycbt229-dtassoc       = /pws/zycbe229a-dtassoc.

    wa_zycbt229-waers         = /pws/zycbe229a-waers.

    wa_zycbt229-vlr_associado = p_wa_zycbt228a-vlr_associado.

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

    wa_zycbt229-parid         = p_wa_zycbt228a-parid.

    wa_zycbt229-vlr_assoc_fat = p_wa_zycbt228a-vlr_assoc_fat.

* << Fim da inclusão

    case p_wa_zycbt228a-oper.

      when c_alterado.

        insert wa_zycbt229 into table p_itab_zycbt229_a.

      when c_eliminado.

        insert wa_zycbt229 into table p_itab_zycbt229_e.

      when c_novo.

        insert wa_zycbt229 into table p_itab_zycbt229_i.

    endcase.

    loop at itab_zycbt230 assigning <fs_zycbt230>

      where nrseq = p_wa_zycbt228a-nrseq.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB035F03

 

...

    <fs_zycbt007> like line of itab_zycbt007,

    <fs_zycbt011> like line of itab_zycbt011,

    <fs_zycbt226> like line of itab_zycbt226,

    <fs_bukrs>    type bukrs,

    <fs_werks>    type werks_d,

    <fs_waers>    type waers,

    <fs_koart>    type t_s_zycbe224-koart.

  check not ( p_wa_zycbt209 is initial and wa_zycbt017 is initial and

    p_nrseq is initial and wa_zycbt124 is initial ).

  if wa_controle-processo = c_flag_embarque.

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

    read table itab_zycbt226

      with table key nrseq = p_nrseq

      assigning <fs_zycbt226>.

    if <fs_zycbt226> is assigned   and

       p_codeven = c_codeven_ordem and

       /pws/zycbe227a-waers ne <fs_zycbt226>-waers.

      assign: /pws/zycbe227a-bukrs to <fs_bukrs>,

        <fs_zycbt226>-waers to <fs_waers>.

    else.

* << Fim da inclusão

    assign: /pws/zycbe227a-bukrs to <fs_bukrs>,

      /pws/zycbe227a-waers to <fs_waers>.

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

    endif.

* << Fim da inclusão

  else.

    assign: /pws/zycbe229a-bukrs to <fs_bukrs>,

      /pws/zycbe229a-waers to <fs_waers>.

  endif.

  read table itab_zycbt007

...

 

...

    <fs_bukrs>    type bukrs,

    <fs_kunnr>    type kunnr,

    <fs_waers>    type waers.

  check not p_nrseq is initial.

  if wa_controle-processo = c_flag_embarque.

    assign: /pws/zycbe227a-bukrs to <fs_bukrs>,

      /pws/zycbe227a-waers to <fs_waers>,

      /pws/zycbe227a-kunag to <fs_kunnr>.

    concatenate /pws/zycbe227a-nrinvoic /pws/zycbe227a-nrparcf

      /pws/zycbe227a-gsberf 'A' into wa_zycbe033-d_zuonr.

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

    read table itab_zycbt226

      with table key nrseq = p_nrseq

      assigning <fs_zycbt226>.

    if <fs_zycbt226> is assigned and

       p_clearing is initial and

       /pws/zycbe227a-waers ne <fs_zycbt226>-waers.

      read table itab_zycbt007

        with table key bukrs = <fs_bukrs>

        assigning <fs_zycbt007>.

      if <fs_zycbt007> is assigned.

        assign: <fs_zycbt007>-waersb to <fs_waers>.

      endif.

    elseif <fs_zycbt226> is assigned and

           not p_clearing is initial and

           p_codeven = c_codeven_ordem.

      assign: <fs_zycbt226>-waers to <fs_waers>.

    endif.

* << Fim da inclusão

  else.

    assign: /pws/zycbe229a-bukrs to <fs_bukrs>,

      /pws/zycbe229a-waers  to <fs_waers>,

      /pws/zycbe229a-recrem to <fs_kunnr>.

    concatenate /pws/zycbe229a-nrseq 'A' into wa_zycbe033-d_zuonr.

  endif.

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

  v_moeda_assoc = <fs_waers>.

* << Fim da inclusão

  check <fs_bukrs> is assigned.

...

 

...

        assign <fs_zycbt226>-werks to <fs_werks>.

        wa_zycbe033-gsber   = <fs_zycbt226>-gsberf.

        wa_zycbe033-c_gsber = <fs_zycbt226>-gsberf.

        wa_zycbe033-d_gsber = <fs_zycbt226>-gsberf.

        wa_zycbe033-werks   = <fs_zycbt226>-werks.

        wa_zycbe033-d_newko = <fs_zycbt226>-kunag.

        wa_zycbe033-umskz   = <fs_zycbt011>-agums.

        wa_zycbe033-newbs   = '19'.

      endif.

  endcase.

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

  read table itab_zycbt007 with table key bukrs =  wa_zycbe033-bukrs

                                assigning <fs_zycbt007>.

  if <fs_zycbt007> is assigned and v_moeda_assoc = <fs_zycbt007>-waersb.

    wa_zycbe033-kursf = 1.

  else.

* << Fim da inclusão

  perform define_taxa_cambio

    using

      p_codeven

      <fs_bukrs>

      wa_zycbe033-budat

      v_nrinvoic

      p_nrseq

    changing

       wa_zycbe033-kursf.

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

  endif.

* << Fim da inclusão

  append wa_zycbe033 to itab_zycbe033.

endform.

form preenche_zycbe033_estorno

  using

    value(p_tcode)  type /pws/zycbt032-tcode

    value(p_cpochv) type /pws/zycbe033-cpochv

    value(p_belnr)  type /pws/zycbe033-belnr

    value(p_bldat)  type /pws/zycbe033-bldat

    value(p_budat)  type /pws/zycbe033-budat.

  constants:

...

 

...

  wa_zycbt036-tabela  = c_zycbt228.

  wa_zycbt036-residuo = p_valor.

  wa_zycbt036-zuonr   = p_zuonr.

  append wa_zycbt036 to itab_zycbt036.

endform.

form preenche_partidas

  using

    value(p_codmod)  type /pws/zycbt011-codmod

    value(p_codeven) type /pws/zyglt321-codeven

    value(p_cpochv)  type /pws/zycbe033-cpochv

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

    value(p_nrseq)   type t_s_zycbt228a-nrseq.

* << Fim da exclusão

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

    value(p_nrseq)   type t_s_zycbt228a-nrseq

  changing itab_zycbe224 type t_t_zycbe224.

* << Fim da inclusão

  constants:

    c_f30      type /pws/zycbt032-tcode  value 'F-30',

    c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.

  data

    wa_partidas like line of itab_partidas.

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

  data: v_valor_mi_cliente     type /pws/zycbt228-vlr_associado,

        v_valor_mi_liq_and     type /pws/zycbt228-vlr_associado,

        v_valor_mi_liq_and_aux type /pws/zycbt228-vlr_associado,

        v_valor_mi_ordem       type /pws/zycbt228-vlr_associado.

  data: wa_zycbe033 like line of itab_zycbe033,

        wa_zycbe224 like line of itab_zycbe224.

* << Fim da inclusão

  field-symbols:

    <fs_zycbt011> like line of itab_zycbt011,

    <fs_zycbt209> like line of itab_zycbt209,

    <fs_zycbt226> like line of itab_zycbt226,

    <fs_zycbt228> like line of itab_zycbt228,

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

    <fs_zycbt230> like line of itab_zycbt230.

* << Fim da exclusão

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

    <fs_zycbt230> like line of itab_zycbt230,

    <fs_zycbe033> like line of itab_zycbe033.

* << Fim da inclusão

  wa_partidas-tcode   = c_f30.

  wa_partidas-tabela  = c_zycbt228.

  wa_partidas-cpochv  = p_cpochv.

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

  clear: v_valor_mi_liq_and, v_valor_mi_cliente, v_valor_mi_liq_and_aux,

         v_valor_mi_ordem.

* << Fim da inclusão

  loop at itab_zycbt228

    assigning <fs_zycbt228>

    where nrseq = p_nrseq.

    wa_partidas-bukrs   = <fs_zycbt228>-bukrs.

    wa_partidas-belnr   = <fs_zycbt228>-belnr.

    wa_partidas-dtdocto = <fs_zycbt228>-budat.

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

    read table itab_zycbt228a

      with table key nrseq = <fs_zycbt228>-nrseq

      assigning <fs_zycbt228a>.

    check <fs_zycbt228a> is assigned.

* << Fim da inclusão

    case <fs_zycbt228>-tp_docto.

      when c_tp_desm_cliente.

        clear wa_partidas-agums.

        wa_partidas-agkon = wa_zycbt017-kunag.

        wa_partidas-agkoa = 'D'.

        wa_partidas-v_sinal = '-'.

        wa_partidas-shkzg   = 'H'.

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

        if <fs_zycbt228a>-waers ne /pws/zycbe227a-waers.

          perform busca_valor_mi using

                                      wa_partidas-bukrs

                                      wa_partidas-belnr

                                      wa_partidas-dtdocto

                                      <fs_zycbt228>-vlr_associado

                                      /pws/zycbe227a-waers

                                 changing

                                      v_valor_mi_cliente.

        endif.

* << Fim da inclusão

      when c_tp_desm_liq_and.

        read table itab_zycbt209

          with key

            bukrs    = <fs_zycbt228>-bukrs

            nrinvoic = <fs_zycbt228>-nrinvoic

            nrparcf  = <fs_zycbt228>-nrparcf

            gsberf   = <fs_zycbt228>-gsberf

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

            belnr    = <fs_zycbt228>-belnr_ori_liqand

* << Fim da inclusão

          assigning <fs_zycbt209>

          binary search.

        if sy-subrc = 0.

          wa_partidas-agkon = <fs_zycbt209>-hkont.

          wa_partidas-agkoa = <fs_zycbt209>-koart.

          wa_partidas-agums = <fs_zycbt209>-umskz.

          wa_partidas-v_sinal = '-'.

          wa_partidas-shkzg   = 'H'.

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

          if <fs_zycbt228a>-waers ne /pws/zycbe227a-waers.

            perform busca_valor_mi using

                                        wa_partidas-bukrs

                                        wa_partidas-belnr

                                        wa_partidas-dtdocto

                                        <fs_zycbt228>-vlr_associado

                                        /pws/zycbe227a-waers

                                   changing

                                        v_valor_mi_liq_and_aux.

            v_valor_mi_liq_and = v_valor_mi_liq_and +

                                 v_valor_mi_liq_and_aux.

          endif.

* << Fim da inclusão

        endif.

      when c_tp_desm_ordem.

        if not <fs_zycbt011> is assigned.

          read table itab_zycbt011

            with table key

              codeven = p_codeven

              codmod  = p_codmod

              bukrs   = <fs_zycbt228>-bukrs

            assigning <fs_zycbt011>.

        endif.

        check <fs_zycbt011> is assigned.

        read table itab_zycbt226

          with table key nrseq = p_nrseq

          assigning <fs_zycbt226>.

        if sy-subrc = 0.

          wa_partidas-agkon = <fs_zycbt226>-kunag.

          wa_partidas-agkoa = <fs_zycbt011>-koart.

          wa_partidas-agums = <fs_zycbt011>-agums.

          wa_partidas-v_sinal = '-'.

          wa_partidas-shkzg   = 'S'.

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

          if <fs_zycbt228a>-waers ne /pws/zycbe227a-waers.

            perform busca_valor_mi using

                                        wa_partidas-bukrs

                                        wa_partidas-belnr

                                        wa_partidas-dtdocto

                                        <fs_zycbt228a>-vlr_associado

                                        <fs_zycbt228a>-waers

                                   changing

                                        v_valor_mi_ordem.

          endif.

* << Fim da inclusão

        endif.

    endcase.

    append wa_partidas to itab_partidas.

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

  endloop.

  if v_valor_mi_cliente > 0 or

     v_valor_mi_liq_and > 0 or

     v_valor_mi_ordem   > 0.

    loop at itab_zycbe033 assigning <fs_zycbe033>.

     <fs_zycbe033>-wrbtr1 = ( v_valor_mi_cliente + v_valor_mi_liq_and )

                                         - v_valor_mi_ordem.

      call function '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

           exporting

                bukrs           = wa_partidas-bukrs

                ktosl           = 'ARB'

                codaux1         = 'ORDEM'

           tables

                account         = itab_zyglt316

           exceptions

                key_not_found   = 1

                rules_not_found = 2

                others          = 3.

      if sy-subrc eq 0.

        read table itab_zyglt316 index 1.

        if <fs_zycbe033>-wrbtr1 < 0.

          <fs_zycbe033>-wrbtr1 = abs( <fs_zycbe033>-wrbtr1 ).

          <fs_zycbe033>-newbs1 = '50'.

          <fs_zycbe033>-d_newko1 = itab_zyglt316-konts.

        else.

          <fs_zycbe033>-newbs1 = '40'.

          <fs_zycbe033>-d_newko1 = itab_zyglt316-konth.

        endif.

        wa_zycbe224-mandt = sy-mandt.

        wa_zycbe224-modo  = c_modo_bloqueio.

        perform verifica_conta_itab_zycbe224

          using

            wa_partidas-bukrs

            'S'

            <fs_zycbe033>-d_newko1

            itab_zycbe224.

        check sy-subrc <> 0.

        wa_zycbe224-bukrs = wa_partidas-bukrs.

        wa_zycbe224-koart = 'S'.

        wa_zycbe224-saknr = <fs_zycbe033>-d_newko1.

        append wa_zycbe224 to itab_zycbe224.

      endif.

      modify itab_zycbe033 from <fs_zycbe033>.

* << Fim da inclusão

  endloop.

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

  endif.

* << Fim da inclusão

  loop at itab_zycbt230

    assigning <fs_zycbt230>

    where nrseq = p_nrseq.

    wa_partidas-bukrs   = <fs_zycbt230>-bukrs.

    wa_partidas-belnr   = <fs_zycbt230>-belnr.

    wa_partidas-dtdocto = <fs_zycbt230>-budat.

...

 

...

form insere_itab_zycbt228

  using

    value(p_nrseq)         type /pws/zycbt228-nrseq

    value(p_gjahr)         type /pws/zycbt228-gjahr

    value(p_tpdocto)       type /pws/zycbt228-tp_docto

    value(p_belnr)         type /pws/zycbt228-belnr

    value(p_bldat)         type /pws/zycbt228-dtassoc

    value(p_budat)         type /pws/zycbt228-budat

    value(p_dtincl)        type /pws/zycbt228-dtincl

    value(p_waers)         type /pws/zycbt228-waers

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

    value(p_vlr_associado) type /pws/zycbt228-vlr_associado.

* << Fim da exclusão

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

    value(p_vlr_associado) type /pws/zycbt228-vlr_associado

    value(p_belnr_ori_la)  type /pws/zycbt209-belnr.

* << Fim da inclusão

  data

    wa_zycbt228 like line of itab_zycbt228.

  check wa_controle-processo = c_flag_embarque and

    not ( p_nrseq is initial or p_gjahr is initial or

    p_tpdocto is initial or p_belnr is initial or

    p_bldat is initial or p_budat is initial or

    p_waers is initial or p_vlr_associado is initial ).

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

  wa_zycbt228-mandt         = sy-mandt.

  wa_zycbt228-nrseq         = p_nrseq.

  wa_zycbt228-nrinvoic      = /pws/zycbe227a-nrinvoic.

  wa_zycbt228-nrparcf       = /pws/zycbe227a-nrparcf.

  wa_zycbt228-gsberf        = /pws/zycbe227a-gsberf.

  wa_zycbt228-dtincl        = p_dtincl.

  wa_zycbt228-dtassoc       = p_bldat.

  wa_zycbt228-bukrs         = /pws/zycbe227a-bukrs.

  wa_zycbt228-belnr         = p_belnr.

  wa_zycbt228-gjahr         = p_gjahr.

  wa_zycbt228-budat         = p_budat.

  wa_zycbt228-tp_docto      = p_tpdocto.

  wa_zycbt228-waers         = p_waers.

  wa_zycbt228-vlr_associado = p_vlr_associado.

* << Fim da exclusão

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

  wa_zycbt228-mandt            = sy-mandt.

  wa_zycbt228-nrseq            = p_nrseq.

  wa_zycbt228-nrinvoic         = /pws/zycbe227a-nrinvoic.

  wa_zycbt228-nrparcf          = /pws/zycbe227a-nrparcf.

  wa_zycbt228-gsberf           = /pws/zycbe227a-gsberf.

  wa_zycbt228-dtincl           = p_dtincl.

  wa_zycbt228-dtassoc          = p_bldat.

  wa_zycbt228-bukrs            = /pws/zycbe227a-bukrs.

  wa_zycbt228-belnr            = p_belnr.

  wa_zycbt228-gjahr            = p_gjahr.

  wa_zycbt228-budat            = p_budat.

  wa_zycbt228-tp_docto         = p_tpdocto.

  wa_zycbt228-waers            = p_waers.

  wa_zycbt228-vlr_associado    = p_vlr_associado.

  wa_zycbt228-belnr_ori_liqand = p_belnr_ori_la.

* << Fim da inclusão

  insert wa_zycbt228 into table itab_zycbt228.

endform.

form insere_itab_zycbt230

  using

    value(p_nrseq)         type /pws/zycbt230-nrseq

    value(p_gjahr)         type /pws/zycbt230-gjahr

    value(p_tpdocto)       type /pws/zycbt230-tp_docto

    value(p_belnr)         type /pws/zycbt230-belnr

    value(p_bldat)         type /pws/zycbt230-dtassoc

    value(p_budat)         type /pws/zycbt230-budat.

...

 

...

  data

    v_saldo type /pws/zycbt227-vlr_associado.

  field-symbols

    <fs_zycbt228a> like line of itab_zycbt228a.

  free itab_mensagem.

  perform seleciona_dados_ordem_pagto.

  loop at itab_zycbt228a

    assigning <fs_zycbt228a>.

    case <fs_zycbt228a>-oper.

      when c_novo.

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

        v_saldo = <fs_zycbt228a>-vlr_associado.

* << Fim da exclusão

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

        v_saldo = <fs_zycbt228a>-vlr_assoc_fat.

* << Fim da inclusão

        perform saldo_disp_cont

          changing <fs_zycbt228a>.

        perform efetua_desmemb_liq_and

          using <fs_zycbt228a>-nrseq <fs_zycbt228a>-gjahr

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

                <fs_zycbt228a>-parid

* << Fim da inclusão

          changing v_saldo.

        if v_saldo > 0.

          perform efetua_desmemb_cliente

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

            using <fs_zycbt228a>-nrseq <fs_zycbt228a>-gjahr v_saldo.

* << Fim da exclusão

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

            using <fs_zycbt228a>-nrseq <fs_zycbt228a>-gjahr v_saldo

                  <fs_zycbt228a>-parid.

* << Fim da inclusão

        endif.

        perform efetua_desmemb_ordem_pagto

          using <fs_zycbt228a>.

        perform efetua_comp_associacao

          using <fs_zycbt228a>.

      when c_eliminado.

        perform saldo_disp_cont

          changing <fs_zycbt228a>.

        perform efetua_estorno_associacao

          using <fs_zycbt228a>-nrseq <fs_zycbt228a>-belnr.

...

 

...

          using <fs_zycbt228a>.

    endcase.

    perform atualiza_saldos_sml using <fs_zycbt228a>-oper

                                      <fs_zycbt228a>-nrseq.

  endloop.

endform.

form efetua_desmemb_liq_and

  using

    value(p_nrseq) type t_s_zycbt228a-nrseq

    value(p_gjahr) type t_s_zycbt228a-gjahr

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

    value(p_parid) type t_s_zycbt228a-parid

* << Fim da inclusão

  changing

    p_saldo  type t_s_zycbt227-vlr_associado.

  constants:

    c_f30      type /pws/zycbt032-tcode  value 'F-30',

    c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.

  data:

    itab_zycbe224 type t_t_zycbe224,

    wa_mensagem   like line of itab_mensagem,

    v_cpochv      type /pws/zycbe033-cpochv,

    v_saldo       type t_s_zycbt209-saldo,

...

 

...

          'Desmembramento da Liquidação em Andamento'(m33)

        changing wa_mensagem.

      if not wa_mensagem is initial.

        p_saldo = p_saldo - v_saldo.

        <fs_zycbt209>-saldo   = <fs_zycbt209>-saldo - v_saldo.

        <fs_zycbt209>-belnr2  = wa_mensagem-belnr.

        <fs_zycbt209>-dtbelnr = wa_mensagem-dtcont.

        perform insere_itab_zycbt228

          using p_nrseq p_gjahr c_tp_desm_liq_and wa_mensagem-belnr

            <fs_bldat> <fs_budat> <fs_zycbt209>-dtincl

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

            <fs_zycbt209>-waers v_saldo.

* << Fim da exclusão

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

            <fs_zycbt209>-waers v_saldo

            <fs_zycbt209>-belnr.

* << Fim da inclusão

      endif.

    endif.

  endloop.

endform.

form efetua_desmemb_cliente

  using

    value(p_nrseq) type t_s_zycbt228a-nrseq

    value(p_gjahr) type t_s_zycbt228a-gjahr

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

    value(p_saldo) type t_s_zycbt227-vlr_associado.

* << Fim da exclusão

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

    value(p_saldo) type t_s_zycbt227-vlr_associado

    value(p_parid) type t_s_zycbt228a-parid.

* << Fim da inclusão

  constants:

    c_f30      type /pws/zycbt032-tcode  value 'F-30',

    c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.

  data:

    itab_zycbe224 type t_t_zycbe224,

    wa_zycbt209   like line of itab_zycbt209,

    wa_mensagem   like line of itab_mensagem,

    v_cpochv      type /pws/zycbe033-cpochv,

    v_zuonr       type /pws/zycbt036-zuonr,

    v_data        type d,

...

 

...

        wa_zycbt030-belnr6    = wa_mensagem-belnr.

        wa_zycbt030-budat     = wa_mensagem-dtcont.

      else.

        wa_zycbt124-dtpagto      = /pws/zycbe229a-dtassoc.

        wa_zycbt124-sld_associar = wa_zycbt124-sld_associar - p_saldo.

        wa_zycbt124-belnr_assoc  = wa_mensagem-belnr.

        wa_zycbt124-dtassoc      = wa_mensagem-dtcont.

      endif.

      perform insere_itab_zycbt228

        using p_nrseq p_gjahr c_tp_desm_cliente wa_mensagem-belnr

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

          <fs_bldat> <fs_budat> v_data wa_zycbt030-waers p_saldo.

* << Fim da exclusão

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

          <fs_bldat> <fs_budat> v_data wa_zycbt030-waers p_saldo

          ' '.

* << Fim da inclusão

      perform insere_itab_zycbt230

        using p_nrseq p_gjahr c_tp_desm_cliente wa_mensagem-belnr

          <fs_bldat> <fs_budat>.

    endif.

  endif.

endform.

form efetua_desmemb_ordem_pagto

  using value(p_wa_zycbt228a) like line of itab_zycbt228a.

  constants:

    c_f30      type /pws/zycbt032-tcode  value 'F-30',

...

 

...

        'Desmembramento do cliente RZE (Ordem de pagamento)'(m35)

      changing wa_mensagem.

    if not wa_mensagem is initial.

      <fs_zycbt226>-sld_associar = <fs_zycbt226>-sld_associar -

        p_wa_zycbt228a-vlr_associado.

      <fs_zycbt226>-belnr_assoc = wa_mensagem-belnr.

      <fs_zycbt226>-dt_assoc    = wa_mensagem-dtcont.

      perform insere_itab_zycbt228

        using p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr

          c_tp_desm_ordem wa_mensagem-belnr <fs_bldat> <fs_budat>

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

          v_data <fs_zycbt226>-waers p_wa_zycbt228a-vlr_associado.

* << Fim da exclusão

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

          v_data <fs_zycbt226>-waers p_wa_zycbt228a-vlr_associado

          ' '.

* << Fim da inclusão

      perform insere_itab_zycbt230

        using p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr c_tp_desm_ordem

          wa_mensagem-belnr <fs_bldat> <fs_budat>.

    endif.

  endif.

endform.

form efetua_comp_associacao

  using value(p_wa_zycbt228a) like line of itab_zycbt228a.

  constants:

    c_f30      type /pws/zycbt032-tcode  value 'F-30',

...

 

...

        <fs_bldat>

        <fs_budat>

        p_wa_zycbt228a-nrseq

        wa_zycbt209.

  endif.

  perform preenche_partidas

    using

      <fs_codmod>

      <fs_codeven>

      v_cpochv

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

      p_wa_zycbt228a-nrseq.

* << Fim da exclusão

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

      p_wa_zycbt228a-nrseq

    changing

      itab_zycbe224.

* << Fim da inclusão

  if itab_zycbt034 is initial.

    perform preenche_contas_compensacao changing itab_zycbe224.

    perform executa_f30 using 'W' 'X' itab_zycbe224.

    free itab_zycbe224.

    perform verifica_contabilizacao

      using

        c_f30

        c_zycbt228

        v_cpochv

        'Compensação da Associação'(m36)

      changing wa_mensagem.

    if not wa_mensagem is initial.

      perform insere_itab_zycbt228

        using p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr

          c_tp_comp_assoc wa_mensagem-belnr <fs_bldat> <fs_budat>

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

          v_data p_wa_zycbt228a-waers p_wa_zycbt228a-vlr_associado.

* << Fim da exclusão

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

          v_data v_moeda_assoc p_wa_zycbt228a-vlr_associado

          ' '.

* << Fim da inclusão

      perform insere_itab_zycbt230

        using p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr c_tp_comp_assoc

          wa_mensagem-belnr <fs_bldat> <fs_budat>.

    endif.

  endif.

endform.

form efetua_estorno_associacao

  using

    value(p_nrseq) type t_s_zycbt228a-nrseq

    value(p_belnr) type t_s_zycbt228a-belnr.

...

 

...

  if wa_controle-processo = c_flag_embarque.

    read table itab_zycbt228

      with key

        nrinvoic = /pws/zycbe227a-nrinvoic

        nrparcf  = /pws/zycbe227a-nrparcf

        gsberf   = /pws/zycbe227a-gsberf

        nrseq    = p_wa_zycbt228a-nrseq

        tp_docto = c_tp_desm_cliente

      assigning <fs_zycbt228>.

    check <fs_zycbt228> is assigned.

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

    v_vlr_associado = <fs_zycbt228>-vlr_associado.

* << Fim da exclusão

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

    v_vlr_associado = p_wa_zycbt228a-vlr_assoc_fat.

* << Fim da inclusão

    assign: c_codmod         to <fs_codmod>,

      c_ktosl_cliente        to <fs_ktosl>,

      c_codeven_cliente      to <fs_codeven>,

      /pws/zycbe227a-dtassoc to <fs_bldat>,

      /pws/zycbe227a-budat   to <fs_budat>,

      /pws/zycbe227a-bukrs   to <fs_bukrs>,

      /pws/zycbe227a-kunag   to <fs_kunnr>,

      wa_zycbt030-belnr6     to <fs_belnr_orig>,

      wa_zycbt030-budat      to <fs_dtdocto_orig>,

      <fs_zycbt228>-belnr    to <fs_belnr_proc>,

...

 

...

  v_cpochv = p_wa_zycbt228a-nrseq.

  loop at itab_zycbt209 assigning <fs_zycbt209>.

    read table itab_zycbt228

      with key

        nrinvoic = <fs_zycbt209>-nrinvoic

        nrparcf  = <fs_zycbt209>-nrparcf

        gsberf   = <fs_zycbt209>-gsberf

        dtincl   = <fs_zycbt209>-dtincl

        nrseq    = p_wa_zycbt228a-nrseq

        tp_docto = c_tp_desm_liq_and

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

        belnr_ori_liqand = <fs_zycbt209>-belnr

* << Fim da inclusão

    assigning <fs_zycbt228>.

    check sy-subrc = 0.

    concatenate <fs_zycbt209>-nrinvoic <fs_zycbt209>-nrparcf

      <fs_zycbt209>-gsberf into v_zuonr.

    perform limpa_dados_bi.

    if sy-tcode+13(3) ne 'SML'.

      perform preenche_zycbe033_compensacao

        using

         'X'

        c_codmod

...

 

...

          wa_zycbt030-vlslliq = wa_zycbt030-vlslliq - v_total.

          p_zycbt228a-saldo = p_zycbt228a-vlr_associado - v_total.

          loop at itab_disponibilidade assigning <fs_disp>

            where nrseq = p_zycbt228a-nrseq

              and saldo > 0.

            clear:

              <fs_disp>-saldo.

          endloop.

        else.

          wa_zycbt017-vlslf =

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

            wa_zycbt017-vlslf - p_zycbt228a-vlr_associado.

* << Fim da exclusão

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

            wa_zycbt017-vlslf - p_zycbt228a-vlr_assoc_fat.

* << Fim da inclusão

          wa_zycbt030-vlslliq =

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

            wa_zycbt030-vlslliq - p_zycbt228a-vlr_associado.

* << Fim da exclusão

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

            wa_zycbt030-vlslliq - p_zycbt228a-vlr_assoc_fat.

* << Fim da inclusão

          clear:

            p_zycbt228a-saldo.

          loop at itab_disponibilidade assigning <fs_disp>

...

 

...

          endloop.

        endif.

      else.

        loop at itab_zycbt241 assigning <fs_zycbt241>

          where nrseq     = p_zycbt228a-nrseq

            and sld_assoc > 0.

          v_total = v_total + <fs_zycbt241>-sld_assoc.

        endloop.

        if sy-subrc eq 0.

          if p_zycbt228a-vlr_associado ge v_total.

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

            wa_zycbt017-vlslf = wa_zycbt017-vlslf - v_total.

* << Fim da exclusão

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

            if p_zycbt228a-waers ne /pws/zycbe227a-waers.

              clear: v_decimais_f, v_decimais_o, v_defator, v_parafator.

              select single currdec from tcurx

                into v_decimais_f

                where currkey = /pws/zycbe227a-waers.

              if sy-subrc <> 0.

                v_decimais_f = 2.

              endif.

              select single currdec from tcurx

                into v_decimais_o

                where currkey = p_zycbt228a-waers.

              if sy-subrc <> 0.

                v_decimais_o = 2.

              endif.

              select ffact tfact

                up to 1 rows

                from tcurf

                into  (v_defator,v_parafator)

                where fcurr =  p_zycbt228a-waers

                  and tcurr =  /pws/zycbe227a-waers

                  and gdatu >= sy-datum.

              endselect.

              if v_defator is initial.

                v_defator = 1.

              endif.

              if v_parafator is initial.

                v_parafator = 1.

              endif.

              v_total = ( ( p_zycbt228a-parid / v_defator ) *

                           v_parafator ) * v_total.

              if v_decimais_o ne v_decimais_f.

                if v_decimais_o eq 0.

                  v_total = v_total * 100.

                else.

                  v_total = v_total / 100.

                endif.

              endif.

            endif.

            wa_zycbt017-vlslf   = wa_zycbt017-vlslf   - v_total.

* << Fim da inclusão

            wa_zycbt030-vlslliq = wa_zycbt030-vlslliq - v_total.

            p_zycbt228a-saldo = p_zycbt228a-vlr_associado - v_total.

            loop at itab_zycbt241 assigning <fs_zycbt241>

              where nrseq     = p_zycbt228a-nrseq

                and sld_assoc > 0.

              clear:

                <fs_zycbt241>-sld_assoc.

            endloop.

          else.

            wa_zycbt017-vlslf =

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

              wa_zycbt017-vlslf - p_zycbt228a-vlr_associado.

* << Fim da exclusão

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

              wa_zycbt017-vlslf - p_zycbt228a-vlr_assoc_fat.

* << Fim da inclusão

            wa_zycbt030-vlslliq =

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

              wa_zycbt030-vlslliq - p_zycbt228a-vlr_associado.

* << Fim da exclusão

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

              wa_zycbt030-vlslliq - p_zycbt228a-vlr_assoc_fat.

* << Fim da inclusão

            clear:

              p_zycbt228a-saldo.

            loop at itab_zycbt241 assigning <fs_zycbt241>

...

 

...

      where nrinvoic = wa_zycbt030-nrinvoic

        and nrparcf  = wa_zycbt030-nrparcf

        and gsberf   = wa_zycbt030-gsberf.

    update /pws/zycbt017

      set   vlslf    = wa_zycbt017-vlslf

      where nrinvoic = wa_zycbt017-nrinvoic

        and nrparcf  = wa_zycbt017-nrparcf

        and gsberf   = wa_zycbt017-gsberf.

  endloop.

endform.

* >> Início da inclusão:

form carga_paridade.

  data: begin of itab_zycbt227 occurs 0.

          include structure /pws/zycbt227.

  data: end of itab_zycbt227.

  data: begin of itab_zycbt229 occurs 0.

          include structure /pws/zycbt229.

  data: end of itab_zycbt229.

  select * from /pws/zycbt227 into table itab_zycbt227.

  select * from /pws/zycbt229 into table itab_zycbt229.

  loop at itab_zycbt227 where not parid > 0.

    itab_zycbt227-parid = 1.

    itab_zycbt227-vlr_assoc_fat = itab_zycbt227-vlr_associado.

    update /pws/zycbt227 set parid         = itab_zycbt227-parid

                             vlr_assoc_fat = itab_zycbt227-vlr_assoc_fat

                         where nrseq    = itab_zycbt227-nrseq

                           and nrinvoic = itab_zycbt227-nrinvoic

                           and nrparcf  = itab_zycbt227-nrparcf

                           and gsberf   = itab_zycbt227-gsberf

                           and dtassoc  = itab_zycbt227-dtassoc.

  endloop.

  loop at itab_zycbt229 where not parid > 0.

    itab_zycbt229-parid = 1.

    itab_zycbt229-vlr_assoc_fat = itab_zycbt229-vlr_associado.

    update /pws/zycbt229 set parid         = itab_zycbt229-parid

                             vlr_assoc_fat = itab_zycbt229-vlr_assoc_fat

                       where nrseq         = itab_zycbt229-nrseq

                         and nrseq_remessa = itab_zycbt229-nrseq_remessa

                         and dtassoc       = itab_zycbt229-dtassoc.

  endloop.

  commit work.

endform.

form busca_valor_mi using    p_bukrs

                             p_belnr

                             p_data

                             p_valor_me

                             p_moeda

                    changing p_valor_mi.

  field-symbols:

    <fs_zycbt007> like line of itab_zycbt007.

  data: v_gjahr type bkpf-gjahr.

  call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

       exporting

            v_bukrs                = p_bukrs

            v_date                 = p_data

       importing

            v_year                 = v_gjahr

       exceptions

            variante_de_exercicio  = 1

            data_nao_encontrada    = 2

            empresa_nao_encontrada = 3

            period_in_not_valid    = 4

            period_not_assigned    = 5

            version_undefined      = 6

            others                 = 7.

  if sy-subrc <> 0. endif.

  clear: bkpf, v_defator, v_parafator.

  select single kursf from bkpf

         into bkpf-kursf

         where bukrs = p_bukrs

           and belnr = p_belnr

           and gjahr = v_gjahr.

  if sy-subrc = 0.

    read table itab_zycbt007

      with table key bukrs = p_bukrs

      assigning <fs_zycbt007>.

    check <fs_zycbt007> is assigned.

    select ffact tfact

      up to 1 rows

      from tcurf

      into  (v_defator,v_parafator)

      where fcurr =  p_moeda

        and tcurr =  <fs_zycbt007>-waersb

        and gdatu >= p_data.

    endselect.

    if v_defator is initial.

      v_defator = 1.

    endif.

    if v_parafator is initial.

      v_parafator = 1.

    endif.

    p_valor_mi = ( ( bkpf-kursf / v_defator ) * v_parafator )

                 * p_valor_me.

  endif.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCB035I01

 

...

  perform consiste_remessa

    using /pws/zycbe229a-nrseq.

endmodule.

module atualiza_saldos input.

  perform atualiza_saldos.

endmodule.

module consiste_campos input.

  check btn_remessa = 'X' .

  if   /pws/zycbe229a-nrseq is initial .

    if not  /pws/zycbe227a-dtassoc is initial .

* >> Início da exclusão: MODULE CONSISTE_CAMPOS

      message e061

* << Fim da exclusão

* >> Início da inclusão: MODULE CONSISTE_CAMPOS

      message w061

* << Fim da inclusão

       with 'Favor entrar com'(m19) 'os dados da'(m22) 'remessa'(m06).

    endif.

  endif.

  if  /pws/zycbe227a-dtassoc is initial.

    if   not /pws/zycbe229a-nrseq is initial  .

      if sy-tcode ne c_transacao_c

         and sy-tcode ne c_trans_sml_c.

        message e061

        with 'Favor entrar com'(m19) 'a data de'(m20) 'associação'(m17).

      endif.

...

 

...

     using /pws/zycbe229a-nrseq.

    perform consiste_dtassoc

    using

      /pws/zycbe227a-nrinvoic

      /pws/zycbe227a-nrparcf

      /pws/zycbe227a-gsberf

      /pws/zycbe229a-nrseq

      /pws/zycbe227a-dtassoc.

  endif.

endmodule.

* >> Início da inclusão:

module atualiza_dados input.

  field-symbols:

    <fs_zycbt228a> like line of itab_zycbt228a.

  check sy-tcode ne c_transacao_e and

        not btn_embarque is initial.

  loop at itab_zycbt228a assigning <fs_zycbt228a>

                         where parid is initial.

    if <fs_zycbt228a>-waers = /pws/zycbe227a-waers.

      <fs_zycbt228a>-parid = 1.

      <fs_zycbt228a>-vlr_assoc_fat = <fs_zycbt228a>-vlr_associado.

      modify itab_zycbt228a from <fs_zycbt228a>.

    else.

      message w015

        with 'Preencher paridade de todas as ordens.'(m55).

      clear ok_code.

      exit.

    endif.

  endloop.

endmodule.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCB035T02

 

...

    belnr_assoc  type /pws/zycbt124-belnr_assoc,

  end of t_s_zycbt124,

  begin of t_s_zycbt209,

    bukrs    type /pws/zycbt209-bukrs,

    nrinvoic type /pws/zycbt209-nrinvoic,

    belnr    type /pws/zycbt209-belnr,

    nrparcf  type /pws/zycbt209-nrparcf,

    gsberf   type /pws/zycbt209-gsberf,

    dtincl   type /pws/zycbt209-dtincl,

    waers    type /pws/zycbt209-waers,

* >> Início da inclusão:

    vlme     type /pws/zycbt209-vlme,

* << Fim da inclusão

    saldo    type /pws/zycbt209-saldo,

    belnr2   type /pws/zycbt209-belnr2,

    dtbelnr  type /pws/zycbe209-dtbelnr,

    koart    type /pws/zycbt209-koart,

    hkont    type /pws/zycbt209-hkont,

    umskz    type /pws/zycbt209-umskz,

  end of t_s_zycbt209,

* >> Início da exclusão:

  t_t_zycbt209 type sorted table of t_s_zycbt209

    with non-unique key bukrs nrinvoic nrparcf gsberf dtincl,

* << Fim da exclusão

* >> Início da inclusão:

  t_t_zycbt209 type table of t_s_zycbt209

     with key bukrs nrinvoic nrparcf gsberf dtincl belnr2,

* << Fim da inclusão

  begin of t_s_zycbt226,

    nrseq          type /pws/zycbt226-nrseq,

    gsberf         type /pws/zycbt226-gsberf,

    bukrs          type /pws/zycbt226-bukrs,

    werks          type /pws/zycbt226-werks,

    j_1bbranch     type /pws/zycbt226-j_1bbranch,

    kunag          type /pws/zycbt226-kunag,

    waers          type /pws/zycbt226-waers,

    sld_associar   type /pws/zycbt226-sld_associar,

    dtcredext      type /pws/zycbt226-dtcredext,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB035TOP

 

...

        INCLUDE STRUCTURE /pws/zycbt241.

TYPES:

END OF t_s_zycbt241,

t_t_zycbt241 TYPE STANDARD TABLE OF t_s_zycbt241

  WITH NON-UNIQUE DEFAULT KEY,

t_t_dynpread TYPE STANDARD TABLE OF dynpread

  WITH NON-UNIQUE DEFAULT KEY.

TABLES:

  /pws/zycbe227a,

  /pws/zycbe228a,

* >> Início da exclusão:

  /pws/zycbe229a.

* << Fim da exclusão

* >> Início da inclusão:

  /pws/zycbe229a,

  bkpf.

* << Fim da inclusão

DATA:

  btn_embarque(1) TYPE c VALUE 'X',

  btn_remessa(1)  TYPE c VALUE space,

  v_nr_ordem TYPE string,

  ok_code         TYPE sy-ucomm.

data: v_erro(1)     type c.

CONTROLS:

  tc_ordens TYPE TABLEVIEW USING SCREEN 0102.

DATA:

  itab_tabstrip  TYPE t_t_tabstrip,

  itab_tbcontrol TYPE t_t_tbcontrol,

  itab_drilldown TYPE t_t_drilldown,

  itab_mensagem  TYPE t_t_mensagem,

  wa_controle    TYPE t_s_controle,

  itab_disponibilidade TYPE t_t_disponibilidade,

  itab_zycbt241        TYPE t_t_zycbt241,

  wa_tabstrip    LIKE LINE OF itab_tabstrip.                "#EC NEEDED

* >> Início da inclusão:

data: v_decimais_f  type tcurx-currdec,

      v_decimais_o  type tcurx-currdec,

      v_defator     type tcurf-ffact,

      v_parafator   type tcurf-tfact,

      v_moeda_assoc type /pws/zycbt227-waers.

data: begin of itab_zyglt316 occurs 0.

        include structure /pws/zyglt316.

data: end of itab_zyglt316.

* << Fim da inclusão

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCB035

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M55

 

Texto: (38 caracteres)

"Preencher paridade de todas as ordens."

 

Comprimento máximo: 38

 

 

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

Modificações efetuadas em TABD /PWS/ZYCBE227

 

MODIFICAR ESTRUTURA: /PWS/ZYCBE227

 

COMPONENTES NOVOS

COMPONENTE:     TP. COMP:      TAB.REF.:       CPO.REF.:    AJUD. PESQU.

...

 

SALDO

* >> Início da inclusão:

PARID         /PWS/ZYCBL064        ' '         ' '            ' '

VLR_ASSOC_FAT  /PWS/ZYCBL476   /PWS/ZYCBE227   WAERS           ' '

* << Fim da inclusão

 

 

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

Modificações efetuadas em TABD /PWS/ZYCBE227A

 

MODIFICAR ESTRUTURA: /PWS/ZYCBE227A

 

COMPONENTES NOVOS

COMPONENTE:     TP. COMP:      TAB.REF.:       CPO.REF.:    AJUD. PESQU.

...

 

VLSLTRANS

* >> Início da inclusão:

PARID         /PWS/ZYCBL064      ' '           ' '             ' '

VLR_ASSOC_FAT  /PWS/ZYCBL476   /PWS/ZYCBE227A  WAERS            ' '

* << Fim da inclusão

 

 

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

Modificações efetuadas em TABD /PWS/ZYCBE228A

 

MODIFICAR ESTRUTURA: /PWS/ZYCBE228A

 

COMPONENTES NOVOS

COMPONENTE:     TP. COMP:      TAB.REF.:       CPO.REF.:    AJUD. PESQU.

...

 

BELNR

* >> Início da inclusão:

PARID         /PWS/ZYCBL064     ' '            ' '            ' '

VLR_ASSOC_FAT  /PWS/ZYCBL476   /PWS/ZYCBE227A  WAERS           ' '

* << Fim da inclusão

 

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

Modificações efetuadas em TABD /PWS/ZYCBE229

 

MODIFICAR ESTRUTURA: /PWS/ZYCBE229

 

COMPONENTES NOVOS

COMPONENTE:     TP. COMP:      TAB.REF.:       CPO.REF.:    AJUD. PESQU.

...

 

VLR_ASSOCIADO

* >> Início da inclusão:

PARID         /PWS/ZYCBL064

VLR_ASSOC_FAT  /PWS/ZYCBL476   /PWS/ZYCBE229  WAERS            ' '

* << Fim da inclusão

 

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

Modificações efetuadas em TABD /PWS/ZYCBE229A

 

MODIFICAR ESTRUTURA: /PWS/ZYCBE229A

 

COMPONENTES NOVOS

COMPONENTE:     TP. COMP:      TAB.REF.:       CPO.REF.:    AJUD. PESQU.

...

 

SLD_ASSOCIAR

* >> Início da inclusão:

PARID         /PWS/ZYCBL064       ' '          ' '            ' '

VLR_ASSOC_FAT  /PWS/ZYCBL476   /PWS/ZYCBE229A  WAERS           ' '

* << Fim da inclusão

 

 

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

Modificações efetuadas em TABD /PWS/ZYCBT227

 

MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCBT227

 

 

CAMPOS NOVOS

 

CAMPOS:         TP. CAMPO      CH: INI:   TAB.VERIF.:    TAB.REF.:      CPO.RE

...

 

SALDO

* >> Início da inclusão:

PARID           /PWS/ZYCBL064  ' '  ' '     ' '            ' '           ' '

VLR_ASSOC_FAT   /PWS/ZYCBL476  ' '  ' '     ' '          /PWS/ZYCBT227  WAERS

* << Fim da inclusão

 

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

Modificações efetuadas em TABD /PWS/ZYCBT228

 

MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCBT228

 

 

CAMPOS NOVOS

 

CAMPOS:           TP. CAMPO      CH: INI:   TAB.VERIF.:    TAB.REF.:      CPO.RE

...

 

VLR_ASSOCIADO

* >> Início da inclusão:

BELNR_ORI_LIQAND  BELNR_D        ' '  ' '     ' '            ' '           ' '

* << Fim da inclusão

 

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

Modificações efetuadas em TABD /PWS/ZYCBT229

 

MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCBT227

 

 

CAMPOS NOVOS

 

CAMPOS:         TP. CAMPO      CH: INI:   TAB.VERIF.:    TAB.REF.:      CPO.RE

...

 

VLR_ASSOCIADO

* >> Início da inclusão:

PARID           /PWS/ZYCBL064  ' '  ' '     ' '            ' '           ' '

VLR_ASSOC_FAT   /PWS/ZYCBL476  ' '  ' '     ' '          /PWS/ZYCBT229  WAERS

* << Fim da inclusão