CE PLUS - Nota 008733

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: SML - Sistema de Pagto. Moeda Inter

Data/Hora da Publicação: 24/07/2009 00:00:00

Data/Hora Última Alteração: 18/02/2011 17:51:12

Descrição da Nota: SML-SISTEMA DE MOEDA LOCAL-CONSIDERAR SÓ BRL-VME-ATUALIZAÇÃO ZYCBT030

Sintoma

SML - esta permitindo incluir faturas ou criar pagamento antecipado com moeda estrangeira.

Valores Mantidos no Exterior - esta atualizando incorretamente o campo /pws/zycbt030-vlsltrans

quando a fatura já possui liquidação em andamento

 

 

Solução

SML - buscar moeda nacional(/pws/zycbt007-waersb) e fazer com que as faturas ou o pagamento

antecipado se enquadre nesta moeda.

 

Valores Mantidos no Exterior - verificar o que já foi baixado pela liquidação em andamento no campo

/pws/zycbt030-vlsltrans e só baixar novamente dos valores mantidos no exterior o que excedeu este

valor.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

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

VALORES MANTIDOS NO EXTERIOR - ATUALIZAÇÃO SALDO APÓS F-02

VALORES MANTIDOS NO EXTERIOR - BAIXA DE COMISSÃO DE AGENTE CG NA ROTINA

Informações Complementares

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

Nota Número 08733 Data: 24/07/2009 Hora: 17:48:59

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

 

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

Nota Número              : 08733

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00010

Agrupamento              : 00106

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

Referência às notas relacionadas:

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

 

07691  - 00001 - 7.0    - 00007  - VALORES MANTIDOS NO EXTERIOR - ATUALIZAÇÃO SALDO APÓS F-02

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

08195  - 00003 - 7.0    - 00008  - VALORES MANTIDOS NO EXTERIOR - BAIXA DE COMISSÃO DE AGENTE CG NA

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

SML-SISTEMA DE MOEDA LOCAL-CONSIDERAR SÓ BRL-VME-ATUALIZAÇÃO ZYCBT030

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

Palavras Chave:

SML SISTEMA DE MOEDA LOCAL CONSIDERAR SÓ BRL VME ATUALIZAÇÃO ZYCBT030

VALORES MANTIDOS NO EXTERIOR COM LIQUIDAÇÃO EM ANDAMENTO ZYCBT030

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

Objetos da nota:

DYNP /PWS/SAPMZYCB034                        0110

FUNC /PWS/ZYCBA275

REPS /PWS/MZYCB034F01

REPS /PWS/MZYCB034I01

REPS /PWS/MZYCB034TOP

REPT /PWS/SAPMZYCB034

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB034                        0110

 

MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0110

...

          verificar_linhas,

          calcula_total_destino.

  LOOP WITH CONTROL tc_op.

    MODULE: preenche_tc_op.

  ENDLOOP.

PROCESS AFTER INPUT.

  MODULE:

    drilldown.

  LOOP WITH CONTROL tc_op.

    FIELD /pws/zycbe226-nrinvoic     MODULE verifica_processo.

* >> Início da inclusão:

    field /pws/zycbe226-bukrs.

    field /pws/zycbe226-waers module verifica_moeda.

* << Fim da inclusão

    MODULE: verifica_vlr_exterior,

            verifica_dt_limite,

            verifica_periodo_contabil,

            atualiza_tc_op.

  ENDLOOP.

  module  preenche_table_control.

  MODULE: user_command,

          user_command_exit AT EXIT-COMMAND.

PROCESS ON VALUE-REQUEST.

  FIELD /pws/zycbe226-nrinvoic MODULE get_invoice.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCBA275

 

FUNCTION /pws/zycba275.

  TYPE-POOLS:

    shlp.

  TYPES:

    BEGIN OF t_s_invoice,

      nrinvoic       TYPE /pws/zycbv216-nrinvoic,

      nrparcf        TYPE /pws/zycbv216-nrparcf,

      gsberf         TYPE /pws/zycbv216-gsberf,

      bukrs          TYPE /pws/zycbv216-bukrs,

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

      waers          TYPE /pws/zycbv216-waers,

