CE PLUS - Nota 004912

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Registro de Exportação (RE)

Data/Hora da Publicação: 04/10/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 10:04:28

Descrição da Nota: AJUSTE DOS VALORES DOS CAMPOS VALOR CONDIÇÃO E LOCAL DE EMBARQUE DA RE

Sintoma

Ao gerar a RE com processos acrescidos de despesas ou com descontos, os valores da pasta

"Faturamento" nos campos "Valor Condição" e "Local de Embarque" estão incorretos.

 

 

Solução

Alterado o programa do Embarque para que os valores sejam enviados corretos ao gerar a RE. Alteração

da RE para refletir os valores propostos pelo Embarque.

 

*==> Observação: Ao aplicar esta nota, aplicar também a nota 4957.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE NO CÁLCULO DOS VALORES PARA RE QUANDO RE A TERMO

CORREÇÃO NO VALOR CALCULADO DO EMBARQUE E EM VALORES DO RE

CÁLCULOS DOS VALORES NO RE COM DRAWBACK

Informações Complementares

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

Nota Número 04912 Data: 04/10/2007 Hora: 19:27:25

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

 

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

Nota Número              : 04912

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00015

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

Referência às notas relacionadas:

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

 

04839  - 00001 - 7.0    - 00003  - CORREÇÃO NO VALOR CALCULADO DO EMBARQUE E EM VALORES DO RE

04884  - 00002 - 7.0    - 00003  - CÁLCULOS DOS VALORES NO RE COM DRAWBACK

04885  - 00003 - 7.0    - 00003  - AJUSTE NO CÁLCULO DOS VALORES PARA RE QUANDO RE A TERMO

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

AJUSTE DOS VALORES DOS CAMPOS VALOR CONDIÇÃO E LOCAL DE EMBARQUE DA RE

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

Palavras Chave:

RE, EMBARQUE, VALOR, CONDIÇÃO, LOCAL

 

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

Objetos da nota:

REPS /PWS/MZYCE003F01

REPS /PWS/MZYCE041F01

 

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

Modificações efetuadas em REPS /PWS/MZYCE003F01

 

...

      MOVE:

           <fs_002>-vlagente       TO <fs_002>-vlagente_r,

           <fs_002>-vlseguro       TO <fs_002>-vlseguro_r,

           <fs_002>-vldesconto     TO <fs_002>-vldesconto_r,

           <fs_002>-vlacrescimo    TO <fs_002>-vlacrescimo_r,

           <fs_002>-vlfrete        TO <fs_002>-vlfrete_r,

           <fs_002>-vlod           TO <fs_002>-vlod_r,

           itab_zycet002_rat-brgew TO <fs_002>-brgew_r,

           itab_zycet002_rat-ntgew TO <fs_002>-ntgew_r,

           itab_zycet002_rat-fkimg TO <fs_002>-fkimg_r,

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

           <fs_002>-vlme           TO <fs_002>-vlme_r.

* << Fim da exclusão

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

           <fs_002>-vlme           TO <fs_002>-vlme_r,

           itab_zycet002_rat-fkimg TO <fs_002>-fkimg_r.

* << Fim da inclusão

      READ TABLE itab_diferencas WITH KEY proccond = 'ACR'

                                          BINARY SEARCH.

      IF itab_diferencas-diferenca EQ 'X'.

        <fs_002>-vlacrescimo_r = itab_zycet002_rat-vlacrescimo_r.

      ENDIF.

      READ TABLE itab_diferencas WITH KEY proccond = 'COM'

                                          BINARY SEARCH.

      IF itab_diferencas-diferenca EQ 'X'.

        <fs_002>-vlagente_r = itab_zycet002_rat-vlagente_r.

      ENDIF.

...

 

...

    ENDIF.

    IF itab_zycet065-outras_desp EQ 'X'.

      ADD wa_condicao-real-vlme_out TO wa_condicao-calc-vlme_fob.

    ENDIF.

    IF itab_zycet065-comissao EQ 'X'.

      ADD wa_condicao-real-vlme_com TO wa_condicao-calc-vlme_fob.

    ENDIF.

  ENDIF.

  SUBTRACT wa_condicao-real-vlme_des FROM wa_condicao-calc-vlme_fob.

  ADD      wa_condicao-real-vlme_acr TO   wa_condicao-calc-vlme_fob.

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

  LOOP AT itab_rateio ASSIGNING <fs_002> WHERE saida EQ 'X'

                                           AND devolvido_t EQ space.

* << Fim da exclusão

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

  LOOP AT itab_rateio ASSIGNING <fs_002>.

    IF <fs_002>-saida EQ 'X' AND <fs_002>-devolvido_t EQ space.

* << Fim da inclusão

    v_index = sy-tabix.

    CLEAR: <fs_002>-vlfrete_r,

           <fs_002>-vlseguro_r,

           <fs_002>-vldesconto_r,

           <fs_002>-vlacrescimo_r,

           <fs_002>-vlagente_r,

           <fs_002>-vlod_r.

    READ TABLE itab_zycet255 WITH KEY pstyv = <fs_002>-pstyv.

    CHECK sy-subrc NE 0.

    CLEAR itab_zycet023.

...

 

...

        WHEN 'ACR'.

          CHECK itab_zycet065-acrescimo = 'X'.

          ADD <fs_002>-vlacrescimo_r TO <fs_002>-vlme_r.

        WHEN 'DES'.

          CHECK itab_zycet065-desconto = 'X'.

          SUBTRACT <fs_002>-vldesconto_r FROM <fs_002>-vlme_r.

        WHEN 'OUT'.

          CHECK itab_zycet065-outras_desp = 'X'.

          IF /pws/zycee001-tpcalc = '1'.

            SUBTRACT <fs_002>-vlod_r FROM <fs_002>-vlme_r.

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

          ELSE.

            ADD <fs_002>-vlod_r TO <fs_002>-vlme_r.

* << Fim da exclusão

          ENDIF.

        WHEN 'COM'.

          CHECK itab_zycet065-comissao = 'X'.

          IF /pws/zycee001-tpcalc = '1'.

            SUBTRACT <fs_002>-vlagente_r FROM <fs_002>-vlme_r.

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

          ELSE.

            ADD <fs_002>-vlagente_r TO <fs_002>-vlme_r.

