CE PLUS - Nota 009121

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Liquidação de Contrato

Data/Hora da Publicação: 01/10/2009 00:00:00

Data/Hora Última Alteração: 18/02/2011 16:58:13

Descrição da Nota: LIQUIDAÇÃO DE ACC COM PRÉ - EXCLUSAO DO ITEM NAO ATUALIZA A TABELA 001

Sintoma

Liquidação de ACC com Pré -  ao excluir o contrato vinculado na Liquidação de ACC com Pré pagamento

e incluir novamente o saldo está incorreto.

 

 

Solução

Atualizar os dados na tabela de contrato mesmo se apagar o registro antes de excluir.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

PARÂMETRO /PWS/ZYGL007 CFM SIM - DUMP VERSÃO 4.7 OU SUPERIOR

Informações Complementares

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

Nota Número 09121 Data: 01/10/2009 Hora: 08:58:33

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

 

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

Nota Número              : 09121

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 8.0

Pacote                   : 00001

Agrupamento              : 00001

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

Referência às notas relacionadas:

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

 

02946  - 00001 - 6.0    - 00026  - PARÂMETRO /PWS/ZYGL007 CFM SIM - DUMP VERSÃO 4.7 OU SUPERIOR

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

LIQUIDAÇÃO DE ACC COM PRÉ -  EXCLUSAO DO ITEM NAO ATUALIZA A TABELA 001

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

Palavras Chave:

LIQUIDAÇÃO DE ACC COM PRÉ -  EXCLUSAO DO ITEM NAO ATUALIZA A TABELA 001

 

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

Objetos da nota:

REPS /PWS/MZYCB014F01

     /PWS/MZYCB014TOP

     /PWS/MZYCB014I01

REPT /PWS/SAPMZYCB014

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

Modificações efetuadas em REPS /PWS/MZYCB014F01

 

...

  elseif sy-tcode = '/PWS/ZYCB014_A'.       " Alteração de Vinculação

 

    loop at itab_zycbt061.

 

      read table itab_aux2_zycbt061 with key

          nrseq  = itab_zycbt061-nrseq

          nrseq_c = itab_zycbt061-nrseq_c.

* >> Início da inclusão: form grava_tabelas

     if sy-subrc = 0.

* << Fim da inclusão

* ALTERANDO /PWS/ZYCBT001 QUANDO O 'VLALT' DIMINUIR

      if itab_aux2_zycbt061-vlalt > itab_zycbt061-vlalt.

 

        v_saldo =

        itab_aux2_zycbt061-vlalt - itab_zycbt061-vlalt.

 

        select single *

           from /pws/zycbt001

           where nrseqc   = itab_zycbt061-nrseq_c.

 

        /pws/zycbt001-slvinc   = /pws/zycbt001-slvinc  + v_saldo.

        /pws/zycbt001-slpagar  = /pws/zycbt001-slpagar + v_saldo.

        /pws/zycbt001-f_slvinc = ' '.

...

...

* ALTERANDO /PWS/ZYCBT001 QUANDO O 'VLALT' AUMENTAR

      elseif itab_aux2_zycbt061-vlalt < itab_zycbt061-vlalt.

 

        v_saldo =

        itab_zycbt061-vlalt - itab_aux2_zycbt061-vlalt.

 

        select single *

           from /pws/zycbt001

           where nrseqc = itab_zycbt061-nrseq_c.

 

        /pws/zycbt001-slvinc  = /pws/zycbt001-slvinc  - v_saldo.

        /pws/zycbt001-slpagar = /pws/zycbt001-slpagar - v_saldo.

 

        if /pws/zycbt001-slvinc = 0.

          /pws/zycbt001-f_slvinc = 'X'.

        endif.

 

* CFM - Log de Tabelas - Luciana - 04/06/2004

        if /pws/zycbt007-cfm = 'X'.

          select *

                  from /pws/zycbt001

                  into wa_zycbt001_log

                  where nrseqc = itab_zycbt061-nrseq_c.

          endselect.

        endif.

