CE PLUS - Nota 011080

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Associação Ordem de Pagamento

Data/Hora da Publicação: 11/04/2011 00:00:00

Data/Hora Última Alteração: 11/04/2011 16:36:31

Descrição da Nota: ASSOCIAÇÃO DE ORDENS DE PAGAMENTO SML SALDO A ASSOCIAR

Sintoma

Ao associar uma fatura a uma ordem de pagamento, o sistema não está atualizando o saldo do campo

SLD_ASSOCIAR da tabela /PWS/ZYCBT226. Dessa forma está permitindo associar faturas ultrapassando o

valor do Pagamento Antecipado.

 

 

Solução

Quando a associação é realizada, independente de ocorrer erros na contabilização, o sistema irá

atualizar o saldo do campo SLD_ASSOCIAR na tabela /PWS/ZYCBT226. E caso haja algum erro o sistema

emitira as mensagens de erro que ocorreram durante a contabilização.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

ASSOC. VAL. MANTIDOS EXTERIOR-ESTORNO-CONTABILIZAÇÃO E DADOS DA ORDEM

DA - ASSOCIAÇÃO DE ORDENS DE PAGAMENTO

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

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

Informações Complementares

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

Nota Número 11080 Data: 11/04/2011 Hora: 15:18:37

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

 

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

Nota Número              : 11080

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00007

Agrupamento              : 00066

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

Referência às notas relacionadas:

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

 

04538  - 00001 - 7.0    - 00002  - ASSOC. VAL. MANTIDOS EXTERIOR-ESTORNO-CONTABILIZAÇÃO E DADOS DA O

05478  - 00002 - 7.0    - 00003  - DA - ASSOCIAÇÃO DE ORDENS DE PAGAMENTO

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

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

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

ASSOCIAÇÃO DE ORDENS DE PAGAMENTO SML SALDO A ASSOCIAR

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

Palavras Chave:

ASSOCIAÇÃO, ORDENS DE PAGAMENTO, SML, SALDO A ASSOCIAR

 

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

Objetos da nota:

REPS /PWS/MZYCB035F03

REPS /PWS/MZYCB035TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCB035F03

 

...

  wa_zycbt230-bukrs         = /pws/zycbe229a-bukrs.

  wa_zycbt230-belnr         = p_belnr.

  wa_zycbt230-gjahr         = p_gjahr.

  wa_zycbt230-budat         = p_budat.

  wa_zycbt230-tp_docto      = p_tpdocto.

  insert wa_zycbt230 into table itab_zycbt230.

endform.

form efetua_contabilizacoes.

  data

    v_saldo type /pws/zycbt227-vlr_associado.

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

  field-symbols

    <fs_zycbt228a> like line of itab_zycbt228a.

* << Fim da exclusão

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

  field-symbols:

    <fs_zycbt228a> like line of itab_zycbt228a,

    <fs_zycbt226>  like line of itab_zycbt226.

* << Fim da inclusão

  free itab_mensagem.

  perform seleciona_dados_ordem_pagto.

  loop at itab_zycbt228a

    assigning <fs_zycbt228a>.

    case <fs_zycbt228a>-oper.

      when c_novo.

        v_saldo = <fs_zycbt228a>-vlr_assoc_fat.

        perform saldo_disp_cont

          changing <fs_zycbt228a>.

        perform efetua_desmemb_liq_and

...

 

...

          changing v_saldo.

        if v_saldo > 0.

          perform efetua_desmemb_cliente

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

                  <fs_zycbt228a>-parid.

        endif.

        perform efetua_desmemb_ordem_pagto

          using <fs_zycbt228a>.

        perform efetua_comp_associacao

          using <fs_zycbt228a>.

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

        read table itab_zycbt226

             with table key nrseq = <fs_zycbt228a>-nrseq

             assigning <fs_zycbt226>.

        if <fs_zycbt226> is assigned.

           <fs_zycbt226>-sld_associar =

           <fs_zycbt226>-sld_associar - <fs_zycbt228a>-vlr_associado.

        endif.

* << Fim da inclusão

      when c_eliminado.

        perform saldo_disp_cont

          changing <fs_zycbt228a>.

        perform efetua_estorno_associacao

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

        perform efetua_clearing_ordem_pagto

          using <fs_zycbt228a>.

        perform efetua_clearing_cliente

          using <fs_zycbt228a>.

        perform efetua_clearing_liq_and

          using <fs_zycbt228a>.

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

        read table itab_zycbt226

             with table key nrseq = <fs_zycbt228a>-nrseq

             assigning <fs_zycbt226>.

        if <fs_zycbt226> is assigned.

           <fs_zycbt226>-sld_associar =

           <fs_zycbt226>-sld_associar + <fs_zycbt228a>-vlr_associado.

        endif.