* << Fim da exclusão

          ENDIF.

        WHEN 'FRT'.

          CHECK itab_zycet065-frete = 'X'.

          IF /pws/zycee001-tpcalc = '1'.

            SUBTRACT <fs_002>-vlfrete_r FROM <fs_002>-vlme_r.

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

          ELSE.

            ADD <fs_002>-vlfrete_r TO <fs_002>-vlme_r.

* << Fim da exclusão

          ENDIF.

        WHEN 'SEG'.

          CHECK itab_zycet065-seguro = 'X'.

          IF /pws/zycee001-tpcalc = '1'.

            SUBTRACT <fs_002>-vlseguro_r FROM <fs_002>-vlme_r.

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

            ENDIF.

        ENDCASE.

      ENDLOOP.

* << Fim da inclusão

          ELSE.

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

            ADD <fs_002>-vlseguro_r TO <fs_002>-vlme_r.

* << Fim da exclusão

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

      CHECK <fs_002>-estornado IS INITIAL.

      READ TABLE itab_zycet023 WITH KEY fkart = <fs_002>-fkart

                                        bukrs = <fs_002>-bukrs.

      IF sy-subrc NE 0.

        READ TABLE itab_zycet023 WITH KEY fkart = <fs_002>-fkart

                                          bukrs = space.

      ENDIF.

      CHECK sy-subrc IS INITIAL.

      CASE itab_zycet023-tipodoc.

        WHEN 'OV' OR

             'CO' OR

             'VC'.

          CONTINUE.

        WHEN 'OD' OR

             'DR'.

          READ TABLE itab_vbfa WITH KEY vbeln = <fs_002>-vbeln_va

                                        posnn = <fs_002>-aupos.

          IF sy-subrc EQ 0.

           READ TABLE itab_rateio WITH KEY vbeln_vf = itab_vbfa-vbelv

                                             posnr    = itab_vbfa-posnv

                                             TRANSPORTING vlme_r.

            IF sy-subrc EQ 0.

              itab_rateio-vlme_r = itab_rateio-vlme_r -

                                   ABS( <fs_002>-vlfob ).

              MODIFY itab_rateio TRANSPORTING vlme_r

                       WHERE vbeln_vf EQ itab_vbfa-vbelv AND

                             posnr    EQ itab_vbfa-posnv.

              CLEAR itab_rateio.

            ENDIF.

          ENDIF.

        WHEN 'OC'.

          READ TABLE itab_vbfa WITH KEY vbeln = <fs_002>-vbeln_va

                                        posnn = <fs_002>-aupos.

          IF sy-subrc EQ 0.

           READ TABLE itab_rateio WITH KEY vbeln_vf = itab_vbfa-vbelv

                                             posnr    = itab_vbfa-posnv

                                             TRANSPORTING vlme_r.

            IF sy-subrc EQ 0.

              itab_rateio-vlme_r = itab_rateio-vlme_r +

                                   ABS( <fs_002>-vlfob ).

              MODIFY itab_rateio TRANSPORTING vlme_r

                       WHERE vbeln_vf EQ itab_vbfa-vbelv AND

                             posnr    EQ itab_vbfa-posnv.

              CLEAR itab_rateio.

* << Fim da inclusão

          ENDIF.

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

          ENDIF.

* << Fim da inclusão

      ENDCASE.

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

    ENDIF.

* << Fim da inclusão

    ENDLOOP.

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

  ENDLOOP.

* << Fim da exclusão

  wa_condicao-total-vlme_fob = wa_condicao-real-vlme_fob.

  CHECK wa_condicao-real NE wa_condicao-total.

  READ TABLE itab_rateio INDEX v_indx_max ASSIGNING <fs_002>.

  IF wa_condicao-real-vlme_acr NE wa_condicao-total-vlme_acr.

    <fs_002>-vlacrescimo_r = <fs_002>-vlacrescimo_r +

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

                             wa_condicao-real-vlme_acr -

                             wa_condicao-total-vlme_acr.

    <fs_002>-vlme_r = <fs_002>-vlme_r +

* << Fim da inclusão

                             wa_condicao-real-vlme_acr -

                             wa_condicao-total-vlme_acr.

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

  ENDIF.

  IF wa_condicao-real-vlme_des NE wa_condicao-total-vlme_des.

    <fs_002>-vldesconto_r = <fs_002>-vldesconto_r +

                            wa_condicao-real-vlme_des -

                            wa_condicao-total-vlme_des.

    <fs_002>-vlme_r = <fs_002>-vlme_r -

                          ( wa_condicao-real-vlme_des -

                            wa_condicao-total-vlme_des ).

* << Fim da inclusão

  ENDIF.

  IF wa_condicao-real-vlme_com NE wa_condicao-total-vlme_com.

    <fs_002>-vlagente_r = <fs_002>-vlagente_r +

                          wa_condicao-real-vlme_com -

                          wa_condicao-total-vlme_com.

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

     IF /pws/zycee001-tpcalc = '1' AND

        itab_zycet065-comissao = 'X'.

           <fs_002>-vlme_r = <fs_002>-vlme_r -

                        ( wa_condicao-real-vlme_com -

                          wa_condicao-total-vlme_com ).

* << Fim da inclusão

  ENDIF.

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

  IF wa_condicao-real-vlme_des NE wa_condicao-total-vlme_des.

    <fs_002>-vldesconto_r = <fs_002>-vldesconto_r +

                            wa_condicao-real-vlme_des -

                            wa_condicao-total-vlme_des.

* << Fim da exclusão

  ENDIF.

  IF wa_condicao-real-vlme_frt NE wa_condicao-total-vlme_frt.

    <fs_002>-vlfrete_r = <fs_002>-vlfrete_r +

                         wa_condicao-real-vlme_frt -

                         wa_condicao-total-vlme_frt.

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

     IF /pws/zycee001-tpcalc = '1' AND

        itab_zycet065-frete = 'X'.

           <fs_002>-vlme_r = <fs_002>-vlme_r -

                       ( wa_condicao-real-vlme_frt -

                         wa_condicao-total-vlme_frt ).

