CE PLUS - Nota 011617

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 10/11/2011 00:00:00

Data/Hora Última Alteração: 10/11/2011 13:18:38

Descrição da Nota: TRAT. PARA ARRED. VALOR DA NOTA E PREENCH. LINHA II NA NOTA DE REMESSA

Sintoma

Quando a quantidade do item é grande o total da nota fica diferente da base de ICMS.

Não está lançando a linha de II nos impostos da nota fiscal de remessa quando o processo não possui

valor de II.

 

 

Solução

Ajustada função de tratamento de arredondamento para utilizar o valor total da mercadoria no ajuste

da base de imposto.

Ajustado programa para criar a linha de II mesmo que o imposto não possua valor para lançamento.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

DUMP NA NOTA FISCAL GLOBAL COM BASE DE ICMS ZERADA

BASE DE IPI E ICMS INCORRETOS NA NF EM PROCESSOS FUNDAP

LEVA VALORES ERRADO AO CRIAR NF REMESSA.

Informações Complementares

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

Nota Número 11617 Data: 10/11/2011 Hora: 09:13:50

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

 

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

Nota Número              : 11617

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00009

Agrupamento              : 00093

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

Referência às notas relacionadas:

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

 

07233  - 00001 - 7.0    - 00006  - DUMP NA NOTA FISCAL GLOBAL COM BASE DE ICMS ZERADA

08151  - 00002 - 7.0    - 00008  - BASE DE IPI E ICMS INCORRETOS NA NF EM PROCESSOS FUNDAP

11600  - 00003 - 8.0    - 00009  - LEVA VALORES ERRADO AO CRIAR NF REMESSA.

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

TRAT. PARA ARRED. VALOR DA NOTA E PREENCH. LINHA II NA NOTA DE REMESSA

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

Palavras Chave:

NOTA - FISCAL - LANÇAR - II - REMESSA - ARREDONDAMENTO - VALOR

/PWS/SAPMZYCI016 - MERCADORIA - FUNÇÃO

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

Objetos da nota:

FUNC /PWS/ZYCI_AJUSTE_IMP_NF

FUNC /PWS/ZYCI_RATEIO_CUSTO

REPS /PWS/MZYCI016F01

REPS /PWS/MZYCI016X01

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_AJUSTE_IMP_NF

*Modificações da Função:

 

*Pasta Importação:

*Excluir os campos:

              codregtriicms

              codregtri

              icms_dif

              tpdi

 

*Incluir os campos:

 INCO     TYPE  /PWS/ZYCIT031-INCO1_CI

 ZYCIT085 TYPE  /PWS/ZYCIT085

 ZYCIT093 TYPE  /PWS/ZYCIT093

 ZYCIT100 TYPE  /PWS/ZYCIT100

 

*Pasta Tabelas:

*Incluir a tabela:

T_ZYCIT003 LIKE /PWS/ZYCIT003

 

 

*Codigo fonte:

 

...

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

  DATA: v_valor_i    TYPE /pws/zycee007-othbas,

        v_valor_i2   TYPE /pws/zycee007-othbas,

        v_ternacion  TYPE /pws/zycit042-netpr,

        v_ntgew_tot  TYPE /pws/zycit003-ntgew,

        v_moeda      TYPE tcurc-/pws/codmo,

        v_taxa       TYPE /pws/zycit174-txconver.

* << Fim da inclusão

  CONSTANTS cent(5) TYPE p DECIMALS 2 VALUE '0.04'.

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

  IF zycit062-flag_icms = 'X'.

    wa_zycit003 = zycit003.

    IF  icms_dif = 'X' OR

      wa_zycit003-basred IS INITIAL.

      wa_zycit003-basred = '100'.

      v_basred =  '100'.

* << Fim da exclusão

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

  IF t001-land1 IS INITIAL.

    SELECT SINGLE * FROM t001 WHERE bukrs EQ zycit085-bukrs.

