CE PLUS - Nota 000304

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: Remessa

Data/Hora da Publicação: 17/11/2005 00:00:00

Data/Hora Última Alteração: 18/02/2011 11:35:43

Descrição da Nota: CÁLCULO DO RATEIO DOS IMPOSTOS CONFORME CENTROS DE CUSTOS

Sintoma

O programa faz o rateio dos impostos conforme os valores e centros de custos registrados pelo

usuário na tela de principal (pasta contabilização), mas está ocorrendo uma falha no arredondamento.

 

 

Solução

Foi ajustado para calcular e atribuir para a última partida o valor rateado dos juros.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 00304 Data: 17/11/2005 Hora: 16:23:30

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

 

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

Nota Número              : 00304

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00021

Agrupamento              : 00088

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

CÁLCULO DO RATEIO DOS IMPOSTOS CONFORME CENTROS DE CUSTOS

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

Palavras Chave:

RATEIO IMPOSTOS REMESSA CENTRO CUSTO

 

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

Objetos da nota:

REPS /PWS/MZYCA109F01

REPS /PWS/MZYCA109I01

REPS /PWS/MZYCA109TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCA109F01

 

FORM calcula_vlmi.

 

  IF v_compra = 'X'.

    /pws/zycbe124-ftaxa = 'G'.

  ELSEIF v_venda = 'X'.

    /pws/zycbe124-ftaxa = 'B'.

  ELSEIF v_media = 'X'.

    /pws/zycbe124-ftaxa = 'M'.

  ENDIF.

 

* < Inclusão - Início >

* Chamado 269883 - Renato - 16.11.2005 - Inicio

* Se taxa não é vazia, preenche campo ftaxa para ñ dar diferença ao sair

  IF NOT /pws/zycbe124-kursf IS INITIAL.

    wa_zycbt124-ftaxa = /pws/zycbe124-ftaxa.

  ENDIF.

* Chamado 269883 - Renato - 16.11.2005 - Fim

* < Inclusão - Fim >

 

  CHECK v_status_s = '1'.

* CHAMADO 221566 - 24/03/2005 - INICIO

*  IF NOT /pws/zycbe124-kursf IS INITIAL.

*

*    /pws/zycbe124-vlmi = /pws/zycbe124-vlme * /pws/zycbe124-kursf.

*

*  ELSE.

* CHAMADO 221566 - 24/03/2005 - FIM

  IF itab_zycbt009[] IS INITIAL.

    SELECT * FROM /pws/zycbt009 INTO TABLE itab_zycbt009.

  ENDIF.

 

...

 

ENDFORM.                    "calcula_vlmi

 

 

FORM propor_rateio_imposto.

 

...

 

* < Inclusão - Início >

* Chamado 269883 - Renato - 16.11.2005 - Inicio

  CLEAR: v_indice.

* Chamado 269883 - Renato - 16.11.2005 - Fim

* < Inclusão - Fim >

 

  LOOP AT itab_zycat025.

 

* < Inclusão - Início >

*   Chamado 269883 - Renato - 16.11.2005 - Inicio

    CLEAR: v_vlme.

*   Chamado 269883 - Renato - 16.11.2005 - Fim

* < Inclusão - Fim >

 

 

    LOOP AT itab_zycbt141_p.

*   < Inclusão - Início >

*     Chamado 269883 - Renato - 16.11.2005 - Inicio

      v_indice = v_indice + 1.

*     Chamado 269883 - Renato - 16.11.2005 - Fim

*   < Inclusão - Fim >

 

...

 

* < Inclusão - Início >

*     Chamado 269883 - Renato - 16.11.2005 - Inicio

      v_vlme = v_vlme + itab_zycbt141_i-vlremessa.

*     Chamado 269883 - Renato - 16.11.2005 - Fim

* < Inclusão - Fim >

 

    ENDLOOP.

 

* < Inclusão - Início >

*   Chamado 269883 - Renato - 16.11.2005 - Inicio