* << Fim da inclusão

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

  IF wa_condicao-real-vlme_out NE wa_condicao-total-vlme_out.

    <fs_002>-vlod_r = <fs_002>-vlod_r +

                      wa_condicao-real-vlme_out -

                      wa_condicao-total-vlme_out.

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

     IF /pws/zycee001-tpcalc = '1' AND

        itab_zycet065-outras_desp = 'X'.

           <fs_002>-vlme_r = <fs_002>-vlme_r -

                    ( wa_condicao-real-vlme_out -

                      wa_condicao-total-vlme_out ).

     ENDIF.

* << Fim da inclusão

  ENDIF.

  IF wa_condicao-real-vlme_seg NE wa_condicao-total-vlme_seg.

    <fs_002>-vlseguro_r = <fs_002>-vlseguro_r +

                          wa_condicao-real-vlme_seg -

                          wa_condicao-total-vlme_seg.

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

     IF /pws/zycee001-tpcalc = '1' AND

        itab_zycet065-seguro = 'X'.

           <fs_002>-vlme_r = <fs_002>-vlme_r -

                        ( wa_condicao-real-vlme_seg -

                          wa_condicao-total-vlme_seg ).

     ENDIF.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM calcula_conditions_embarque.

  FIELD-SYMBOLS: <v_vlme_prov> TYPE /pws/zycee313-vlme_fob,

                 <v_vlme_real> TYPE /pws/zycee313-vlme_fob.

  DATA: v_variavel(25) TYPE c.

  CLEAR wa_condicao.

  LOOP AT itab_zycet008.

    READ TABLE itab_zycet156 WITH KEY codigo = itab_zycet008-codigo

                                      bukrs  = /pws/zycee001-bukrs.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCE041F01

 

...

            itab_zycet002-vbeln_vl TO itab_zycet118-vbeln_vl,

            itab_zycet002-posnl    TO itab_zycet118-posnl,

            itab_zycet002-aupos    TO itab_zycet118-aupos,

            itab_zycet002-vrkme    TO itab_zycet118-vrkme,

            itab_zycet002-arktx    TO itab_zycet118-dsmerc,

            itab_zycet002-matnr    TO itab_zycet118-matnr,

            itab_zycet002-gewei    TO itab_zycet118-gewei,

            itab_zycet002-waers    TO itab_zycet118-waers,

            itab_zycet002-waers    TO itab_zycet118-waerk,

            itab_zycet002-vlemb    TO itab_zycet118-netpr,

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

            itab_zycet002-vlme_r   TO itab_zycet118-vfob,

* << Fim da inclusão

            itab_zycet002-ntgew    TO itab_zycet118-ntgew,

            itab_zycet002-brgew    TO itab_zycet118-brgew,

            itab_zycet002-fkimg    TO itab_zycet118-fkimg,

             itab_zycet002-vlagente TO itab_zycet118-vlagente,

            'I'                    TO itab_zycet118-status.

      READ TABLE itab_t604f WITH KEY steuc = itab_zycet002-steuc.

      IF sy-subrc = 0 AND wa_zycet145-codncmre IS INITIAL.

        READ TABLE itab_zycet081 WITH KEY steuc = itab_t604f-steuc.

        IF NOT sy-subrc IS INITIAL.

          v_ncm = itab_t604f-steuc.

...

 

...

            itab_zycet002-auart    TO itab_zycet118-auart,

            itab_zycet002-ntgew    TO itab_zycet118-ntgew,

            itab_zycet002-brgew    TO itab_zycet118-brgew,

            itab_zycet002-vrkme    TO itab_zycet118-vrkme,

            itab_zycet002-arktx    TO itab_zycet118-dsmerc,

            itab_zycet002-matnr    TO itab_zycet118-matnr,

            itab_zycet002-gewei    TO itab_zycet118-gewei,

            itab_zycet002-waers    TO itab_zycet118-waers,

            itab_zycet002-waers    TO itab_zycet118-waerk,

            itab_zycet002-vlemb    TO itab_zycet118-netpr,

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

            itab_zycet002-vlme_r   TO itab_zycet118-vfob,

* << Fim da inclusão

            itab_zycet002-fkimg    TO itab_zycet118-fkimg,

            itab_zycet002-vlagente TO itab_zycet118-vlagente,

            'I'                    TO itab_zycet118-status.

      CLEAR itab_zycet020.

      READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart

                                        bukrs = itab_zycet002-bukrs.

      CLEAR itab_t604f.

      READ TABLE itab_t604f WITH KEY steuc = itab_zycet002-steuc.

      CASE itab_zycet020-tipodoc.

        WHEN 'AM'.

...

 

...

    IF sy-subrc = 0.

      MOVE itab_zycit282_final-seq_agrup TO itab_zycit282-seq_agrup.

      MODIFY itab_zycit282 INDEX v_index TRANSPORTING seq_agrup.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM db_move_zycet118.

  DATA:

          v_index  LIKE sy-tabix,

          v_vrkme  TYPE /pws/zycet118-vrkme,

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

          v_qtd LIKE /pws/zycit282-qtd_mexp,

          v_valor_aux TYPE /pws/zycet118-vfob.

* << Fim da exclusão

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

          v_qtd LIKE /pws/zycit282-qtd_mexp.

* << Fim da inclusão

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

  READ TABLE itab_zycet065 WITH KEY inco1 = /pws/zycee001-inco1.

* << Fim da exclusão

  PERFORM verifica_saldo_ato.

  CLEAR: itab_zycet002, itab_zycit282.

  LOOP AT itab_zycet002.

    IF v_codnrseq GE 999.

      IF v_msg_999 IS INITIAL.

        v_msg_999 = 'X'.

      ENDIF.

      EXIT.

    ENDIF.

    READ TABLE itab_zycit282 WITH KEY vbeln_va = itab_zycet002-vbeln_va

...

 