* << Fim da inclusão

    ENDIF.

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

    CLEAR v_advicms.

    IF NOT  wa_zycit003-advalicms IS INITIAL.

      IF zycit062-bs_pis_cof IS INITIAL.

        IF NOT  wa_zycit003-basred IS INITIAL OR

           NOT  wa_zycit003-basred EQ '100'.

          v_advicms = ( (  wa_zycit003-advalicms / 100 ) *

           (  wa_zycit003-basred / 100 ) ) .

* << Fim da exclusão

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

  LOOP AT t_zycit003.

    IF NOT t_zycit003-qtd_itend IS INITIAL.

      ADD t_zycit003-ntgewd TO v_ntgew_tot.

* << Fim da inclusão

        ELSE.

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

          v_advicms = (  wa_zycit003-advalicms / 100 ).

* << Fim da exclusão

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

      ADD t_zycit003-ntgew TO v_ntgew_tot.

* << Fim da inclusão

        ENDIF.

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

  ENDLOOP.

  IF NOT zycit003-qtd_itend IS INITIAL.

    wa_zycit003-qtd_iten = zycit003-qtd_itend.

* << Fim da inclusão

      ELSE.

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

        v_advicms = (  wa_zycit003-advalicms / 100 ).

* << Fim da exclusão

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

    wa_zycit003-qtd_iten = zycit003-qtd_iten.

* << Fim da inclusão

      ENDIF.

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

      v_basred = ( v_advicms * 10000 /  wa_zycit003-advalicms ).

* << Fim da exclusão

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

  IF /pws/zycit085-ukursfob IS INITIAL.

    v_valor_i   =  ( zycit003-vlreal * wa_zycit003-qtd_iten )

                                      * zycit100-dttaxbem.

    v_valor_i   = ( zycit003-vlfre_fat * zycit100-dttaxbem )

                                    + v_valor_i .

    v_valor_i  = ( zycit003-vlseg_fat * zycit100-dttaxbem )

                          + v_valor_i.

  ELSE.

    IF zycit085-mdadicao EQ 'N'.

      v_valor_i   =  ( zycit003-vlreal * wa_zycit003-qtd_iten )

                                        * zycit100-dttaxbem.

* << Fim da inclusão

    ELSE.

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

      v_basred    =  wa_zycit003-basred.

* << Fim da exclusão

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

      v_valor_i   =  ( zycit003-vlreal * wa_zycit003-qtd_iten )

                                        * zycit085-ukursfob .

    ENDIF.

    v_valor_i   = ( zycit003-vlfre_fat * zycit100-dttaxbem )

                                        + v_valor_i .

    v_valor_i   = ( zycit003-vlseg_fat * zycit100-dttaxbem )

                                        + v_valor_i .

  ENDIF.

  IF inco = 'C&F' AND

  NOT zycit003-qtd_iten IS INITIAL AND

  NOT zycit003-qtd_itend IS INITIAL .

    IF NOT zycit100-vlfre IS INITIAL.

      v_valor_i  = v_valor_i  -

        ( zycit100-vlfre - zycit003-vlfre_fat *

                                    zycit100-dttaxbem ) +

        ( zycit100-vlfre - zycit003-vlfre_fat *

                                        zycit100-dttaxbem ) .

    ENDIF.

    IF inco = 'C+I' AND

      NOT zycit003-qtd_iten IS INITIAL AND

      NOT zycit003-qtd_itend IS INITIAL .

      IF NOT zycit100-vlseg IS INITIAL.

        v_valor_i  = v_valor_i  -

          ( zycit100-vlseg - zycit003-vlseg_fat *

              zycit100-dttaxbem ) +

          ( zycit100-vlseg - zycit003-vlseg_fat *

             zycit100-dttaxbem ).

      ENDIF.

    ENDIF.

  ELSEIF inco = 'CIF' AND

  NOT zycit003-qtd_iten IS INITIAL AND

  NOT zycit003-qtd_itend IS INITIAL.

    v_valor_i  =

    ( ( zycit100-vlfob * zycit100-dttaxbem ) +

           zycit100-vlfre + zycit100-vlseg ) .

