CE PLUS - Nota 010999

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DA

Data/Hora da Publicação: 28/02/2011 00:00:00

Data/Hora Última Alteração: 03/03/2011 15:42:11

Descrição da Nota: CALCULO DA QUANTIDADE ESTATISTICA

Sintoma

A quantidade estatistica está errada no detalhe do ITEM da DA

 

 

Solução

Ajustado programa para efetuar o calculo da quantidade estatistica.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

DA NÃO CONVERTE PESO LÍQUIDO / UNIDADE DE MEDIDA ESTATÍSTICA

ERRO AO ACRESCENTAR NOVOS LOTES NA DA E PROPOSIÇÃO DE VALOR SEGURO

Informações Complementares

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

Nota Número 10999 Data: 28/02/2011 Hora: 15:09:16

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

 

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

Nota Número              : 10999

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00006

Agrupamento              : 00061

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

Referência às notas relacionadas:

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

 

03926  - 00001 - 7.0    - 00001  - ERRO AO ACRESCENTAR NOVOS LOTES NA DA E PROPOSIÇÃO DE VALOR SEGUR

10860  - 00002 - 8.0    - 00006  - DA NÃO CONVERTE PESO LÍQUIDO / UNIDADE DE MEDIDA ESTATÍSTICA

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

CALCULO DA QUANTIDADE ESTATISTICA

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

Palavras Chave:

DA- CALCULO - QUANTIDADE - ESTATISTICA - ITEM - PESO - LIQUIDO

/PWS/SAPMZYCI070

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

Objetos da nota:

REPS /PWS/MZYCI070F01

REPS /PWS/MZYCI070F02

 

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

Modificações efetuadas em REPS /PWS/MZYCI070F01

 

...

  IF v_embimp IS INITIAL.

    DELETE FROM /pws/zycit014 WHERE nrseq   = /pws/zycie442-nrseqda.

    MODIFY /pws/zycit014 FROM TABLE itab_zycit014.

  ENDIF.

  DELETE FROM /pws/zycit463 WHERE nrseqda = /pws/zycie442-nrseqda.

  MODIFY /pws/zycit463 FROM TABLE itab_zycit463.

  CLEAR itab_del.

  FREE  itab_del.

  LOOP AT itab_it.

    v_tabix = sy-tabix.

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

    itab_it-qtdeumest = itab_it-qtd_da.

    CLEAR itab_ekpo.

    READ TABLE itab_ekpo WITH KEY ebeln = itab_it-ebeln

                                  ebelp = itab_it-ebelp.

    IF sy-subrc IS INITIAL.

      itab_it-meinsest = itab_ekpo-lmein.

* << Fim da exclusão

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

    IF itab_it-qtdeumest IS INITIAL.

      PERFORM qtd_estatic USING itab_it-matnr

                                itab_it-j_1bnbm

                                itab_it-meins

                                itab_it-qtd_da

                       CHANGING itab_it-meinsest

                                itab_it-qtdeumest.

* << Fim da inclusão

    ENDIF.

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

    PERFORM peso_liq.

* << Fim da inclusão

    MODIFY itab_it INDEX v_tabix.

    MOVE-CORRESPONDING itab_it TO itab_zycit003.

    APPEND itab_zycit003.

    MOVE-CORRESPONDING itab_it TO itab_zycit455.

    IF itab_zycit455-itseqda IS INITIAL.

      LOOP AT itab_zycit455 INTO itab_zycit455a

...

 

...

      MOVE-CORRESPONDING /pws/zycie003  TO itab_it.

    ENDIF.

    MOVE-CORRESPONDING /pws/zycie443a TO itab_it.

    itab_it-waersbem = v_waersdif.

  ELSE.

    MOVE /pws/zycie442-inco1 TO itab_it-inco1.

    IF NOT /pws/zycie003-nrseq IS INITIAL.

      MOVE-CORRESPONDING /pws/zycie003  TO itab_it.

    ENDIF.

    MOVE-CORRESPONDING /pws/zycie443a TO itab_it.

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

  ENDIF.

  IF itab_it-qtdeumest IS INITIAL.

    PERFORM qtd_estatic USING itab_it-matnr

                              itab_it-j_1bnbm

                              itab_it-meins

                              itab_it-qtd_da

                     CHANGING itab_it-meinsest

                              itab_it-qtdeumest.

  ENDIF.

  IF itab_t006[] IS INITIAL.

    SELECT msehi zaehl nennr exp10 FROM t006

      INTO TABLE itab_t006

      WHERE dimid = 'MASS'.

  ENDIF.

  READ TABLE itab_t006 WITH KEY msehi = itab_it-meinsest.

  IF sy-subrc EQ 0.

    IF itab_it-meinsest EQ itab_it-gewei.

      itab_it-ntgew = itab_it-qtdeumest.

    ELSE.

      CALL FUNCTION '/PWS/COVERT_UN_MATERIAL'

           EXPORTING

                matnr                = itab_it-matnr

                meins                = itab_it-meinsest

                MEINS_P              = itab_it-gewei

                qtde                 = itab_it-qtdeumest

                conv                 = ' '

                land                 = t001-land1

           IMPORTING

                qtds                 = itab_it-ntgew

           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 inclusão

  ENDIF.

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

  /pws/zycie443a-ntgew     = itab_it-ntgew .

  /pws/zycie443a-qtdeumest = itab_it-qtdeumest.

  /pws/zycie443a-meinsest = itab_it-meinsest.

