CE PLUS - Nota 013427

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: LI

Data/Hora da Publicação: 06/12/2013 08:52:35

Data/Hora Última Alteração: 06/12/2013 08:52:35

Descrição da Nota: AO VINCULAR A LI AO ATO CONCESSÓRIO ESTÁ RECALCULANDO QUANT. ESTATISTICA

Sintoma

Ao vincular a LI ao Ato Concessório está recalculando quantidade estatistica.

 

 

Solução

Ajustado programa para efetuar o recalculo da quantidade estátistica apenas quando está for apagada

ou a quantidade for alterada nos itens da LI.

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

CALCULAR O PESO LIQUIDO DOS ITENS APENAS QUANDO A QUANTIDADE FOR ALTERAD

AO TRANSMITIR LI NÃO LEVAVA QUANTIDADE ESTATISTICA

PROGRAMA SOMA ERRADO COM PEDIDOS COM UNIDADES DE MEDIDAS DIFERENTES

Informações Complementares

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

Nota Número 13427 Data: 20/11/2013 Hora: 10:50:44

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

 

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

Nota Número              : 13427

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00006

Agrupamento              : 00166

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

Referência às notas relacionadas:

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

 

10043  - 00001 - 8.0    - 00003  - CALCULAR O PESO LIQUIDO DOS ITENS APENAS QUANDO A QUANTIDADE FOR

10486  - 00002 - 8.0    - 00004  - PROGRAMA SOMA ERRADO COM PEDIDOS COM UNIDADES DE MEDIDAS DIFERENT

13386  - 00003 - 9.0    - 00006  - AO TRANSMITIR LI NÃO LEVAVA QUANTIDADE ESTATISTICA

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

AO VINCULAR A LI AO ATO CONCESSÓRIO ESTÁ RECALCULANDO QUANT. ESTATISTICA

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

Palavras Chave:

LI - QUANTIDADE - ESTATISTICA - VINCULAR - ATO - CONCESSÓRIO

/PWS/SAPMZYCI020 - RECALCULANDO

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

Objetos da nota:

REPS /PWS/MZYCI020X01

REPS /PWS/MZYCI020I01

REPS /PWS/MZYCI020F02

REPS /PWS/MZYCI020F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI020X01

 

...

* >> Início da inclusão:

DATA: v_calc_est(1) TYPE c.

* << Fim da inclusão

DATA: END OF COMMON PART.

 

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

Modificações efetuadas em REPS /PWS/MZYCI020I01

 

...

MODULE altera_it_zycit079 INPUT.

  READ TABLE it_zycit079 INDEX tc_item-current_line.

  IF sy-subrc EQ 0 AND

     /pws/zycie079-qtd_iten NE it_zycit079-qtd_iten AND

     /pws/zycie079-ntgew    EQ it_zycit079-ntgew.

    CLEAR: /pws/zycie079-ntgew, it_zycit079-ntgew.

    v_alt = 'X'.

  ENDIF.

* >> Início da inclusão: MODULE ALTERA_IT_ZYCIT079

  IF sy-subrc EQ 0 AND

     /pws/zycie079-qtd_iten NE it_zycit079-qtd_iten.

    v_calc_est = 'X'.

  ENDIF.

* << Fim da inclusão

  MOVE: mark              TO it_zycit079-mark     ,

        /pws/zycie079-ebeln    TO it_zycit079-ebeln    ,

        /pws/zycie079-ebelp    TO it_zycit079-ebelp    ,

        /pws/zycie079-descr    TO it_zycit079-descr    ,

        /pws/zycie079-bednr    TO it_zycit079-bednr    ,

        /pws/zycie079-menge    TO it_zycit079-menge    ,

        /pws/zycie079-meins    TO it_zycit079-meins    ,

        /pws/zycie079-netpr    TO it_zycit079-netpr    ,

        /pws/zycie079-qtd_iten TO it_zycit079-qtd_iten ,

        /pws/zycie079-ntgew    TO it_zycit079-ntgew    ,

...

 

...

MODULE atualiza_itens INPUT.

* >> Início da exclusão: MODULE ATUALIZA_ITENS

  CLEAR: /pws/zycie078-qtdest.

* << Fim da exclusão

* >> Início da inclusão: MODULE ATUALIZA_ITENS

  IF NOT /pws/zycie078-qtdest > 0 or v_calc_est = 'X'.

    CLEAR /pws/zycie078-qtdest.

    v_calc_est = 'X'.

  ENDIF.

* << Fim da inclusão

  LOOP AT it_zycit079.

    v_indice = sy-tabix.

    PERFORM atualiza_itens.

    MODIFY it_zycit079 INDEX v_indice.

* >> Início da inclusão: MODULE ATUALIZA_ITENS

  IF v_calc_est = 'X'.

* << Fim da inclusão

    /pws/zycie078-qtdest = /pws/zycie078-qtdest + it_zycit079-qtdest.

* >> Início da inclusão: MODULE ATUALIZA_ITENS

  ENDIF.