...

           itab_zycet002-posnr    TO itab_zycet118-posnr,

           itab_zycet002-ebeln    TO itab_zycet118-ebeln,

           itab_zycet002-ebelp    TO itab_zycet118-ebelp,

           itab_zycet002-aupos    TO itab_zycet118-aupos,

           itab_zycet002-ntgew    TO itab_zycet118-ntgew,

           itab_zycet002-brgew    TO itab_zycet118-brgew,

           itab_zycet002-vrkme    TO itab_zycet118-vrkme,

           itab_zycet002-arktx    TO itab_zycet118-dsmerc,

           itab_zycet002-matnr    TO itab_zycet118-matnr,

           itab_zycet002-gewei    TO itab_zycet118-gewei,

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

           itab_zycet002-vlme_r   TO itab_zycet118-vfob,

* << Fim da inclusão

           itab_zycet002-waers    TO itab_zycet118-waers,

           itab_zycet002-waers    TO itab_zycet118-waerk,

           itab_zycit282-tipo     TO itab_zycet118-tipo,

           itab_zycit282-quebra   TO itab_zycet118-quebra,

           itab_zycit282-nrseqd   TO itab_zycet118-nrseqd,

           itab_zycit282-lifnr    TO itab_zycet118-lifnr,

           itab_zycit282-seq_agrup TO itab_zycet118-dbmig,

           itab_zycit282-qtd_eorg TO itab_zycet118-qtd_eorg,

           itab_zycet002-vlagente TO itab_zycet118-vlagente,

           'I'                    TO itab_zycet118-status,

           v_fkimg                TO itab_zycet118-fkimg.

      IF itab_zycit282-tipo CA 'CG'.

        MOVE: itab_zycit282-nratoc TO itab_zycet118-nrato.

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

      ENDIF.

      IF itab_zycet065-desconto = 'X'.

        itab_zycet118-vfob = itab_zycet002-vlfob -

                                          itab_zycet002-vldesconto_r.

      ELSE.

        itab_zycet118-vfob = itab_zycet002-vlfob.

      ENDIF.

      IF itab_zycet065-acrescimo = 'X'.

        itab_zycet118-vfob = itab_zycet118-vfob +

                                          itab_zycet002-vlacrescimo_r.

* << Fim da exclusão

      ENDIF.

      PERFORM preenche_ncm_anexos

                  CHANGING

                      itab_zycet118-ncm

                      itab_zycet118-naladi.

      PERFORM calcula_anexos

                  USING

                      v_fkimg

                  CHANGING

                      itab_zycet118-netpr

                      itab_zycet118-ntgew

                      itab_zycet118-brgew

                      itab_zycet118-vlagente.

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

      IF /pws/zycee001-tpcalc = '1'.

        v_valor_aux = itab_zycet118-vfob.

        itab_zycet118-vfob = itab_zycet118-netpr.

        itab_zycet118-netpr =   v_valor_aux.

      ENDIF.

* << Fim da exclusão

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

      APPEND itab_zycet118.

* << Fim da inclusão

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

      APPEND itab_zycet118.

* << Fim da exclusão

    ELSE.

      CLEAR itab_zycet118.

      itab_zycet118-nrseqre = nrseqre.

      v_codnrseq = v_codnrseq + 001.

      itab_zycet118-codnrseq = v_codnrseq.

      SHIFT itab_zycet118-codnrseq RIGHT DELETING TRAILING space.

      UNPACK  itab_zycet118-codnrseq TO itab_zycet118-codnrseq.

      MOVE:

           sy-mandt               TO itab_zycet118-mandt,

           itab_zycet002-vbeln_va TO itab_zycet118-vbeln_va,

...

 

...

           itab_zycet002-posnr    TO itab_zycet118-posnr,

           itab_zycet002-aupos    TO itab_zycet118-aupos,

           itab_zycet002-ebeln    TO itab_zycet118-ebeln,

           itab_zycet002-ebelp    TO itab_zycet118-ebelp,

           itab_zycet002-ntgew    TO itab_zycet118-ntgew,

           itab_zycet002-brgew    TO itab_zycet118-brgew,

           itab_zycet002-vrkme    TO itab_zycet118-vrkme,

           itab_zycet002-arktx    TO itab_zycet118-dsmerc,

           itab_zycet002-matnr    TO itab_zycet118-matnr,

           itab_zycet002-gewei    TO itab_zycet118-gewei,

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

           itab_zycet002-vlemb    TO itab_zycet118-netpr,

           itab_zycet002-vlme_r   TO itab_zycet118-vfob,

* << Fim da inclusão

           itab_zycet002-waers    TO itab_zycet118-waers,

           itab_zycet002-waers    TO itab_zycet118-waerk,

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

           itab_zycet002-vlme_r   TO itab_zycet118-netpr,

* << Fim da exclusão

           itab_zycet002-fkimg    TO itab_zycet118-fkimg,

           itab_zycet002-vlagente TO itab_zycet118-vlagente,

           'I'                    TO itab_zycet118-status.

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

      IF itab_zycet065-desconto = 'X'.

        itab_zycet118-vfob = itab_zycet002-vlfob -

                                          itab_zycet002-vldesconto_r.

      ELSE.

        itab_zycet118-vfob = itab_zycet002-vlfob.

      ENDIF.

      IF itab_zycet065-acrescimo = 'X'.

        itab_zycet118-vfob = itab_zycet118-vfob +

                                          itab_zycet002-vlacrescimo_r.

      ENDIF.

      IF /pws/zycee001-tpcalc = '1'.

        v_valor_aux = itab_zycet118-vfob.

        itab_zycet118-vfob = itab_zycet118-netpr.

        itab_zycet118-netpr =   v_valor_aux.

      ENDIF.

* << Fim da exclusão

      PERFORM preenche_ncm_anexos

            CHANGING itab_zycet118-ncm

                     itab_zycet118-naladi.

      APPEND itab_zycet118.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_saldo_ato.

    READ TABLE itab_zycet002 WITH KEY

                        vbeln_va = itab_saldo_ato-vbeln_va

                        vbeln_vl = itab_saldo_ato-vbeln_vl

...

 

