CE PLUS - Nota 003703

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Rotina de Pagamento

Data/Hora da Publicação: 17/05/2007 00:00:00

Data/Hora Última Alteração: 18/02/2011 13:57:15

Descrição da Nota: COMPLEMENTO DO BOLETO - ATUALIZACAO CAMPO VLMI

Sintoma

Quando efetuamos um complemento de boleto com mais de uma tela de faturas, o programa está fazendo a

conversão para Reais somente das faturas constantes na tela. Ápós um enter o programa reprocessa

ajustando o valor correto em Reais.

 

 

Solução

o programa foi alterado para que o campo vlmi seja atualizado para todas as faturas.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

COMPLEMENTO DO BOLETO DE REMESSA - TAXA AO RECONTABILIZAR IMPOSTOS

Informações Complementares

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

Nota Número 03703 Data: 17/05/2007 Hora: 13:09:21

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

 

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

Nota Número              : 03703

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00166

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

Referência às notas relacionadas:

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

 

02659  - 00001 - 6.0    - 00026  - COMPLEMENTO DO BOLETO DE REMESSA - TAXA AO RECONTABILIZAR IMPOSTO

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

COMPLEMENTO DO BOLETO - ATUALIZACAO CAMPO VLMI

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

Palavras Chave:

COMPLEMENTO DO BOLETO - ATUALIZACAO CAMPO VLMI

 

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

Objetos da nota:

DYNP /PWS/SAPMZYCB110                        0100

REPS /PWS/MZYCB110F01

REPS /PWS/MZYGL110F01

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB110                        0100

 

...

 

  CHAIN.

    FIELD /pws/zycbe031-kursf.

    FIELD /pws/zycbe031-taxair.

    FIELD /pws/zycbe031-taxacide.

 

    MODULE calcula_total.

  ENDCHAIN.

 

  LOOP AT itab_zycbt031_tc.

    FIELD /pws/zycbe048-instituicao MODULE consiste_instituicao.

    MODULE altera_dados.

  ENDLOOP.

* >> Início da inclusão: PAI

  MODULE calcula_vlmi.

* << Fim da inclusão

  CALL SUBSCREEN ss_dados.

  CALL SUBSCREEN ss_html.

 

  MODULE:

          user_command_0200,

          user_command_exit AT EXIT-COMMAND.

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

Modificações efetuadas em REPS /PWS/MZYCB110F01

 

...

      ENDIF.

      itab_zycbt031_tc-belnr_p = itab_zycet033-docfat.

      PERFORM carrega_dados_globais.

      APPEND itab_zycbt031_tc.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM calcula_vlmi.

  DATA: v_vlmeaux_ir   LIKE /pws/zycbt031-vlme,

        v_vlmeaux_cide LIKE /pws/zycbt031-vlme.

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

  DATA: v_tabix TYPE sy-tabix.

  DESCRIBE TABLE itab_zycbt031_tc LINES v_linha.

* << Fim da inclusão

  LOOP AT itab_zycbt031_tc.

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

    v_tabix = sy-tabix.

    IF v_tabix = 1.

      CLEAR: v_vlmi_tot.

    ENDIF.

* << Fim da inclusão

    SELECT SINGLE * FROM /pws/zycbt007

      WHERE bukrs = /pws/zycbe031-bukrs.

    IF NOT /pws/zycbt007-waersb IS INITIAL.

...

 

...

      v_vlmeaux_cide =

      itab_zycbt031_tc-v_vlcide / ( 10 ** ( tcurx-currdec - 2 ) ).

      v_vlmeaux_ir =

      itab_zycbt031_tc-v_vlir / ( 10 ** ( tcurx-currdec - 2 ) ).

      IF ( NOT /pws/zycbe031-kursf IS INITIAL AND

           itab_zycbt031_tc-v_vlmi IS INITIAL ) OR

         v_taxa_alter_p = 'X'.

        itab_zycbt031_tc-v_vlmi =

           ( ( /pws/zycbe031-kursf / v_dfact ) * v_pfact ) *

                                       v_vlmeaux.

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

      ENDIF.

      IF v_linha = v_tabix.

        IF v_vlmi_tot > /pws/zycbe031-vlmi.

          itab_zycbt031_tc-v_vlmi = v_vlmi_tot - /pws/zycbe031-vlmi.

        ELSEIF v_vlmi_tot < /pws/zycbe031-vlmi.

          itab_zycbt031_tc-v_vlmi = /pws/zycbe031-vlmi - v_vlmi_tot.

        ENDIF.

* << Fim da inclusão

      ENDIF.

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

      v_vlmi_tot = v_vlmi_tot + itab_zycbt031_tc-v_vlmi.

* << Fim da inclusão

      IF ( NOT /pws/zycbe031-taxair IS INITIAL AND

           itab_zycbt031_tc-v_vlmiir IS INITIAL )   OR

           v_taxa_alter_i = 'X'.

        itab_zycbt031_tc-v_vlmiir =

        ( ( /pws/zycbe031-taxair / v_dfact ) * v_pfact ) *

                                           v_vlmeaux_ir.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYGL110F01

 

