CE PLUS - Nota 005376

Módulo: DRAWBACK

Funcionalidade: Ato Concessório

Data/Hora da Publicação: 04/12/2007 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:18:06

Descrição da Nota: TRANFERÊNCIA DE SALDOS NO ATO CONCESSÓRIO

Sintoma

O programa não está realizando corretamente as transferências de Saldos.

 

 

Solução

Atualizada a rotina de transferência de saldos.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

TRATAMENTO DOS INSUMOS ALTERNATIVOS NA TRANSFERENCIA DE SALDO

TRANSFERÊNCIA POR QUANTIDADE E PORCENTAGEM NO ATO CONCESSÓRIO

Informações Complementares

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

Nota Número 05376 Data: 04/12/2007 Hora: 13:05:09

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

 

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

Nota Número              : 05376

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00027

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

Referência às notas relacionadas:

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

 

04572  - 00001 - 7.0    - 00002  - TRATAMENTO DOS INSUMOS ALTERNATIVOS NA TRANSFERENCIA DE SALDO

05015  - 00002 - 7.0    - 00003  - TRANSFERÊNCIA POR QUANTIDADE E PORCENTAGEM NO ATO CONCESSÓRIO

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

TRANFERÊNCIA DE SALDOS NO ATO CONCESSÓRIO

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

Palavras Chave:

TRANSFERENCIA ATO CONCESSÓRIO DRAWBACK

 

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

Objetos da nota:

REPS /PWS/MZYCI040F02

REPS /PWS/MZYCI040I01

 

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

Modificações efetuadas em REPS /PWS/MZYCI040F02

 

...

      MESSAGE i015 WITH text-278 itab_zycit244_ap-nrseqd text-279.

      p_status_tf = 'E'.

      EXIT.

    ENDIF.

    IF itab_zycit244_ap-tipo EQ 'G'.

     READ TABLE itab_zycit245 WITH KEY nrseqd = itab_zycit244_ap-nrseqd.

    ELSE.

      CLEAR: v_encer_a.

      IF /pws/zycit321-c_comum IS INITIAL.

        REFRESH itab_zycit433.

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

        CLEAR itab_zycit433.

* << Fim da inclusão

        SELECT SINGLE grupo FROM /pws/zycit433

        INTO itab_zycit433-grupo

              WHERE matnr EQ itab_zycit279_ap-matnr.

        SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433

              WHERE grupo EQ itab_zycit433-grupo.

        itab_zycit433-matnr     = itab_zycit279_ap-matnr.

        APPEND itab_zycit433.

        LOOP AT itab_zycit433.

          READ TABLE itab_zycit245_ap WITH KEY

                          nrseqd = itab_zycit279_ap-nrseqd_d

...

 

...

                        ebelp  = itab_zycit279_ap-ebelp.

      IF itab_zycit279_ap-nrseqd_d IS INITIAL AND

         itab_zycit279_e-nrseqd_d IS INITIAL.

        CONTINUE.

      ENDIF.

      READ TABLE itab_zycit245_ap_s WITH KEY

              nrseqd = itab_zycit279_ap-nrseqd_d.

      IF itab_zycit245_ap_s-tipo NE 'G'.

        IF /pws/zycit321-c_comum IS INITIAL.

          REFRESH itab_zycit433.

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

          CLEAR itab_zycit433.

* << Fim da inclusão

          SELECT SINGLE grupo FROM /pws/zycit433

          INTO itab_zycit433-grupo

                WHERE matnr EQ itab_zycit279_ap-matnr.

          SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433

                WHERE grupo EQ itab_zycit433-grupo.

          itab_zycit433-matnr     = itab_zycit279_ap-matnr.

          APPEND itab_zycit433.

          LOOP AT itab_zycit433.

            READ TABLE itab_zycit245_ap_s WITH KEY

                            nrseqd = itab_zycit279_ap-nrseqd_d

...

 

...

                        nrseq = itab_zycit279_ap-nrseq

                        ebeln = itab_zycit279_ap-ebeln

                        lote  = itab_zycit279_ap-lote

                        ebelp = itab_zycit279_ap-ebelp.

      IF NOT itab_zycit279_e-nrseqd_d IS INITIAL.

        READ TABLE itab_zycit245_e WITH KEY

                nrseqd = itab_zycit279_e-nrseqd_d.

        IF itab_zycit245_e-tipo NE 'G'.

          IF /pws/zycit321-c_comum IS INITIAL.

            REFRESH itab_zycit433.

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

            CLEAR itab_zycit433.

* << Fim da inclusão

            SELECT SINGLE grupo FROM /pws/zycit433

            INTO itab_zycit433-grupo

                  WHERE matnr EQ itab_zycit279_e-matnr.

            SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433

                  WHERE grupo EQ itab_zycit433-grupo.

            itab_zycit433-matnr     = itab_zycit279_e-matnr.

            APPEND itab_zycit433.

            LOOP AT itab_zycit433.

              READ TABLE itab_zycit245_e WITH KEY

                              nrseqd  = itab_zycit279_e-nrseqd_d

...

 

...

            AND nritem = itab_zycit245_s-nritem.

        IF sy-subrc NE 0 .

          APPEND itab_zycit245_s.

        ENDIF.

      ENDIF.

      READ TABLE itab_zycit245_ap_s WITH KEY

              nrseqd = itab_zycit279_ap-nrseqd_d.

      IF itab_zycit245_e-tipo NE 'G'.

        IF /pws/zycit321-c_comum IS INITIAL.

          REFRESH itab_zycit433.

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

          CLEAR itab_zycit433.