...

         itab_zycet002-posnr    TO itab_zycet118-posnr,

         itab_zycet002-aupos    TO itab_zycet118-aupos,

         itab_zycet002-ebeln    TO itab_zycet118-ebeln,

         itab_zycet002-ebelp    TO itab_zycet118-ebelp,

         itab_zycet002-ntgew    TO itab_zycet118-ntgew,

         itab_zycet002-brgew    TO itab_zycet118-brgew,

         itab_zycet002-vrkme    TO itab_zycet118-vrkme,

         itab_zycet002-arktx    TO itab_zycet118-dsmerc,

         itab_zycet002-matnr    TO itab_zycet118-matnr,

         itab_zycet002-gewei    TO itab_zycet118-gewei,

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

         itab_zycet002-vlme_r   TO itab_zycet118-vfob,

* << Fim da inclusão

         itab_zycet002-waers    TO itab_zycet118-waers,

         itab_zycet002-waers    TO itab_zycet118-waerk,

         itab_saldo_ato-saldo   TO itab_zycet118-fkimg,

         'I'                    TO itab_zycet118-status.

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

    IF itab_zycet065-desconto = 'X'.

      itab_zycet118-vfob = itab_zycet002-vlfob -

                                        itab_zycet002-vldesconto_r.

    ELSE.

      itab_zycet118-vfob = itab_zycet002-vlfob.

    ENDIF.

    IF itab_zycet065-acrescimo = 'X'.

      itab_zycet118-vfob = itab_zycet118-vfob +

                                        itab_zycet002-vlacrescimo_r.

    ENDIF.

* << Fim da exclusão

    PERFORM preenche_ncm_anexos

          CHANGING itab_zycet118-ncm

                   itab_zycet118-naladi.

    PERFORM calcula_anexos

                USING

                    itab_saldo_ato-saldo

                CHANGING

                    itab_zycet118-netpr

                    itab_zycet118-ntgew

                    itab_zycet118-brgew

                    itab_zycet118-vlagente.

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

    IF /pws/zycee001-tpcalc = '1'.

      v_valor_aux = itab_zycet118-vfob.

      itab_zycet118-vfob = itab_zycet118-netpr.

      itab_zycet118-netpr =   v_valor_aux.

    ENDIF.

* << Fim da exclusão

    APPEND itab_zycet118.

  ENDLOOP.

  CLEAR itab_zycet118.

ENDFORM.

FORM db_move_zycet116.

  IF itab_zycet116[] IS INITIAL.

    PERFORM sel_param_cabec.

    itab_zycet116-nrseqre = nrseqre.

    itab_zycet116-agrupado = text-004.

    itab_zycet116-tpre    = '05'.

...

 

...

             itab_zycet002-vbeln_vl TO itab_zycet118-vbeln_vl,

             itab_zycet002-posnl    TO itab_zycet118-posnl,

             itab_zycet002-posnr    TO itab_zycet118-posnr,

             itab_zycet002-aupos    TO itab_zycet118-aupos,

             itab_zycet002-ntgew_r  TO itab_zycet118-ntgew,

             itab_zycet002-brgew_r  TO itab_zycet118-brgew,

             itab_zycet002-vrkme    TO itab_zycet118-vrkme,

             itab_zycet002-arktx    TO itab_zycet118-dsmerc,

             itab_zycet002-matnr    TO itab_zycet118-matnr,

             itab_zycet002-gewei    TO itab_zycet118-gewei,

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

             itab_zycet002-vlfob    TO itab_zycet118-netpr,

* << Fim da exclusão

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

             itab_zycet002-vlemb    TO itab_zycet118-netpr,

* << Fim da inclusão

             itab_zycet002-vlme_r   TO itab_zycet118-vfob,

             itab_zycet002-waers    TO itab_zycet118-waers,

             itab_zycet002-waers    TO itab_zycet118-waerk,

             itab_zycet002-fkimg_r  TO itab_zycet118-fkimg,

             itab_zycet002-vlagente TO itab_zycet118-vlagente,

             'I'                    TO itab_zycet118-status,

             itab_zycet002-ntgew    TO itab_zycet118-saldordem.

      IF NOT itab_zycet002-vlagente_r IS INITIAL.

        MOVE itab_zycet002-vlagente_r TO itab_zycet118-vlagente.

      ENDIF.

...

 

...

ENDFORM.

FORM agrup_selecao.

  PERFORM funcao_agrupamento.

  IF NOT itab_zycet092[] IS INITIAL.

    PERFORM move_agrupados.

  ELSE.

    LEAVE PROGRAM.

  ENDIF.

ENDFORM.

FORM funcao_agrupamento.

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

  DATA:

    itab_zycet118_aux LIKE TABLE OF itab_zycet118,

    wa_zycet118_aux   LIKE LINE OF itab_zycet118_aux,

    v_index           TYPE sy-tabix.

  itab_zycet118_aux[] = itab_zycet118[].

  IF itab_zycit282[] IS INITIAL.

    PERFORM aplica_despesas.

  ENDIF.

* << Fim da exclusão

  CALL FUNCTION '/PWS/ZYCE_AGRUPA_OV_RE'

       EXPORTING

            werks         = itab_zycet116-werks

       TABLES

            itab_zycet092 = itab_zycet092

            itab_zycet118 = itab_zycet118

            itab_zycet090 = itab_zycet090

            itab_zycet002 = itab_zycet002.

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

  LOOP AT itab_zycet118.

    v_index = sy-tabix.

    READ TABLE itab_zycet118_aux INTO wa_zycet118_aux

      WITH KEY

        codnrseq = itab_zycet118-codnrseq

        vbeln_va = itab_zycet118-vbeln_va

        aupos    = itab_zycet118-aupos

        vbeln_vl = itab_zycet118-vbeln_vl

        posnl    = itab_zycet118-posnl

        vbeln_vf = itab_zycet118-vbeln_vf

        posnr    = itab_zycet118-posnr.

    MOVE:

      itab_zycet118-seqagrupado TO wa_zycet118_aux-seqagrupado,

      wa_zycet118_aux           TO itab_zycet118.

    MODIFY itab_zycet118 INDEX v_index.

  ENDLOOP.

* << Fim da exclusão

ENDFORM.