* << Fim da inclusão

  IF NOT /pws/zycie003-qtd_itend IS INITIAL AND

     v_embimp EQ 'X'.

    MOVE /pws/zycie003-qtd_itend TO itab_it-qtd_itend.

  ENDIF.

...

 

...

  PERFORM load_fbvl.

  CLEAR: v_desp_acr, v_desp_brl.

  PERFORM load_sevl.

  IF NOT itab_it[] IS INITIAL.

    CLEAR:

      /pws/zycie442-vlpis,

      /pws/zycie442-vlcofins.

  ENDIF.

  LOOP AT itab_it.

    v_idx = sy-tabix.

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

    IF itab_it-qtdeumest IS INITIAL.

      PERFORM qtd_estatic USING itab_it-matnr

                                itab_it-j_1bnbm

                                itab_it-meins

                                itab_it-qtd_da

                       CHANGING itab_it-meinsest

                                itab_it-qtdeumest.

    ENDIF.

    PERFORM peso_liq.

    MODIFY itab_it.

* << Fim da inclusão

    IF v_idx EQ v_ipt AND v_ipt NE 1.

      itab_it-vlfob = v_tval - v_aux_rateio.

    ELSE.

      IF s_inco1_ci NE 'FOB' AND itab_it-vlfre_fat IS INITIAL.

        IF NOT /pws/zycie442-ukursfre IS INITIAL.

          IF s_inco1_ci = 'C&F'.

            IF NOT v_tval3 IS INITIAL.

              itab_it-vlfob = ( ( itab_it-qtd_da * itab_it-vlreal )

                          / v_tval3 ) * v_tval.

            ENDIF.

...

 

...

    CLEAR itab_it.

    READ TABLE itab_it

      WITH KEY nrseq   = itab_zycit003-nrseq

               ebeln   = itab_zycit003-ebeln

               ebelp   = itab_zycit003-ebelp.

    v_sub = sy-subrc.

    v_idx = sy-tabix.

    IF v_sub NE 0.

      MOVE-CORRESPONDING itab_zycit003 TO itab_it.

    ENDIF.

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

    READ TABLE itab_ekpo WITH KEY ebeln = itab_it-ebeln

                                  ebelp = itab_it-ebelp.

    IF sy-subrc EQ 0.

      itab_it-meinsest = itab_ekpo-lmein.

* << Fim da exclusão

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

    IF itab_it-qtdeumest IS INITIAL.

      PERFORM qtd_estatic USING itab_it-matnr

                                itab_it-j_1bnbm

                                itab_it-meins

                                itab_it-qtd_da

                       CHANGING itab_it-meinsest

                                itab_it-qtdeumest.

* << Fim da inclusão

    ENDIF.

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

    PERFORM peso_liq.

* << Fim da inclusão

    itab_it-meinscom  = itab_zycit003-meins.

    itab_it-basred    = itab_zycit003-basred.

    itab_it-vlreal    = itab_zycit003-vlreal.

    itab_it-nrseqda   = /pws/zycie442-nrseqda.

    itab_it-waersreal = wa_zycbt007-waersb.

    itab_it-waersbem = itab_zycit003-waers_real.

...

 

...

* >> Início da inclusão:

FORM qtd_estatic USING    p_matnr

                          p_ncm

                          p_meins

                          p_qtd

                 CHANGING p_meinsest

                          p_qtdeumest.

  CALL FUNCTION '/PWS/COVERT_UN_MATERIAL'

       EXPORTING

            matnr                = p_matnr

            meins                = p_meins

            qtde                 = p_qtd

            conv                 = ' '

            land                 = t001-land1

            ncm                  = p_ncm

       IMPORTING

            qtds                 = p_qtdeumest

            un_s                 = p_meinsest

       EXCEPTIONS

            conversion_not_found = 1

            ncm_not_found        = 2

            overflow             = 3

            un_ncm_not_found     = 4

            material_not_found   = 5

            OTHERS               = 6.

  IF sy-subrc <> 0.

  ENDIF.

ENDFORM.

FORM peso_liq.

  IF itab_t006[] IS INITIAL.

    SELECT msehi zaehl nennr exp10 FROM t006

      INTO TABLE itab_t006

      WHERE dimid = 'MASS'.

  ENDIF.

  READ TABLE itab_t006 WITH KEY msehi = itab_it-meinsest.

  IF sy-subrc EQ 0.

    IF itab_it-meinsest EQ itab_it-gewei.

      itab_it-ntgew = itab_it-qtdeumest.

      EXIT.

    ENDIF.

    CALL FUNCTION '/PWS/COVERT_UN_MATERIAL'

         EXPORTING

              matnr                = itab_it-matnr

              meins                = itab_it-meinsest

              MEINS_P              = itab_it-gewei

              qtde                 = itab_it-qtdeumest

              conv                 = ' '

              land                 = t001-land1

         IMPORTING

              qtds                 = itab_it-ntgew

         EXCEPTIONS

              conversion_not_found = 1

              ncm_not_found        = 2

              overflow             = 3

              un_ncm_not_found     = 4

              material_not_found   = 5

              OTHERS               = 6.

  ENDIF.

ENDFORM.

* << Fim da inclusão