CE PLUS - Nota 001137

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Custo Efetivo

Data/Hora da Publicação: 03/04/2006 00:00:00

Data/Hora Última Alteração: 20/06/2011 12:17:50

Descrição da Nota: PERFORMANCE NA TRANSAÇÃO /PWS/ZYCIR006 (ATUALIZAÇÃO DO CUSTO EFETIVO).

Sintoma

Má performance na transação /PWS/ZYCIR006 (atualização do custo efetivo). Ao clicar no icone custo

efetivo demora muito para abrir.

embarque tem muitos itens.

 

 

Solução

Foi Ajustado alguns selects.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 01137 Data: 03/04/2006 Hora: 14:56:05

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

 

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

Nota Número              : 01137

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00023

Agrupamento              : 00107

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

PERFORMANCE NA TRANSAÇÃO /PWS/ZYCIR006 (ATUALIZAÇÃO DO CUSTO EFETIVO).

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

Palavras Chave:

PERFORMACE - CUSTO - EFETIVO

 

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

Objetos da nota:

REPS /PWS/MZYCI010F02

REPS /PWS/MZYCI010F03

REPS /PWS/MZYCI010X01

REPS /PWS/ZYCIR006

REPS /PWS/ZYCIR035

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

Modificações efetuadas em REPS /PWS/MZYCI010F02

 

...

* Campos para batch input

  REFRESH itab_zycbt013.

  SELECT * FROM /pws/zycbt013 INTO TABLE itab_zycbt013

         WHERE tabela = '/PWS/ZYCIT001'.

 

* Selecionar materiais

  REFRESH itab_material.

* >> Início da Exclusão: FORM GET_PARAMETERS_MR22

  IF NOT itab_zycit003[] IS INITIAL.

* >> FIM da Exclusão: FORM GET_PARAMETERS_MR22

* >> Início da Inclusão: FORM GET_PARAMETERS_MR22

   if not itab_zycit003_custo[] is initial.

* >> FIM da Inclusão: FORM GET_PARAMETERS_MR22

    SELECT ebeln ebelp matnr bwtar knttp werks INTO TABLE itab_material

           FROM ekpo

           FOR ALL ENTRIES IN itab_zycit003_custo

           WHERE ebeln = itab_zycit003_custo-ebeln

             AND ebelp = itab_zycit003_custo-ebelp.

...

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

Modificações efetuadas em REPS /PWS/MZYCI010F03

...

           FOR ALL ENTRIES IN itab_zycit003

           WHERE nrseq EQ itab_zycit003-nrseq

             AND ebeln EQ itab_zycit003-ebeln

             AND ebelp EQ itab_zycit003-ebelp.

  ENDIF.

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

  CLEAR itab_zycit398.

  REFRESH itab_zycit398 .

  SELECT * FROM /pws/zycit398

      INTO TABLE itab_zycit398.

* << Fim da inclusão

  LOOP AT itab_zycit042.

    CLEAR itab_zycit033.

    READ TABLE itab_zycit033 WITH KEY clnf  = v_clnf

                                      tpnf  = itab_zycit042-tpnf

                                      regio = t001w-regio.

...

 

...

          itab_zycit036_aux-vldif = ' '.

          MODIFY itab_zycit036_aux.

        ENDIF.

      ELSEIF itab_zycit036_aux-codigo EQ 'PIS'

         and itab_zycit036_aux-origem eq 'NF'.

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

        SELECT SINGLE * FROM /pws/zycit398

          WHERE tpnf     EQ itab_zycit042-tpnf

          AND   tributos EQ itab_zycit036_aux-codigo

          AND   bukrs    EQ v_bukrs

          AND   clnf     EQ v_clnf.

* << Fim da exclusão

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

        READ TABLE itab_zycit398 WITH KEY

            tpnf = itab_zycit042-tpnf

            tributos = itab_zycit036_aux-codigo

            bukrs    = v_bukrs

            clnf     = v_clnf.

