CE PLUS - Nota 012469

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: LI

Data/Hora da Publicação: 29/08/2012 00:00:00

Data/Hora Última Alteração: 03/09/2012 17:07:17

Descrição da Nota: AJUSTE/ERRO NO CAMPO VAL.TOT.LOCAL EMBAR -> /PWS/ZYCIE078-VLMERC

Sintoma

Campo Valor Total Local Embarque, na Pasta Mercadoria 2, está com o valor errado.

 

 

Solução

Toda vez que for adicionado um item, ou deletado, ou alterar a quantidade, devemos atualizar o campo

Val.Tot.Local Embar.

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

QUANTIDADE ESTATÍSTICA VALOR TOTAL LOCAL EMBARQUE PESO LÍQUIDO

Informações Complementares

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

Nota Número 12469 Data: 29/08/2012 Hora: 09:00:40

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

 

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

Nota Número              : 12469

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00001

Agrupamento              : 00127

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

Referência às notas relacionadas:

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

 

12183  - 00001 - 8.0    - 00011  - QUANTIDADE ESTATÍSTICA VALOR TOTAL LOCAL EMBARQUE PESO LÍQUIDO

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

AJUSTE/ERRO NO CAMPO VAL.TOT.LOCAL EMBAR -> /PWS/ZYCIE078-VLMERC

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

Palavras Chave:

/PWS/SAPMZYCI020 - VAL.TOT.LOCAL EMBAR - /PWS/ZYCIE078-VLMERC

 

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

Objetos da nota:

REPS /PWS/MZYCI020F01

REPS /PWS/MZYCI020I01

REPS /PWS/MZYCI020O01

REPS /PWS/MZYCI020X01

 

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

Modificações efetuadas em REPS /PWS/MZYCI020F01

 

...

    MOVE it_zycit079 TO it_zycit079_del.

    APPEND it_zycit079_del.

    MOVE it_zycit079 TO it_079_del.

    APPEND it_079_del.

    DELETE it_zycit081 WHERE ebeln EQ it_zycit079-ebeln

                         AND ebelp EQ it_zycit079-ebelp.

    DELETE it_anu2 WHERE ebeln EQ it_zycit079-ebeln

                     AND ebelp EQ it_zycit079-ebelp.

    DELETE it_zycit079 INDEX v_idx.

  ENDLOOP.

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

  IF sy-subrc EQ 0.

    PERFORM verifica_vltotal_local_emb.

  ENDIF.

* << Fim da inclusão

  IF it_zycit079[] IS INITIAL.

    CLEAR: /pws/zycie078-inco1,

           /pws/zycie078-waers.

  ENDIF.

ENDFORM.

...

 

...

FORM verifica_vltotal_local_emb.

  DATA: itab_komv_aux LIKE itab_komv OCCURS 0 WITH HEADER LINE.

  DATA:

    v_ebelp      LIKE konv-kposn,

    v_vlmerc     LIKE /pws/zycit003-netpr,

    v_vlmerc_aux LIKE /pws/zycit003-netpr.

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

  CHECK sy-tcode NE '/PWS/ZYCI020_E'.

  CLEAR: /pws/zycie078-vlmerc.

* << Fim da inclusão

  CHECK NOT it_zycit079[] IS INITIAL.

  it_zycit079_a[] = it_zycit079[].

  FREE itab_itens_aux.

  IF NOT it_zycit079_a[] IS INITIAL.

    SELECT ekko~ebeln ekko~lifnr ekko~inco1

           ekpo~ebelp ekpo~txz01 ekpo~menge ekpo~ktmng ekpo~bstyp

           ekpo~meins ekpo~ntgew ekpo~gewei ekpo~netpr ekpo~bednr

           ekpo~uebto ekpo~uebtk ekpo~loekz ekpo~elikz ekpo~j_1bnbm

           ekpo~matnr

     FROM ( ekpo INNER JOIN ekko ON ekpo~ebeln = ekko~ebeln )

...

 

...

  SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie078-bukrs.

  SELECT * FROM /pws/zycit030

    INTO TABLE itab_zycit030

    WHERE codigo EQ 'FOB'

      AND land1  EQ t001-land1

      AND bukrs  EQ /pws/zycie078-bukrs.

  LOOP AT it_zycit079_a.

    CLEAR v_vlmerc.

    CLEAR itab_itens_aux.

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

    IF it_zycit079_a-vlmerc IS INITIAL.

* << Fim da exclusão

      READ TABLE itab_itens_aux WITH KEY ebeln = it_zycit079_a-ebeln

                                         ebelp = it_zycit079_a-ebelp.

     IF sy-subrc EQ 0.

        MOVE: itab_itens_aux-txz01  TO it_zycit079_a-descr,

              itab_itens_aux-bednr  TO it_zycit079_a-bednr,

              itab_itens_aux-uebto  TO it_zycit079_a-uebto,

              itab_itens_aux-meins  TO it_zycit079_a-meins,

              itab_itens_aux-uebtk  TO it_zycit079_a-uebtk.

        READ TABLE it_ekpo WITH KEY  ebeln = itab_itens-ebeln

                                     ebelp = itab_itens-ebelp.

...

 