* << Fim da inclusão

      vlavinc        TYPE /pws/zycbv216-vlavinc,

      vlslliq        TYPE /pws/zycbv216-vlslliq,

      vlsltrans      TYPE /pws/zycbv216-vlslliq,

      saldo          TYPE /pws/zycbv216-vlslliq,

    END OF t_s_invoice,

    BEGIN OF t_s_zycbt089,

      bukrs           TYPE /pws/zycbt089-bukrs,

      retencao_fatura TYPE /pws/zycbt089-retencao_fatura,

    END OF t_s_zycbt089,

    BEGIN OF t_s_zycbt226,

...

 

...

      saldo        TYPE /pws/zycbt209-saldo,

    END OF t_s_zycbt209,

    t_t_invoice TYPE STANDARD TABLE OF t_s_invoice

      WITH NON-UNIQUE KEY nrinvoic nrparcf gsberf,

    t_t_zycbt089 TYPE SORTED TABLE OF t_s_zycbt089

      WITH UNIQUE KEY bukrs,

    t_t_zycbt226 TYPE SORTED TABLE OF t_s_zycbt226

      WITH NON-UNIQUE KEY nrinvoic nrparcf gsberf,

    t_t_zycbt209 TYPE SORTED TABLE OF t_s_zycbt209

      WITH NON-UNIQUE KEY nrinvoic nrparcf gsberf.

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

  DATA: v_sml          TYPE c,

        v_tabix        TYPE sy-tabix.

  DATA: BEGIN OF itab_zycbt007 OCCURS 0.

          INCLUDE STRUCTURE /pws/zycbt007.

  DATA: END OF itab_zycbt007.

* << Fim da inclusão

  DATA:

    itab_invoice       TYPE t_t_invoice,

    itab_zycbt089      TYPE t_t_zycbt089,

    itab_zycbt226      TYPE t_t_zycbt226,

    itab_zycbt226_soma LIKE itab_zycbt226,                  "#EC *

    itab_zycbt209      TYPE t_t_zycbt209,

    v_fieldname        TYPE dfies-lfieldname,

    v_nrinvoice        TYPE /pws/zycbv216-nrinvoic,         "#EC *

    v_index            TYPE sy-tabix,                       "#EC *

    v_nrparcf          TYPE /pws/zycbv216-nrparcf,          "#EC *

...

 

...

    <fs_zycbt209>   LIKE LINE OF itab_zycbt209,

    <fs_zycbt226>   LIKE LINE OF itab_zycbt226.             "#EC *

  CLEAR callcontrol-maxrecords.

  IF callcontrol-step = 'DISP'.

    READ TABLE shlp_tab INDEX 1 ASSIGNING <fs_shlp>.

    CHECK <fs_shlp> IS ASSIGNED.

    LOOP AT <fs_shlp>-fielddescr ASSIGNING <fs_fielddescr>.

      CHECK: <fs_fielddescr>-fieldname = 'NRINVOIC'   OR

             <fs_fielddescr>-fieldname = 'NRPARCF'    OR

             <fs_fielddescr>-fieldname = 'GSBERF'     OR

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

             <fs_fielddescr>-fieldname = 'WAERS'      OR

* << Fim da inclusão

             <fs_fielddescr>-fieldname = 'VLAVINC'    OR

             <fs_fielddescr>-fieldname = 'VLSLLIQ'    OR

             <fs_fielddescr>-fieldname = 'BUKRS'      OR

             <fs_fielddescr>-fieldname = 'VLSLTRANS'  OR

             <fs_fielddescr>-fieldname = 'SALDO'.

      v_fieldname = <fs_fielddescr>-fieldname.

      CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'

           EXPORTING

                parameter         = <fs_fielddescr>-fieldname

                fieldname         = v_fieldname

...

 

