CE PLUS - Nota 003360

Módulo: DRAWBACK

Funcionalidade: Ato Concessório

Data/Hora da Publicação: 30/03/2007 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:07:25

Descrição da Nota: CONTROLE DE SALDO NOS APONTAMENTOS DO ATO.

Sintoma

O programa não está conciderando as quantidade transferidas no calculo das quantidade a nacionalizar

e para ato concessório genérico só termite a utilização de uma unica porcentagem para transferencia.

 

 

Solução

Ajustar calculo da quantidade a nacionalizar para conciderar as quantidades transferidas e passa a

salvar a porcentagem de transferencia na tabela /pws/zycit279 de acordo com o material.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTES NA EXIBIÇÃO DA UNIDADE NCM NA PASTA DE TRANSF. PARA ATO GENÉRICO

Informações Complementares

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

Nota Número 03360 Data: 30/03/2007 Hora: 11:29:39

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

 

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

Nota Número              : 03360

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00001

Agrupamento              : 00158

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

Referência às notas relacionadas:

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

 

02810  - 00001 - 6.0    - 00026  - AJUSTES NA EXIBIÇÃO DA UNIDADE NCM NA PASTA DE TRANSF. PARA ATO G

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

CONTROLE DE SALDO NOS APONTAMENTOS DO ATO.

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

Palavras Chave:

CONTROLE - SALDO - APONTAMENTOS - IMPORTAÇÃO - ATO - CONCESSÓRIO

/PWS/SAPMZYCI040

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

Objetos da nota:

REPS /PWS/MZYCI040F02

REPS /PWS/MZYCI040I01

 

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

Modificações efetuadas em REPS /PWS/MZYCI040F02

 

...

  LOOP AT itab_zycit246_final WHERE matnr EQ itab_resumo_ap-matnr.

    READ TABLE itab_zycit470_s WITH KEY

                                      ebeln = itab_zycit246_final-ebeln

                                      ebelp = itab_zycit246_final-ebelp

                                      nrseq = itab_zycit246_final-nrseq

                                      lote  = itab_zycit246_final-lote.

    IF sy-subrc NE 0.

      CHECK itab_zycit246_final-qtd_ncm >

                                   itab_zycit246_final-qtd_compv.

    ENDIF.

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

    READ TABLE itab_zycit279_ap WITH KEY

                                      ebeln = itab_zycit246_final-ebeln

                                      ebelp = itab_zycit246_final-ebelp

                                      nrseq = itab_zycit246_final-nrseq

                                      lote  = itab_zycit246_final-lote.

* << Fim da inclusão

    itab_zycit246_final-qtd_nacion = itab_zycit246_final-qtd_ncm -

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

                                       itab_zycit246_final-qtd_compv .

* << Fim da exclusão

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

          itab_zycit279_ap-qtd_transf - itab_zycit246_final-qtd_compv .

* << Fim da inclusão

    READ TABLE itab_zycit246 WITH KEY ebeln = itab_zycit246_final-ebeln

                                      ebelp = itab_zycit246_final-ebelp

                                      nrseq = itab_zycit246_final-nrseq.

...

 

...

  CLEAR itab_zycit279_ap.

  MODIFY itab_zycit279_ap TRANSPORTING mark

              WHERE mark EQ 'X'.

  IF /pws/zycie244-tipo NE 'G'.

    READ TABLE itab_zycit246_final WITH KEY

                  matnr = itab_resumo_ap-matnr.

    READ TABLE itab_zycit245 WITH KEY

                  nritem = itab_zycit246_final-nritem.

    /pws/zycie245 = itab_zycit245.

    /pws/zycie245-meins = itab_zycit245-um_ncm.

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

    READ TABLE itab_zycit279_ap

                   WITH KEY matnr = itab_resumo_ap-matnr.

    /pws/zycie245-transf = itab_zycit279_ap-transf.