* << Fim da inclusão

    ENDIF.

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

    IF NOT  zycee007-taxval IS INITIAL AND

       NOT   icms_dif = 'X'.

      IF ( tpdi EQ 'N' AND

         NOT ' 36' CA   codregtriicms ) OR

         ( tpdi EQ 'S' AND

         NOT '56'   CA   codregtri    ) .

        IF (   codregtriicms EQ '5'  AND

        ' N' CA zycit062-susp_nf ) OR

             codregtriicms NE '5' .

          IF NOT zycit062-tred IS INITIAL.

            v_vlverif2 =

            ( (  zycee007-taxval /   zycee007-menge )

                * 100 ) / v_basred.

            v_vlverif4 = (   zycee007-taxval * 100 )

                                              / v_basred.

* << Fim da exclusão

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

  IF inco EQ 'C&F' OR

     inco EQ 'CIF'.

    IF NOT /pws/zycit093-ternacion IS INITIAL.

      PERFORM trata_decimais USING /pws/zycit093-waersfre

                         CHANGING /pws/zycit093-ternacion.

      v_ternacion = /pws/zycit093-ternacion.

      IF /pws/zycie085-dttax IS INITIAL.

        /pws/zycie085-dttax = zycit085-dttax.

      ENDIF.

      IF /pws/zycit093-waersfre = /pws/zycbt007-waersb.

        IF NOT v_ntgew_tot IS INITIAL.

          IF NOT zycit003-qtd_itend IS INITIAL AND

             NOT zycit003-ntgewd IS INITIAL.

            CLEAR v_ternacion.

* << Fim da inclusão

          ELSE.

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

            v_vlverif2 =

            (  zycee007-taxval /   zycee007-menge ).

            v_vlverif4 =   zycee007-taxval.

* << Fim da exclusão

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

            v_ternacion = ( v_ternacion * zycit003-ntgew

                    / v_ntgew_tot ).

* << Fim da inclusão

          ENDIF.

        ENDIF.

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

        v_valor_i  = v_valor_i - v_ternacion.

      ELSE.

        SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

               waers = zycit093-waersfre.

        IF sy-subrc EQ 0.

          SELECT SINGLE txconver FROM /pws/zycit174 INTO v_taxa

                  WHERE codconver = v_moeda

                    AND vigen_inicio <= zycit085-dttax

                    AND vigen_fim    >= zycit085-dttax

                    AND land1         = t001-land1.

          IF sy-subrc NE 0.

            v_taxa = '1'.

* << Fim da inclusão

      ENDIF.

    ENDIF.

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

    IF tpdecl EQ 'DSI'

    AND   codregtri EQ '4'.

      IF NOT zycit062-tred IS INITIAL.

        v_vlverif2 = ( (

             zycee007-taxval /   zycee007-menge )

              * 100 ) / v_basred.

        v_vlverif4 = (   zycee007-taxval * 100 ) / v_basred.

* << Fim da exclusão

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

        v_ternacion = v_ternacion * v_taxa.

        IF NOT v_ntgew_tot IS INITIAL.

          IF NOT zycit003-qtd_itend IS INITIAL AND

             NOT zycit003-ntgewd IS INITIAL.

            CLEAR v_ternacion.

* << Fim da inclusão

      ELSE.

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

        v_vlverif2 =

        (  zycee007-taxval /   zycee007-menge ).

        v_vlverif4 =   zycee007-taxval.

* << Fim da exclusão

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

            v_ternacion = ( v_ternacion * zycit003-ntgew

                  / v_ntgew_tot ).

          ENDIF.

* << Fim da inclusão

      ENDIF.

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

        v_valor_i  = v_valor_i - v_ternacion .

* << Fim da inclusão

    ENDIF.

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

    v_vlverif3 = v_vlverif2 *  zycee007-menge.