* << Fim da inclusão

    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

    value(p_parid) type t_s_zycbt228a-parid

...

 

...

        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

            <fs_zycbt209>-waers v_saldo

            <fs_zycbt209>-belnr.

      endif.

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

    else.

      loop at itab_zycbt034 assigning <fs_zycbt034>.

         wa_mensagem-bukrs    = wa_zycbt017-bukrs.

         wa_mensagem-nrinvoic = <fs_zycbt209>-nrinvoic.

         wa_mensagem-nrparcf  = <fs_zycbt209>-nrparcf.

         wa_mensagem-gsberf   = <fs_zycbt209>-gsberf.

         wa_mensagem-nrseq    = p_nrseq.

         wa_mensagem-tpmsg    = 'E'.

         wa_mensagem-belnr    = ''.

         concatenate 'Liq.And.-Campo Não Preenchido' <fs_zycbt034>-campo

                     <fs_zycbt034>-descricao into wa_mensagem-msg

                     separated by space.

         append wa_mensagem to itab_mensagem.

      endloop.

      free wa_mensagem.

* << Fim da inclusão

    endif.

  endloop.

endform.

form efetua_desmemb_cliente

  using

    value(p_nrseq) type t_s_zycbt228a-nrseq

    value(p_gjahr) type t_s_zycbt228a-gjahr

    value(p_saldo) type t_s_zycbt227-vlr_associado

    value(p_parid) type t_s_zycbt228a-parid.

  constants:

...

 

...

        wa_zycbt124-dtassoc      = wa_mensagem-dtcont.

      endif.

      perform insere_itab_zycbt228

        using p_nrseq p_gjahr c_tp_desm_cliente wa_mensagem-belnr

          <fs_bldat> <fs_budat> v_data wa_zycbt030-waers p_saldo

          ' '.

      perform insere_itab_zycbt230

        using p_nrseq p_gjahr c_tp_desm_cliente wa_mensagem-belnr

          <fs_bldat> <fs_budat>.

    endif.

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

  else.

    loop at itab_zycbt034 assigning <fs_zycbt034>.

       wa_mensagem-nrseq = p_nrseq.

       wa_mensagem-tpmsg = 'E'.

       wa_mensagem-belnr = ''.

       concatenate 'Des.Cli.-Campo Não Preenchido' <fs_zycbt034>-campo

                   <fs_zycbt034>-descricao into wa_mensagem-msg

                   separated by space.

       append wa_mensagem to itab_mensagem.

    endloop.

    free wa_mensagem.

* << Fim da inclusão

  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',

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

  data:

    itab_zycbe224 type t_t_zycbe224,

    wa_zycbt209   like line of itab_zycbt209,

...

 

...

    wa_mensagem-bukrs = <fs_bukrs>.

    wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.

    perform verifica_contabilizacao

      using

        c_f30

        c_zycbt228

        v_cpochv

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

      changing wa_mensagem.

    if not wa_mensagem is initial.

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

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

        p_wa_zycbt228a-vlr_associado.

* << Fim da exclusão

      <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>

          v_data <fs_zycbt226>-waers p_wa_zycbt228a-vlr_associado

          ' '.

      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.

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

  else.

    loop at itab_zycbt034 assigning <fs_zycbt034>.

       wa_mensagem-bukrs = <fs_bukrs>.

       wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.

       wa_mensagem-tpmsg = 'E'.

       wa_mensagem-belnr = ''.

       concatenate 'Des.Ord.-Campo Não Preenchido' <fs_zycbt034>-campo

                   <fs_zycbt034>-descricao into wa_mensagem-msg

                   separated by space.

       append wa_mensagem to itab_mensagem.

    endloop.

    free wa_mensagem.

* << Fim da inclusão

  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',

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

  data:

    itab_zycbe224 type t_t_zycbe224,

    wa_zycbt209   like line of itab_zycbt209,

...

 

...

    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>

          v_data v_moeda_assoc p_wa_zycbt228a-vlr_associado

          ' '.

      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.

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

  else.

    loop at itab_zycbt034 assigning <fs_zycbt034>.

       wa_mensagem-tpmsg = 'E'.

       wa_mensagem-belnr = ''.

       concatenate 'Comp.Assoc.-Campo Não Preenchido'

                   <fs_zycbt034>-campo <fs_zycbt034>-descricao

                   into wa_mensagem-msg separated by space.

       append wa_mensagem to itab_mensagem.

    endloop.

    free wa_mensagem.

* << Fim da inclusão

  endif.

endform.

form efetua_estorno_associacao

  using

    value(p_nrseq) type t_s_zycbt228a-nrseq

    value(p_belnr) type t_s_zycbt228a-belnr.

  constants:

    c_fbra     type /pws/zycbt032-tcode  value 'FBRA',

    c_fb08     type /pws/zycbt032-tcode  value 'FB08',

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