* << Fim da inclusão

    /pws/zycie245-qtd_transf = itab_resumo_ap-qtd_di *

        ( /pws/zycie245-transf / 100 ).

    v_saldo_transf = /pws/zycie245-qtd_transf.

    LOOP AT itab_zycit279_ap

                          WHERE matnr    EQ itab_resumo_ap-matnr

                            AND esgotado EQ space.

      itab_zycit279_ap_aux = itab_zycit279_ap.

      IF NOT itab_zycit279_ap_aux-qtd_transf IS INITIAL.

        v_saldo_transf = v_saldo_transf -

              itab_zycit279_ap_aux-qtd_transf.

...

 

...

      CLEAR itab_zycit279_ap_aux-lote.

      COLLECT itab_zycit279_ap_aux.

    ENDLOOP.

    itab_zycit279_ap_aux-mark = 'X'.

    MODIFY itab_zycit279_ap_aux TRANSPORTING mark

              WHERE qtd_transf > 0.

  ELSE.

    READ TABLE itab_zycit245 INDEX 1.

    /pws/zycie245 = itab_zycit245.

    /pws/zycie245-um_ncm = itab_resumo_ap-meins.

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

    READ TABLE itab_zycit279_ap

                   WITH KEY matnr = itab_resumo_ap-matnr.

    /pws/zycie245-transf = itab_zycit279_ap-transf.

* << Fim da inclusão

    /pws/zycie245-qtd_transf = itab_resumo_ap-qtd_di *

        ( /pws/zycie245-transf / 100 ).

    v_saldo_transf = /pws/zycie245-qtd_transf.

    LOOP AT itab_zycit279_ap WHERE matnr    EQ itab_resumo_ap-matnr

                                   AND esgotado EQ space.

      itab_zycit279_ap_aux = itab_zycit279_ap.

      IF NOT itab_zycit279_ap_aux-qtd_transf IS INITIAL.

        v_saldo_transf = v_saldo_transf -

              itab_zycit279_ap_aux-qtd_transf.

      ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI040I01

 

...

  /pws/zycie279-qtd_perda = /pws/zycie279-qtd_perda - v_perda.

  itab_resumo_ap-perda = /pws/zycie279-perda.

  MODIFY itab_resumo_ap INDEX tc_perda-current_line.

ENDMODULE.

MODULE modifica_transf INPUT.

  DATA wa_transf LIKE /pws/zycie279.

  READ TABLE itab_zycit279_ap_aux INDEX tc_transf-current_line.

  wa_transf = itab_zycit279_ap_aux.

  IF v_mark2 IS INITIAL.

    v_saldo_transf = v_saldo_transf + /pws/zycie279-qtd_transf.

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

    CLEAR: /pws/zycie279-qtd_transf, /pws/zycie279-transf,

           /pws/zycie279-nrseqd_d.

* << Fim da exclusão

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

    CLEAR: /pws/zycie279-qtd_transf, /pws/zycie279-nrseqd_d.

* << Fim da inclusão

  ELSE.

    IF v_saldo_transf > 0 .

      IF /pws/zycie279-slqtde > v_saldo_transf.

        /pws/zycie279-qtd_transf = v_saldo_transf.

      ELSE.

        /pws/zycie279-qtd_transf = /pws/zycie279-slqtde.

      ENDIF.

      v_saldo_transf = v_saldo_transf - /pws/zycie279-qtd_transf.

    ELSE.

      CLEAR v_mark2.

      MESSAGE i015 WITH text-267.

    ENDIF.

  ENDIF.

  itab_zycit279_ap = itab_zycit279_ap_aux =

    /pws/zycie279.

  itab_zycit279_ap_aux-mark = itab_zycit279_ap_aux-mark = v_mark2.

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

  MODIFY itab_zycit279_ap_aux TRANSPORTING qtd_transf transf

* << Fim da exclusão

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

  MODIFY itab_zycit279_ap_aux TRANSPORTING qtd_transf