* << Fim da exclusão

  ENDIF.

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

  IF zycit062-flag_icms = 'X'.

    IF NOT zycee007-base2 IS INITIAL.

      zycee007-base2 = zycee007-base2 +

                      ( v_vlverif3 - v_vlverif4 ).

    ELSEIF NOT zycee007-othbas2 IS INITIAL.

      zycee007-othbas2 = zycee007-othbas2 +

                      ( v_vlverif3 - v_vlverif4 ).

    ELSEIF NOT zycee007-p_excbas IS INITIAL.

      zycee007-p_excbas = zycee007-p_excbas +

                      ( v_vlverif3 - v_vlverif4 ).

* << Fim da exclusão

    ENDIF.

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

    IF NOT zycee007-base IS INITIAL.

      zycee007-base = zycee007-base +

                   ( v_vlverif3 - v_vlverif4 ).

    ELSEIF NOT zycee007-othbas IS INITIAL.

      zycee007-othbas = zycee007-othbas +

                   ( v_vlverif3 - v_vlverif4 ) .

    ELSEIF NOT zycee007-c_excbas IS INITIAL.

      zycee007-c_excbas = zycee007-c_excbas +

                   ( v_vlverif3 - v_vlverif4 ) .

* << Fim da exclusão

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

  IF NOT zycit003-qtd_itend IS INITIAL.

    v_valor_i = v_valor_i *

                 ( zycee007-menge / zycit003-qtd_itend ).

  ELSE.

    v_valor_i = v_valor_i *

                 ( zycee007-menge / zycit003-qtd_iten ).

* << Fim da inclusão

    ENDIF.

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

  IF zycit062-flag_icms = 'X'.

    ADD zycee007-taxval TO v_valor_i.

* << Fim da inclusão

  ENDIF.

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

  v_tot_nf = vlunit *  zycee007-menge.

  v_vlverif =   zycee007-netoth +  zycee007-netfre +

                zycee007-netins + v_tot_nf.

  v_tot_nf = zycee007-netpr *  zycee007-menge.                         .

  v_vlverif1 =  zycee007-netoth +  zycee007-netfre +

                zycee007-netins + v_tot_nf.

* << Fim da exclusão

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

  v_tot_nf = zycee007-netpr *  zycee007-menge.

  v_vlverif1 =  v_tot_nf.

  v_vlverif = v_valor_i.

* << Fim da inclusão

  IF NOT zycee007-base IS INITIAL.

    zycee007-base = zycee007-base +

                    ( v_vlverif1 - v_vlverif ).

  ELSEIF NOT zycee007-othbas IS INITIAL.

    zycee007-othbas =

          zycee007-othbas  +

         ( v_vlverif1 - v_vlverif ).

  ELSEIF NOT zycee007-c_excbas IS INITIAL.

    zycee007-c_excbas =

          zycee007-c_excbas  +

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO

 

...

            vl_ii     = vl_ii     + itab_zycit100a-vlii    .

            vl_ipi    = vl_ipi    + itab_zycit100a-vlipi   .

            vl_pis    = vl_pis    + itab_zycit100a-vlpis   .

            vl_cofins = vl_cofins + itab_zycit100a-vlcofins.

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

            IF /pws/zycit062-arbase EQ 'X'.

* << Fim da inclusão

            itab_zycit100a-vlii     = vl_ii     - vltot_ii    .

            itab_zycit100a-vlipi    = vl_ipi    - vltot_ipi   .

            itab_zycit100a-vlpis    = vl_pis    - vltot_pis   .

            itab_zycit100a-vlcofins = vl_cofins - vltot_cofins.

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

            ENDIF.

* << Fim da inclusão

          IF itab_zycit100a-icms_dif IS INITIAL.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

  IF  NOT itab_zyglt100-zexit_ativa IS INITIAL.

    PERFORM (itab_zyglt100-formulario) IN PROGRAM

       (itab_zyglt100-programa) IF FOUND.

  ENDIF.

  IF /pws/zycit062-arbase EQ 'X'.

    IF v_fundap EQ 'X'.

      v_unitf = itab_zycit480-vl_unit.

    ELSE.

      v_unitf = itab_zycit042-netpr.

    ENDIF.

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

    IF /pws/zycit031-inco1_ci IS INITIAL.

      SELECT SINGLE * FROM /pws/zycit031

        WHERE inco1 = /pws/zycit001-inco1

       AND land1 EQ t001-land1.                         "#EC CI_NOFIRST

    ENDIF.

    IF /pws/zycit093 IS INITIAL.

      SELECT SINGLE * FROM /pws/zycit093

      WHERE nrseqce = /pws/zycit085-nrbl.

    ENDIF.

    wa_zycit100 = itab_zycit100.

