Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Mercadoria
Data/Hora da Publicação: 24/07/2008 00:00:00
Data/Hora Última Alteração: 22/02/2011 16:14:26
Descrição da Nota: SISTEMA RECLAMA DE DIFERENÇA DE DECIMAIS AO CRIAR FATURA.
Sintoma
No momento de criação do embaque o campo quantidade do embarque aceita números com 5 casas decimais,
porém quando crio a fatura o campo de quantidade da fatura aceita somente 3 casas, e se coloco como
quantidade um número que arredonde aparece a mensagem Quantidade não permitida.
Solução
Atualização no programa da Fatura para arredondamento de valores e cálculo de quantidades.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07023 Data: 24/07/2008 Hora: 16:53:10
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07023
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00006
Agrupamento : 00057
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05951 - 00001 - 7.0 - 00004 - SISTEMA RECLAMA DE DIFERENÇA DE DECIMAIS AO CRIAR FATURA.
----------------------------------------------------------------------------------------------------
SISTEMA RECLAMA DE DIFERENÇA DE DECIMAIS AO CRIAR FATURA.
----------------------------------------------------------------------------------------------------
Palavras Chave:
MENSAGEM - FATURA - EMBARQUE - DI
"PEDIDO NÃO ESTÁ COMPLETAMENTE FATURADO"
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI003I01
REPS /PWS/MZYCI003X01
REPS /PWS/MZYCI023F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
EXPORT v_modi_cria TO MEMORY ID '020'.
PERFORM valida_trans USING '/PWS/ZYCI018_A' 'skip'.
ENDIF.
ELSE.
PERFORM valida_trans USING '/PWS/ZYCI018_C' 'skip'.
ENDIF.
ENDFORM.
FORM call_di.
EXPORT /pws/zycie001-nrseq TO MEMORY ID rimc7.
LOOP AT itab_zycit003.
* >> Início da exclusão: FORM CALL_DI
v_qtd_iten = itab_zycit003-qtd_iten * 1000 .
* << Fim da exclusão
* >> Início da inclusão: FORM CALL_DI
v_qtd_iten = itab_zycit003-qtd_iten * 10000 .
* << Fim da inclusão
v_qtd_iten = trunc( v_qtd_iten ) .
* >> Início da exclusão: FORM CALL_DI
v_qtd_iten = v_qtd_iten / 1000.
* << Fim da exclusão
* >> Início da inclusão: FORM CALL_DI
v_qtd_iten = v_qtd_iten / 10000.
* << Fim da inclusão
IF itab_zycit003-invoiced NE v_qtd_iten AND
itab_zycit003-servico NE 'X'.
MESSAGE e061 WITH text-046 itab_zycit003-ebeln
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
ELSE.
PERFORM busca_taxa USING itab_zycit003-waers
CHANGING v_taxa.
ENDIF.
ELSE.
v_taxa = 1.
ENDIF.
IF /pws/zycie006-nrseq_pgfat IS INITIAL AND
itab_zycit003-toinv IS INITIAL.
v_toinv = ( itab_zycit003-qtd_iten -
* >> Início da exclusão: FORM CALCULA_TOTAL_PLANEJADO
itab_zycit003-invoiced ) * 1000.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULA_TOTAL_PLANEJADO
itab_zycit003-invoiced ) * 10000.
* << Fim da inclusão
v_toinv = trunc( v_toinv ).
* >> Início da exclusão: FORM CALCULA_TOTAL_PLANEJADO
v_toinv = v_toinv / 1000.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULA_TOTAL_PLANEJADO
v_toinv = v_toinv / 10000.
* << Fim da inclusão
itab_zycit003-toinv = v_toinv.
MODIFY itab_zycit003 INDEX v_tabix TRANSPORTING toinv.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003I01
...
OR /pws/zycie006-tpfatura = ' '.
itab_zycit003-vlreal = /pws/zycie003-vlreal.
itab_zycit003-fabric = /pws/zycie003-fabric.
itab_zycit003-porigem = /pws/zycie003-porigem.
itab_zycit003-paquis = /pws/zycie003-paquis.
itab_zycit003-mfrpn = /pws/zycie003-mfrpn.
PERFORM atualiza_fornecedor.
IF /pws/zycie006-nrseq_pgfat IS INITIAL AND itab_zycit132[] IS
INITIAL.
vcalc = itab_zycit003-toinv + itab_zycit003-invoiced.
* >> Início da exclusão: MODULE ALTERA_ITAB_ZYCIT003
IF vcalc > itab_zycit003-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão: MODULE ALTERA_ITAB_ZYCIT003
vcalc2 = itab_zycit003-qtd_iten.
if vcalc > vcalc2.
* << Fim da inclusão
MESSAGE s015 WITH text-119.
itab_zycit003-toinv = itab_zycit003-qtd_iten - itab_zycit003-invoiced.
ENDIF.
ENDIF.
IF /pws/zycie006-ratseg = '3'.
itab_zycit003-vlseg_fat = /pws/zycie003-vlseg_fat.
itab_zycit003-vlseg_aux = /pws/zycie003-vlseg_fat.
ENDIF.
IF /pws/zycie006-ratfre = 'N'.
itab_zycit003-vlfre_fat = /pws/zycie003-vlfre_fat.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003X01
...
v_tot_frete LIKE /pws/zycit036-vlmov,
v_tot_vlseg LIKE /pws/zycit036-vlmov,
v_frcob(20),
v_bco_cob(35),
v_estorno,
v_flag_regime,
v_erro,
v_prof,
v_tabix LIKE sy-tabix,
vcalc LIKE /pws/zycie263-qtd_iten,
* >> Início da inclusão:
vcalc2 LIKE /pws/zycie263-qtd_iten,
* << Fim da inclusão
v_sisco1 LIKE /pws/zycit085-vlfob,
v_sisco2 LIKE /pws/zycit085-vlfob,
v_sisco3 LIKE /pws/zycit085-vlfob,
v_sisco_item LIKE /pws/zycit085-vlfob,
v_sisco_tot LIKE /pws/zycit085-vlfob,
v_stop,
vsaldo LIKE /pws/zycie263-qtd_iten,
v_flag_saldo,
v_idx LIKE sy-tabix,
tqtd LIKE /pws/zycie003-qtd_iten,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
ENDIF.
IF sy-subrc EQ 0.
p_v_bl = '1'.
LOOP AT it_verbl.
CLEAR vsaldo.
LOOP AT itab_zycit263 WHERE nrseq = it_verbl-nrseq AND
ebeln = it_verbl-ebeln AND
ebelp = it_verbl-ebelp.
vsaldo = vsaldo + itab_zycit263-qtd_iten.
ENDLOOP.
* >> Início da exclusão: FORM VERIFY_BL
v_qtd_itens = it_verbl-qtd_iten * 1000 .
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFY_BL
v_qtd_itens = it_verbl-qtd_iten * 10000 .
* << Fim da inclusão
v_qtd_itens = trunc( v_qtd_itens ) .
* >> Início da exclusão: FORM VERIFY_BL
v_qtd_itens = v_qtd_itens / 1000.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFY_BL
v_qtd_itens = v_qtd_itens / 10000.
* << Fim da inclusão
IF v_qtd_itens NE vsaldo.
CLEAR p_v_bl.
CLEAR v_qtd_itens.
...