CE PLUS - Nota 004673

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 11/09/2007 00:00:00

Data/Hora Última Alteração: 23/02/2011 09:14:48

Descrição da Nota: NA NF NÃO LEVA VALOR DE ICMS, DIFERENÇA NA LINHA DO IPI

Sintoma

Nas NF criadas, o valor do ICMS está zerado sendo que na DI, para os três itens, existe valor de

ICMS. Isso causa diferença na linha do IPI

 

 

 

Solução

calcular valor do icms

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

FRETE E SEGURO NÃO ESTÃO DESTACADOS NA NF REMESSA DE ITENS DE SERVIÇO

NA NOTA FISCAL VERIFICAR TABELA ZYCIT062 PARA NÃO INCIDÊNCIA DA DI

AJUSTE PARA LEVAR O VALOR DE II NAS MENSAGENS DA NOTA FISCAL

Informações Complementares

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

Nota Número 04673 Data: 11/09/2007 Hora: 10:48:36

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

 

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

Nota Número              : 04673

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00013

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

Referência às notas relacionadas:

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

 

01848  - 00001 - 6.0    - 00024  - NA NOTA FISCAL TEXTO MENSAGEM NÃO ESTÁ LEVANDO A TAXA SISCOMEX E

02295  - 00002 - 6.0    - 00025  - AJUSTE PARA LEVAR O VALOR DE II NAS MENSAGENS DA NOTA FISCAL

02504  - 00003 - 6.0    - 00025  - FRETE E SEGURO NÃO ESTÃO DESTACADOS NA NF REMESSA DE ITENS DE SER

03302  - 00004 - 7.0    - 00001  - NA NOTA FISCAL VERIFICAR TABELA ZYCIT062 PARA NÃO INCIDÊNCIA DA D

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

NA NF NÃO LEVA VALOR DE ICMS, DIFERENÇA NA LINHA DO IPI

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

Palavras Chave:

NF - VALOR DE ICMS - DIFERENÇA - LINHA DO IPI

 

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

Objetos da nota:

FUNC /PWS/ZYCI_RATEIO_CUSTO

MERG F6DK951494 20070911 104239 PWSCI

MERG F6DK951597 20070911 104243 PWSCI

MERG F6DK951599 20070911 104248 PWSCI

REPS /PWS/MZYCI016F01

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO

 

...

    LOOP AT itab_zycit036_aux WHERE codigo = 'FRETEI' AND

                                 origem = v_ori.

      v_tfrete = v_tfrete + itab_zycit036_aux-vlreal.

    ENDLOOP.

  ENDIF.

  LOOP AT itab_zycit003 .

    IF ( v_vinserv IS INITIAL AND

         itab_zycit003-servico IS INITIAL ) OR

         ( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .

      v_vlfrete =  v_tfrete * ( itab_zycit003-ntgew / v_tpeso ).

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

      IF /pws/zycie085-waersfob NE itab_zycit003-waers.

        PERFORM taxa_converte USING itab_zycit003-waers

                                        /pws/zycie085-dttax

                                                 t001-land1

                                           CHANGING  v_taxa.

        IF NOT v_taxa IS INITIAL.

          itab_zycit003-vlreal = itab_zycit003-vlreal * v_taxa.

          itab_zycit003-netpr  = itab_zycit003-netpr  * v_taxa.

        ENDIF.

        PERFORM taxa_converte USING  /pws/zycie085-waersfob

                                      /pws/zycie085-dttax

                                                 t001-land1

                                           CHANGING  v_taxa.

        IF NOT v_taxa IS INITIAL .

          itab_zycit003-vlreal = itab_zycit003-vlreal / v_taxa.

          itab_zycit003-netpr  = itab_zycit003-netpr  / v_taxa.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      v_tot = v_tot + ( itab_zycit003-netpr * itab_zycit003-qtd_iten ).

      v_tot_vlreal = v_tot_vlreal + ( itab_zycit003-vlreal *

                      itab_zycit003-qtd_iten ).

    ENDIF.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

    modify itab_zycit003.

* << Fim da inclusão

  ENDLOOP.

if /pws/zycit001-regime = '04' and /pws/zycit001-tpdecl = 'DI'.

  LOOP AT itab_zycit443.

...

 

...

                        ( itab_zycit003-vlreal * itab_zycit003-qtd_iten

                           / v_tot_vlreal  ) * itab_despesa-netpr .

                      ENDIF.

                    ELSE.

                        itab_zycit036_aux-vlreal =

                        ( itab_zycit003-vlreal * itab_zycit003-qtd_iten

                           / v_tot_vlreal  ) * itab_despesa-netpr .

                      itab_zycit036_aux-waers_real = itab_despesa-waers.

                    ENDIF.

                  ELSE.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                    IF NOT itab_zycit003-qtd_itend IS INITIAL.

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                  itab_zycit003-qtd_itend / v_tot ) *

                                  itab_despesa-netpr.

                    ELSE.