...

 

...

    wa_mensagem-bukrs    = <fs_bukrs>.

    wa_mensagem-nrseq    = p_wa_zycbt228a-nrseq.

    perform verifica_contabilizacao

      using

        c_f30

        c_zycbt228

        v_cpochv

        'Clearing do cliente RZE (Ordem de pagamento)'(m44)

      changing wa_mensagem.

    if not wa_mensagem is initial.

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

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

        p_wa_zycbt228a-vlr_associado.

* << Fim da exclusão

      <fs_zycbt226>-belnr_assoc = wa_mensagem-belnr.

      <fs_zycbt226>-dt_assoc    = wa_mensagem-dtcont.

    endif.

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

  else.

    loop at itab_zycbt034 assigning <fs_zycbt034>.

       wa_mensagem-bukrs    = <fs_bukrs>.

       wa_mensagem-nrseq    = p_wa_zycbt228a-nrseq.

       wa_mensagem-tpmsg = 'E'.

       wa_mensagem-belnr = ''.

       concatenate 'Clea.Ord.Pgt.-Campo Não Preenchido'

                   <fs_zycbt034>-campo <fs_zycbt034>-descricao

                   into wa_mensagem-msg separated by space.

       append wa_mensagem to itab_mensagem.

    endloop.

    free wa_mensagem.

* << Fim da inclusão

  endif.

endform.

form efetua_clearing_cliente

  using value(p_wa_zycbt228a) like line of itab_zycbt228a.

  constants:

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

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

    c_koart    type t_s_zycbe224-koart   value 'D'.

  data:

    itab_zycbe224   type t_t_zycbe224,

...

 

...

      else.

        wa_zycbt124-sld_associar = wa_zycbt124-sld_associar +

          p_wa_zycbt228a-vlr_associado.

        wa_zycbt124-belnr_assoc = wa_mensagem-belnr.

        wa_zycbt124-dtdocto     = wa_mensagem-dtcont.

        if wa_zycbt124-sld_associar = wa_zycbt124-vlme.

          clear wa_zycbt124-dtpagto.

        endif.

      endif.

    endif.

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

  else.

    loop at itab_zycbt034 assigning <fs_zycbt034>.

       wa_mensagem-tpmsg = 'E'.

       wa_mensagem-belnr = ''.

       concatenate 'Clea.Cli.-Campo Não Preenchido' <fs_zycbt034>-campo

                   <fs_zycbt034>-descricao into wa_mensagem-msg

                   separated by space.

       append wa_mensagem to itab_mensagem.

    endloop.

    free wa_mensagem.

* << Fim da inclusão

  endif.

endform.

form efetua_clearing_liq_and

  using value(p_wa_zycbt228a) like line of itab_zycbt228a.

  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_zycbe224   like line of itab_zycbe224,

...

 

...

          c_zycbt228

          v_cpochv

          'Clearing da liquidação em andamento'(m45)

        changing wa_mensagem.

      if not wa_mensagem is initial.

        <fs_zycbt209>-saldo = <fs_zycbt209>-saldo +

          <fs_zycbt228>-vlr_associado.

        <fs_zycbt209>-belnr2 = wa_mensagem-belnr.

        <fs_zycbt209>-dtbelnr = wa_mensagem-dtcont.

      endif.

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

    else.

      loop at itab_zycbt034 assigning <fs_zycbt034>.

         wa_mensagem-bukrs    = <fs_zycbt209>-bukrs.

         wa_mensagem-nrinvoic = <fs_zycbt209>-nrinvoic.

         wa_mensagem-nrparcf  = <fs_zycbt209>-nrparcf.

         wa_mensagem-gsberf   = <fs_zycbt209>-gsberf.

         wa_mensagem-tpmsg = 'E'.

         wa_mensagem-belnr = ''.

         concatenate 'Clea.Liq.And.-Campo Não Preenchido'

                     <fs_zycbt034>-campo <fs_zycbt034>-descricao

                     into wa_mensagem-msg separated by space.

         append wa_mensagem to itab_mensagem.

      endloop.

      free wa_mensagem.

* << Fim da inclusão

    endif.

  endloop.

endform.

form verifica_commodities

  using p_wa_fatura type t_s_fatura.

  data:

    wa_zycbt030 type /pws/zycbe030.                         "#EC *

  select * from /pws/zycbt030

    into corresponding fields of wa_zycbt030

    up to 1 rows

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB035TOP

 

...

  itab_zycbt241        type t_t_zycbt241,

  wa_tabstrip    like line of itab_tabstrip.                "#EC NEEDED

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.

* >> Início da inclusão:

 field-symbols: <fs_zycbt034> like line of itab_zycbt034.

* << Fim da inclusão