CE PLUS - Nota 011377

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 05/08/2011 00:00:00

Data/Hora Última Alteração: 05/08/2011 10:40:37

Descrição da Nota: RATEIO DE SEGURO NÃO BATE COM TOTAL DE ITENS QUANDO A MOEDA É DIFERENTE

Sintoma

O valor do rateio de seguro está incorreto, não bate com o total dos itens quando a moeda é

diferente.

 

 

Solução

Ajustar conversão de moeda e rateio entre os itens quando está flegado por FOB na ZYCIT000 ou sem

flag.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

RATEIO DE SEGURO INCORRETO NA DI.

ARREDONDAMENTO DA NOTA FISCAL VALORES DE IMPOSTOS X BASE DE CÁLCULO ICMS

AJUSTE NO CALCULO DO VALOR DA MERCADORIA PARA CONFORME FEITO NA FATURA

ERRO NO CÁLCULO DE DESPESAS E VALORES DA NF UTILIZANDO GRANEL + CIF

O VALOR DO RATEIO DO FRETE NA DI GRANEL ESTÁ CALCULADO ERRADO.

AJUSTADO REATEIO DO SEGURO NA DI PARA PROCESSOS CIF

Informações Complementares

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

Nota Número 11377 Data: 05/08/2011 Hora: 10:27:38

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

 

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

Nota Número              : 11377

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 8.0

Pacote                   : 00008

Agrupamento              : 00080

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

Referência às notas relacionadas:

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

 

02453  - 00001 - 6.0    - 00025  - O VALOR DO RATEIO DO FRETE NA DI GRANEL ESTÁ CALCULADO ERRADO.

04009  - 00002 - 7.0    - 00001  - ERRO NO CÁLCULO DE DESPESAS E VALORES DA NF UTILIZANDO GRANEL + C

05431  - 00003 - 7.0    - 00003  - AJUSTADO REATEIO DO SEGURO NA DI PARA PROCESSOS CIF

07026  - 00004 - 7.0    - 00006  - ARREDONDAMENTO DA NOTA FISCAL VALORES DE IMPOSTOS X BASE DE CÁLCU

07823  - 00005 - 7.0    - 00008  - RATEIO DE SEGURO INCORRETO NA DI.

08231  - 00006 - 7.0    - 00009  - AJUSTE NO CALCULO DO VALOR DA MERCADORIA PARA CONFORME FEITO NA F

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

RATEIO DE SEGURO NÃO BATE COM TOTAL DE ITENS QUANDO A MOEDA É DIFERENTE

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

Palavras Chave:

ITENS - DI - SEGURO - MOEDAS DIFERENTES - CONVERSAO

 

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

Objetos da nota:

REPS /PWS/MZYCI023F01

REPS /PWS/MZYCI023F03

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F01

 

...

 

  v_vlreal  = /pws/zycie003-vlreal.

  v_decim1 = /pws/zycie003-qtd_iten * 10000.

  v_decim2 = /pws/zycie003-qtd_itend * 10000.

  v_qtd_c3 =  trunc( v_decim1 ) / 10000.

  v_qtd_dc3 = trunc( v_decim2 ) / 10000.

  IF NOT /pws/zycie003-qtd_itend IS INITIAL.

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

    t_vmle3 = t_vmle_d2 = t_vmle  = v_vlreal *

                                      v_qtd_dc3.

* << Fim da exclusão

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

    t_vmle  = v_vlreal *  v_qtd_dc3.

* << Fim da inclusão

    t_vmle2 = /pws/zycie003-vlreal *  v_qtd_dc3.

  ELSE.

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

    t_vmle3 = t_vmle_d2 = t_vmle  = v_vlreal * v_qtd_c3.

* << Fim da exclusão

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

    t_vmle  = v_vlreal * v_qtd_c3.

* << Fim da inclusão

    t_vmle2 = /pws/zycie003-vlreal *  v_qtd_c3.

  ENDIF.

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

  IF /pws/zycie085-waersfob NE itab_it-waersbem.

    PERFORM: calc_conv_moeda:

             USING    itab_it-waersbem

                      /pws/zycie085-waersfob

             CHANGING t_vmle.

  ENDIF.

  t_vmle3 = t_vmle_d2 = t_vmle .

* << Fim da inclusão

  v_it_plan = /pws/zycie003-netpr * v_qtd_c3.

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

  v_frete_nm  = v_bltofat.

* << Fim da exclusão

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

  v_frete_nm  = /pws/zycie093-prepaid + /pws/zycie093-collect +

                /pws/zycie093-ternacion.

* << Fim da inclusão

  IF NOT v_ntgewd IS INITIAL.

    t_ivfre = ( /pws/zycie003-ntgewd / v_ntgewd ) * s_frvr.

    v_tot_fre = ( /pws/zycie003-ntgewd / v_ntgewd ) * v_frete_nm.

  ELSE.

    IF NOT v_ntgew IS INITIAL.

      t_ivfre = ( /pws/zycie003-ntgew / v_ntgew ) * s_frvr.

      v_tot_fre = ( /pws/zycie003-ntgew / v_ntgew ) * v_frete_nm.

    ENDIF.

  ENDIF.

  IF /pws/zycie085-mdadicao NE 'S'.

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

    IF /pws/zycie093-waersfre NE itab_it-waersbem.

* << Fim da exclusão

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

    IF /pws/zycie093-waersfre NE /pws/zycie085-waersfob.