* << Fim da inclusão

                                       nrseqd_d mark

        WHERE nrseq EQ wa_transf-nrseq

          AND ebeln EQ wa_transf-ebeln

          AND ebelp EQ wa_transf-ebelp.

  LOOP AT itab_zycit279_ap

          WHERE nrseq EQ wa_transf-nrseq

            AND ebeln EQ wa_transf-ebeln

            AND ebelp EQ wa_transf-ebelp.

    IF itab_zycit279_ap_aux-mark EQ 'X'.

      IF itab_zycit279_ap_aux-qtd_transf > 0.

        IF itab_zycit279_ap-slqtde > itab_zycit279_ap_aux-qtd_transf.

          itab_zycit279_ap-qtd_transf = itab_zycit279_ap_aux-qtd_transf.

        ELSE.

          itab_zycit279_ap-qtd_transf = itab_zycit279_ap-slqtde.

        ENDIF.

      itab_zycit279_ap_aux-qtd_transf = itab_zycit279_ap_aux-qtd_transf

                                          - itab_zycit279_ap-qtd_transf.

        itab_zycit279_ap-transf   = itab_zycit279_ap_aux-transf.

        itab_zycit279_ap-nrseqd_d = itab_zycit279_ap_aux-nrseqd_d.

      ELSE.

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

        CLEAR: itab_zycit279_ap-qtd_transf, itab_zycit279_ap-transf.

* << Fim da exclusão

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

        CLEAR: itab_zycit279_ap-qtd_transf.

* << Fim da inclusão

      ENDIF.

    ELSE.

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

      CLEAR: itab_zycit279_ap-qtd_transf, itab_zycit279_ap-transf,

             itab_zycit279_ap-nrseqd_d.

* << Fim da exclusão

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

      CLEAR: itab_zycit279_ap-qtd_transf, itab_zycit279_ap-nrseqd_d.

* << Fim da inclusão

    ENDIF.

...

 

...

  v_saldo_transf =

    /pws/zycie245-qtd_transf = /pws/zycie245-qtd_ncm *

      ( /pws/zycie245-transf / 100 ).

  CLEAR: /pws/zycie279-qtd_transf, /pws/zycie279-transf,

         /pws/zycie279-nrseqd_d.

  itab_zycit245-qtd_transf = /pws/zycie245-qtd_transf.

  itab_zycit245-transf = /pws/zycie245-transf.

  MODIFY itab_zycit245 TRANSPORTING qtd_transf transf

        WHERE nritem EQ /pws/zycie245-nritem.

  CLEAR: itab_zycit279_ap, itab_zycit279_ap_aux.

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

  itab_zycit279_ap_aux-transf = itab_zycit279_ap-transf =

                            /pws/zycie245-transf.

* << Fim da inclusão

  MODIFY itab_zycit279_ap TRANSPORTING mark qtd_transf transf nrseqd_d

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

                          WHERE mark EQ 'X'.

* << Fim da exclusão

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

                      WHERE matnr EQ /pws/zycie245-codcomp.

* << Fim da inclusão

  MODIFY itab_zycit279_ap_aux TRANSPORTING mark qtd_transf

                                           transf nrseqd_d

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

                              WHERE mark EQ 'X'.

* << Fim da exclusão

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

                      WHERE matnr EQ /pws/zycie245-codcomp.

* << Fim da inclusão

ENDMODULE.

MODULE modifica_ato_dest INPUT.

  DATA: wa_zycit244_tf TYPE /pws/zycit244,

        itab_zycit245_tf TYPE /pws/zycit245 OCCURS 0 WITH HEADER LINE,

        wa_zycit245_tf TYPE /pws/zycit245,

        v_qtd_tf       TYPE /pws/zycit279-qtd_transf,

        v_saldo_vl     TYPE /pws/zycit245-netpr_t.

  READ TABLE itab_zycit279_ap_aux INDEX tc_transf-current_line.

  IF NOT /pws/zycie279-nrseqd_d IS INITIAL.

    SELECT SINGLE * FROM /pws/zycit244 INTO wa_zycit244_tf

...