* << Fim da exclusão

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                 itab_zycit003-qtd_iten / v_tot ) *

                                 itab_despesa-netpr.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                    ENDIF.

* << Fim da exclusão

                    itab_zycit036_aux-waers_real = itab_despesa-waers.

                  ENDIF.

                ENDIF.

                IF NOT itab_despesa-waers IS INITIAL.

...

 

...

                        ( itab_zycit003-vlreal * itab_zycit003-qtd_iten

                           / v_tot_vlreal  ) * itab_despesa-netpr .

                      ENDIF.

                    ELSE.

                        itab_zycit036_aux-vlreal =

                        ( itab_zycit003-vlreal * itab_zycit003-qtd_iten

                           / v_tot_vlreal  ) * itab_despesa-netpr .

                      itab_zycit036_aux-waers_real = itab_despesa-waers.

                    ENDIF.

                  ELSE.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                    IF NOT itab_zycit003-qtd_itend IS INITIAL.

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                  itab_zycit003-qtd_itend / v_tot ) *

                                  itab_despesa-netpr.

                    ELSE.

* << Fim da exclusão

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                 itab_zycit003-qtd_iten / v_tot ) *

                                 itab_despesa-netpr.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                    ENDIF.

* << Fim da exclusão

                    itab_zycit036_aux-waers_real = itab_despesa-waers.

                  ENDIF.

                ENDIF.

                IF NOT itab_despesa-waers IS INITIAL.

...

 

...

      READ TABLE itab_zycit100a INDEX 1.

      SELECT SINGLE * FROM /pws/zycit085

             WHERE nrseqdi = itab_zycit100a-nrseqdi.

      SELECT SINGLE * FROM /pws/zycit093

             WHERE nrseqce = /pws/zycit085-nrbl.

      DESCRIBE TABLE itab_zycit003 LINES v_line_rateio.

      FREE it_desp.

      LOOP AT itab_zycit003

      WHERE servico IS initial.

        v_line_ac = sy-tabix.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

        CLEAR it_desp.

* << Fim da inclusão

        READ TABLE itab_zycit100a WITH KEY nrseq = itab_zycit003-nrseq

                                           ebeln = itab_zycit003-ebeln

                                           ebelp = itab_zycit003-ebelp.

        IF v_line_ac <> v_line_rateio.

          IF NOT /pws/zycit085-ukursseg IS INITIAL AND

             NOT itab_zycit100a-vlseg IS INITIAL.

            v_vlseg = itab_zycit100a-vlseg * v_taxa_usd

              / /pws/zycit085-ukursseg.

            MOVE v_vlseg TO it_desp-vlseg.

            SELECT SINGLE * FROM tcurx

...

 

...

          vltot_ipi = vltot_ipi + vl_imp.

          vl_ipi = vl_ipi + itab_zycit100a-vlipi.

          IF itab_zycit100a-icms_dif IS INITIAL.

            IF ( /pws/zycit085-tpdi EQ 'N' AND

                 NOT '356' CA itab_zycit100a-codregtriicms ) OR

                 ( /pws/zycit085-tpdi EQ 'S' AND

                 NOT '356' CA itab_zycit100a-codregtri ).

              vl_imp = itab_zycit100a-vlicms.

              vltot_icms = vltot_icms + vl_imp.

              vl_icms = vl_icms + itab_zycit100a-vlicms.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

              MOVE: itab_zycit100a-vlicms TO it_desp-vlicms.

