Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Rotina Mensal
Data/Hora da Publicação: 27/01/2006 00:00:00
Data/Hora Última Alteração: 18/02/2011 14:47:31
Descrição da Nota: ROTINA MENSAL VALOR DA DIFERENÇA A PROVISIONAR
Sintoma
Ao rodar a rotina mensal para todos os tipos de contrato, no segundo
relatório (Relatório de contabilidade), o programa não está trazendo
o valor da diferença à provisionar, ou seja, traz igual a 0,00 ao
invés de trazer o valor da diferença à provisionar do primeiro
relatório da rotina mensal. Alguns valores do relatório vem com
casas decimais incorretas.
Solução
Tratar para que o clearing no pagamento receba o valor da diferença a
provisionar.
Quando a moeda não for encontrada, fixar duas casas decimais p/ a mesma.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 00742 Data: 27/01/2006 Hora: 14:45:41
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 00742
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00022
Agrupamento : 00098
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00438 - 00001 - 6.0 - 00022 - NÃO ESTÁ SENDO EFETUADA A CONTABILIZAÇÃO SEPARADA DE ACC/ACE
----------------------------------------------------------------------------------------------------
ROTINA MENSAL VALOR DA DIFERENÇA A PROVISIONAR
----------------------------------------------------------------------------------------------------
Palavras Chave:
ROTINA MENSAL VALOR DA DIFERENÇA A PROVISIONAR
CLEARING NO PAGAMENTO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCBR003
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR003
Contexto: FORM processa_aberto.
...
IF NOT itab_relat-waers = wa_zycbt007-waersb.
WRITE: itab_relat-waers.
ELSE.
WRITE: (5) ' '.
ENDIF.
WRITE: itab_relat-vlmev CURRENCY wa_zycbt007-waersb NO-ZERO,
" Variação cambial
itab_relat-vlmetransf CURRENCY itab_relat-waers NO-ZERO,
itab_relat-vlmitransf CURRENCY wa_zycbt007-waersb NO-ZERO,
" Transferência
213 sy-vline.
IF itab_relat-vlmej > 0.
WRITE: 215 itab_relat-vlmej CURRENCY itab_relat-waers NO-ZERO.
WRITE: 252 itab_relat-aliqir,
260 itab_relat-vlmeir CURRENCY itab_relat-waers NO-ZERO.
ELSE.
WRITE: 231 itab_relat-vlmej CURRENCY itab_relat-waers NO-SIGN
NO-ZERO.
WRITE: 252 itab_relat-aliqir,
260 itab_relat-vlmeir CURRENCY itab_relat-waers NO-ZERO.
ENDIF.
WRITE: AT sy-linsz sy-vline.
* Subtotal
MOVE itab_relat TO wa_itab_relat.
IF itab_relat-vlmitransf IS INITIAL.
ADD itab_relat-vlmej TO v_vlmej_w.
ADD itab_relat-vlmeir TO v_vlmeir_w.
*<< Inicio exclusão >>
* CHECK wa_zycbt007-fprovisao NE 'C' AND
* /pws/zyglt009-calc_rot_sep NE 'S' AND
* /pws/zyglt009-cont_rot_sep NE 'S'.
*<< Fim exclusão >>
*<< Inicio inclusão >>
CHECK ( wa_zycbt007-fprovisao NE 'C' AND
/pws/zyglt009-calc_rot_sep NE 'S' AND
/pws/zyglt009-cont_rot_sep NE 'S' ) OR
wa_zycbt007-fprovisao EQ 'C'.
*<< Fim inclusão >>
* Se for estorno mensal
IF wa_zycbt007-fprovisao EQ space.
ADD itab_relat-vlrprov TO v_vlprov.
ADD itab_relat-vlirprov TO v_vlprovir.
* Preenche itab_contábil
IF NOT itab_relat-vlrprov IS INITIAL.
MOVE-CORRESPONDING wa_itab_relat TO itab_contabil.
itab_contabil-vlmetransf = wa_itab_relat-vlmetransf.
itab_contabil-nrparcp = wa_itab_relat-nrparcp.
itab_contabil-kursf = wa_itab_relat-txc.
itab_contabil-dtcont = s_dtentr.
itab_contabil-vlme = itab_relat-vlrprov.
* CHAMADO 226741 - 09/06/2005 - INICIO
itab_contabil-vlmeir = itab_relat-vlirprov.
* CHAMADO 226741 - 09/06/2005 - FIM
APPEND itab_contabil.
CLEAR itab_contabil.
ENDIF.
* Se for clearing
ELSE.
...
ADD itab_relat-vlmetransf TO v_vlmej_w.
MOVE-CORRESPONDING wa_itab_relat TO itab_contabil.
itab_contabil-vlmetransf = wa_itab_relat-vlmetransf.
itab_contabil-nrparcp = wa_itab_relat-nrparcp.
itab_contabil-kursf = wa_itab_relat-txc.
itab_contabil-dtcont = s_dtentr.
itab_contabil-vlme = itab_relat-vlrprov.
IF wa_zycbt007-fprovisao <> space.
itab_contabil-nrcorresp = wa_itab_relat-nrseqc.
ENDIF.
APPEND itab_contabil.
CLEAR itab_contabil.
IF itab_relat-tpcontr(1) EQ 'P' OR
itab_relat-tpcontr(1) EQ 'S'.
PERFORM processa_subtotal_waers USING v_vlmej_w v_vlmeir_w ' '.
ENDIF.
ENDIF.
* Atualiza os Campos
v_bukrs = itab_relat-bukrs.
v_waers = itab_relat-waers.
v_gsber = itab_relat-gsber.
v_tpcontr = itab_relat-tpcontr.
v_d_newko = itab_relat-d_newko.
v_c_newko = itab_relat-c_newko.
v_bco = itab_relat-bco.
ENDLOOP.
IF wa_zycbt007-fprovisao EQ 'C'.
PERFORM processa_subtotal_waers USING v_vlprov v_vlprovir 'X'.
* Chamado 284160 - Renato - 24.01.2006 - Inicio
DELETE ADJACENT DUPLICATES FROM itab_contabil COMPARING ALL FIELDS.
* Chamado 284160 - Renato - 24.01.2006 - Fim
ELSE.
PERFORM processa_subtotal_waers USING v_vlmej_w v_vlmeir_w 'X'.
ENDIF.
CLEAR : itab_relat.
ENDFORM. " processa_aberto
Contexto: FORM calcula_vlmi USING p_tpcontr
p_waers
p_vlmej
p_txc
CHANGING p_vlmij.
...
READ TABLE itab_tcurx WITH KEY currkey = p_waers.
IF sy-subrc EQ 0 AND
itab_tcurx-currdec EQ 0.
* Chamado 276775 - Renato - 13.12.2005 - Inicio
* AND ( p_tpcontr+0(1) EQ 'P' OR p_tpcontr+0(1) EQ 'S' ).
* Chamado 276775 - Renato - 13.12.2005 - Fim
v_vlmeaux = p_vlmej / ( 10 ** ( itab_tcurx-currdec - 2 ) ).
ELSE.
*<< Inicio inclusão >>
itab_tcurx-currdec = 2.
*<< Fim inclusão >>
v_vlmeaux = p_vlmej.
ENDIF.
p_vlmij = ( ( p_txc / v_defator ) * v_parafator ) * v_vlmeaux.
ENDFORM. " calcula_vlmi
Contexto: FORM montante_converte
USING
value(p_ctmoed) LIKE /pws/zycbt011-ctmoed
value(p_waers) LIKE tcurx-currkey
value(p_vlme) LIKE /pws/zycbt001-vlme
CHANGING
p_taxa LIKE tcurr-ukurs
p_vlmi LIKE /pws/zycbt001-vlme.
...
IF sy-subrc NE 0.
v_defator = 1.
v_parafator = 1.
ENDIF.
READ TABLE itab_tcurx WITH KEY currkey = p_waers TRANSPORTING currdec.
IF sy-subrc EQ 0 AND
itab_tcurx-currdec EQ 0.
v_vlmeaux = p_vlme / ( 10 ** ( itab_tcurx-currdec - 2 ) ).
ELSE.
*<< Inicio inclusão >>
itab_tcurx-currdec = 2.
*<< Fim inclusão >>
v_vlmeaux = p_vlme.
ENDIF.
p_vlmi = ( ( p_taxa / v_defator ) * v_parafator ) * v_vlmeaux.
ENDFORM. " montante_converte
ENDFORM. " montante_converte
ENDFORM. " montante_converte