CE PLUS - Nota 004009

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 21/06/2007 00:00:00

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

Descrição da Nota: ERRO NO CÁLCULO DE DESPESAS E VALORES DA NF UTILIZANDO GRANEL + CIF

Sintoma

ao fazer a nota fiscal ocorrem diferenças em rateio de despesas, valores de mercadoria e valor total

da nota devido à utilização de granel + cif.

 

 

Solução

Atualização da nota fiscal para correção de cálculos de valores quando processo à granel

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

FATURA DE DESPESA PARA EMBARQUES DE SERVIÇO

VALOR TOTAL DA NOTA INCORRETO

ERRO NO RATEIO DE VALOR DE DESPESAS DA DI.

Informações Complementares

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

Nota Número 04009 Data: 21/06/2007 Hora: 18:14:52

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

 

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

Nota Número              : 04009

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00171

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

Referência às notas relacionadas:

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

 

02225  - 00001 - 6.0    - 00025  - VALOR TOTAL DA NOTA INCORRETO

02396  - 00002 - 6.0    - 00025  - FATURA DE DESPESA PARA EMBARQUES DE SERVIÇO

03924  - 00003 - 7.0    - 00001  - ERRO NO RATEIO DE VALOR DE DESPESAS DA DI.

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

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

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

Palavras Chave:

CÁLCULO DE DESPESAS - VALORES DA NF - GRANEL - CIF

 

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

Objetos da nota:

FUNC /PWS/ZYCI_RATEIO_CUSTO

REPS /PWS/MZYCI016F01

REPS /PWS/MZYCI023F01

REPS /PWS/MZYCI023F03

REPS /PWS/MZYCI023X01

 

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

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 exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

      IF itab_zycit003-qtd_itend IS INITIAL.

* << Fim da exclusão

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

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

      ELSE.

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

      ENDIF.

* << Fim da exclusão

      v_tot_vlreal = v_tot_vlreal + ( itab_zycit003-vlreal *

                      itab_zycit003-qtd_iten ).

    ENDIF.

  ENDLOOP.

...

 

...

                  IF NOT v_tpeso IS INITIAL.

                    itab_zycit036_aux-vlreal = itab_despesa-netpr -

                                                             v_tot_desp.

                    itab_zycit036_aux-waers_real = itab_despesa-waers.

                  ENDIF.

                ELSEIF itab_zycit039-proporplan EQ 'X'.

                  itab_zycit036_aux-vlreal = itab_despesa-netpr -

                                                             v_tot_desp.

                  itab_zycit036_aux-waers_real = itab_despesa-waers.

                ELSEIF itab_zycit039-vlreal EQ 'X'.

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

                  itab_zycit036_aux-vlreal = itab_despesa-netpr -

                                                             v_tot_desp.

* << Fim da exclusão

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

                        itab_zycit036_aux-vlreal =

                        ( itab_zycit003-vlreal * itab_zycit003-qtd_iten

                           / v_tot_vlreal  ) * itab_despesa-netpr .

* << Fim da inclusão

                  itab_zycit036_aux-waers_real = itab_despesa-waers.

                ELSE.

                  v_erro = '1'.

                  EXIT.

                ENDIF.

                IF NOT itab_despesa-waers IS INITIAL.

                  itab_zycit036_aux-waers_real = itab_despesa-waers.

                ELSE.

                  itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.

                ENDIF.

...

 

...

                                        /pws/zycie085-dttax

                                        t001-land1

                                 CHANGING  v_taxa.

                          IF NOT v_taxa IS INITIAL.

                            v_tfre = v_tfre / v_taxa.

                          ENDIF.

                        ELSE.

                          v_tfre = /pws/zycie085-vlfre.

                        ENDIF.

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

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

                        itab_zycit036_aux-vlreal =

                        ( itab_zycit003-vlreal * itab_zycit003-qtd_iten

                           / v_tot_vlreal  ) * itab_despesa-netpr .

* << Fim da inclusão

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

                        IF NOT v_vtot IS INITIAL.

                       itab_zycit036_aux-vlreal =  itab_despesa-netpr *

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

* << Fim da exclusão

                        ENDIF.

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

                      ENDIF.

                    ELSE.

                      IF NOT v_tot IS INITIAL.

                        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.

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

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                     itab_zycit003-qtd_iten / v_tot ) *

                                                     itab_despesa-netpr.

                        ENDIF.

                      ENDIF.

* << Fim da exclusão

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

                        itab_zycit036_aux-vlreal =

                        ( itab_zycit003-vlreal * itab_zycit003-qtd_iten

                           / v_tot_vlreal  ) * itab_despesa-netpr .