* << Fim da inclusão

    CALL FUNCTION '/PWS/ZYCI_AJUSTE_IMP_NF'

         EXPORTING

              vlunit        = v_unitf

              zycit003      = itab_zycit003

              zycit062      = /pws/zycit062

              tpdecl        = /pws/zycit001-tpdecl

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

              codregtriicms = itab_zycit100-codregtriicms

              codregtri     = itab_zycit100-codregtri

              icms_dif      = itab_zycit100-icms_dif

              tpdi          = /pws/zycit085-tpdi

* << Fim da exclusão

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

              inco           = /pws/zycit031-inco1_ci

              zycit085       = /pws/zycit085

              zycit093       = /pws/zycit093

              zycit100       = wa_zycit100

         TABLES

              t_zycit003     = itab_zycit003[]

* << Fim da inclusão

         CHANGING

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

              zycee007      = it_zycee007.

* << Fim da exclusão

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

              zycee007       = it_zycee007.

* << Fim da inclusão

  ENDIF.

  APPEND it_zycee007.

  CLEAR it_zycee007.

...

 

...

        ELSE.

          it_zycee007-taxval = v_icms.

        ENDIF.

        v_base = it_zycee007-othbas.

    ENDCASE.

    it_zycee007-taxtyp  = itab_zycit033-taxtyp.

    it_zycee007-taxtyp2 = itab_zycit033-taxtyp2.

    READ TABLE itab_zycit398 WITH KEY tributos = 'PIS'.

    IF sy-subrc EQ 0.

      it_zycee007-leipis = itab_zycit398-leipis.

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

    ENDIF.

    READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.

    IF sy-subrc EQ 0.

      it_zycee007-leicofins = itab_zycit398-leicofins.

* << Fim da exclusão

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

      it_zycee007-taxtyp_pis = itab_zycit398-taxtyp.

    ELSE.

      CLEAR it_zycee007-taxtyp_pis.

* << Fim da inclusão

    ENDIF.

    itab_zycit100-basepis = itab_zycit100-basecofins =

                  itab_zycit100-basecofins /

                  itab_zycit044-menge * itab_zycit044-qtd_item.

    IF NOT itab_zycit100-vlpis IS INITIAL.

      CLEAR itab_zycit036.

      READ TABLE itab_zycit036 WITH KEY nrseq  = itab_zycit044-nrseq

                                        ebeln  = itab_zycit044-ebeln

                                        ebelp  = itab_zycit044-ebelp

                                        codigo = 'PIS'.

      it_zycee007-taxval_pis = itab_zycit036-vlreal /

      itab_zycit044-menge * itab_zycit044-qtd_item.

    ELSE.

      CLEAR it_zycee007-taxval_pis .

    ENDIF.

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

    READ TABLE itab_zycit398 WITH KEY tributos = 'PIS'.

    IF sy-subrc EQ 0.

      it_zycee007-taxtyp_pis = itab_zycit398-taxtyp.

    ELSE.

      CLEAR it_zycee007-taxtyp_pis.

    ENDIF.

* << Fim da exclusão

    IF NOT it_zycee007-taxval_pis IS INITIAL.

      it_zycee007-rate_pis   = itab_zycit100-advalpis.

    ENDIF.

    CASE itab_zycit398-tribpiscof.

      WHEN 1.

        v_montante1 = itab_zycit100-basepis.

        it_zycee007-base_pis = v_montante1.

      WHEN 2.

        v_montante1 = itab_zycit100-basepis.

        it_zycee007-pis_excbas = v_montante1.

        CLEAR it_zycee007-taxval_pis.

        CLEAR it_zycee007-rate_pis.

      WHEN 3.

        v_montante1 = itab_zycit100-basepis.

        it_zycee007-othbas_pis = v_montante1.

    ENDCASE.

    READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.

    IF sy-subrc EQ 0.

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

      it_zycee007-taxtyp_cof = itab_zycit398-taxtyp.