* << Fim da inclusão

        IF sy-subrc NE 0.

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

          SELECT SINGLE * FROM /pws/zycit398

          WHERE tpnf     EQ itab_zycit042-tpnf

            AND tributos EQ itab_zycit036_aux-codigo

            AND bukrs    EQ space.

* << Fim da exclusão

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

          READ TABLE itab_zycit398 WITH KEY

              tpnf     = itab_zycit042-tpnf

              tributos = itab_zycit036_aux-codigo

              bukrs    = space.

* << Fim da inclusão

        ENDIF.

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

        IF itab_zycit398-creditar EQ 'S'.

* << Fim da inclusão

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

        IF sy-subrc EQ 0.

          IF /pws/zycit398-creditar EQ 'S'.

* << Fim da exclusão

            itab_zycit036_aux-vlmov = ' '.

            itab_zycit036_aux-vldif = ' '.

            MODIFY itab_zycit036_aux.

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

          ENDIF.

* << Fim da exclusão

        ENDIF.

      ELSEIF itab_zycit036_aux-codigo EQ 'COFINS'

         and itab_zycit036_aux-origem eq 'NF'.

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

        SELECT SINGLE * FROM /pws/zycit398

          WHERE tpnf     EQ itab_zycit042-tpnf

            AND clnf     EQ v_clnf

            AND tributos EQ itab_zycit036_aux-codigo

            AND bukrs    EQ v_bukrs.

* << Fim da exclusão

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

        READ TABLE itab_zycit398 WITH KEY

            tpnf     = itab_zycit042-tpnf

            tributos = itab_zycit036_aux-codigo

            bukrs    = v_bukrs

            clnf     = v_clnf.

* << Fim da inclusão

        IF sy-subrc NE 0.

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

          SELECT SINGLE * FROM /pws/zycit398

          WHERE tpnf     EQ itab_zycit042-tpnf

          AND   tributos EQ itab_zycit036_aux-codigo

          AND   bukrs    EQ space.

* << Fim da exclusão

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

          READ TABLE itab_zycit398 WITH KEY

              tpnf     = itab_zycit042-tpnf

              tributos = itab_zycit036_aux-codigo

              bukrs    = space.

* << Fim da inclusão

        ENDIF.

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

        IF itab_zycit398-creditar EQ 'S'.

* << Fim da inclusão

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

        IF sy-subrc EQ 0.

          IF /pws/zycit398-creditar EQ 'S'.

* << Fim da exclusão

            itab_zycit036_aux-vlmov = ' '.

            itab_zycit036_aux-vldif = ' '.

            MODIFY itab_zycit036_aux.

          ENDIF.

        ENDIF.

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

      ENDIF.

* << Fim da exclusão

    ENDLOOP.

  ENDLOOP.

  DATA: it_zycit265 TYPE /pws/zycit265 OCCURS 0 WITH HEADER LINE.

  IF it_zycit265[] IS INITIAL AND NOT

     itab_zycit003[] IS INITIAL.

...

 

...

            itab_zycit036_aux-vldif = ' '.

            MODIFY itab_zycit036_aux.

          ENDIF.

        ELSEIF itab_zycit036_aux-codigo EQ 'PIS'

           and itab_zycit036_aux-origem eq 'NFC'.

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

          SELECT SINGLE * FROM /pws/zycit398

            WHERE tpnf     EQ it_zycit265-tpnf

            AND   tributos EQ itab_zycit036_aux-codigo

            AND   bukrs    EQ v_bukrs.

* << Fim da exclusão

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

          READ TABLE itab_zycit398 WITH KEY

              tpnf = itab_zycit042-tpnf

              tributos = itab_zycit036_aux-codigo

              bukrs    = v_bukrs.

* << Fim da inclusão

          IF sy-subrc NE 0.

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

            SELECT SINGLE * FROM /pws/zycit398

            WHERE tpnf     EQ it_zycit265-tpnf

              AND clnf  EQ v_clnf

              AND tributos EQ itab_zycit036_aux-codigo

              AND bukrs    EQ space.

* << Fim da exclusão

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

            READ TABLE itab_zycit398 WITH KEY

                tpnf     = itab_zycit042-tpnf

                tributos = itab_zycit036_aux-codigo

                bukrs    = space.