FORM move_agrupados.

  LOOP AT itab_zycet118.

    CLEAR: itab_zycet118-status,

           itab_zycet118-nrseqre.

    itab_zycet118-nrseqre = itab_zycet116-nrseqre.

    itab_zycet118-status = 'S'.

    MODIFY itab_zycet118 INDEX sy-tabix.

  ENDLOOP.

  LOOP AT itab_zycet092.

...

 

...

              v_fkimg002             TO itab_saldo_ato-saldo.

        APPEND itab_saldo_ato.

        CONTINUE.

      ENDIF.

    ENDLOOP.

  ENDLOOP.

ENDFORM.

FORM ajusta_precos.

  FIELD-SYMBOLS: <fs_zycet118> LIKE LINE OF itab_zycet118,

                 <fs_zycet092> LIKE LINE OF itab_zycet092.

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

  TYPES: BEGIN OF ty_zycet065,

          inco1       TYPE /pws/zycet065-inco1,

          fob         TYPE /pws/zycet065-fob,

          frete       TYPE /pws/zycet065-frete,

          seguro      TYPE /pws/zycet065-seguro,

          outras_desp TYPE /pws/zycet065-outras_desp,

          desconto    TYPE /pws/zycet065-desconto,

          acrescimo   TYPE /pws/zycet065-acrescimo,

          comissao    TYPE /pws/zycet065-comissao,

         END OF ty_zycet065.

  DATA: wa_zycet065   TYPE ty_zycet065,

        v_despesas    TYPE /pws/zycet002-vlme.

* << Fim da exclusão

  DATA:    v_vfob       TYPE /pws/zycet092-vfob,

           v_netpr      TYPE /pws/zycet092-netpr,

           v_vfob_item  TYPE p DECIMALS 4,

           v_netpr_item TYPE p DECIMALS 4,

           v_difer      TYPE /pws/zycet092-netpr,

           v_index      TYPE sy-tabix.

  DATA: fator_acrescimo TYPE p DECIMALS 2.

  IF itab_zycit282[] IS INITIAL.

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

    SELECT SINGLE inco1

                  fob

                  frete

                  seguro

                  outras_desp

                  desconto

                  acrescimo

                  comissao

     FROM /pws/zycet065

     INTO wa_zycet065

     WHERE inco1 EQ itab_zycet001-inco1.

* << Fim da exclusão

    READ TABLE itab_zycet001 INDEX 1.

    CHECK sy-subrc IS INITIAL.

    IF itab_zycet116-agrupado EQ 'S'.

      LOOP AT itab_zycet092 ASSIGNING <fs_zycet092>.

        CLEAR: v_vfob, v_netpr, v_index.

        LOOP AT itab_zycet118 ASSIGNING <fs_zycet118>

                            WHERE seqagrupado EQ <fs_zycet092>-codnrseq.

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

          CLEAR v_despesas.

* << Fim da exclusão

          v_index = sy-tabix.

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

          READ TABLE itab_zycet002

               WITH KEY vbeln_va = <fs_zycet118>-vbeln_va

                           aupos = <fs_zycet118>-aupos

                        vbeln_vl = <fs_zycet118>-vbeln_vl

                           posnl = <fs_zycet118>-posnl

                        vbeln_vf = <fs_zycet118>-vbeln_vf

                           posnr = <fs_zycet118>-posnr

                        TRANSPORTING vlfrete_r

                                     vlseguro_r

                                     vlod_r

                                     vlagente_r

                                     vlacrescimo_r

                                     vldesconto_r.

          CHECK sy-subrc IS INITIAL.

          IF NOT wa_zycet065-frete IS INITIAL AND

             NOT itab_zycet002-vlfrete_r IS INITIAL.

            IF /pws/zycee001-tpcalc = '0'.

              ADD itab_zycet002-vlfrete_r TO v_despesas.

            ELSE.

              SUBTRACT itab_zycet002-vlfrete_r FROM v_despesas.

            ENDIF.

          ENDIF.

          IF NOT wa_zycet065-seguro IS INITIAL AND

             NOT itab_zycet002-vlseguro_r IS INITIAL.

            IF /pws/zycee001-tpcalc = '0'.

              ADD itab_zycet002-vlseguro_r TO v_despesas.

            ELSE.

              SUBTRACT itab_zycet002-vlseguro_r FROM v_despesas.

            ENDIF.

          ENDIF.

          IF NOT wa_zycet065-outras_desp IS INITIAL AND

             NOT itab_zycet002-vlod_r IS INITIAL.

            IF /pws/zycee001-tpcalc = '0'.

              ADD itab_zycet002-vlod_r TO v_despesas.

            ELSE.

              SUBTRACT itab_zycet002-vlod_r FROM v_despesas.

            ENDIF.

          ENDIF.

          IF NOT wa_zycet065-comissao IS INITIAL AND

             NOT itab_zycet002-vlagente_r IS INITIAL.

            IF /pws/zycee001-tpcalc = '0'.

              ADD itab_zycet002-vlagente_r TO v_despesas.

            ELSE.

              SUBTRACT itab_zycet002-vlagente_r FROM v_despesas.

            ENDIF.

          ENDIF.

          IF NOT wa_zycet065-desconto IS INITIAL AND

             NOT itab_zycet002-vldesconto_r IS INITIAL.

            SUBTRACT itab_zycet002-vldesconto_r FROM v_despesas.

          ENDIF.

          IF NOT wa_zycet065-acrescimo IS INITIAL AND

             NOT itab_zycet002-vlacrescimo_r IS INITIAL.

            ADD itab_zycet002-vlacrescimo_r TO v_despesas.

          ENDIF.

          IF NOT v_despesas IS INITIAL.

            IF /pws/zycee001-tpcalc = '0'.

              <fs_zycet118>-vfob =

                <fs_zycet118>-netpr -

                itab_zycet002-vldesconto_r +

                itab_zycet002-vlacrescimo_r.

              <fs_zycet118>-netpr = <fs_zycet118>-netpr + v_despesas.

            ELSE.

              <fs_zycet118>-vfob = <fs_zycet118>-netpr + v_despesas.

              <fs_zycet118>-netpr =

                <fs_zycet118>-netpr -

                itab_zycet002-vldesconto_r +

                itab_zycet002-vlacrescimo_r.

            ENDIF.

          ELSE.

            <fs_zycet118>-vfob = <fs_zycet118>-netpr.

          ENDIF.

