CE PLUS - Nota 008231

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 24/03/2009 00:00:00

Data/Hora Última Alteração: 22/02/2011 14:04:08

Descrição da Nota: AJUSTE NO CALCULO DO VALOR DA MERCADORIA PARA CONFORME FEITO NA FATURA

Sintoma

O valor da mercadoria calculado na DI está diferente do valor da mercadoria.

 

 

Solução

Ajustada DI para utilizar a quantidade com 3 casas decimais no calculo do valor dos itens.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

NÃO SOMA O FRETE RODOVIÁRIO NO TOTAL DA FATURA DA ADIÇÃO DA DI

AJUSTES PARA TRATAMENTOS DE IPI ISENÇÃO, COURIER E GRANEL NA DI E NF

AJUSTE DE PREFORMANCE. DUMP DETALHE DO ITEM, DI COM MAIS DE 999 ITENS

NECESSÁRIA EXIT PARA TEXTO COMPLEMENTARES DA DI

ERRO RATEIO DESPESAS, VARIAÇÃO CAMBIAL, VLR DO SEGURO, GRANEL DA DI

AJUSTADO RATEIO DO SEGURO PARA PROCESSOS CIF A GRANEL

Informações Complementares

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

Nota Número 08231 Data: 24/03/2009 Hora: 11:00:44

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

 

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

Nota Número              : 08231

Categoria                : Erro de Programa

Prioridade               : Baixa

Versão PW.CE             : 7.0

Pacote                   : 00009

Agrupamento              : 00091

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

Referência às notas relacionadas:

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

 

04750  - 00001 - 7.0    - 00002  - ERRO RATEIO DESPESAS, VARIAÇÃO CAMBIAL, VLR DO SEGURO, GRANEL DA

05477  - 00002 - 7.0    - 00003  - AJUSTADO RATEIO DO SEGURO PARA PROCESSOS CIF A GRANEL

06176  - 00003 - 7.0    - 00004  - AJUSTES PARA TRATAMENTOS DE IPI ISENÇÃO, COURIER E GRANEL NA DI E

06643  - 00004 - 7.0    - 00005  - NÃO SOMA O FRETE RODOVIÁRIO NO TOTAL DA FATURA DA ADIÇÃO DA DI

07673  - 00005 - 7.0    - 00007  - NECESSÁRIA EXIT PARA TEXTO COMPLEMENTARES DA DI

07873  - 00006 - 7.0    - 00008  - AJUSTE DE PREFORMANCE. DUMP DETALHE DO ITEM, DI COM MAIS DE 999 I

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

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

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

Palavras Chave:

VALOR - MERCADORIA - QUANTIDADE - CASAS - DECIMAIS

/PWS/SAPMZYCI003

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

Objetos da nota:

REPS /PWS/MZYCI023F01

REPS /PWS/MZYCI023F02

REPS /PWS/MZYCI023F03

REPS /PWS/MZYCI023F05

REPS /PWS/MZYCI023X01

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F01

 

...

FORM load_ifre USING p_tipo.

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

  DATA: v_qtd_c3 TYPE /pws/zycit263-qtd_iten,

        v_qtd_dc3 TYPE /pws/zycit263-qtd_iten.

* << Fim da inclusão

...

 

...

    SELECT SINGLE qtd_iten ntgewd FROM /pws/zycit003 INTO

  (/pws/zycie003-qtd_iten, /pws/zycie003-ntgewd)

       WHERE nrseq EQ /pws/zycie003-nrseq

       AND   ebeln EQ /pws/zycie003-ebeln

       AND   ebelp EQ /pws/zycie003-ebelp.

  ELSE.

    /pws/zycie003-qtd_iten = wa_zycit003-qtd_iten.

    /pws/zycie003-ntgewd   = wa_zycit003-ntgewd  .

  ENDIF.

  v_vlreal  = /pws/zycie003-vlreal.

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

  v_qtd_c3 = /pws/zycie003-qtd_iten * 10000.

  v_qtd_dc3 = /pws/zycie003-qtd_itend * 10000.

  v_qtd_c3 = trunc( v_qtd_c3 ) / 10000.

  v_qtd_dc3 = trunc( v_qtd_dc3 ) / 10000.

* << Fim da inclusão

  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 * /pws/zycie003-qtd_itend.

    t_vmle2 = /pws/zycie003-vlreal *  /pws/zycie003-qtd_itend.

* << Fim da exclusão

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

    t_vmle3 = t_vmle_d2 = t_vmle  = v_vlreal *

                                      v_qtd_dc3.

    t_vmle2 = /pws/zycie003-vlreal *  v_qtd_dc3.