* CFM - Log de Tabelas - Luciana - 04/06/2004

 

        modify /pws/zycbt001.

 

* CFM - Log de Tabelas - Luciana - 04/06/2004

        if /pws/zycbt007-cfm = 'X'.

          perform monta_log_cfm using    wa_zycbt001_log

                                        '/PWS/ZYCBT001'

                                changing wa_log.

 

          if wa_zycbt001_log is initial.

            perform grava_log using '/PWS/ZYCBT001'

                                    wa_log

                                    'C'.

          else.

            perform grava_log using '/PWS/ZYCBT001'

                                    wa_log

                                    'A'.

          endif.

        endif.

* CFM - Log de Tabelas - Luciana - 04/06/2004

 

      endif.

* >> Início da inclusão: form grava_tabelas

    else.

     select single *

     from /pws/zycbt001

     where nrseqc = itab_zycbt061-nrseq_c.

 

    /pws/zycbt001-slvinc  = /pws/zycbt001-slvinc  - itab_zycbt061-vlalt.

    /pws/zycbt001-slpagar = /pws/zycbt001-slpagar - itab_zycbt061-vlalt.

 

    if /pws/zycbt001-slvinc = 0.

      /pws/zycbt001-f_slvinc = 'X'.

    endif.

 

    modify /pws/zycbt001.

    commit work.

    endif.

* << Fim da inclusão

    endloop.

  endif.

 

 

...

...

      endselect.

      perform monta_log_cfm using    wa_zycbt061_log

                                    '/PWS/ZYCBT061'

                            changing wa_log.

      if not wa_zycbt061_log is initial.

        perform grava_log using '/PWS/ZYCBT061'

                                  wa_log

                                  'E'.

      endif.

    endif.

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

    delete from /pws/zycbt061

       where nrseq   = /pws/zycbe060-nrseq.

* << Fim da exclusão

    if /pws/zycbt007-cfm = 'X'.

      select *

              from /pws/zycbt062

              into wa_zycbt062_log

              where nrseq = /pws/zycbe060-nrseq.

      endselect.

      perform monta_log_cfm using    wa_zycbt062_log

                                    '/PWS/ZYCBT062'

                            changing wa_log.

      if not wa_zycbt062_log is initial.

...

 

...

        perform monta_log_cfm using    wa_zycbt004_log

                                      '/PWS/ZYCBT004'

                              changing wa_log.

        perform grava_log using '/PWS/ZYCBT004'

                                  wa_log

                                  'E'.

      endif.

    endif.

    delete from /pws/zycbt004

     where nrseqc   = /pws/zycbe060-nrseq.

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

  if itab_zycbt061[] is initial.

      select *

              from /pws/zycbt061

              into table itab_zycbt061

              where nrseq = /pws/zycbe060-nrseq.

  endif.

* << Fim da inclusão

    loop at itab_zycbt061.

 

* >> Início da exclusao: FORM ELIMINA_PROCESSO

  if not v_excl = 'X'.

* << Fim da exclusao

 

      select single * from /pws/zycbt001

         where nrseqc =  itab_zycbt061-nrseq_c.

      /pws/zycbt001-slvinc  = /pws/zycbt001-slvinc  +

 itab_zycbt061-vlalt.

      /pws/zycbt001-slpagar = /pws/zycbt001-slpagar +

 itab_zycbt061-vlalt.

      modify /pws/zycbt001.

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

      commit work.

* << Fim da inclusão

* >> Início da exclusao: FORM ELIMINA_PROCESSO

  endif.