* << Fim da inclusão

  ENDLOOP.

ENDMODULE.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI020F02

 

...

FORM user_command_0810.

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

  DATA: v_qtd_temp  TYPE /pws/zycit079-qtd_iten,

        v_qtd_tempt TYPE /pws/zycit079-qtd_iten.

* << Fim da inclusão

...

 

...

                ELSE.

                  it_zycit079-qtd_drawback =

                      ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).

                ENDIF.

                it_zycit079-vl_prod_drawback =

                        it_zycit079-qtd_iten * it_zycit079-netpr.

               MODIFY it_zycit079 TRANSPORTING  item_drawback nritem_db

                                          qtd_drawback vl_prod_drawback

                                            WHERE ebeln = it_ekpo-ebeln

                                              AND ebelp = it_ekpo-ebelp.

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

                ADD it_zycit079-qtd_drawback TO v_qtd_tempt.

* << Fim da inclusão

              ENDLOOP.

            ENDLOOP.

          ELSE.

            LOOP AT it_ekpo WHERE matnr EQ itab_atos-matnr.

              READ TABLE it_zycit079 WITH KEY

                                        ebeln = it_ekpo-ebeln

                                        ebelp = it_ekpo-ebelp.

              MOVE:

                   itab_atos-nritem+2 TO it_zycit079-item_drawback,

                   itab_atos-nritem TO it_zycit079-nritem_db.

...

 

...

              ELSE.

                it_zycit079-qtd_drawback =

                ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).

              ENDIF.

              it_zycit079-vl_prod_drawback =

                      it_zycit079-qtd_iten * it_zycit079-netpr.

              MODIFY it_zycit079 TRANSPORTING  item_drawback nritem_db

                                qtd_drawback vl_prod_drawback

                                WHERE ebeln = it_ekpo-ebeln

                                  AND ebelp = it_ekpo-ebelp.

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

              ADD it_zycit079-qtd_drawback TO v_qtd_tempt.

* << Fim da inclusão

            ENDLOOP.

          ENDIF.

        ENDLOOP.

      ELSE.

        READ TABLE itab_atos WITH KEY nrseqd = itab_atos2-nrseqd.

        LOOP AT it_zycit079.

          MOVE itab_atos-nritem+2 TO it_zycit079-item_drawback.

          MOVE itab_atos-nritem TO it_zycit079-nritem_db.

          IF v_qtdtot > 0.

            IF /pws/zycie078-zum EQ '10' AND

...

 

...

              IF sy-subrc EQ 0.

              ENDIF.

            ENDIF.

          ELSE.

            it_zycit079-qtd_drawback =

            ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).

          ENDIF.

          it_zycit079-vl_prod_drawback =

                  it_zycit079-qtd_iten * it_zycit079-netpr.

          MODIFY it_zycit079.

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

          ADD it_zycit079-qtd_drawback TO v_qtd_tempt.

* << Fim da inclusão

        ENDLOOP.

      ENDIF.

      SELECT * FROM /pws/zycit172 INTO TABLE it_zycit172

             WHERE descricao = it_zycit244-praca.       "#EC CI_NOFIELD

      MOVE: itab_atos2-nrseqd      TO /pws/zycie078-nrseqd    ,

            itab_atos2-modalidade  TO /pws/zycie078-modalidade,

            itab_atos2-tipo        TO /pws/zycie078-tipodb    ,

            itab_atos2-nratoc      TO /pws/zycie078-reg_drawback.

      READ TABLE it_zycit172 WITH KEY descricao = it_zycit244-praca.

      IF sy-subrc EQ 0.

...

 

...

          ELSE.

            /pws/zycie078-drawback = '2'.

          ENDIF.

        ENDIF.

      ENDIF.

      LOOP AT itab_atos2 WHERE nrseqd NE /pws/zycit078-nrseqd.

        CALL FUNCTION '/PWS/ZYCI_DEQUEUE_ZYCIT244'

             EXPORTING

                  nrseqd = itab_atos2-nrseqd.

      ENDLOOP.

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

      IF /pws/zycie078-qtdest NE v_qtd_tempt AND

         /pws/zycie078-qtdest > 0.

        LOOP AT it_zycit079.

          it_zycit079-qtd_drawback = /pws/zycie078-qtdest *

            ( it_zycit079-qtd_drawback / v_qtd_tempt ).

          ADD it_zycit079-qtd_drawback TO v_qtd_temp.

          MODIFY it_zycit079.

        ENDLOOP.

        it_zycit079-qtd_drawback = it_zycit079-qtd_drawback +

                  ( /pws/zycie078-qtdest - v_qtd_temp ).

        MODIFY it_zycit079 TRANSPORTING qtd_drawback

            WHERE ebeln EQ it_zycit079-ebeln

              AND ebelp EQ it_zycit079-ebelp.

      ENDIF.