*   Se houver difer. no tot do imposto com o total rateado, ajusta valor

    IF     v_vlme > itab_zycat025-vlimpme.

      v_dif = v_vlme - itab_zycat025-vlimpme.

      itab_zycbt141_i-vlremessa = itab_zycbt141_i-vlremessa - v_dif.

      MODIFY itab_zycbt141_i INDEX v_indice.

    ELSEIF v_vlme < itab_zycat025-vlimpme.

      v_dif = itab_zycat025-vlimpme - v_vlme.

      itab_zycbt141_i-vlremessa = itab_zycbt141_i-vlremessa + v_dif.

      MODIFY itab_zycbt141_i INDEX v_indice.

    ENDIF.

*   Chamado 269883 - Renato - 16.11.2005 - Fim

* < Inclusão - Fim >

 

  ENDLOOP.

 

...

 

ENDFORM.                    " propor_rateio_imposto

 

 

FORM verifica_parcelas_principal.

 

...

 

  IF v_total NE /pws/zycbe124-vlme.

    v_dif = v_total - /pws/zycbe124-vlme.

*   Chamado 269883 - Renato - 16.11.2005 - Inicio

*   Não insere tipo de imposto na mensagem por se tratar do Principal

 

* < Excluído - Início >

*   CONCATENATE text-087 itab_zycat025-tpimp /pws/zycbe124-waers

* < Excluído - Fim >

 

* < Inclusão - Início >

    CONCATENATE text-087 /pws/zycbe124-waers

*   Chamado 269883 - Renato - 16.11.2005 - Fim

                INTO v_msg SEPARATED BY space.

* < Inclusão - Fim >

    MESSAGE w061 WITH text-086 v_msg v_dif.

    erro_bi = 'X'.

  ENDIF.

ENDFORM.                    " verifica_parcelas_principal

 

 

 

FORM verifica_parcelas_imposto.

  DATA: v_total  LIKE /pws/zycbe141-vlremessa.

 

* < Excluído - Início >

* Chamado 269883 - Renato - 16.11.2005 - Inicio

*       v_indice TYPE i.

* < Excluído - Fim >

 

* < Alterado - Início >

  CLEAR: v_total, itab_zycbt141, v_indice.

* Chamado 269883 - Renato - 16.11.2005 - Fim

* < Alterado - Fim >

 

...

 

ENDFORM.                    " verifica_parcelas_imposto

 

 

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

Modificações efetuadas em REPS /PWS/MZYCA109I01

 

 

MODULE ver_campos INPUT.

 

  IF sy-tcode <> '/PWS/ZYCB109_E'.

    PERFORM ver_campos.

  ENDIF.

 

 

* Chamado 269883 - Renato - 16.11.2005 - Inicio

* Carrega campo taxa para não dar diferença entre valores de itab¿s

* < Excluído - Início >

* IF v_kursf IS INITIAL AND /pws/zycbe124-kursf IS INITIAL.

* < Excluído - Fim >

 

* < Alterado - Início >

  IF v_kursf IS INITIAL.

* < Alterado - Fim >

* Chamado 269883 - Renato - 16.11.2005 - Fim

 

...

 

* < Inclusão - Início >

*   Chamado 269883 - Renato - 16.11.2005 - Inicio

    IF NOT /pws/zycbe124-kursf IS INITIAL.

      v_kursf = /pws/zycbe124-kursf.

    ENDIF.

*   Chamado 269883 - Renato - 16.11.2005 - Fim

* < Inclusão - Fim >

  ENDIF.

 

...

 

ENDMODULE.                 " VER_CAMPOS  INPUT

 

 

 

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

Modificações efetuadas em REPS /PWS/MZYCA109TOP

 

* < Inclusão - Início >

* Chamado 269883 - Renato - 16.11.2005 - Inicio

  v_indice TYPE i.

* Chamado 269883 - Renato - 16.11.2005 - Fim

* < Inclusão - Fim >

 

 

DATA: v_nome_campo(35) TYPE c,

      v_comp(35)       TYPE c,

      v_cod_grupo      LIKE /pws/zyglt320-cod_grupo,

      cont             TYPE i VALUE 0,

      v_tela           LIKE sy-ucomm,

      wa_zycbe141_aux  LIKE /pws/zycbe141,

      v_dtlanc(10)     TYPE c.