* << Fim da inclusão

            ENDIF.

          ENDIF.

          vl_imp = itab_zycit100a-vlpis.

          vltot_pis = vltot_pis + vl_imp.

          vl_pis = vl_pis + itab_zycit100a-vlpis.

          vl_imp = itab_zycit100a-vlcofins.

          vltot_cofins = vltot_cofins + vl_imp.

          vl_cofins = vl_cofins + itab_zycit100a-vlcofins.

        ELSE.

          IF sy-subrc = 0.

...

 

...

                          ENDIF.

                        ELSE.

                          v_tfre = /pws/zycie085-vlfre.

                        ENDIF.

                        v_vtot = /pws/zycie085-vlfob + v_tfre  + v_tseg.

                        IF NOT v_vtot IS INITIAL.

                       itab_zycit036_aux-vlreal =  itab_despesa-netpr *

                         ( ( v_vfob +  v_vfre + v_vseg )  /  v_vtot  ) .

                        ENDIF.

                      ENDIF.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                    ELSE.

                      IF NOT itab_zycit003-qtd_itend IS INITIAL.

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                    itab_zycit003-qtd_itend / v_tot ) *

                                                     itab_despesa-netpr.

* << Fim da exclusão

                      ELSE.

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                     itab_zycit003-qtd_iten / v_tot ) *

                                                     itab_despesa-netpr.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                      ENDIF.

* << Fim da exclusão

                      itab_zycit036_aux-waers_real = itab_despesa-waers.

                    ENDIF.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                  ELSE.

                    IF NOT itab_zycit003-qtd_itend IS INITIAL.

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                  itab_zycit003-qtd_itend / v_tot ) *

                                  itab_despesa-netpr.

* << Fim da exclusão

                    ELSE.

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                 itab_zycit003-qtd_iten / v_tot ) *

                                 itab_despesa-netpr.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                    ENDIF.

* << Fim da exclusão

                    itab_zycit036_aux-waers_real = itab_despesa-waers.

                  ENDIF.

                ENDIF.

...

 

 

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

Modificações efetuadas em MERG F6DK951494 20070911 104239 PWSCI

 

 

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

Modificações efetuadas em MERG F6DK951597 20070911 104243 PWSCI

 

 

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

Modificações efetuadas em MERG F6DK951599 20070911 104248 PWSCI

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

    ENDIF.

  ENDIF.

  v_tamanho = '.............................................'.

  v_ind = v_cont + 1.

  CLEAR:v_valor_r.

  LOOP AT itab_zycit042_mark.

    READ TABLE itab_zycit100 WITH KEY

                                   nrseq = itab_zycit042_mark-nrseq

                                   ebeln = itab_zycit042_mark-ebeln

                                   ebelp = itab_zycit042_mark-ebelp  .

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

    IF sy-subrc EQ 0.

* << Fim da exclusão

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

    IF sy-subrc EQ 0 and itab_zycit100-codregtri ne '3' and

      itab_zycit100-codregtri ne '5'.

* << Fim da inclusão

      v_valor_r = v_valor_r + itab_zycit100-vlii.

    ENDIF.

    READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit042_mark-nrseq

                                   ebeln = itab_zycit042_mark-ebeln

                                   ebelp = itab_zycit042_mark-ebelp.

    MOVE itab_zycit003 TO itab_zycit003_mark.

    APPEND itab_zycit003_mark.

  ENDLOOP.

  v_tamanho = '................'.

  CLEAR v_vldp_x.

...

 

...

    v_tot_real = v_tot_real +

         ( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).

  ENDLOOP.

  DESCRIBE TABLE itab_zycit042 LINES v_lines.

  DESCRIBE TABLE itab_zycit003 LINES v_lin.

  LOOP AT itab_zycit049_aux_r WHERE nrseq = v_nrseq AND

                                    vldp NE 0.

    it_zycee006-indice  = v_ind.

    IF itab_zycit049_aux_r-tpdesp EQ /pws/zycit000-cod_sisc.

      IF itab_zycit049_aux_r-waers NE /pws/zycbt007-waersb.

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

        PERFORM trata_decimais USING itab_zycit049_aux_r-waers

                                     itab_zycit049_aux_r-vldp.