...

              MODIFY it_zycit079 TRANSPORTING vlmerc

              WHERE nrseqli = it_zycit079_a-nrseqli

                AND tpli  = it_zycit079_a-tpli

                AND ebeln = it_zycit079_a-ebeln

                AND ebelp = it_zycit079_a-ebelp.

            ENDIF.

          ENDAT.

        ENDLOOP.

        FREE itab_zycit030_aux.

      ENDIF.

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

    ENDIF.

    v_vlmerc_aux = v_vlmerc_aux +

    ( it_zycit079_a-netpr * it_zycit079_a-qtd_iten ) .

* << Fim da exclusão

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

    /pws/zycie078-vlmerc = /pws/zycie078-vlmerc +

          ( v_vlmerc * it_zycit079_a-qtd_iten ) .

* << Fim da inclusão

  ENDLOOP.

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

  IF /pws/zycie078-vlmerc IS INITIAL OR v_atualiza EQ 'X'.

    /pws/zycie078-vlmerc = v_vlmerc_aux.

  ENDIF.

* << Fim da exclusão

ENDFORM.

...

 

 

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

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.

  ENDIF.

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

  IF sy-subrc EQ 0 AND

       /pws/zycie079-qtd_iten NE it_zycit079-qtd_iten.

    v_atualiza = 'X'.

  ENDIF.

* << Fim da exclusã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    ,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI020O01

 

...

MODULE load_data OUTPUT.

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

  DATA v_vlmerc_aux LIKE /pws/zycit003-netpr.

* << Fim da exclusão

  DATA: flag_emp TYPE c.

  CHECK sy-ucomm NE 'MKTD'.

  CHECK sy-ucomm NE 'DKTD'.

  IF ( sy-tcode EQ '/PWS/ZYCI020_G' OR

  sy-tcode EQ '/PWS/ZYCI020_I') .

    SELECT SINGLE nrpli dtreg FROM /pws/zycit078

    INTO (v_nrpli, v_dtreg)

    WHERE nrseqli = /pws/zycie078-nrseqli.

  ELSEIF ( sy-tcode EQ '/PWS/ZYCI020_C' OR

          sy-tcode EQ '/PWS/ZYCI020_A')  AND

...

 

...

          IF v_novo_item EQ 'X'.

            IF NOT it_zycit079-qtd_iten IS INITIAL.

              /pws/zycie078-qtdest = /pws/zycie078-qtdest +

                                     it_zycit079-qtd_iten.

              DELETE itab_itens WHERE ebeln EQ it_zycit079-ebeln

                                AND   ebelp EQ it_zycit079-ebelp.

              CLEAR v_novo_item.

            ENDIF.

          ENDIF.

        ENDIF.

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

        IF v_atualiza EQ 'X'.

          /pws/zycie078-qtdest = v_qtdest.

          CLEAR v_atualiza.

        ENDIF.

* << Fim da exclusão

      ENDIF.

    ELSEIF  /pws/zycie078-qtdest <> v_qtdest AND

            NOT v_novo_item IS INITIAL.

      /pws/zycie078-qtdest = v_qtdest.

      CLEAR v_novo_item.

    ENDIF.

    LOOP AT it_079_del.

      READ TABLE it_ekpo WITH KEY ebeln = it_079_del-ebeln

                                  ebelp = it_079_del-ebelp.

      IF sy-subrc NE 0.

...

 

...

        ENDIF.

      ENDIF.

      IF NOT it_ekpo-matnr IS INITIAL.

        PERFORM converte_um_ncm USING it_ekpo-matnr

                             CHANGING it_079_del-meins

                                      it_079_del-qtd_iten.

      ENDIF.

      IF /pws/zycie078-qtdest GE it_079_del-qtd_iten.

        /pws/zycie078-qtdest = /pws/zycie078-qtdest -

                               it_079_del-qtd_iten.

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

      ENDIF.

      IF /pws/zycie078-ntgew GE it_079_del-ntgew.

        /pws/zycie078-ntgew = /pws/zycie078-ntgew -

                               it_079_del-ntgew.

      ENDIF.

      CLEAR v_vlmerc_aux.

      v_vlmerc_aux = it_079_del-netpr * it_079_del-qtd_iten.

      IF /pws/zycie078-vlmerc GE v_vlmerc_aux.

        /pws/zycie078-vlmerc = /pws/zycie078-vlmerc - v_vlmerc_aux.

      ENDIF.

      IF /pws/zycie078-vltot GE v_vlmerc_aux.

        /pws/zycie078-vltot = /pws/zycie078-vltot - v_vlmerc_aux.

* << Fim da exclusão

      ENDIF.

      DELETE it_079_del WHERE ebeln EQ it_079_del-ebeln

                        AND   ebelp EQ it_079_del-ebelp.

    ENDLOOP.

  ELSE.

    CLEAR /pws/zycie078-qtdest.

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

    CLEAR: /pws/zycie078-vlmerc,

           /pws/zycie078-vltot ,

           /pws/zycie078-ntgew .

* << Fim da exclusão

  ENDIF.

ENDMODULE.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI020X01

 

...

* >> Início da exclusão:

DATA v_atualiza TYPE c.

* << Fim da exclusão

...