...

    ELSE.

      itab_zycbt031_tc-belnr_p    = /pws/zycbe031-belnr_p.

      itab_zycbt031_tc-belnr_pi   = /pws/zycbe031-belnr_pi.

      itab_zycbt031_tc-belnr_cide = /pws/zycbe031-belnr_cide.

    ENDIF.

    MODIFY itab_zycbt031_tc.

  ENDLOOP.

ENDFORM.

FORM altera_dados.

  DATA: v_currdec LIKE tcurx-currdec.

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

  IF tc_cont-current_line = 1.

    CLEAR: v_vlmi_tot, v_vlmiir_tot.

  ENDIF.

* << Fim da exclusão

  itab_zycbt031_tc-bukrs         = /pws/zycbt031-bukrs.

  itab_zycbt031_tc-gsber         = /pws/zycbe119-gsber.

  itab_zycbt031_tc-werks         = /pws/zycbe119-werks.

  itab_zycbt031_tc-j_1bbranch    = /pws/zycbe119-j_1bbranch.

  itab_zycbt031_tc-belnr_p       = /pws/zycbt031-belnr_p.

  itab_zycbt031_tc-belnr_pi      = /pws/zycbt031-belnr_pi.

  itab_zycbt031_tc-belnr_cide    = /pws/zycbt031-belnr_cide.

  itab_zycbt031_tc-belnr_c       = /pws/zycbe134-belnr_c.

  itab_zycbt031_tc-belnr_ci      = /pws/zycbe134-belnr_ci.

  itab_zycbt031_tc-v_belnr_cide  = v_belnr_cide.

...

 

...

  itab_zycbt031_tc-codnorma      = /pws/zycbe048-codnorma.

  itab_zycbt031_tc-modalidade    = /pws/zycbe048-modalidade.

  CONDENSE itab_zycbt031_tc-nrcontr.

  SELECT SINGLE currdec

    FROM tcurx

    INTO v_currdec

    WHERE currkey = itab_zycbt031_tc-waers.

  IF sy-subrc NE 0.

    v_currdec = 2.

  ENDIF.

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

  v_vlmeaux = itab_zycbt031_tc-v_vlme / ( 10 ** ( v_currdec - 2 ) ).

  IF ( NOT /pws/zycbe031-kursf IS INITIAL AND

       /pws/zycbe064-vlmi IS INITIAL ) OR v_taxa_alter_p = 'X'.

    itab_zycbt031_tc-v_vlmi = /pws/zycbe064-vlmi =

       ( ( /pws/zycbe031-kursf / v_dfact ) * v_pfact ) * v_vlmeaux.

    IF wa_tcurx-currdec = 0.

      itab_zycbt031_tc-v_vlmi = itab_zycbt031_tc-v_vlmi *

                                 ( 10 ** ( wa_tcurx-currdec - 2 ) ).

    ENDIF.

    v_vlmi_tot = v_vlmi_tot + itab_zycbt031_tc-v_vlmi.

    DESCRIBE TABLE itab_zycbt031_tc LINES v_linha.

    IF v_linha = tc_cont-current_line.

      IF v_vlmi_tot > /pws/zycbe031-vlmi.

        v_dif = v_vlmi_tot - /pws/zycbe031-vlmi.

        itab_zycbt031_tc-v_vlmi = itab_zycbt031_tc-v_vlmi - v_dif.

      ELSEIF v_vlmi_tot < /pws/zycbe031-vlmi.

        v_dif = /pws/zycbe031-vlmi - v_vlmi_tot.

        itab_zycbt031_tc-v_vlmi = itab_zycbt031_tc-v_vlmi + v_dif.

      ENDIF.

    ENDIF.

  ELSE.

    itab_zycbt031_tc-v_vlmi = /pws/zycbe064-vlmi.

  ENDIF.

* << Fim da exclusão

  v_vlmeaux = itab_zycbt031_tc-v_vlir / ( 10 ** ( v_currdec - 2 ) ).

  IF ( NOT /pws/zycbe031-taxair IS INITIAL AND

       /pws/zycbe064-vlmiir IS INITIAL ) OR v_taxa_alter_i = 'X'.

    itab_zycbt031_tc-v_vlmiir = /pws/zycbe064-vlmiir =

    ( ( /pws/zycbe031-taxair / v_dfact ) * v_pfact ) * v_vlmeaux.

    IF wa_tcurx-currdec = 0.

      itab_zycbt031_tc-v_vlmiir = itab_zycbt031_tc-v_vlmiir *

                                 ( 10 ** ( wa_tcurx-currdec - 2 ) ).

    ENDIF.

    v_vlmiir_tot = v_vlmiir_tot + itab_zycbt031_tc-v_vlmiir.

...