* << Fim da inclusão

          ENDIF.

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

          IF itab_zycit398-creditar EQ 'S'.

* << Fim da inclusão

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

          IF sy-subrc EQ 0.

            IF /pws/zycit398-creditar EQ 'S'.

* << Fim da exclusão

              itab_zycit036_aux-vlmov = ' '.

              itab_zycit036_aux-vldif = ' '.

              MODIFY itab_zycit036_aux.

            ENDIF.

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

          ENDIF.

* << Fim da exclusão

        ELSEIF itab_zycit036_aux-codigo EQ 'COFINS'

           and itab_zycit036_aux-origem eq 'NFC'.

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

          SELECT SINGLE * FROM /pws/zycit398

            WHERE tpnf     EQ it_zycit265-tpnf

              AND clnf     EQ v_clnf

              AND tributos EQ itab_zycit036_aux-codigo

              AND bukrs    EQ v_bukrs.

* << Fim da exclusão

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

          READ TABLE itab_zycit398 WITH KEY

              tpnf     = itab_zycit042-tpnf

              clnf     = v_clnf

              tributos = itab_zycit036_aux-codigo

              bukrs    = v_bukrs.

* << Fim da inclusão

          IF sy-subrc NE 0.

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

            SELECT SINGLE * FROM /pws/zycit398

            WHERE tpnf     EQ it_zycit265-tpnf

            AND   tributos EQ itab_zycit036_aux-codigo

            AND   bukrs    EQ space.

* << Fim da exclusão

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

            READ TABLE itab_zycit398 WITH KEY

                tpnf     = itab_zycit042-tpnf

                tributos = itab_zycit036_aux-codigo

                bukrs    = space.

* << Fim da inclusão

          ENDIF.

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

          IF itab_zycit398-creditar EQ 'S'.

* << Fim da inclusão

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

          IF sy-subrc EQ 0.

            IF /pws/zycit398-creditar EQ 'S'.

* << Fim da exclusão

              itab_zycit036_aux-vlmov = ' '.

              itab_zycit036_aux-vldif = ' '.

              MODIFY itab_zycit036_aux.

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

            ENDIF.

* << Fim da exclusão

          ENDIF.

        ENDIF.

      ENDLOOP.

    ENDLOOP.

  ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI010X01

 

...

 

 

* >> Início da Inclusão:

data: begin of itab_zycit398 occurs 0.

        include structure /pws/zycit398.

data: end of itab_zycit398.

* >> Início da Inclusão:

 

 

 

 

DATA: END OF COMMON PART b.

...

 

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

Modificações efetuadas em REPS /PWS/ZYCIR006

...

        INCLUDE STRUCTURE /pws/zycit006.

DATA: END OF itab_zycit006.

DATA: BEGIN OF itab_zycit007 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit007.

DATA: END OF itab_zycit007.

* >> Início da inclusão:

DATA: BEGIN OF itab_tcurc OCCURS 0.

        INCLUDE STRUCTURE tcurc.

DATA: END OF itab_tcurc.

* << Fim da inclusão

DATA: wa_t001w LIKE t001w,

      wa_bseg  LIKE bseg OCCURS 0.

DATA:

  v_netpr  LIKE ekpo-netpr,

  v_porcent LIKE konv-kbetr,

...

 

...

    IF sy-subrc = 0.

      CLEAR itab_zycit036_auxl-vlmov.

      MODIFY itab_zycit036_auxl INDEX sy-tabix.

    ENDIF.

  ENDLOOP.

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

  IF NOT itab_zycit036[] IS INITIAL.

    SELECT * FROM tcurc INTO TABLE itab_tcurc

       FOR ALL ENTRIES IN itab_zycit036

       WHERE waers EQ itab_zycit036-waers_real.

    SELECT * FROM tcurc APPENDING TABLE itab_tcurc

       WHERE waers = /pws/zycit085-waersfob.

    SELECT * FROM /pws/zycit174 INTO TABLE itab_zycit174

    WHERE vigen_inicio <= /pws/zycit085-dttax AND

          vigen_fim    >= /pws/zycit085-dttax AND

          land1       = t001-land1.