...

                results_tab       = itab_invoice

           CHANGING

                shlp              = shlp

                callcontrol       = callcontrol

           EXCEPTIONS

                parameter_unknown = 0

                OTHERS            = 0.

      IF sy-subrc <> 0.

      ENDIF.

    ENDLOOP.

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

    IMPORT v_sml FROM MEMORY ID 'SML'.

    SELECT * FROM /pws/zycbt007 INTO TABLE itab_zycbt007.

    IF NOT v_sml IS INITIAL.

      LOOP AT itab_invoice ASSIGNING <fs_invoice>.

        v_tabix = sy-tabix.

        READ TABLE itab_zycbt007 WITH KEY bukrs = <fs_invoice>-bukrs.

        IF sy-subrc NE 0 OR

           ( sy-subrc EQ 0 AND itab_zycbt007-waersb IS INITIAL ).

          DELETE itab_invoice.

          DELETE record_tab INDEX v_tabix.

          CONTINUE.

        ELSE.

          IF <fs_invoice>-waers NE itab_zycbt007-waersb.

            DELETE itab_invoice.

            DELETE record_tab INDEX v_tabix.

            CONTINUE.

          ENDIF.

        ENDIF.

      ENDLOOP.

    ENDIF.

* << Fim da inclusão

    SELECT

      nrinvoic

      nrparcf

      gsberf

      saldo

    FROM /pws/zycbt209

    INTO TABLE itab_zycbt209

    FOR ALL ENTRIES IN itab_invoice

    WHERE bukrs    EQ itab_invoice-bukrs

      AND nrinvoic EQ itab_invoice-nrinvoic.            "#EC CI_NOFIRST

...

 

...

              shlp              = shlp

              callcontrol       = callcontrol

         EXCEPTIONS

              parameter_unknown = 0

              OTHERS            = 0.

    IF sy-subrc <> 0.

    ENDIF.

    EXPORT itab_invoice[] TO MEMORY ID 'itab_invoice_275'.

  ELSEIF callcontrol-step = 'RETURN'.

    EXPORT record_tab[]   TO MEMORY ID 'mcx_record_tab_275'.

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

  ENDIF.

  IF NOT v_sml IS INITIAL.

    CLEAR v_sml.

    EXPORT v_sml TO MEMORY ID 'SML'.

* << Fim da inclusão

  ENDIF.

ENDFUNCTION.

 

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

Modificações efetuadas em REPS /PWS/MZYCB034F01

 

...

              perform atualiza_saldos_sml using ' '.

              read table itab_zycbt030 into wa_zycbt030 with key

                    nrinvoic = <fs_op>-nrinvoic

                    nrparcf  = <fs_op>-nrparcf

                    gsberf   = <fs_op>-gsberf.

              if sy-subrc = 0.

                if sy-tcode+13(3) = 'SML' and v_wrbtr > 0.

                  wa_zycbt030-vlsltrans = wa_zycbt030-vlsltrans -

                                          v_wrbtr.

                else.

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

                  wa_zycbt030-vlsltrans = wa_zycbt030-vlsltrans -

                                          <fs_op>-vlr_exterior.

* << Fim da exclusão

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

                  clear: v_dif, v_vl_liqand.

                  loop at itab_zycbt209 into wa_zycbt209

                                    where nrinvoic = <fs_op>-nrinvoic

                                      and nrparcf  = <fs_op>-nrparcf

                                      and gsberf   = <fs_op>-gsberf.

                    v_vl_liqand = v_vl_liqand + wa_zycbt209-vlme.

                  endloop.

                  if <fs_op>-vlr_exterior > v_vl_liqand.

                    v_dif = <fs_op>-vlr_exterior - v_vl_liqand.

                  endif.

                  wa_zycbt030-vlsltrans = wa_zycbt030-vlsltrans - v_dif.