* << Fim da inclusão

                      itab_zycit036_aux-waers_real = itab_despesa-waers.

                    ENDIF.

                  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.

                    ELSE.

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                itab_zycit003-qtd_iten / v_tot ) *

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

             ( ( itab_zycit100-vlfre - itab_zycit003-vlfre_fat *

itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_iten ) +

             ( ( itab_zycit100-vlfre - itab_zycit003-vlfre_fat *

itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_itend ) .

          ENDIF.

        ELSEIF /pws/zycit031-inco1_ci = 'CIF' AND

            NOT itab_zycit003-qtd_iten IS INITIAL AND

            NOT itab_zycit003-qtd_itend IS INITIAL.

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

          IF NOT /pws/zycit085-vlfre IS INITIAL .

* << Fim da exclusão

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

          IF NOT /pws/zycit085-vlfre IS INITIAL AND

             NOT itab_zycit100-vlseg IS INITIAL  .

* << Fim da inclusão

            itab_zycit042-netpr = itab_zycit042-netpr -

             ( ( itab_zycit100-vlfre - itab_zycit003-vlfre_fat *

itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_iten ) +

             ( ( itab_zycit100-vlfre - itab_zycit003-vlfre_fat *

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

itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_itend ) -

             ( ( itab_zycit100-vlseg - itab_zycit003-vlseg_fat *

itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_iten ) +

             ( ( itab_zycit100-vlseg - itab_zycit003-vlseg_fat *

* << Fim da inclusão

itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_itend ).

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

          ENDIF.

          IF NOT itab_zycit100-vlseg IS INITIAL  .

* << Fim da exclusão

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

          ELSEIF NOT itab_zycit100-vlseg IS INITIAL  .

* << Fim da inclusão

            itab_zycit042-netpr = itab_zycit042-netpr -

             ( ( itab_zycit100-vlseg - itab_zycit003-vlseg_fat *

itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_iten ) +

             ( ( itab_zycit100-vlseg - itab_zycit003-vlseg_fat *

itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_itend ).

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

          ELSEIF NOT /pws/zycit085-vlfre IS INITIAL.

            itab_zycit042-netpr = itab_zycit042-netpr -

             ( ( itab_zycit100-vlfre - itab_zycit003-vlfre_fat *

itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_iten ) +

             ( ( itab_zycit100-vlfre - itab_zycit003-vlfre_fat *

itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_itend ) .

* << Fim da inclusão

          ENDIF.

        ENDIF.

      ELSE.

        MOVE wa_zycit042 TO itab_zycit042.

      ENDIF.

      IF sy-subrc = 0 AND /pws/zycit062-flag_icms = 'X'.

        PERFORM atualiza_icms_unitario.

      ENDIF.

      IF /pws/zycit041-nrseq IS INITIAL.

        /pws/zycit041-nrseq = /pws/zycie041-nrseq.

...

 

...

                               CHANGING /pws/zycit093-ternacion.

            v_ternacion = /pws/zycit093-ternacion.

            IF /pws/zycie085-dttax IS INITIAL.

              /pws/zycie085-dttax = /pws/zycit085-dttax.

            ENDIF.

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

              IF NOT v_ntgew_tot IS INITIAL.

                v_ternacion = ( v_ternacion * itab_zycit003-ntgew

                      / v_ntgew_tot ).

              ENDIF.

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

              IF NOT itab_zycit003-qtd_itend IS INITIAL.

                itab_zycit042-netpr = itab_zycit042-netpr -

                ( v_ternacion / itab_zycit003-qtd_iten ).

              ELSE.

* << Fim da inclusão

              IF NOT itab_zycit042-qtd_iten IS INITIAL.

                itab_zycit042-netpr = itab_zycit042-netpr -

                ( v_ternacion / itab_zycit042-qtd_iten ).

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

                ENDIF.

* << Fim da inclusão

              ENDIF.

            ELSE.

              PERFORM taxa_converte USING /pws/zycit093-waersfre

                                          /pws/zycit085-dttax

                                  CHANGING v_taxa_desp.

              v_ternacion = v_ternacion * v_taxa_desp .

              IF NOT v_ntgew_tot IS INITIAL.

                v_ternacion = ( v_ternacion * itab_zycit003-ntgew

                      / v_ntgew_tot ).

              ENDIF.

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

              IF NOT itab_zycit003-qtd_itend IS INITIAL.

                itab_zycit042-netpr = itab_zycit042-netpr -

                ( v_ternacion / itab_zycit003-qtd_iten ).

              ELSE.

* << Fim da inclusão

              IF NOT itab_zycit042-qtd_iten IS INITIAL.

                itab_zycit042-netpr = itab_zycit042-netpr -

                ( v_ternacion / itab_zycit042-qtd_iten ).

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

                ENDIF.

* << Fim da inclusão

              ENDIF.

            ENDIF.

          ENDIF.

        ENDIF.

...

 

...

    SELECT * FROM /pws/zycit039 INTO TABLE itab_zycit039

         FOR ALL ENTRIES IN itab_zycit020

          WHERE codmod = 'D'

              AND codigo = itab_zycit020-codigo

              AND land1 EQ t001-land1.

  ENDIF.

  CLEAR: v_tot_ntgew, v_tot_plan, v_tot_real.

  LOOP AT itab_zycit003.

    IF NOT itab_zycit003-qtd_itend IS INITIAL.

      v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.

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

      v_tot_plan = v_tot_plan +

           ( itab_zycit003-netpr * itab_zycit003-qtd_itend ).

      v_tot_real = v_tot_real +

           ( itab_zycit003-vlreal * itab_zycit003-qtd_itend ).

* << Fim da exclusão

    ELSE.

      v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.

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

    ENDIF.

* << Fim da inclusão

      v_tot_plan = v_tot_plan +

           ( itab_zycit003-netpr * itab_zycit003-qtd_iten ).

      v_tot_real = v_tot_real +

           ( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).

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

    ENDIF.

* << Fim da exclusão

  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.

        PERFORM taxa_converte USING itab_zycit049_aux_r-waers

             itab_zycit085-dttax CHANGING v_taxa_desp.

...

 

...

      INTO TABLE itab_zycit049_a

      FOR ALL ENTRIES IN itab_zycit019

      WHERE nrseq = /pws/zycie041-nrseq

         AND vldp > 0

         AND tpdesp = itab_zycit019-tpdesp.

  ENDIF.

  DESCRIBE TABLE itab_zycit042_d LINES v_lines.

  CLEAR:  v_tot_ntgew, v_tot_plan, v_tot_real.

  LOOP AT itab_zycit003.

    IF NOT itab_zycit003-qtd_itend IS INITIAL.

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

      v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.

      v_tot_plan = v_tot_plan +

           ( itab_zycit003-netpr * itab_zycit003-qtd_itend ).

      v_tot_real = v_tot_real +

           ( itab_zycit003-vlreal * itab_zycit003-qtd_itend ).

* << Fim da exclusão

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

      v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgewd.

* << Fim da inclusão

    ELSE.

      v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.

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

    ENDIF.

* << Fim da inclusão

      v_tot_plan = v_tot_plan +

           ( itab_zycit003-netpr * itab_zycit003-qtd_iten ).

      v_tot_real = v_tot_real +

           ( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).

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

    ENDIF.

* << Fim da exclusão

  ENDLOOP.

  LOOP AT itab_zycit049_a.

    IF itab_zycit049_a-tpdesp NE /pws/zycit000-cod_sisc OR

       /pws/zycit000-flag_txsisc IS INITIAL OR

       /pws/zycit001-tpdecl = 'DSI'.

      CLEAR: v_tot_vldp, v_vldp.

      LOOP AT itab_zycit042_d.

        MOVE sy-tabix TO v_tabix.

        READ TABLE itab_zycit003 WITH KEY

                           nrseq = itab_zycit042_d-nrseq

...

 

...

            itab_zycit049_a-waers = /pws/zycbt007-waersb.

          ENDIF.

          IF v_lines = v_tabix.

            v_vldp = itab_zycit049_a-vldp - v_tot_vldp.

            itab_zycit042_d-vldp = itab_zycit042_d-vldp + v_vldp.

            CLEAR v_vldp.

          ELSE.

            IF itab_zycit039-divabs = 'X'.

              v_vldp = itab_zycit049_a-vldp / v_lines.

            ELSEIF itab_zycit039-peso = 'X'.

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

              IF NOT v_tot_ntgew IS INITIAL.

                IF NOT itab_zycit003-ntgewd IS INITIAL.

                 v_vldp = itab_zycit049_a-vldp * itab_zycit003-ntgewd /

                            v_tot_ntgew.

                ELSE.

* << Fim da inclusão

              v_vldp = itab_zycit049_a-vldp * itab_zycit003-ntgew /

                       v_tot_ntgew.

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

                ENDIF.

              ENDIF.

* << Fim da inclusão

            ELSEIF itab_zycit039-proporplan = 'X'.

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

              IF NOT itab_zycit003-qtd_itend IS INITIAL.

                v_vldp = itab_zycit049_a-vldp *

                         ( itab_zycit003-netpr *

                         itab_zycit003-qtd_itend / v_tot_plan ).

              ELSE.

* << Fim da exclusão

                v_vldp = itab_zycit049_a-vldp *

                         ( itab_zycit003-netpr *

                         itab_zycit003-qtd_iten / v_tot_plan ).

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

              ENDIF.

            ELSE.

              IF NOT itab_zycit003-qtd_itend IS INITIAL.

                v_vldp = itab_zycit049_a-vldp *

                        ( itab_zycit003-vlreal *

                        itab_zycit003-qtd_itend / v_tot_real ).

* << Fim da exclusão

              ELSE.

                v_vldp = itab_zycit049_a-vldp *

                        ( itab_zycit003-vlreal *

                        itab_zycit003-qtd_iten / v_tot_real ).

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

              ENDIF.

* << Fim da exclusão

            ENDIF.

            v_tot_vldp = v_tot_vldp + v_vldp.

            itab_zycit042_d-vldp = itab_zycit042_d-vldp + v_vldp.

...

 

...

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

              ELSE.

                IF itab_zycit039-divabs = 'X'.

                  v_vldp = itab_zycit049-vldp / v_lines.

                ELSEIF itab_zycit039-peso = 'X'.

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

                  IF NOT v_tot_ntgew IS INITIAL.

                    IF NOT itab_zycit003-ntgewd IS INITIAL.

                   v_vldp = itab_zycit049-vldp * itab_zycit003-ntgewd /

                                  v_tot_ntgew.

                    ELSE.

* << Fim da inclusão

                  v_vldp = itab_zycit049-vldp * itab_zycit003-ntgew /

                           v_tot_ntgew.

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

                    ENDIF.

                  ENDIF.

* << Fim da inclusão

                ELSEIF itab_zycit039-proporplan = 'X'.

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

                  IF NOT itab_zycit003-qtd_itend IS INITIAL.

                    v_vldp = itab_zycit049-vldp *

                         ( itab_zycit003-netpr *

                         itab_zycit003-qtd_itend /  v_tot_plan ).

                  ELSE.

* << Fim da exclusão

                    v_vldp = itab_zycit049-vldp *

                         ( itab_zycit003-netpr *

                         itab_zycit003-qtd_iten /  v_tot_plan ).

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

                  ENDIF.

                ELSE.

                  IF NOT itab_zycit003-qtd_itend IS INITIAL.

                    v_vldp = itab_zycit049-vldp *

                        ( itab_zycit003-vlreal *

                          itab_zycit003-qtd_itend / v_tot_real ).

* << Fim da exclusão

                  ELSE.

                    v_vldp = itab_zycit049-vldp *

                        ( itab_zycit003-vlreal *

                          itab_zycit003-qtd_iten / v_tot_real ).

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

                  ENDIF.

* << Fim da exclusão

                ENDIF.

                v_tot_vldp = v_tot_vldp + v_vldp.

                itab_zycit042-vldp = itab_zycit042-vldp + v_vldp.

...

 

...

                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.

                CLEAR v_vldp.

              ELSE.

                IF itab_zycit039-divabs = 'X'.

                  v_vldp = itab_zycit049-vldp / v_lines.

                ELSEIF itab_zycit039-peso = 'X'.

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

                  IF NOT v_tot_ntgew IS INITIAL.

                    IF NOT itab_zycit003-ntgewd IS INITIAL.

                   v_vldp = itab_zycit049-vldp * itab_zycit003-ntgewd /

                                  v_tot_ntgew.

                    ELSE.

* << Fim da inclusão

                  v_vldp = itab_zycit049-vldp * itab_zycit003-ntgew /

                           v_tot_ntgew.

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

                    ENDIF.

                  ENDIF.

* << Fim da inclusão

                ELSEIF itab_zycit039-proporplan = 'X'.

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

                  IF NOT itab_zycit003-qtd_itend IS INITIAL.

                    v_vldp = itab_zycit049-vldp *

                         ( itab_zycit003-netpr *

                           itab_zycit003-qtd_itend / v_tot_plan ).

                  ELSE.

* << Fim da exclusão

                    v_vldp = itab_zycit049-vldp *

                         ( itab_zycit003-netpr *

                           itab_zycit003-qtd_iten / v_tot_plan ).

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

                  ENDIF.

                ELSE.

                  IF NOT itab_zycit003-qtd_itend IS INITIAL.

                    v_vldp = itab_zycit049-vldp *

                        ( itab_zycit003-vlreal *

                          itab_zycit003-qtd_itend / v_tot_real ).

* << Fim da exclusão

                  ELSE.

                    v_vldp = itab_zycit049-vldp *

                        ( itab_zycit003-vlreal *

                          itab_zycit003-qtd_iten / v_tot_real ).

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

                  ENDIF.

* << Fim da exclusão

                ENDIF.

                v_tot_vldp = v_tot_vldp + v_vldp.

               itab_zycit042_d-vldpii = itab_zycit042_d-vldpii + v_vldp.

...