* << Fim da inclusão

      LEAVE TO SCREEN '100'.

    WHEN 'DELEITEM'.

      LOOP AT it_vinculato WHERE marc EQ 'X'.

        DELETE it_vinculato INDEX sy-tabix.

      ENDLOOP.

  ENDCASE.

  CLEAR okcode.

ENDFORM.

...

 

...

form trata_qtdest.

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

  IF v_calc_est = 'X'.

    CLEAR: /pws/zycie078-qtdest, v_calc_est.

  ENDIF.

* << Fim da inclusão

  if not it_zycit079[] is initial.

    clear:  it_ekpo.

    if it_ekpo[] is initial.

      refresh: it_ekpo.

      select * from ekpo into table it_ekpo

        for all entries in it_zycit079

        where ebeln eq it_zycit079-ebeln

          and ebelp eq it_zycit079-ebelp.

    endif.

    clear: v_qtdest, v_qtdtot, v_peso.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI020F01

 

...

        APPEND it_ekpo.

      ENDIF.

      v_vl_temp = itab_zycit079a-qtd_iten *

                  itab_zycit079a-netpr.

      PERFORM converter_moeda USING v_vl_temp

                                 itab_zycit079a-waers

                                 /pws/zycbt007-waersa

                                 it_ekpo-aedat

                        CHANGING v_vl_temp2 .

      IF v_qtdtot > 0 .

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

        IF /pws/zycie078-zum EQ '10'.

          IF NOT v_peso IS INITIAL.

            itab_zycit079a-qtd_iten =

            ( itab_zycit079a-ntgew * wa_zycit078-qtdest ) / v_pesod.

          ENDIF.

        ELSE.

          CALL FUNCTION '/PWS/COVERT_UN_MATERIAL'

               EXPORTING

                    matnr                = itab_zycit079a-matnr

                    meins                = itab_zycit079a-meins

                    qtde                 = itab_zycit079a-qtd_iten

                    ncm                  = itab_zycit079a-steuc1

                    conv                 = ' '

                    land                 = t001-land1

               IMPORTING

                    qtds                 = itab_zycit079a-qtd_iten

                    un_s                 = itab_zycit079a-meins

               EXCEPTIONS

                    conversion_not_found = 1

                    ncm_not_found        = 2

                    overflow             = 3

                    un_ncm_not_found     = 4

                    material_not_found   = 5

                    OTHERS               = 6.

        ENDIF.

* << Fim da exclusão

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

        itab_zycit079a-qtd_iten = itab_zycit079a-qtd_drawback.

* << Fim da inclusão

      ELSE.

        itab_zycit079a-qtd_iten =

        ( itab_zycit079a-qtd_iten * wa_zycit078-qtdest ).

      ENDIF.

      it_zycit245-vlvinc = it_zycit245-vlvinc -

                                            v_vl_temp2.

      it_zycit245-vinculado = it_zycit245-vinculado -

                                  itab_zycit079a-qtd_iten.

      MODIFY it_zycit245 TRANSPORTING vlvinc vinculado

            WHERE nritem EQ it_zycit245-nritem.

...

 

...

        APPEND it_ekpo.

      ENDIF.

      v_vl_temp = it_zycit079-qtd_iten *

                  it_zycit079-netpr.

      PERFORM converter_moeda USING v_vl_temp

                                 it_zycit079-waers

                                 /pws/zycbt007-waersa

                                 it_ekpo-aedat

                        CHANGING v_vl_temp2 .

      IF v_qtdtot > 0 .

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

        IF /pws/zycie078-zum EQ '10'.

          IF NOT v_peso IS INITIAL.

            it_zycit079-qtd_iten =

            ( it_zycit079-ntgew * /pws/zycie078-qtdest ) / v_peso.

          ENDIF.

        ELSE.

          CALL FUNCTION '/PWS/COVERT_UN_MATERIAL'

               EXPORTING

                    matnr                = it_zycit079-matnr

                    meins                = it_zycit079-meins

                    qtde                 = it_zycit079-qtd_iten

                    ncm                  = it_zycit079-steuc1

                    conv                 = ' '

                    land                 = t001-land1

               IMPORTING

                    qtds                 = it_zycit079-qtd_iten

                    un_s                 = it_zycit079-meins

               EXCEPTIONS

                    conversion_not_found = 1

                    ncm_not_found        = 2

                    overflow             = 3

                    un_ncm_not_found     = 4

                    material_not_found   = 5

                    OTHERS               = 6.

        ENDIF.

* << Fim da exclusão

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

        it_zycit079-qtd_iten = it_zycit079-qtd_drawback.

* << Fim da inclusão

      ELSE.

        it_zycit079-qtd_iten =

        ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).

      ENDIF.

      it_zycit245-vlvinc = it_zycit245-vlvinc +

                                            v_vl_temp2.

      it_zycit245-vinculado = it_zycit245-vinculado +

                                  it_zycit079-qtd_iten.

      MODIFY it_zycit245 TRANSPORTING vlvinc vinculado

            WHERE nritem EQ it_zycit245-nritem

...