* << Fim da inclusão

  IF itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

      FOR ALL ENTRIES IN itab_zycit036

      WHERE nrseq = itab_zycit036-nrseq

        AND ebeln = itab_zycit036-ebeln

...

 

...

      INTO TABLE itab_zycit006

      FOR ALL ENTRIES IN itab_zycit036

      WHERE nrseq = itab_zycit036-nrseqori

        AND eliminado EQ space.

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

  IF NOT itab_zycit006[] IS INITIAL.

    DATA: BEGIN OF itab_zycit006_year OCCURS 0.

            INCLUDE STRUCTURE /pws/zycit006.

    DATA: END OF itab_zycit006_year.

    DATA: v_tabix LIKE sy-tabix,

...

 

...

        itab_zycit006_year-dt_belnrp+0(4) = v_year.

        MODIFY itab_zycit006_year INDEX v_tabix.

      ENDIF.

      ENDIF.

    ENDLOOP.

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

    IF NOT itab_zycit006[] IS INITIAL.

* << Fim da inclusão

    SELECT *

      FROM bkpf

      INTO TABLE itab_bkpf

      FOR ALL ENTRIES IN itab_zycit006

      WHERE bukrs EQ itab_zycit006-bukrs

        AND belnr EQ itab_zycit006-belnr_p

        AND gjahr EQ itab_zycit006-dt_belnrp(04).

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

    ENDIF.

* << Fim da inclusão

    itab_zycit006[] = itab_zycit006_year[].

  ENDIF.

  IF /pws/zycit085-mdadicao EQ 'N'.

    LOOP AT itab_zycit036 WHERE origem EQ 'NF'.

      v_index = sy-tabix.

      IF itab_zycit036-codigo EQ 'FOB' OR

         itab_zycit036-codigo EQ 'C&F' OR

         itab_zycit036-codigo EQ 'CIF' .

        IF itab_zycit036-waers_real NE /pws/zycit085-waersfob.

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

          SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

* << Fim da exclusão

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

          READ TABLE itab_tcurc WITH KEY

* << Fim da inclusão

             waers = itab_zycit036-waers_real.

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

          SELECT SINGLE * FROM /pws/zycit174

          WHERE codconver = v_moeda  AND

            vigen_inicio <= /pws/zycit085-dttax AND

            vigen_fim    >= /pws/zycit085-dttax AND

            land1       = t001-land1.

* << Fim da exclusão

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

          IF sy-subrc EQ 0.

            MOVE itab_tcurc-/pws/codmo TO v_moeda.

            READ TABLE itab_zycit174 WITH KEY

               codconver = v_moeda.

            IF sy-subrc EQ 0.

              MOVE itab_zycit174 TO /pws/zycit174.

            ENDIF.

          ENDIF.

* << Fim da inclusão

          IF NOT /pws/zycit174-txconver IS INITIAL.

            itab_zycit036-vlreal =

                itab_zycit036-vlreal * /pws/zycit174-txconver.

          ENDIF.

          CLEAR : /pws/zycit174, v_moeda.

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

          SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

* << Fim da exclusão

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

          READ TABLE itab_tcurc WITH KEY

* << Fim da inclusão

             waers = /pws/zycit085-waersfob.

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

          IF sy-subrc EQ 0.

            MOVE itab_tcurc-/pws/codmo TO v_moeda.

            READ TABLE itab_zycit174 WITH KEY

               codconver = v_moeda.

            IF sy-subrc EQ 0.

              MOVE itab_zycit174 TO /pws/zycit174.

            ENDIF.

          ENDIF.

* << Fim da inclusão

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

          SELECT SINGLE * FROM /pws/zycit174

          WHERE codconver = v_moeda  AND

                vigen_inicio <= /pws/zycit085-dttax AND

                vigen_fim    >= /pws/zycit085-dttax AND

                land1       = t001-land1.