* << Fim da inclusão

                endif.

                if wa_zycbt030-vlsltrans < 0.

                  v_wrbtr = wa_zycbt030-vlsltrans * ( -1 ).

                  clear wa_zycbt030-vlsltrans.

                endif.

                update /pws/zycbt030

                  set   vlsltrans = wa_zycbt030-vlsltrans

                  where nrinvoic  = wa_zycbt030-nrinvoic

                    and nrparcf   = wa_zycbt030-nrparcf

                    and gsberf    = wa_zycbt030-gsberf.

...

 

...

  fielddescr type dfies      occurs 0,

  fieldprop  type ddshfprop  occurs 0,

  selopt     type ddshselopt occurs 0,

end of shlp_descr_t,

begin of t_s_invoice.

  types:

    nrinvoic       type /pws/zycbv216-nrinvoic,

    nrparcf        type /pws/zycbv216-nrparcf,

    gsberf         type /pws/zycbv216-gsberf,

    bukrs          type /pws/zycbv216-bukrs,

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

    waers          type /pws/zycbv216-waers,

* << Fim da inclusão

    vlavinc        type /pws/zycbv216-vlavinc,

    vlslliq        type /pws/zycbv216-vlslliq,

    vlsltrans      type /pws/zycbv216-vlsltrans,

    saldo          type /pws/zycbv216-vlslliq,

end of t_s_invoice,

  t_t_invoice type standard table of t_s_invoice

    with non-unique key nrinvoic nrparcf gsberf.

  data: itab_invoice     type t_t_invoice,

        itab_invoice_aux type t_t_invoice.

  data: begin of itab_result occurs 0.

...

 

...

    exit.

  endif.

  if sy-tcode = c_transacao_a or

     sy-tcode = c_transacao_e

     or sy-tcode = c_trans_sml_a

     or sy-tcode = c_trans_sml_e.

    l_display = 'X'.

  else.

    l_display = ' '.

  endif.

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

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

    v_sml = 'X'.

    export v_sml to memory id 'SML'.

  endif.

* << Fim da inclusão

  call function 'F4IF_FIELD_VALUE_REQUEST'

       exporting

            tabname         = '/PWS/ZYCBE226'

            fieldname       = 'NRINVOIC'

            searchhelp      = '/PWS/ZYCBA275'

            multiple_choice = 'X'

            display         = l_display

       tables

            return_tab      = itab_result

       exceptions

...

 

...

  check sy-subrc  eq 0 and

        l_display eq space.

  import record_tab   from memory id 'mcx_record_tab_275'.

  check sy-subrc eq 0.

  import itab_invoice from memory id 'itab_invoice_275'.

  free memory id: 'mcx_record_tab_275',

                  'itab_invoice_275'.

  call function 'DYNP_GET_STEPL'

       importing

            povstepl = v_line.

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

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

    clear v_sml.

    export v_sml to memory id 'SML'.

  endif.

* << Fim da inclusão

  do v_line times.

    clear tdynpread.

    refresh tdynpread.

    tdynpread-fieldname = '/PWS/ZYCBE226-NRINVOIC'.

    tdynpread-stepl     = v_line - 1.

    append tdynpread.

    call function 'DYNP_VALUES_READ'

         exporting

              dyname     = '/PWS/SAPMZYCB034'

              dynumb     = '0110'

...

 

...

        where nrinvoic in nrin

          and gsberf   in gsbe

          and fkdat    in fkda

          and kunag    in kuna

          and dtvencto in dtve

          and dtbl     in dtbl

          and inco1    in inco

          and nrre     in nrre

          and nrsd     in nrsd

       and status   eq space.

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

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

      loop at itab_zycbt007 into wa_zycbt007

                            where not bukrs is initial.

        exit.

      endloop.

      if sy-subrc ne 0 or

         ( sy-subrc eq 0 and wa_zycbt007-waersb is initial ).

        message i061 with text-m51.

        refresh itab_zycbt017_aux.

      else.

        delete itab_zycbt017_aux where waers ne wa_zycbt007-waersb.

      endif.

    endif.