* << Fim da exclusao

      if itab_zycbt061-tpcontr_c(1) ca 'PS'.

        select *

          from /pws/zycbt002 into table itab_zycbt002

          where nrseqc = itab_zycbt061-nrseq_c and

                tpparc = 'P'.

        select *

          from /pws/zycbt067 into table itab_zycbt067

          for all entries in itab_zycbt002

           where nrseq_c = itab_zycbt002-nrseqc.

        loop at itab_zycbt002.

        check not itab_zycbt067[] is initial.

          read table itab_zycbt067 with key

                                 nrseq_c = itab_zycbt002-nrseqc.

         v_vlme = itab_zycbt002-vlme - itab_zycbt067-vlme.

         if v_vlme eq 0.

         itab_zycbt002-slvinc =

                       itab_zycbt002-slvinc + itab_zycbt067-vlme.

          else.

         itab_zycbt002-slvinc =

                       itab_zycbt002-slvinc + v_vlme.

          endif.

          delete itab_zycbt067 index sy-tabix.

         delete from /pws/zycbt067 where nrseq_c = itab_zycbt002-nrseqc

                                    and  nrparc  = itab_zycbt002-nrparc.

          update /pws/zycbt002 set slvinc = itab_zycbt002-slvinc

                               where nrseqc = itab_zycbt002-nrseqc

                               and   nrparc = itab_zycbt002-nrparc.

          commit work.

        endloop.

      v_ok = 'X'.

      endif.

    endloop.

    loop at itab_zycbt061.

      delete itab_zycbt061 index sy-tabix.

...

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

Modificações efetuadas em REPS /PWS/MZYCB014TOP

 

...

data: mark, "#EC *

      v_lin           type i, "#EC *

      v_nrseq         like /pws/zycbe060-nrseq,

      v_campo(20)     type c, "#EC *

      v_valor(8)      type c, "#EC *

      v_status_s      value 1,         "Informa status tela exib./inib

      v_tot      like /pws/zycbt060-vlme,"#EC * "Total do pré pagamento

      wa_cols         type cxtab_column,  "Controla exibição dos campos

      v_flag(3)       type c,             "Verif. se reg. será gravado

      v_tp_pagt_dp(1) type c,             " Aux. Dp. Captação

      v_resp,                             "Reposta do Poupup

      v_incl,  "#EC *               "Informa qdo modo editável

      v_sair(3)       type c value 'NO',  "SAIR DO MODULE

      v_nrcontr       like /pws/zycbt060-nrcontr,

      v_continua      , "#EC *

      v_empresa       like /pws/zycbt060-bukrs,

* >> Início da inclusão

      v_excl          type c,

* << Fim da inclusão

      v_transacao     like shkontext-tcode,

      v_incluido(3)   type c value 'NO',

      v_salvar(3)     type c value 'NO', "#EC *

...

 

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

Modificações efetuadas em REPS /PWS/MZYCB014I01

 

...

 

    when 'EXCL'.

      loop at itab_zycbt061

        where mark = 'X'.

* Só permite excluir se juros não estiver pago

        perform verifica_juros_pago using itab_zycbt061-nrseq

                                          itab_zycbt061-nrseq_c.

        if sy-subrc ne 0.

* >> Início da inclusão: module user_command_0100 input.

          select single * from /pws/zycbt001

             where nrseqc =  itab_zycbt061-nrseq_c.

          describe table itab_zycbt061 lines v_lin.

         if v_lin ne '1' .

          /pws/zycbt001-slvinc  = /pws/zycbt001-slvinc  +

          itab_zycbt061-vlalt.

          /pws/zycbt001-slpagar = /pws/zycbt001-slpagar +

          itab_zycbt061-vlalt.

          modify /pws/zycbt001.

          v_excl = 'X'.

* << Fim da inclusão

          delete itab_zycbt061 index sy-tabix.

* >> Início da inclusão: module user_command_0100 input.

        else.

         message i061 with text-466 .

        endif.

* << Fim da inclusão

        else.

          message i061 with text-030 itab_zycbt061-nrseq_c text-049.

        endif.

      endloop.

      perform calculos_itab_zycbt061.

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCB014

 

Modificado símbolo de texto:

 

Idioma: PT

 

Símbolo: 466

 

Texto: (32 caracteres)

"Excluir o registro pela lixeira."

 

Comprimento máximo: 32