* << Fim da inclusão

        PERFORM taxa_converte USING itab_zycit049_aux_r-waers

             itab_zycit085-dttax CHANGING v_taxa_desp.

        v_vldp  = itab_zycit049_aux_r-vldp *

                        v_taxa_desp.

      ELSE.

        v_vldp = itab_zycit049_aux_r-vldp .

      ENDIF.

      READ TABLE itab_zycit019 WITH KEY

                                tpdesp = itab_zycit049_aux_r-tpdesp.

      READ TABLE itab_zycit020 WITH KEY codigo = itab_zycit019-codigo

                                        regio  =  itab_zycit019-regio.

    ELSE.

      IF itab_zycit049_aux_r-waers NE /pws/zycbt007-waersb.

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

        PERFORM trata_decimais USING itab_zycit049_aux_r-waers

                                     itab_zycit049_aux_r-vldp.

* << Fim da inclusão

        PERFORM taxa_converte USING itab_zycit049_aux_r-waers

                                     /pws/zycit085-dttax

                            CHANGING v_taxa_desp.

        itab_zycit049_aux_r-vldp = itab_zycit049_aux_r-vldp *

         v_taxa_desp.

      ENDIF.

      v_vldp_aux = itab_zycit049_aux_r-vldp.

      LOOP AT itab_zycit003_mark.

        v_idx = sy-tabix.

        CLEAR: itab_zycit039, itab_zycit020.

...

 

...

            CLEAR: itab_zycit039, itab_zycit020, itab_zycit019.

            READ TABLE itab_zycit019 WITH KEY

                                        tpdesp = itab_zycit049-tpdesp.

            IF itab_zycit019-tipo EQ 'A' OR

               itab_zycit019-tipo IS INITIAL.

              READ TABLE itab_zycit020 WITH KEY

                                       codigo = itab_zycit019-codigo.

              READ TABLE itab_zycit039 WITH KEY

                                       codigo = itab_zycit020-codigo.

              IF itab_zycit049-waers NE /pws/zycbt007-waersb.

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

            PERFORM trata_decimais USING itab_zycit049-waers

                                         itab_zycit049-vldp.

* << Fim da inclusão

                PERFORM taxa_converte USING itab_zycit049-waers

                                             /pws/zycit085-dttax

                                    CHANGING v_taxa_desp.

                itab_zycit049-vldp = itab_zycit049-vldp *

                                       v_taxa_desp.

                itab_zycit049-waers = /pws/zycbt007-waersb.

              ENDIF.

              IF v_lines = v_tabix.

                v_vldp = itab_zycit049-vldp - v_tot_vldp.

                itab_zycit042-vldp = itab_zycit042-vldp + v_vldp.

...

 

...

            CLEAR: itab_zycit039, itab_zycit020, itab_zycit019.

            READ TABLE itab_zycit019 WITH KEY

                                        tpdesp = itab_zycit049-tpdesp.

            IF itab_zycit019-tipo EQ 'A' OR

               itab_zycit019-tipo IS INITIAL.

              READ TABLE itab_zycit020 WITH KEY

                                       codigo = itab_zycit019-codigo.

              READ TABLE itab_zycit039 WITH KEY

                                       codigo = itab_zycit020-codigo.

              IF itab_zycit049-waers NE /pws/zycbt007-waersb.

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

            PERFORM trata_decimais USING itab_zycit049-waers

                                         itab_zycit049-vldp.

* << Fim da inclusão

                PERFORM taxa_converte USING itab_zycit049-waers

                                             /pws/zycit085-dttax

                                    CHANGING v_taxa_desp.

                itab_zycit049-vldp = itab_zycit049-vldp *

                                       v_taxa_desp.

                itab_zycit049-waers = /pws/zycbt007-waersb.

              ENDIF.

              IF v_lines = v_tabix.

                v_vldp = itab_zycit049-vldp - v_tot_vldp.

               itab_zycit042_d-vldpii = itab_zycit042_d-vldpii + v_vldp.

...