* << Fim da inclusão

    describe table itab_zycbt017_aux lines v_nlin.

    loop at itab_zycbt017_aux.

      itab_zycbt017_aux-v_fsaldo = 'X'.

      modify itab_zycbt017_aux index sy-tabix.

      itab_zycbt226_aux-bukrs = itab_zycbt017_aux-bukrs .

      itab_zycbt226_aux-nrinvoic = itab_zycbt017_aux-nrinvoic .

      itab_zycbt226_aux-gsberf = itab_zycbt017_aux-gsberf .

      itab_zycbt226_aux-kunag = itab_zycbt017_aux-kunag .

      itab_zycbt226_aux-nrparcf = itab_zycbt017_aux-nrparcf .

      itab_zycbt226_aux-vlavinc   = itab_zycbt017_aux-vlavinc.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB034I01

 

...

  ENDIF.

  CALL FUNCTION 'DYNP_VALUES_UPDATE'

       EXPORTING

            dyname     = sy-cprog

            dynumb     = '0301'

       TABLES

            dynpfields = tdynpread

       EXCEPTIONS

            OTHERS     = 8.

ENDMODULE.

* >> Início da inclusão:

MODULE verifica_moeda INPUT.

  IF sy-tcode = c_trans_sml_c OR

     sy-tcode = c_trans_sml_a.

    READ TABLE itab_zycbt007 INTO wa_zycbt007

                             WITH KEY bukrs = /pws/zycbe226-bukrs.

    IF sy-subrc NE 0 OR

       ( sy-subrc EQ 0 AND wa_zycbt007-waersb IS INITIAL ).

      MESSAGE e061 WITH text-m51.

    ELSE.

      IF /pws/zycbe226-waers NE wa_zycbt007-waersb.

        MESSAGE e061 WITH text-m52.

      ENDIF.

    ENDIF.

  ENDIF.

ENDMODULE.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCB034TOP

 

...

  v_text_bco_cc(22)       type c,

  v_text_descr_bco_cc(25) type c,

  v_wrbtr                type /pws/zycbt030-vlsltrans,

  ok_code                type sy-ucomm,

  v_ultimo_nrseq         type /pws/zycbe226-nrseq,

  v_novo_nrseq           type /pws/zycbe226-nrseq,

  v_modo_bi(1)           type c,

  v_desm_cli(1)          type c,

  v_desm_liqand(1)       type c,

  v_sld_liq_and          type wrbtr,

* >> Início da inclusão:

  v_sml                  TYPE c,

  v_vl_liqand            TYPE /pws/zycbt209-vlme,

  v_dif                  TYPE /pws/zycbt209-vlme,

* << Fim da inclusão

  v_belnr_est_f02        type /pws/zycbt226-belnr_op,

  v_dtlancto_est_f02     type /pws/zycbt226-dtlancto,

  v_total_30             type wrbtr,

  v_total_70             type wrbtr,

  v_msg_previsto(74)     type c,                            "#EC NEEDED

  opt_origem_embarque(1) type c,

  opt_origem_pagantec(1) type c,

  opt_destino_30(1)      type c,

  opt_destino_70(1)      type c,

  v_mark(1)            type c,

  v_icone              type icons-text,

  v_tela_help          type sy-dynnr value '0052'.          "#EC NEEDED

data:  v_adm(1)           type c.

data:

   v_codaux   type /pws/zygle316-codaux1,

   v_codaux1  type /pws/zygle316-codaux1,

   v_codaux2  type /pws/zygle316-codaux2,

   v_codaux3  type /pws/zygle316-codaux3,

   v_conta type /pws/zycbe226-conta_contab,

   v_bco_cab          type /pws/zycbe134-bcocred.

  data: v_vlme  type /pws/zycet013-vlme,

        v_belnr type /pws/zycet013-belnr.

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCB034

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M51

 

Texto: (50 caracteres)

"Moeda Nacional não informada nos parâmetros gerais"

 

Comprimento máximo: 50

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M52

 

Texto: (30 caracteres)

"Só é permitido moeda nacional."

 

Comprimento máximo: 30