* << Fim da inclusão

      it_zycee007-leicofins = itab_zycit398-leicofins.

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

    ELSE.

      CLEAR it_zycee007-taxtyp_cof.

* << Fim da inclusão

    ENDIF.

    IF NOT itab_zycit100-vlcofins IS INITIAL.

      CLEAR itab_zycit036.

      READ TABLE itab_zycit036 WITH KEY nrseq  = itab_zycit044-nrseq

                                        ebeln  = itab_zycit044-ebeln

                                        ebelp  = itab_zycit044-ebelp

                                        codigo = 'COFINS'.

      it_zycee007-taxval_cof = itab_zycit036-vlreal /

                      itab_zycit044-menge * itab_zycit044-qtd_item.

    ELSE .

      CLEAR it_zycee007-taxval_cof .

    ENDIF.

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

    READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.

    IF sy-subrc EQ 0.

      it_zycee007-taxtyp_cof = itab_zycit398-taxtyp.

    ELSE.

      CLEAR it_zycee007-taxtyp_cof.

    ENDIF.

* << Fim da exclusão

    IF NOT it_zycee007-taxval_cof IS INITIAL.

      it_zycee007-rate_cof   = itab_zycit100-advalcofins.

    ENDIF.

    CASE itab_zycit398-tribpiscof.

      WHEN 1.

        v_montante1 = itab_zycit100-basecofins.

        it_zycee007-base_cof = v_montante1.

      WHEN 2.

        v_montante1 = itab_zycit100-basecofins.

        it_zycee007-cof_excbas = v_montante1.

        CLEAR it_zycee007-taxval_cof.

        CLEAR it_zycee007-rate_cof.

      WHEN 3.

        v_montante1 = itab_zycit100-basecofins.

        it_zycee007-othbas_cof = v_montante1.

    ENDCASE.

    READ TABLE itab_zycit398 WITH KEY tributos = 'ICMSST'.

    IF sy-subrc EQ 0.

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

      itab_zycit100-baseicms_st = itab_zycit100-baseicms_st /

                    itab_zycit044-menge * itab_zycit044-qtd_item.

* << Fim da inclusão

      IF NOT itab_zycit100-vlicms_st IS INITIAL.

        CLEAR itab_zycit036.

      READ TABLE itab_zycit036 WITH KEY nrseq  = itab_zycit044-nrseq

                                        ebeln  = itab_zycit044-ebeln

                                        ebelp  = itab_zycit044-ebelp

                                          codigo = 'ICMSST'.

        it_zycee007-taxval_st = itab_zycit036-vlreal /

                        itab_zycit044-menge * itab_zycit044-qtd_item.

      ELSE .

        CLEAR it_zycee007-taxval_st .

...

 

...

          CLEAR it_zycee007-rate_st.

        WHEN 3.

          v_montante1 = itab_zycit100-baseicms_st.

          it_zycee007-othbas_st = v_montante1.

      ENDCASE.

    ELSE.

      CLEAR it_zycee007-taxtyp_st.

    ENDIF.

    READ TABLE itab_zycit398 WITH KEY tributos = 'II'.

    IF sy-subrc EQ 0.

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

      itab_zycit100-baseii = itab_zycit100-baseii /

                    itab_zycit044-menge * itab_zycit044-qtd_item.

      it_zycee007-taxtyp_ii = itab_zycit398-taxtyp.