* << Fim da exclusão

          PERFORM ajustes_re_termo USING itab_zycet116-perc_re_termo

                                   CHANGING <fs_zycet118>-fkimg

                                            <fs_zycet118>-ntgew

                                            <fs_zycet118>-brgew

                                            <fs_zycet118>-netpr

                                            <fs_zycet118>-vfob.

          v_vfob  = v_vfob  + <fs_zycet118>-vfob.

          v_netpr = v_netpr + <fs_zycet118>-netpr.

        ENDLOOP.

        CHECK sy-subrc IS INITIAL.

...

 

...

            MODIFY itab_zycet118 INDEX v_index TRANSPORTING netpr.

          ELSE.

            v_difer = <fs_zycet092>-netpr - v_netpr.

            itab_zycet118-netpr = itab_zycet118-netpr + v_difer.

            MODIFY itab_zycet118 INDEX v_index TRANSPORTING netpr.

          ENDIF.

        ENDIF.

      ENDLOOP.

    ELSE.

      LOOP AT itab_zycet118 ASSIGNING <fs_zycet118>.

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

        CLEAR v_despesas.

    READ TABLE itab_zycet002 WITH KEY vbeln_va = <fs_zycet118>-vbeln_va

                                            aupos = <fs_zycet118>-aupos

                                      vbeln_vl = <fs_zycet118>-vbeln_vl

                                            posnl = <fs_zycet118>-posnl

                                      vbeln_vf = <fs_zycet118>-vbeln_vf

                                            posnr = <fs_zycet118>-posnr

                                                 TRANSPORTING vlfrete_r

                                                             vlseguro_r

                                                                 vlod_r

                                                             vlagente_r

                                                          vlacrescimo_r

                                                           vldesconto_r.

        CHECK sy-subrc IS INITIAL.

        IF NOT wa_zycet065-frete IS INITIAL AND

           NOT itab_zycet002-vlfrete_r IS INITIAL.

          IF /pws/zycee001-tpcalc = '0'.

            ADD itab_zycet002-vlfrete_r TO v_despesas.

          ELSE.

            SUBTRACT itab_zycet002-vlfrete_r FROM v_despesas.

          ENDIF.

        ENDIF.

        IF NOT wa_zycet065-seguro IS INITIAL AND

           NOT itab_zycet002-vlseguro_r IS INITIAL.

          IF /pws/zycee001-tpcalc = '0'.

            ADD itab_zycet002-vlseguro_r TO v_despesas.

          ELSE.

            SUBTRACT itab_zycet002-vlseguro_r FROM v_despesas.

          ENDIF.

        ENDIF.

        IF NOT wa_zycet065-outras_desp IS INITIAL AND

           NOT itab_zycet002-vlod_r IS INITIAL.

          IF /pws/zycee001-tpcalc = '0'.

            ADD itab_zycet002-vlod_r TO v_despesas.

          ELSE.

            SUBTRACT itab_zycet002-vlod_r FROM v_despesas.

          ENDIF.

        ENDIF.

        IF NOT wa_zycet065-comissao IS INITIAL AND

           NOT itab_zycet002-vlagente_r IS INITIAL.

          IF /pws/zycee001-tpcalc = '0'.

            ADD itab_zycet002-vlagente_r TO v_despesas.

          ELSE.

            SUBTRACT itab_zycet002-vlagente_r FROM v_despesas.

          ENDIF.

        ENDIF.

        IF NOT wa_zycet065-desconto IS INITIAL AND

           NOT itab_zycet002-vldesconto_r IS INITIAL.

          SUBTRACT itab_zycet002-vldesconto_r FROM v_despesas.

        ENDIF.

        IF NOT wa_zycet065-acrescimo IS INITIAL AND

           NOT itab_zycet002-vlacrescimo_r IS INITIAL.

          ADD itab_zycet002-vlacrescimo_r TO v_despesas.

        ENDIF.

        IF NOT v_despesas IS INITIAL.

          IF /pws/zycee001-tpcalc = '0'.

            <fs_zycet118>-vfob =

              <fs_zycet118>-netpr -

              itab_zycet002-vldesconto_r +

              itab_zycet002-vlacrescimo_r.

            <fs_zycet118>-netpr = <fs_zycet118>-netpr + v_despesas.

          ELSE.

            <fs_zycet118>-vfob = <fs_zycet118>-netpr + v_despesas.

            <fs_zycet118>-netpr =

              <fs_zycet118>-netpr -

              itab_zycet002-vldesconto_r +

              itab_zycet002-vlacrescimo_r.

          ENDIF.

        ELSE.

          <fs_zycet118>-vfob = <fs_zycet118>-netpr.

        ENDIF.

* << Fim da exclusão

        IF itab_zycet116-perc_re_termo > 0.

          v_netpr = v_netpr + <fs_zycet118>-netpr.

          v_vfob  = v_vfob  + <fs_zycet118>-vfob.

        ENDIF.

        PERFORM ajustes_re_termo USING itab_zycet116-perc_re_termo

                                 CHANGING <fs_zycet118>-fkimg

                                          <fs_zycet118>-ntgew

                                          <fs_zycet118>-brgew

                                          <fs_zycet118>-netpr

                                          <fs_zycet118>-vfob.

...

 

...

    IF sy-subrc IS INITIAL.

      MOVE itab_zycet118_aux-dsmerc TO <fs_zycet118>-dsmerc.

    ENDIF.

    READ TABLE itab_zycet092_aux

                WITH KEY codnrseq = <fs_zycet118>-seqagrupado

                TRANSPORTING dsmerc.

    CHECK sy-subrc IS INITIAL.

    MOVE itab_zycet092_aux-dsmerc TO <fs_zycet118>-dsmerc.

  ENDLOOP.

ENDFORM.

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