* << Fim da inclusão

  ELSE.

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

    t_vmle3 = t_vmle_d2 = t_vmle  = v_vlreal * /pws/zycie003-qtd_iten.

    t_vmle2 = /pws/zycie003-vlreal *  /pws/zycie003-qtd_iten.

* << Fim da exclusão

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

    t_vmle3 = t_vmle_d2 = t_vmle  = v_vlreal * v_qtd_c3.

    t_vmle2 = /pws/zycie003-vlreal *  v_qtd_c3.

* << Fim da inclusão

  ENDIF.

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

  v_it_plan = /pws/zycie003-netpr * /pws/zycie003-qtd_iten.

* << Fim da exclusão

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

  v_it_plan = /pws/zycie003-netpr * v_qtd_c3.

* << Fim da inclusão

  v_frete_nm  = v_bltofat.

  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.

...

 

...

                      nrseq = itab_it-nrseq

                      ebeln = itab_it-ebeln

                      ebelp = itab_it-ebelp.

          IF sy-subrc EQ 0.

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

              PERFORM: calc_conv_moeda USING    itab_zycit003-waers

                                         /pws/zycie085-waersfob

                                       CHANGING  itab_zycit003-netpr.

            ENDIF.

            t_ivdes2 =

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

          ( ( itab_zycit003-netpr * itab_zycit003-qtd_iten ) /

* << Fim da exclusão

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

          ( ( itab_zycit003-netpr * itab_zycit003-qtd_itenc3 ) /

* << Fim da inclusão

              v_tot_plan  ) * itab_zycit049-vlreal.

          ENDIF.

        ENDIF.

      ELSE.

        IF NOT v_tot_real 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.

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

              PERFORM: calc_conv_moeda USING    itab_zycit003-waers

                                         /pws/zycie085-waersfob

                                       CHANGING  itab_zycit003-vlreal.

            ENDIF.

            IF NOT v_tot_real IS INITIAL.

              t_ivdes2 =  ( itab_zycit003-vlreal *

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

                            itab_zycit003-qtd_iten

* << Fim da exclusão

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

                            itab_zycit003-qtd_itenc3

* << Fim da inclusão

                 / v_tot_real  ) * itab_zycit049-vlreal.

            ENDIF.

          ENDIF.

        ENDIF.

      ENDIF.

      IF p_tipo = 'I'.

        itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.

        MODIFY itab_zycit049 TRANSPORTING vldp_aux.

      ENDIF.

      IF t_ivdes2 > 0.

...

 

...

     /pws/zycit000-rat_seg_fob IS INITIAL.

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

                              /pws/zycie085-ukursfob.

  ENDIF.

  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.

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

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

* << Fim da exclusão

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

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

* << Fim da inclusão

                itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat .

      ENDIF.

      IF NOT v_tcif_fat IS INITIAL.

        t_ivseg = itab_it-vlseg =

            ( v_cif_fat / v_tcif_fat ) * s_stvr.

        v_tot_seg = ( v_cif_fat / v_tcif_fat ) * v_sgtofat.

      ENDIF.

    ELSE.

      READ TABLE itab_zycit003 WITH KEY nrseq = itab_it-nrseq

                                        ebeln = itab_it-ebeln

                                        ebelp = itab_it-ebelp.

      IF sy-subrc EQ 0.

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

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

* << Fim da exclusão

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

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

* << Fim da inclusão

                itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat .

      ENDIF.

      IF NOT v_tcfr IS INITIAL AND NOT v_tcif_fat IS INITIAL.

        t_ivseg = itab_it-vlseg =

        ( v_cif_fat / ( v_tcif_fat ) ) * s_stvr.

        v_tot_seg = ( v_cif_fat / ( v_tcif_fat ) ) * v_sgtofat.

      ENDIF.

    ENDIF.

  ELSE.

    IF NOT v_tcfr IS INITIAL.

...

 

...

        v_casasd3 = t_ivdesp.

        v_ivadud = t_ivmle2 + v_casasd3 + v_casasd .

      WHEN 'CIF'.

        CLEAR v_difgran .

        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.

            t_vmle =

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

                    itab_it-vlreal * itab_it-qtd_itend.

* << Fim da exclusão

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

                    itab_it-vlreal * itab_it-qtd_itendc3.

* << Fim da inclusão

            itab_it-vlfob = t_vmle.

            /pws/zycie100a-vlfob = t_vmle.

            t_vmle_d2 = t_vmle = t_vmle + v_tot_fre  + v_tot_seg .

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

            t_ivmle  = (  itab_it-vlreal  * itab_it-qtd_itend ) *

* << Fim da exclusão

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

            t_ivmle  = (  itab_it-vlreal  * itab_it-qtd_itendc3 ) *

* << Fim da inclusão

                        /pws/zycie085-ukursfob  .

            t_ivmle_d2 = t_ivmle .

          ENDIF.

        ELSE.

          t_vmle =

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

         ( ( (   itab_it-vlreal * itab_it-qtd_iten ) +

* << Fim da exclusão

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

         ( ( (   itab_it-vlreal * itab_it-qtd_itenc3 ) +

* << Fim da inclusão

             itab_it-vlfre_fat + itab_it-vlseg_fat  ) -

                   ( v_tot_fre + v_tot_seg + v_diftern ) ) .

          itab_it-vlfob = t_vmle.

          /pws/zycie100a-vlfob = t_vmle.

          t_vmle_d2 = t_vmle = t_vmle + v_tot_fre  + v_tot_seg .

          v_diftern =  v_diftern * /pws/zycie085-ukursfob .

          t_ivmle_d2 =  t_ivmle  =

           ( ( (  ( itab_it-vlreal *

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

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

* << Fim da exclusão

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

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

* << Fim da inclusão

                    ( 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.

        t_ivmle2 = t_vmle2 * itab_it-dttaxbem.

        t_ivadu = t_ivmle2 + t_ivdesp - v_desp_fren.

        v_casasd3 = t_ivdesp.

...

 

...

  PERFORM soma_despesa_acr.

  LOOP AT itab_it.

    v_idx = sy-tabix.

    IF v_idx EQ v_ipt AND v_ipt NE 1.

      itab_it-vlfob = v_tval - v_aux_rateio.

    ELSE.

      IF s_inco1_ci NE 'FOB' AND itab_it-vlfre_fat IS INITIAL.

        IF NOT /pws/zycie085-ukursfre IS INITIAL.

          IF s_inco1_ci = 'C&F'.

            IF NOT v_tval3 IS INITIAL.

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

              itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )

* << Fim da exclusão

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

              itab_it-vlfob = ( ( itab_it-qtd_itenc3 * itab_it-vlreal )

* << Fim da inclusão

                          / v_tval3 ) * v_tval.

            ENDIF.

          ELSE.

            IF NOT v_tval3 IS INITIAL AND

               NOT /pws/zycie085-ukursseg IS INITIAL.

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

              itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )

* << Fim da exclusão

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

              itab_it-vlfob = ( ( itab_it-qtd_itenc3 * itab_it-vlreal )

* << Fim da inclusão

                            / v_tval3 ) * v_tval -

                         ( itab_it-vlseg / /pws/zycie085-ukursseg ).

            ENDIF.

          ENDIF.

        ENDIF.

      ELSE.

        IF NOT v_tval3 IS INITIAL.

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

          itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )

* << Fim da exclusão

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

          itab_it-vlfob = ( ( itab_it-qtd_itenc3 * itab_it-vlreal )

* << Fim da inclusão

                        / v_tval3 ) * v_tval.

        ENDIF.

      ENDIF.

      v_aux_rateio = v_aux_rateio + itab_it-vlfob.

    ENDIF.

    IF itab_it-codregtripiscofi  IS INITIAL.

      itab_it-codregtripiscofi = '1'.

    ENDIF.

    IF itab_it-codregtri IS INITIAL.

      MOVE 1 TO itab_it-codregtri.

...

 

...

           itab_zycit118b, itab_zycit121b, itab_zycit121c,

           itab_zycit124b, itab_zycit049b, itab_zycit049c,

           itab_zycit195,  itab_zycit200b, itab_mercosul,

           rtextx.

  LOOP AT itab_it.

    IF itab_it-adicao = wa_it-adicao.

      IF NOT itab_it-qtd_iten IS INITIAL.

        CASE s_inco1_ci.

          WHEN 'C&F'.

            itab_it-vlreal_aux2 =

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

        ( ( ( itab_it-vlreal *  itab_it-qtd_iten ) + itab_it-vldiffob +

                itab_it-vlfre_me ) / itab_it-qtd_iten ) -

              ( itab_it-frn / itab_it-qtd_iten ) .

* << Fim da exclusão

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

        ( ( ( itab_it-vlreal *  itab_it-qtd_itenc3 ) +

          itab_it-vldiffob + itab_it-vlfre_me ) / itab_it-qtd_itenc3 ) -

                                  ( itab_it-frn / itab_it-qtd_itenc3 ) .

* << Fim da inclusão

          WHEN 'CIF'.

            itab_it-vlreal_aux2 =

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

        ( ( ( itab_it-vlreal *  itab_it-qtd_iten ) + itab_it-vldiffob +

               itab_it-vlfre_me + itab_it-vlseg_me )

             / itab_it-qtd_iten ) -

             ( itab_it-frn / itab_it-qtd_iten ) .

* << Fim da exclusão

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

        ( ( ( itab_it-vlreal *  itab_it-qtd_itenc3 ) +

          itab_it-vldiffob + itab_it-vlfre_me + itab_it-vlseg_me )

                                            / itab_it-qtd_itenc3 ) -

             ( itab_it-frn / itab_it-qtd_itenc3 ) .

* << Fim da inclusão

          WHEN 'FOB'.

            itab_it-vlreal_aux2 = itab_it-vlreal -

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

             ( itab_it-frn / itab_it-qtd_iten ) .

* << Fim da exclusão

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

             ( itab_it-frn / itab_it-qtd_itenc3 ) .

* << Fim da inclusão

        ENDCASE.

      ENDIF.

      APPEND itab_it TO itab_itb.

      IF itab_it-qtd_itend IS INITIAL.

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

        v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_iten.

* << Fim da exclusão

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

        v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_itenc3.

* << Fim da inclusão

      ELSE.

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

        v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_itend.

* << Fim da exclusão

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

        v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_itendc3.

* << Fim da inclusão

      ENDIF.

      IF itab_it-qtd_itend IS INITIAL.

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

        v_itad_real = v_itad_real + itab_it-vlreal * itab_it-qtd_iten.

* << Fim da exclusão

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

        v_itad_real = v_itad_real + itab_it-vlreal * itab_it-qtd_itenc3.

* << Fim da inclusão

      ELSE.

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

        v_itad_real = v_itad_real + itab_it-vlreal * itab_it-qtd_itend.

* << Fim da exclusão

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

        v_itad_real = v_itad_real + itab_it-vlreal *

                                                itab_it-qtd_itendc3.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    IF itab_it-qtd_itend IS INITIAL.

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

      v_ttad_plan = v_ttad_plan + itab_it-netpr * itab_it-qtd_iten.

      v_ttad_real = v_ttad_real + itab_it-vlreal * itab_it-qtd_iten.

* << Fim da exclusão

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

      v_ttad_plan = v_ttad_plan + itab_it-netpr * itab_it-qtd_itenc3.

      v_ttad_real = v_ttad_real + itab_it-vlreal * itab_it-qtd_itenc3.

* << Fim da inclusão

    ELSE.

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

      v_ttad_plan = v_ttad_plan + itab_it-netpr * itab_it-qtd_itend.

      v_ttad_real = v_ttad_real + itab_it-vlreal * itab_it-qtd_itend.

* << Fim da exclusão

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

      v_ttad_plan = v_ttad_plan + itab_it-netpr * itab_it-qtd_itendc3.

      v_ttad_real = v_ttad_real + itab_it-vlreal * itab_it-qtd_itendc3.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  LOOP AT itab_itb.

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

  a_vlrtot  = a_vlrtot + ( ( itab_itb-qtd_iten * itab_itb-vlreal_aux2 )

                                                       + itab_itb-frn ).

* << Fim da exclusão

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

    a_vlrtot  = a_vlrtot + ( ( itab_itb-qtd_itenc3 *

                              itab_itb-vlreal_aux2 ) + itab_itb-frn ).

* << Fim da inclusão

    a_vladu  = a_vladu +  itab_itb-vlmerc_ad.

    a_vmler  = a_vladu * itab_itb-dttaxbem.

    a_qtdeest = a_qtdeest + itab_itb-qtdeumest.

    a_uqtde   = a_uqtde + itab_itb-unit_qtde.

    a_adbase  = a_adbase + itab_itb-baseantid.

    LOOP AT itab_zycit115 WHERE nrseq = itab_itb-nrseq AND

                                ebeln = itab_itb-ebeln AND

                                ebelp = itab_itb-ebelp.

      APPEND itab_zycit115 TO itab_zycit115b.

    ENDLOOP.

...

 

...

      itab_it-codregtripiscofi = '3'.

    ELSEIF itab_zycit003-modalidade EQ 'S'.

      itab_it-codregtripiscofi = '5'.

    ENDIF.

    IF itab_it-codregtripiscofi  IS INITIAL.

      itab_it-codregtripiscofi = '1'.

    ENDIF.

    IF v_dit = 'N'.

      IF NOT itab_zycit003-qtd_itend IS INITIAL.

        itab_it-qtd_iten = itab_zycit003-qtd_itend.

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

        itab_it-qtd_itenc3 = itab_zycit003-qtd_itendc3.

* << Fim da inclusão

      ENDIF.

      IF sy-tcode = '/PWS/ZYCI023_C'.

        IF itab_it-advalii   IS INITIAL.

          itab_it-advalii   = itab_zycit003-aliqii.

        ENDIF.

        IF itab_it-advalipi  IS INITIAL.

          itab_it-advalipi  = itab_zycit003-aliqipi.

        ENDIF.

        IF itab_it-advalicms IS INITIAL.

          itab_it-advalicms = itab_zycit003-aliqicms.

...

 

...

        itab_it-codmat = '01'.

      ENDIF.

      READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.

      IF sy-subrc EQ 0.

        itab_it-inco1  = itab_zycit001-inco1.

        itab_it-agente = itab_zycit001-agente.

      ENDIF.

      IF NOT itab_it-qtd_itencacl IS INITIAL.

        IF itab_it-qtd_itencacl > itab_it-qtd_iten.

         itab_it-qtd_iten     = itab_it-qtd_itencacl - itab_it-qtd_iten.

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

         itab_it-qtd_itenc3 = itab_it-qtd_itencacl - itab_it-qtd_itenc3.

* << Fim da inclusão

          itab_it-qtd_itencacl = 0.

          itab_it-cacl         = 'X'.

        ENDIF.

      ENDIF.

      READ TABLE itab_zycit263 WITH KEY

           nrseq = itab_it-nrseq

           ebeln = itab_it-ebeln

           ebelp = itab_it-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit006 WITH KEY

...

 

...

    ELSE.

      APPEND itab_it.

    ENDIF.

    IF NOT itab_it-qtd_itend IS INITIAL.

      v_tntgew  = v_tntgew + itab_it-ntgewd.

    ELSE.

      v_tntgew  = v_tntgew + itab_it-ntgew.

    ENDIF.

    v_tsegfat = v_tsegfat + itab_it-vlseg_fat.

    IF itab_it-qtd_itencacl IS INITIAL.

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

      v_tval = v_tval + ( itab_it-qtd_iten * itab_it-vlreal ).

      v_tmle = v_tmle + ( ( itab_it-qtd_iten * itab_it-vlreal )

* << Fim da exclusão

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

      v_tval = v_tval + ( itab_it-qtd_itenc3 * itab_it-vlreal ).

      v_tmle = v_tmle + ( ( itab_it-qtd_itenc3 * itab_it-vlreal )

* << Fim da inclusão

                      * itab_it-dttaxbem ).

    ELSE.

      v_tval = v_tval + ( itab_it-qtd_itencacl * itab_it-vlreal ).

      v_tmle = v_tmle + ( ( itab_it-qtd_itencacl * itab_it-vlreal )

                      * itab_it-dttaxbem ).

    ENDIF.

    MOVE-CORRESPONDING itab_zycit003 TO itab_itens_funcao.

    APPEND itab_itens_funcao.

  ENDLOOP.

  v_tmle_d2 = v_tmle.

...

 

...

    READ TABLE itab_inco WITH KEY ebeln = itab_it-ebeln.

    IF sy-subrc EQ 0.

      itab_it-inco_item = itab_inco-inco1.

    ENDIF.

    READ TABLE itab_zycit003 WITH KEY ebeln = itab_it-ebeln

                                      ebelp = itab_it-ebelp.

    IF sy-subrc EQ 0.

      IF NOT itab_it-vlfre_fat IS INITIAL AND

         NOT itab_zycit003-qtd_iten IS INITIAL.

        itab_it-vlreal = itab_it-vlreal +

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

         ( itab_it-vlfre_fat / itab_zycit003-qtd_iten ).

* << Fim da exclusão

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

         ( itab_it-vlfre_fat / itab_zycit003-qtd_itenc3 ).

* << Fim da inclusão

        CLEAR itab_it-vlfre_fat.

      ENDIF.

      IF NOT itab_it-vlseg_fat IS INITIAL AND

         NOT itab_zycit003-qtd_iten IS INITIAL.

        itab_it-vlreal = itab_it-vlreal +

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

        ( itab_it-vlseg_fat / itab_zycit003-qtd_iten ).

* << Fim da exclusão

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

        ( itab_it-vlseg_fat / itab_zycit003-qtd_itenc3 ).

* << Fim da inclusão

        CLEAR itab_it-vlseg_fat.

      ENDIF.

    ENDIF.

    itab_it-vlreal_dest = itab_it-vlreal.

    CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'

         EXPORTING

              input  = itab_it-matnr_item

         IMPORTING

              output = itab_it-matnr_item.

    IF sy-subrc <> 0.

...

 

...

FORM update_item.

  CLEAR:   itab_zycit003.

  REFRESH: itab_zycit003.

  IF NOT itab_it[] IS INITIAL.

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

             FOR ALL ENTRIES IN itab_it

             WHERE nrseq = itab_it-nrseq AND

                   ebeln = itab_it-ebeln AND

                   ebelp = itab_it-ebelp.

  ENDIF.

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

  PERFORM decimais_qtd.

* << Fim da inclusão

  LOOP AT itab_it.

    v_idx = sy-tabix.

    READ TABLE itab_zycit003 WITH KEY

         nrseq = itab_it-nrseq

         ebeln = itab_it-ebeln

         ebelp = itab_it-ebelp.

    IF sy-subrc EQ 0.

      itab_it-j_1bnbm      = itab_zycit003-j_1bnbm.

      itab_it-mfrpn        = itab_zycit003-mfrpn.

      itab_it-naladi       = itab_zycit003-naladi.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F02

 

...

  ELSE.

    SELECT * FROM /pws/zycit094 INTO TABLE itab_zycit094

             WHERE nrseqce = /pws/zycie085-nrbl.

  ENDIF.

  IF NOT itab_zycit094[] IS INITIAL.

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

             FOR ALL ENTRIES IN itab_zycit094

             WHERE nrseq = itab_zycit094-nrseq

             AND servico NE 'X'.

  ENDIF.

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

  PERFORM decimais_qtd.

* << Fim da inclusão

  e_subrc = '0'.

  v_perform  = 'FI' .

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI023'

                              'DI008'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'DI008'  BINARY SEARCH.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F03

 

...

                                      ebelp = itab_it-ebelp.

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

      PERFORM: calc_conv_moeda USING    itab_it-waers

                                        /pws/zycie085-waersfob

                               CHANGING itab_it-vlfre_fat.

      v_tfrefat = v_tfrefat + itab_it-vlfre_fat.

    ELSE.

      v_tfrefat = v_tfrefat + itab_it-vlfre_fat.

    ENDIF.

    v_calc_seg = v_calc_seg + ( itab_it-vlreal_dest *

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

  itab_zycit003-qtd_iten ).

* << Fim da exclusão

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

 itab_zycit003-qtd_itenc3 ).

* << Fim da inclusão

  ENDLOOP.

  IF v_dit = 'N'.

    v_bltofat = /pws/zycie093-prepaid +

    /pws/zycie093-collect.

    v_sgtofat = /pws/zycie085-vlseg.

    IF NOT v_sgtofat IS INITIAL .

      PERFORM retorna_decimais USING /pws/zycie085-waersseg

                     CHANGING  v_sgtofat             .

    ENDIF.

    CASE s_inco1_ci.

...

 

...

    v_ntgewd = v_ntgewd + itab_zycit003-ntgewd.

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

      PERFORM: calc_conv_moeda USING    itab_zycit003-waers

                                 /pws/zycie085-waersfob

                               CHANGING  itab_zycit003-vlreal.

      PERFORM: calc_conv_moeda USING    itab_zycit003-waers

                                 /pws/zycie085-waersfob

                               CHANGING  itab_zycit003-netpr.

    ENDIF.

    v_tot_real = v_tot_real +

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

 ( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).

* << Fim da exclusão

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

 ( itab_zycit003-vlreal * itab_zycit003-qtd_itenc3 ).

* << Fim da inclusão

    v_tot_plan = v_tot_plan +

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

      (   itab_zycit003-qtd_iten * itab_zycit003-netpr ).

* << Fim da exclusão

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

      (   itab_zycit003-qtd_itenc3 * itab_zycit003-netpr ).

* << Fim da inclusão

  ENDLOOP.

  LOOP AT itab_it.

    READ TABLE itab_zycit003 WITH KEY

...

 

...

                ( itab_zycit003-ntgew / v_ntgew ) ).

        ENDIF.

      ENDIF.

      IF NOT itab_zycit003-qtd_iten IS INITIAL.

        IF /pws/zycie093-waersfre NE itab_zycit003-waers .

          v_diffrete_aux = v_diffrete .

          PERFORM calc_conv_moeda USING  /pws/zycie093-waersfre

                                         itab_zycit003-waers

                                         CHANGING v_diffrete_aux.

          itab_it-vlreald =

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

          (  ( ( itab_zycit003-qtd_iten *  itab_it-vlreal_dest ) -

              v_diffrete_aux ) / itab_zycit003-qtd_iten ) .

* << Fim da exclusão

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

          (  ( ( itab_zycit003-qtd_itenc3 *  itab_it-vlreal_dest ) -

              v_diffrete_aux ) / itab_zycit003-qtd_itenc3 ) .

* << Fim da inclusão

        ELSE.

          itab_it-vlreald =

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

          (  ( ( itab_zycit003-qtd_iten *  itab_it-vlreal_dest ) -

              v_diffrete ) / itab_zycit003-qtd_iten ) .

* << Fim da exclusão

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

          (  ( ( itab_zycit003-qtd_itenc3 *  itab_it-vlreal_dest ) -

              v_diffrete ) / itab_zycit003-qtd_itenc3 ) .

* << Fim da inclusão

        ENDIF.

      ENDIF.

      IF  s_inco1_ci EQ 'CIF'.

        IF NOT v_calc_seg IS INITIAL AND

        NOT itab_zycit003-qtd_iten IS INITIAL.

          itab_it-vlreald =

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

            ( ( itab_zycit003-qtd_iten *  itab_it-vlreald ) -

       ( ( itab_it-vlreal_dest * itab_zycit003-qtd_iten ) * ( v_sgtofat

   / v_calc_seg   ) ) )

               / itab_zycit003-qtd_iten .

* << Fim da exclusão

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

         ( ( itab_zycit003-qtd_itenc3 *  itab_it-vlreald ) -

         ( ( itab_it-vlreal_dest * itab_zycit003-qtd_itenc3 )

         * ( v_sgtofat / v_calc_seg ) ) ) / itab_zycit003-qtd_itenc3.

* << Fim da inclusão

        ENDIF.

      ENDIF.

      MODIFY itab_it.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_it.

    IF p_tipo = 'I'.

      itab_it-seq = sy-tabix.

    ENDIF.

    READ TABLE itab_zycit003 WITH KEY

...

 

...

                              ebeln = itab_it-ebeln

                              ebelp = itab_it-ebelp.

    IF NOT itab_it-vlreald IS INITIAL.

      itab_it-vlreal = itab_it-vlreald.

    ENDIF.

    IF NOT itab_zycit003-ntgewd IS INITIAL.

      itab_it-ntgew = itab_zycit003-ntgewd.

    ENDIF.

    CLEAR: v_tvaln, v_qtd_iten.

    IF itab_it-qtd_itend NE ''.

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

      v_qtd_iten = itab_it-qtd_itend.

* << Fim da exclusão

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

      v_qtd_iten = itab_it-qtd_itendc3.

* << Fim da inclusão

      v_tntgew = v_tntgew + itab_it-ntgewd.

    ELSE.

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

      v_qtd_iten = itab_it-qtd_iten.

* << Fim da exclusão

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

      v_qtd_iten = itab_it-qtd_itenc3.

* << Fim da inclusão

      v_tntgew = v_tntgew + itab_it-ntgew.

    ENDIF.

...

 

...

                               CHANGING itab_it-vlseg_fat.

      v_tsegfat = v_tsegfat + itab_it-vlseg_fat.

    ELSE.

      v_tsegfat = v_tsegfat + itab_it-vlseg_fat.

    ENDIF.

    v_rsegfat = v_rsegfat + ( itab_it-vlseg_fat * itab_it-dttaxbem ).

    MODIFY itab_it TRANSPORTING seq vlreal ntgew.

    IF /pws/zycie085-mdadicao = 'N'.

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

        IF NOT itab_it-vlreald IS INITIAL.

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

          v_tval   = v_tval   + (  itab_it-qtd_itend * itab_it-vlreal ).

* << Fim da exclusão

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

          v_tval = v_tval + ( itab_it-qtd_itendc3 * itab_it-vlreal ).

* << Fim da inclusão

        ELSE.

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

          v_tval   = v_tval   + (  itab_it-qtd_iten * itab_it-vlreal ).

* << Fim da exclusão

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

          v_tval = v_tval + ( itab_it-qtd_itenc3 * itab_it-vlreal ).

* << Fim da inclusão

        ENDIF.

      ELSE.

        PERFORM taxa_converte USING  itab_it-waersbem

...

 

...

                                    /pws/zycie085-dttax

                            CHANGING  v_taxa.

        IF NOT v_taxa IS INITIAL.

          v_tvaln   = v_tvaln / v_taxa.

        ENDIF.

        v_tval = v_tval + v_tvaln.

        /pws/zycie085-ukursfob  = v_taxa.

      ENDIF.

    ELSE.

      IF NOT itab_it-vlreald IS INITIAL.

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

        v_tval   = v_tval   + (  itab_it-qtd_itend * itab_it-vlreal ).

* << Fim da exclusão

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

        v_tval = v_tval + ( itab_it-qtd_itendc3 * itab_it-vlreal ).

* << Fim da inclusão

      ELSE.

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

        v_tval   = v_tval   + (  itab_it-qtd_iten * itab_it-vlreal ).

* << Fim da exclusão

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

        v_tval = v_tval + ( itab_it-qtd_itenc3 * itab_it-vlreal ).

* << Fim da inclusão

      ENDIF.

    ENDIF.

    IF s_inco1_ci EQ 'CIF'.

      IF NOT itab_it-qtd_itend IS INITIAL.

        v_tcif_fat = v_tcif_fat + ( ( itab_zycit003-vlreal *

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

                                                 itab_it-qtd_itend )

* << Fim da exclusão

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

                                                 itab_it-qtd_itendc3 )

* << Fim da inclusão

               + itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ).

      ELSE.

        v_tcif_fat = v_tcif_fat + ( ( itab_zycit003-vlreal *

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

                itab_it-qtd_iten )

* << Fim da exclusão

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

                itab_it-qtd_itenc3 )

* << Fim da inclusão

               + itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ).

...

 

...

            READ TABLE itab_zycit003 WITH KEY

                        nrseq = itab_it-nrseq

                        ebeln = itab_it-ebeln

                        ebelp = itab_it-ebelp.

            IF sy-subrc EQ 0.

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

                PERFORM: calc_conv_moeda USING    itab_zycit003-waers

                                           /pws/zycie085-waersfob

                                        CHANGING  itab_zycit003-netpr.

              ENDIF.

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

       t_ivdes2 =  ( ( itab_zycit003-netpr * itab_zycit003-qtd_iten ) /

* << Fim da exclusão

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

       t_ivdes2 =  ( ( itab_zycit003-netpr * itab_zycit003-qtd_itenc3 )

                                   /

* << Fim da inclusão

                                   v_tot_plan  ) * itab_zycit049-vlreal.

            ENDIF.

          ENDIF.

        ELSE.

          IF /pws/zycit062-bs_rat_icms EQ 'CIF'.

            IF NOT /pws/zycie085-vlfob IS INITIAL.

              t_ivdes2 = ( itab_zycit049-vlreal *

              ( itab_it-vlfob + v_tot_fre + v_tot_seg ) )

               / ( /pws/zycie085-vlfob  + v_bltofat + v_sgtofat ) .

            ENDIF.

...

 

...

                          nrseq = itab_it-nrseq

                          ebeln = itab_it-ebeln

                          ebelp = itab_it-ebelp.

              IF sy-subrc EQ 0.

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

                  PERFORM: calc_conv_moeda USING    itab_zycit003-waers

                                                 /pws/zycie085-waersfob

                                         CHANGING  itab_zycit003-vlreal.

                ENDIF.

                t_ivdes2 =  ( itab_zycit003-vlreal *

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

                    itab_zycit003-qtd_iten

* << Fim da exclusão

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

                    itab_zycit003-qtd_itenc3

* << Fim da inclusão

                   / v_tot_real  ) * itab_zycit049-vlreal.

              ENDIF.

            ENDIF.

          ENDIF.

        ENDIF.

        IF p_tipo = 'I'.

          itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.

          MODIFY itab_zycit049 TRANSPORTING vldp_aux.

        ENDIF.

      ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F05

 

...

                language        = 2

                name            = 3

                object          = 4

                OTHERS          = 5.

      IF sy-subrc <> 0.

        EXIT .

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDFORM.

* >> Início da inclusão:

FORM decimais_qtd.

  LOOP AT itab_zycit003.

    itab_zycit003-qtd_itendc3 = itab_zycit003-qtd_itend

                                               * 10000.

    itab_zycit003-qtd_itenc3 = itab_zycit003-qtd_iten

                                               * 10000.

    itab_zycit003-qtd_itendc3 =

            trunc( itab_zycit003-qtd_itendc3 ) / 10000.

    itab_zycit003-qtd_itenc3 =

            trunc( itab_zycit003-qtd_itenc3 )  / 10000.

    MODIFY itab_zycit003.

  ENDLOOP.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI023X01

 

...

        ad_recolher   LIKE /pws/zycie085-vlfob,

        vlfobr        LIKE /pws/zycie100a-vlfre,

        codcambial    LIKE /pws/zycie006-codcambial,

        inco_item     LIKE /pws/zycit001-inco1,

        paisfab       LIKE /pws/zycit003-paisfab,

        vlreal_dest   LIKE /pws/zycie003-vlreal,

        ntgewd LIKE /pws/zycie003-ntgewd,

        mark,

        matnr LIKE /pws/zycie003-matnr,

        matnr_item LIKE /pws/zycie003-matnr,

* >> Início da inclusão:

        qtd_itenc3  TYPE /pws/zycit263-qtd_iten,

        qtd_itendc3 TYPE /pws/zycit263-qtd_iten,

* << Fim da inclusão

END OF itab_it.

...

 

...

DATA: BEGIN OF itab_zycit003 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie003.

DATA: slqtde LIKE /pws/zycie013-slqtde,

      uebto  LIKE ekpo-uebto,

      uebtk  LIKE ekpo-uebtk,

      noinitial,

* >> Início da inclusão:

      qtd_itenc3  TYPE /pws/zycit263-qtd_iten,

      qtd_itendc3 TYPE /pws/zycit263-qtd_iten,

* << Fim da inclusão

      mark.

DATA: END   OF itab_zycit003.

...