* << Fim da inclusão

          SELECT SINGLE grupo FROM /pws/zycit433

          INTO itab_zycit433-grupo

                WHERE matnr EQ itab_zycit279_ap-matnr.

          SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433

                WHERE grupo EQ itab_zycit433-grupo.

          itab_zycit433-matnr     = itab_zycit279_ap-matnr.

          APPEND itab_zycit433.

          LOOP AT itab_zycit433.

            READ TABLE itab_zycit245_ap_s WITH KEY

                            nrseqd = itab_zycit279_ap-nrseqd_d

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI040I01

 

...

        ELSE.

          MESSAGE s015 WITH text-288.

        ENDIF.

      ELSE.

        REFRESH itab_zycit245_tf.

        SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245_tf

           WHERE nrseqd  EQ /pws/zycie279-nrseqd_d.

        CLEAR: itab_zycit245_tf, wa_zycit245_tf.

        IF /pws/zycit321-c_comum IS INITIAL.

          REFRESH itab_zycit433.

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

          CLEAR itab_zycit433.

* << Fim da inclusão

          SELECT SINGLE grupo FROM /pws/zycit433

          INTO itab_zycit433-grupo

                WHERE matnr EQ itab_zycit279_ap_aux-matnr.

          SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433

                WHERE grupo EQ itab_zycit433-grupo.

          itab_zycit433-matnr     = itab_zycit279_ap_aux-matnr.

          APPEND itab_zycit433.

          LOOP AT itab_zycit433.

            READ TABLE itab_zycit245_tf WITH KEY

                            codcomp = itab_zycit433-matnr.

...

 

...

     NOT itab_centros2[] IS INITIAL.

    READ TABLE itab_centros2 INDEX 1.

    /pws/zycie244-werks = itab_centros2-werks.

  ENDIF.

  DELETE itab_zycit250 WHERE codagrup = /pws/zycie244-codagrup.

  DELETE itab_centros2 WHERE werks    = /pws/zycie244-werks.

ENDMODULE.

MODULE preenche_it_res_427 INPUT.

ENDMODULE.

MODULE modifica_transf3 INPUT.

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

  READ TABLE itab_zycit279_ap_aux INDEX tc_transf-current_line.

* << Fim da inclusão

  IF /pws/zycie279-qtd_transf > /pws/zycie279-slqtde.

    MESSAGE e015 WITH text-268 text-269.

  ENDIF.

  v_saldo_transf =

    /pws/zycie245-qtd_transf = /pws/zycie279-qtd_transf.

  CLEAR /pws/zycie245-transf.

  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.

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

  CLEAR: itab_zycit279_ap, itab_zycit279_ap_aux.

* << Fim da exclusão

  itab_zycit279_ap_aux-transf = itab_zycit279_ap-transf =

                            /pws/zycie245-transf.

  itab_zycit279_ap_aux-qtd_transf = itab_zycit279_ap-qtd_transf =

                            /pws/zycie279-qtd_transf.

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

  MODIFY itab_zycit279_ap_aux INDEX tc_transf-current_line

  TRANSPORTING qtd_transf transf nrseqd_d.

  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.

        CLEAR: itab_zycit279_ap-qtd_transf.

      ENDIF.

    ELSE.

      CLEAR: itab_zycit279_ap-qtd_transf, itab_zycit279_ap-nrseqd_d.

    ENDIF.

* << Fim da inclusão

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

  MODIFY itab_zycit279_ap INDEX tc_transf-current_line

  TRANSPORTING qtd_transf transf nrseqd_d.

* << Fim da exclusão

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

    MODIFY itab_zycit279_ap.

    READ TABLE itab_zycit246 WITH KEY nrseq = itab_zycit279_ap-nrseq

                                      ebeln = itab_zycit279_ap-ebeln

                                      ebelp = itab_zycit279_ap-ebelp

                                      lote  = itab_zycit279_ap-lote.

    IF sy-subrc EQ 0.

      itab_zycit246-qtd_nacion = itab_zycit246-qtd_ncm -

          itab_zycit246-qtd_compv - itab_zycit279_ap-qtd_transf.

      MODIFY itab_zycit246 TRANSPORTING qtd_nacion

            WHERE nrseq EQ itab_zycit279_ap-nrseq

              AND ebeln EQ itab_zycit279_ap-ebeln

              AND ebelp EQ itab_zycit279_ap-ebelp

              AND lote  EQ itab_zycit279_ap-lote.

    ENDIF.

    READ TABLE itab_zycit246_final WITH KEY

                                  nrseq = itab_zycit279_ap-nrseq

                                  ebeln = itab_zycit279_ap-ebeln

                                  ebelp = itab_zycit279_ap-ebelp

                                  lote  = itab_zycit279_ap-lote.

    IF sy-subrc EQ 0.

      itab_zycit246_final-qtd_nacion = itab_zycit246_final-qtd_ncm -

          itab_zycit246_final-qtd_compv - itab_zycit279_ap-qtd_transf.

      MODIFY itab_zycit246_final TRANSPORTING qtd_nacion

            WHERE nrseq EQ itab_zycit279_ap-nrseq

              AND ebeln EQ itab_zycit279_ap-ebeln

              AND ebelp EQ itab_zycit279_ap-ebelp

              AND lote  EQ itab_zycit279_ap-lote.

* << Fim da inclusão

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

  MODIFY itab_zycit279_ap_aux INDEX tc_transf-current_line

  TRANSPORTING qtd_transf transf nrseqd_d.

* << Fim da exclusão

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

    ENDIF.

  ENDLOOP.

* << Fim da inclusão

ENDMODULE.

MODULE user_command_0248 INPUT.

  CASE ok_code.

    WHEN 'ENTER'.

      IF v_nratoc NE  /pws/zycie244-nratoc.

        MESSAGE s015 WITH text-323.

        CLEAR: v_nratoc.

      ENDIF.

      LEAVE TO SCREEN 0.

    WHEN 'EXIT'.

...