* << Fim da exclusão

          IF NOT /pws/zycit174-txconver IS INITIAL.

            itab_zycit036-vlreal =

                itab_zycit036-vlreal / /pws/zycit174-txconver.

          ENDIF.

          itab_zycit036-waers_real = /pws/zycit085-waersfob.

        ENDIF.

      ENDIF.

      MODIFY itab_zycit036 INDEX v_index.

    ENDLOOP.

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

    CLEAR : /pws/zycit174, v_moeda.

* << Fim da inclusão

    LOOP AT itab_zycit036 WHERE origem EQ 'FAT'.

      v_index = sy-tabix.

      IF itab_zycit036-codigo EQ 'FOB' OR

         itab_zycit036-codigo EQ 'C&F' OR

         itab_zycit036-codigo EQ 'CIF' .

        IF itab_zycit036-waers_real NE /pws/zycit085-waersfob.

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

          SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

* << Fim da exclusão

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

          READ TABLE itab_tcurc WITH KEY

* << Fim da inclusão

             waers = itab_zycit036-waers_real.

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

          SELECT SINGLE * FROM /pws/zycit174

          WHERE codconver = v_moeda  AND

            vigen_inicio <= /pws/zycit085-dttax AND

            vigen_fim    >= /pws/zycit085-dttax AND

            land1       = t001-land1.

* << Fim da exclusão

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

          IF sy-subrc EQ 0.

            MOVE itab_tcurc-/pws/codmo TO v_moeda.

            READ TABLE itab_zycit174 WITH KEY

               codconver = v_moeda.

            IF sy-subrc EQ 0.

              MOVE itab_zycit174 TO /pws/zycit174.

            ENDIF.

          ENDIF.

* << Fim da inclusão

          IF NOT /pws/zycit174-txconver IS INITIAL.

            itab_zycit036-vlreal =

                itab_zycit036-vlreal * /pws/zycit174-txconver.

          ENDIF.

          CLEAR : /pws/zycit174, v_moeda.

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

          SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

* << Fim da exclusão

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

          READ TABLE itab_tcurc WITH KEY

* << Fim da inclusão

             waers = /pws/zycit085-waersfob.

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

          IF sy-subrc EQ 0.

            MOVE itab_tcurc-/pws/codmo TO v_moeda.

            READ TABLE itab_zycit174 WITH KEY

               codconver = v_moeda.

            IF sy-subrc EQ 0.

              MOVE itab_zycit174 TO /pws/zycit174.

            ENDIF.

          ENDIF.

* << Fim da inclusão

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

          SELECT SINGLE * FROM /pws/zycit174

          WHERE codconver = v_moeda  AND

                vigen_inicio <= /pws/zycit085-dttax AND

                vigen_fim    >= /pws/zycit085-dttax AND

                land1       = t001-land1.

* << Fim da exclusão

          IF NOT /pws/zycit174-txconver IS INITIAL.

            itab_zycit036-vlreal =

                itab_zycit036-vlreal / /pws/zycit174-txconver.

          ENDIF.

          itab_zycit036-waers_real = /pws/zycit085-waersfob.

...

 

...

    v_tot_linf = v_tot_linf + 1.

  ENDLOOP.

  LOOP AT itab_zycit036 WHERE codigo EQ 'SEGURO'.

    v_tot_lins = v_tot_lins + 1.

  ENDLOOP.

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

  data : begin of itab_zycit006_fat occurs 0.

         include structure /pws/zycit006.

  data : end of itab_zycit006_fat.

  if not itab_zycit263[] is initial.

    SELECT * FROM /pws/zycit006 into table itab_zycit006_fat

      for all entries in itab_zycit263

      WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat

        AND frpagto = 'A'

        AND tpfatura NE '99'

        AND eliminado NE 'X'.

  endif.

* << Fim da inclusão

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

  LOOP AT itab_zycit036.

* << Fim da exclusão

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

   loop at itab_zycit036 where origem ne 'PED'.

* << Fim da inclusão

    IF itab_zycit036-netpr <= v_vl.

      CLEAR itab_zycit036-netpr.

    ENDIF.

    CLEAR v_valor.

    v_index = sy-tabix.

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

    IF itab_zycit036-origem NE 'PED'.