* << Fim da inclusão

      PERFORM: calc_conv_moeda:

               USING    /pws/zycie093-waersfre

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

                        itab_it-waersbem

* << Fim da exclusão

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

                        /pws/zycie085-waersfob

* << Fim da inclusão

               CHANGING v_tot_fre.

    ENDIF.

...

 

...

  IF v_nr_itens GT 1.

    t_ivdesp =  t_ivdesp + v_desp .

  ELSE.

    t_ivdesp =  t_ivdesp + v_sisco3.

  ENDIF.

  CLEAR: v_sisco3.

  IF /pws/zycie100a-dttaxbem IS INITIAL.

    MOVE itab_it-dttaxbem TO /pws/zycie100a-dttaxbem.

  ENDIF.

  IF p_tipo NE 'B' OR t_ivmle IS INITIAL OR v_dit = 'N'.

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

    t_ivmle_d2 = t_ivmle = t_vmle * /pws/zycie100a-dttaxbem.

* << Fim da exclusão

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

    t_ivmle_d2 = t_ivmle = t_vmle * /pws/zycie085-ukursfob.

* << Fim da inclusão

  ENDIF.

  PERFORM valor_cfr USING p_tipo.

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

  IF itab_it-waersbem NE /pws/zycie085-waersfob AND

     /pws/zycie085-ukursfob > 0 AND

     /pws/zycit000-rat_seg_fob IS INITIAL.

    v_cfr = ( v_cfr * /pws/zycie100a-dttaxbem ) /

                              /pws/zycie085-ukursfob.

  ENDIF.

* << Fim da exclusão

  IF s_inco1_ci EQ 'CIF'.

    IF NOT itab_it-qtd_itend IS INITIAL.

      READ TABLE itab_zycit003 WITH KEY nrseq = itab_it-nrseq

                                        ebeln = itab_it-ebeln

                                        ebelp = itab_it-ebelp.

      IF sy-subrc EQ 0.

        v_cif_fat = ( itab_zycit003-vlreal * itab_it-qtd_itendc3 ) +

 

...

 

...

 

        ELSE.

          IF NOT itab_it-qtd_itend IS INITIAL.

            t_vmle_d2 = t_vmle2 = t_vmle2 + v_tot_fre.

          ELSE.

            t_vmle_d2 = t_vmle = t_vmle + v_tot_fre.

            t_vmle2 = t_vmle.

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

          ENDIF.

* << Fim da inclusão

          ENDIF.

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

        IF /pws/zycie085-waersfob NE itab_it-waersbem.

          PERFORM: calc_conv_moeda:

                   USING    /pws/zycie085-waersfob

                            itab_it-waersbem

                   CHANGING t_vmle2.

* << Fim da inclusão

        ENDIF.

        t_ivmle2 = t_vmle2 * itab_it-dttaxbem.

...

 

...

          t_ivmle_d2 =  t_ivmle  =

           ( ( (  ( itab_it-vlreal *

               /pws/zycie085-ukursfob ) * itab_it-qtd_itenc3 ) +

                    ( itab_it-vlfre_fat * /pws/zycie085-ukursfob ) +

                   ( itab_it-vlseg_fat * /pws/zycie085-ukursfob ) ) -

            ( itab_it-vlfre + itab_it-vlseg + v_diftern ) ).

          t_ivmle_d2 = t_ivmle  =

          t_ivmle + v_desp_fren +  t_ivfre  + t_ivseg .

        ENDIF.

        t_vmle2 = t_vmle.

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

        IF /pws/zycie085-waersfob NE itab_it-waersbem.

          PERFORM: calc_conv_moeda:

                   USING    /pws/zycie085-waersfob

                            itab_it-waersbem

                   CHANGING t_vmle2.

        ENDIF.

* << Fim da inclusão

        t_ivmle2 = t_vmle2 * itab_it-dttaxbem.

        t_ivadu = t_ivmle2 + t_ivdesp - v_desp_fren.

        v_casasd3 = t_ivdesp.

        v_ivadud = t_ivmle2 + v_casasd3 .

    ENDCASE.

  ELSE.

    CASE s_inco1_ci.

      WHEN 'FOB'.

 

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F03

 

...

 

FORM valor_cfr USING p_tipo.

  CLEAR: v_tcfr.

  s_fbvr_s_d = /pws/zycie085-vlfob * /pws/zycie085-ukursfob.

  IF /pws/zycit000-rat_seg_fob IS INITIAL.

    IF s_inco1_ci EQ 'CIF'.

      v_tcfr =  /pws/zycie085-vlfob + v_sgtofat + v_bltofat.

      v_cfr = t_vmle .

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

    ELSEIF s_inco1_ci NE 'FOB'.

      v_tcfr =  /pws/zycie085-vlfob +

                ( s_frvr / /pws/zycie085-ukursfob ).

      v_cfr = t_vmle + ( t_ivfre / /pws/zycie085-ukursfob ).

* << Fim da inclusão

    ELSE.

      v_tcfr =  /pws/zycie085-vlfob .

      v_cfr = t_vmle  .

    ENDIF.

  ELSE.

    IF s_inco1_ci EQ 'CIF'.

      v_tcfr =  /pws/zycie085-vlfob + v_sgtofat + v_bltofat.

      v_cfr = t_vmle .

    ELSE.

      v_tcfr = s_fbvr_s_d   .

...