FORM aplica_despesas.

  TYPES: BEGIN OF ty_zycet065,

          inco1       TYPE /pws/zycet065-inco1,

          fob         TYPE /pws/zycet065-fob,

          frete       TYPE /pws/zycet065-frete,

          seguro      TYPE /pws/zycet065-seguro,

          outras_desp TYPE /pws/zycet065-outras_desp,

          desconto    TYPE /pws/zycet065-desconto,

          acrescimo   TYPE /pws/zycet065-acrescimo,

          comissao    TYPE /pws/zycet065-comissao,

         END OF ty_zycet065.

  DATA: wa_zycet065   TYPE ty_zycet065,

        v_despesas    TYPE /pws/zycet002-vlme.

  SELECT SINGLE inco1

                fob

                frete

                seguro

                outras_desp

                desconto

                acrescimo

                comissao

   FROM /pws/zycet065

   INTO wa_zycet065

   WHERE inco1 EQ /pws/zycee001-inco1.

  FIELD-SYMBOLS: <fs_itemanexo> LIKE LINE OF itab_zycet118.

  LOOP AT itab_zycet118 ASSIGNING <fs_itemanexo>.

    CLEAR v_despesas.

    READ TABLE itab_zycet002 WITH KEY

        vbeln_va = <fs_itemanexo>-vbeln_va

        aupos    = <fs_itemanexo>-aupos

        vbeln_vl = <fs_itemanexo>-vbeln_vl

        posnl    = <fs_itemanexo>-posnl

        vbeln_vf = <fs_itemanexo>-vbeln_vf

        posnr    = <fs_itemanexo>-posnr

      TRANSPORTING

        vlfrete_r

        vlseguro_r

        vlod_r

        vlagente_r

        vlacrescimo_r

        vldesconto_r.

    CHECK sy-subrc IS INITIAL.

    IF NOT wa_zycet065-frete IS INITIAL AND

       NOT itab_zycet002-vlfrete_r IS INITIAL.

      IF /pws/zycee001-tpcalc = '0'.

        ADD itab_zycet002-vlfrete_r TO v_despesas.

      ELSE.

        SUBTRACT itab_zycet002-vlfrete_r FROM v_despesas.

      ENDIF.

    ENDIF.

    IF NOT wa_zycet065-seguro IS INITIAL AND

       NOT itab_zycet002-vlseguro_r IS INITIAL.

      IF /pws/zycee001-tpcalc = '0'.

        ADD itab_zycet002-vlseguro_r TO v_despesas.

      ELSE.

        SUBTRACT itab_zycet002-vlseguro_r FROM v_despesas.

      ENDIF.

    ENDIF.

    IF NOT wa_zycet065-outras_desp IS INITIAL AND

       NOT itab_zycet002-vlod_r IS INITIAL.

      IF /pws/zycee001-tpcalc = '0'.

        ADD itab_zycet002-vlod_r TO v_despesas.

      ELSE.

        SUBTRACT itab_zycet002-vlod_r FROM v_despesas.

      ENDIF.

    ENDIF.

    IF NOT wa_zycet065-comissao IS INITIAL AND

       NOT itab_zycet002-vlagente_r IS INITIAL.

      IF /pws/zycee001-tpcalc = '0'.

        ADD itab_zycet002-vlagente_r TO v_despesas.

      ELSE.

        SUBTRACT itab_zycet002-vlagente_r FROM v_despesas.

      ENDIF.

    ENDIF.

    IF NOT wa_zycet065-desconto IS INITIAL AND

       NOT itab_zycet002-vldesconto_r IS INITIAL.

      SUBTRACT itab_zycet002-vldesconto_r FROM v_despesas.

    ENDIF.

    IF NOT wa_zycet065-acrescimo IS INITIAL AND

       NOT itab_zycet002-vlacrescimo_r IS INITIAL.

      ADD itab_zycet002-vlacrescimo_r TO v_despesas.

    ENDIF.

    IF NOT v_despesas IS INITIAL.

      IF /pws/zycee001-tpcalc = '0'.

        <fs_itemanexo>-vfob =

          <fs_itemanexo>-netpr -

          itab_zycet002-vldesconto_r +

          itab_zycet002-vlacrescimo_r.

        <fs_itemanexo>-netpr = <fs_itemanexo>-netpr + v_despesas.

      ELSE.

        <fs_itemanexo>-vfob = <fs_itemanexo>-netpr + v_despesas.

        <fs_itemanexo>-netpr =

          <fs_itemanexo>-netpr -

          itab_zycet002-vldesconto_r +

          itab_zycet002-vlacrescimo_r.

      ENDIF.

    ELSE.

      <fs_itemanexo>-vfob = <fs_itemanexo>-netpr.

    ENDIF.

  ENDLOOP.

ENDFORM.

* << Fim da exclusão

FORM preenche_ncm_anexos

    CHANGING p_ncm

             p_naladi.

  CLEAR itab_t604f.

  READ TABLE itab_t604f WITH KEY steuc = itab_zycet002-steuc.

  IF sy-subrc = 0 AND wa_zycet145-codncmre IS INITIAL.

    CLEAR itab_zycet081.

    READ TABLE itab_zycet081 WITH KEY steuc = itab_t604f-steuc.

    IF NOT sy-subrc IS INITIAL.

      v_ncm = itab_t604f-steuc.

...

 

...

FORM calcula_anexos

            USING

                v_fkimg

            CHANGING

                p_netpr

                p_ntgew

                p_brgew

                p_vlagente.

  itab_zycet118-vfob = ( itab_zycet118-vfob * v_fkimg ) /

                            itab_zycet002-fkimg.

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

  p_netpr =  itab_zycet002-vlme_r /

* << Fim da exclusão

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

  p_netpr =  itab_zycet002-vlemb /

* << Fim da inclusão

                          ( itab_zycet002-fkimg / v_fkimg ).

  p_vlagente = ( itab_zycet002-vlagente * v_fkimg ) /

                            itab_zycet002-fkimg.

  v_fkimg_aux = v_fkimg.

  IF itab_zycet002-vrkme NE itab_zycet002-gewei.

    PERFORM converte_um USING v_fkimg_aux

                             itab_zycet002-vrkme

                             itab_zycet002-gewei

                             itab_zycet002-matnr

    CHANGING v_fkimg_aux.

...