* << Fim da exclusão

      CLEAR v_itemcongela.

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

      READ  TABLE itab_zycit036_auxl WITH KEY

* << Fim da inclusão

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

   READ  TABLE itab_zycit036_auxl WITH KEY  nrseq = itab_zycit036-nrseq

* << Fim da exclusão

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

      nrseq = itab_zycit036-nrseq

* << Fim da inclusão

                                            ebeln = itab_zycit036-ebeln

                                            ebelp = itab_zycit036-ebelp

                                                       congelamov = 'X'.

      IF sy-subrc EQ 0.

        v_itemcongela = 'X'.

...

 

...

            READ TABLE itab_zycit263 WITH KEY

                                    nrseq = itab_zycit003-nrseq

                                    ebeln = itab_zycit003-ebeln

                                    ebelp = itab_zycit003-ebelp.

            IF sy-subrc = 0.

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

              SELECT SINGLE * FROM /pws/zycit006

                WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat

                  AND frpagto = 'A'

                  AND tpfatura NE '99'

                  AND eliminado NE 'X'.

* << Fim da exclusão

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

              read table itab_zycit006_fat with key

                 nrseq_pgfat = itab_zycit263-nrseq_pgfat.

* << Fim da inclusão

              IF sy-subrc = 0.

                CLEAR: itab_zycit036-vlmov, itab_zycit036-waers_mov,

                       itab_zycit036-vldif, itab_zycit036-waers_dif.

              ENDIF.

            ENDIF.

...

 

...

          ELSEIF itab_zycit036-vldif IS INITIAL.

            CLEAR itab_zycit036-waers_dif.

          ENDIF.

          MODIFY itab_zycit036 INDEX v_index.

      ENDCASE.

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

   READ  TABLE itab_zycit036_auxl WITH KEY  nrseq = itab_zycit036-nrseq

* << Fim da exclusão

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

     READ  TABLE itab_zycit036_auxl WITH KEY

     nrseq = itab_zycit036-nrseq

* << Fim da inclusão

                                            ebeln = itab_zycit036-ebeln

                                            ebelp = itab_zycit036-ebelp

                                          codigo = itab_zycit036-codigo

                                                         origem = 'PED'.

      IF sy-subrc = 0.

...

 

...

          itab_zycit036-waers_dif = itab_zycit036-waers_mov.

          CLEAR itab_zycit036_auxl-vlmov.

          CLEAR itab_zycit036_auxl-waers_mov.

          MODIFY itab_zycit036_auxl INDEX sy-tabix.

          MODIFY itab_zycit036 INDEX v_index.

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

        ENDIF.

* << Fim da exclusão

      ENDIF.

    ENDIF.

    MODIFY itab_zycit036 INDEX v_index.

  ENDLOOP.

  DATA nrbl LIKE /pws/zycit085-nrbl.

...

 

...

      ENDIF.

    ENDLOOP.

  ENDLOOP.

ENDFORM.

FORM verifica_moeda.

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

  CLEAR: itab_tcurc, itab_zycit174.

  REFRESH: itab_tcurc, itab_zycit174.

  IF NOT itab_zycit100[] IS INITIAL and

    /pws/zycit085-mdadicao = 'N'.

    SELECT * FROM tcurc INTO TABLE itab_tcurc

    FOR ALL ENTRIES IN itab_zycit100

    WHERE waers = itab_zycit100-waersbem.

    SELECT * FROM /pws/zycit174 INTO TABLE itab_zycit174

    WHERE  vigen_inicio <= /pws/zycit085-dttax AND

           vigen_fim    >= /pws/zycit085-dttax AND

           land1         = t001-land1.

  ENDIF.

* << Fim da inclusão

  LOOP AT itab_zycit100.

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

      IF itab_zycit100-waersbem NE /pws/zycit085-waersfob.

        CLEAR : /pws/zycit174, v_moeda.

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

        SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

* << Fim da exclusão

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

        READ TABLE itab_tcurc WITH KEY