* << Fim da inclusão

      IF NOT itab_zycit100-vlii IS INITIAL.

        CLEAR itab_zycit036.

      READ TABLE itab_zycit036 WITH KEY nrseq  = itab_zycit044-nrseq

                                        ebeln  = itab_zycit044-ebeln

                                        ebelp  = itab_zycit044-ebelp

                                          codigo = 'II'.

        it_zycee007-taxval_ii = itab_zycit036-vlreal /

                        itab_zycit044-menge * itab_zycit044-qtd_item.

      ELSE .

        CLEAR it_zycee007-taxval_ii .

      ENDIF.

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

    ELSE .

      CLEAR it_zycee007-taxval_ii .

    ENDIF.

* << Fim da exclusão

    IF NOT it_zycee007-taxval_ii IS INITIAL.

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

      it_zycee007-taxtyp_ii = itab_zycit398-taxtyp.

* << Fim da exclusão

      it_zycee007-rate_ii   = itab_zycit003-advalii.

    ENDIF.

    CASE itab_zycit398-tribpiscof.

      WHEN 1.

        v_montante1 = itab_zycit100-baseii.

        it_zycee007-base_ii = v_montante1.

      WHEN 2.

        v_montante1 = itab_zycit100-baseii.

        it_zycee007-ii_excbas = v_montante1.

        CLEAR it_zycee007-taxval_ii.

        CLEAR it_zycee007-rate_ii.

      WHEN 3.

        v_montante1 = itab_zycit100-baseii.

        it_zycee007-othbas_ii = v_montante1.

    ENDCASE.

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

    ELSE .

      CLEAR it_zycee007-taxval_ii .

    ENDIF.

* << Fim da inclusão

    CASE itab_zycit033-tribipi.

      WHEN 1.

        IF NOT itab_zycit100-baseipi IS INITIAL.

          it_zycee007-base2 = itab_zycit100-baseipi /

             itab_zycit044-menge * itab_zycit044-qtd_item .

        ENDIF.

        IF v_basred IS INITIAL.

          v_basred = 100.

        ENDIF.

        it_zycee007-p_excbas =  v_outras_ic + v_ipi.

...

 

...

                            v_ipi

                      CHANGING it_zycee007-othbas2

                               it_zycee007-p_excbas

    IF FOUND.

  ENDIF.

  IF /pws/zycit062-arbase EQ 'X'.

    IF v_fundap EQ 'X'.

      v_unitf = itab_zycit480r-vl_unit.

    ELSE.

      v_unitf = itab_zycit044-netpr.

    ENDIF.

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

    IF /pws/zycit031-inco1_ci IS INITIAL.

      SELECT SINGLE * FROM /pws/zycit031

        WHERE inco1 = /pws/zycit001-inco1

       AND land1 EQ t001-land1.                         "#EC CI_NOFIRST

    ENDIF.

    IF /pws/zycit093 IS INITIAL.

      SELECT SINGLE * FROM /pws/zycit093

      WHERE nrseqce = /pws/zycit085-nrbl.

    ENDIF.

    wa_zycit100 = itab_zycit100.

* << Fim da inclusão

    CALL FUNCTION '/PWS/ZYCI_AJUSTE_IMP_NF'

         EXPORTING

              vlunit        = v_unitf

              zycit003      = itab_zycit003

              zycit062      = /pws/zycit062

              tpdecl        = /pws/zycit001-tpdecl

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

              codregtriicms = itab_zycit100-codregtriicms

              codregtri     = itab_zycit100-codregtri

              icms_dif      = itab_zycit100-icms_dif

              tpdi          = /pws/zycit085-tpdi

* << Fim da exclusão

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

              inco           = /pws/zycit031-inco1_ci

              zycit085       = /pws/zycit085

              zycit093       = /pws/zycit093

              zycit100       = wa_zycit100

         TABLES

              t_zycit003     = itab_zycit003[]

* << Fim da inclusão

         CHANGING

              zycee007      = it_zycee007.

  ENDIF.

  APPEND it_zycee007.

  CLEAR it_zycee007.

ENDFORM.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI016X01

 

...

* >> Início da inclusão:

DATA wa_zycit100 TYPE /pws/zycit100.

* << Fim da inclusão

DATA: END OF COMMON PART a.