* << Fim da inclusão

           waers = itab_zycit100-waersbem.

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

        IF sy-subrc EQ 0.

          MOVE itab_tcurc-/pws/codmo TO v_moeda.

          READ TABLE itab_zycit174 WITH KEY

             codconver = v_moeda.

          IF sy-subrc EQ 0.

            MOVE itab_zycit174 TO /pws/zycit174.

          ENDIF.

        ENDIF.

* << Fim da inclusão

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

        SELECT SINGLE * FROM /pws/zycit174

        WHERE codconver = v_moeda  AND

              vigen_inicio <= /pws/zycit085-dttax AND

              vigen_fim    >= /pws/zycit085-dttax AND

              land1       = t001-land1.

* << Fim da exclusão

        IF NOT /pws/zycit174-txconver IS INITIAL.

          itab_zycit100-vlfob  =

              itab_zycit100-vlfob * /pws/zycit174-txconver.

        ENDIF.

        CLEAR : /pws/zycit174, v_moeda.

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

        READ TABLE itab_tcurc WITH KEY

          waers = itab_zycit100-waersbem.

        IF sy-subrc EQ 0.

          MOVE itab_tcurc-/pws/codmo TO v_moeda.

          READ TABLE itab_zycit174 WITH KEY

             codconver = v_moeda.

          IF sy-subrc EQ 0.

            MOVE itab_zycit174 TO /pws/zycit174.

          ENDIF.

        ENDIF.

* << Fim da inclusão

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

        SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

           waers = /pws/zycit085-waersfob.

        SELECT SINGLE * FROM /pws/zycit174

        WHERE codconver = v_moeda  AND

              vigen_inicio <= /pws/zycit085-dttax AND

              vigen_fim    >= /pws/zycit085-dttax AND

              land1       = t001-land1.

* << Fim da exclusão

        IF NOT /pws/zycit174-txconver IS INITIAL.

          itab_zycit100-vlfob  =

              itab_zycit100-vlfob / /pws/zycit174-txconver.

        ENDIF.

        itab_zycit100-dttaxbem = /pws/zycit174-txconver.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR035

...

      itab_zycit036-hruserc   = sy-uzeit.

      append itab_zycit036.

    endif.

    if /pws/zycit100-codregtri ne '3' and

       /pws/zycit100-codregtri ne '5'.

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

      perform entra_despesa using it_desp 'II'     it_desp-vlii   'BRL'

* << Fim da exclusão

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

      perform entra_despesa using it_desp 'II'     it_desp-vlii

              /pws/zycbt007-waersb

* << Fim da inclusão

              it_desp-advalii  changing wa_036.

      move wa_036 to itab_zycit036.

      itab_zycit036-usernamec = sy-uname.

      itab_zycit036-dtuserc   = sy-datum.

      itab_zycit036-hruserc   = sy-uzeit.

      append itab_zycit036.

    endif.

    if /pws/zycit100-codregtriipi ne '1' and

       /pws/zycit100-codregtriipi ne '5'.

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

      perform entra_despesa using it_desp 'IPI'    it_desp-vlipi  'BRL'

* << Fim da exclusão

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

      perform entra_despesa using it_desp 'IPI'    it_desp-vlipi

              /pws/zycbt007-waersb

* << Fim da inclusão

            it_desp-advalipi changing wa_036.

      move wa_036 to itab_zycit036.

      itab_zycit036-usernamec = sy-uname.

      itab_zycit036-dtuserc   = sy-datum.

      itab_zycit036-hruserc   = sy-uzeit.

      append itab_zycit036.

    endif.

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

    perform entra_despesa using it_desp 'ICMS'   it_desp-vlicms 'BRL'

* << Fim da exclusão

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

    perform entra_despesa using it_desp 'ICMS'   it_desp-vlicms

              /pws/zycbt007-waersb

* << Fim da inclusão

            it_desp-aliqicms changing wa_036.

    move wa_036 to itab_zycit036.

    itab_zycit036-usernamec = sy-uname.

    itab_zycit036-dtuserc   = sy-datum.

    itab_zycit036-hruserc   = sy-uzeit.

...