CE PLUS - Nota 007188

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Valores Mantidos no Exterior

Data/Hora da Publicação: 22/08/2008 00:00:00

Data/Hora Última Alteração: 18/02/2011 17:41:54

Descrição da Nota: VALORES MANTIDOS NO EXTERIOR - SALDO DISPONIBILIDADE - VLSLF NEGATIVO

Sintoma

Ao criar valores mantidos no exterior de uma fatura que já foi vinculada, mas não liquidada, esta

deixando saldo a mais para disponibilidade, gerando valor negativo no campo /pws/zycbt017-vlslf e

ocorrendo dump.

 

 

Solução

Ler os registros da vinculação(/pws/zycbt005) e que não passaram por liquidação(/pws/zycbt006), para

que seja subtraído do saldo a disponibilizar no valores mantidos exterior, desta forma permite

apenas o valor correto, evitando valor negativo na tabela de fatura.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

VALORES MANTIDOS NO EXTERIOR - DISPONIBILIDADE NO EXTERIOR

Informações Complementares

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

Nota Número 07188 Data: 22/08/2008 Hora: 14:56:33

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

 

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

Nota Número              : 07188

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00006

Agrupamento              : 00061

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

Referência às notas relacionadas:

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

 

06218  - 00001 - 7.0    - 00005  - VALORES MANTIDOS NO EXTERIOR - DISPONIBILIDADE NO EXTERIOR

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

VALORES MANTIDOS NO EXTERIOR - SALDO DISPONIBILIDADE - VLSLF NEGATIVO

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

Palavras Chave:

VALORES MANTIDOS NO EXTERIOR - SALVA VLR MAIOR DISPONIBILIDADE VLSLF NEG

CONSIDERAR VINCULAÇÃO LIQUIDAÇÃO VLSLF NEGATIVO

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

Objetos da nota:

REPS /PWS/MZYCB034F01

REPS /PWS/MZYCB034I01

REPS /PWS/MZYCB034TOP

REPT /PWS/SAPMZYCB034

 

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

Modificações efetuadas em REPS /PWS/MZYCB034F01

 

...

           p_destino      TYPE /pws/zycbt238-destino

  CHANGING p_itab_destino TYPE t_t_disponibilidade.

  DATA:

    v_codaux1 TYPE /pws/zygle316-codaux1,

    v_codaux2 TYPE /pws/zygle316-codaux2,

    v_codaux3 TYPE /pws/zygle316-codaux3,

    v_existe   TYPE char1,

    wa_destino LIKE LINE OF p_itab_destino.

  FIELD-SYMBOLS:

    <fs_origem> LIKE LINE OF p_itab_origem.

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

  IF NOT p_itab_origem[] IS INITIAL.

    SELECT * FROM /pws/zycbt005 INTO TABLE itab_zycbt005

             FOR ALL ENTRIES IN p_itab_origem

             WHERE nrinvoic = p_itab_origem-nrinvoic

               AND nrparcf  = p_itab_origem-nrparcf

               AND gsberf   = p_itab_origem-gsberf.

    SELECT * FROM /pws/zycbt006 INTO TABLE itab_zycbt006

             FOR ALL ENTRIES IN p_itab_origem

             WHERE nrinvoic = p_itab_origem-nrinvoic

               AND nrparcf  = p_itab_origem-nrparcf

               AND gsberf   = p_itab_origem-gsberf.

  ENDIF.

* << Fim da inclusão

  LOOP AT p_itab_origem ASSIGNING <fs_origem> WHERE mark EQ 'X'.

    CHECK <fs_origem>-status EQ c_contabilizado.

    LOOP AT p_itab_destino INTO wa_destino

      WHERE nrseq = <fs_origem>-nrseq.

      READ TABLE itab_disp_ant

        WITH KEY nrseq   = wa_destino-nrseq

                 destino = wa_destino-destino

                 dtdisp  = wa_destino-dtdisp

        TRANSPORTING NO FIELDS.

      IF sy-subrc NE 0.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB034I01

 

...

      PERFORM atualiza_tc_devolucao

        USING itab_devolucao

              tc_devolucao.

  ENDCASE.

ENDMODULE.

MODULE guarda_ts_atual INPUT.

  wa_controle-ts_atual = ts_principal-activetab.

ENDMODULE.

MODULE verifica_campos INPUT.

  DATA:

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

    wa_disp     LIKE LINE OF itab_disp_30,

    v_sldext    TYPE /pws/zycbe226-sld_exterior.

* << Fim da exclusão

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

    wa_disp               LIKE LINE OF itab_disp_30,

    v_sldext              TYPE /pws/zycbe226-sld_exterior,

    v_valor_vinculado     TYPE /pws/zycbe005-vlme_p,

    v_saldoreal_disp      TYPE /pws/zycbe226-sld_exterior,

    v_saldoreal_disp2(20) TYPE c.

* << Fim da inclusão

  CLEAR:

    wa_contrato,

    v_sldext.

  CASE sy-dynnr.

    WHEN '0120'.

      LOOP AT itab_disp_00 INTO wa_disp

        WHERE nrseq   = /pws/zycbe238-nrseq

          AND operacao NE space.

        READ TABLE itab_disp_ant

          WITH KEY nrseq   = wa_disp-nrseq

...

 

...

        READ TABLE itab_disp_ant

          WITH KEY nrseq   = wa_disp-nrseq

                   destino = wa_disp-destino

                   dtdisp  = wa_disp-dtdisp

          TRANSPORTING NO FIELDS.

        IF sy-subrc NE 0.

          v_sldext = v_sldext + wa_disp-vldisp.

        ENDIF.

      ENDLOOP.

      v_sldext = v_sldext + /pws/zycbe238-vldisp.

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

      IF /pws/zycbe238-vldisp GT /pws/zycbe226-sld_exterior OR

         v_sldext             GT /pws/zycbe226-sld_exterior.

        MESSAGE e061

          WITH 'Valor maior que o saldo. Favor corrigir.'(033).

      ELSE.

        CLEAR:v_valor_vinculado, v_saldoreal_disp.

        READ TABLE itab_zycbt006 WITH KEY

                                      nrinvoic = /pws/zycbe226-nrinvoic

                                      nrparcf  = /pws/zycbe226-nrparcf

                                      gsberf   = /pws/zycbe226-gsberf.

        IF sy-subrc NE 0.

          LOOP AT itab_zycbt005 WHERE nrinvoic = /pws/zycbe226-nrinvoic

                                  AND nrparcf  = /pws/zycbe226-nrparcf

                                  AND gsberf   = /pws/zycbe226-gsberf.

            v_valor_vinculado = v_valor_vinculado +

                                itab_zycbt005-vlme_p.

          ENDLOOP.

          v_saldoreal_disp = /pws/zycbe226-sld_exterior -

                             v_valor_vinculado.

          IF /pws/zycbe238-vldisp GT v_saldoreal_disp OR

             v_sldext             GT v_saldoreal_disp.

            WRITE v_saldoreal_disp TO v_saldoreal_disp2

                  CURRENCY /pws/zycbe226-waers.

            condense v_saldoreal_disp2.

            MESSAGE e061 WITH text-045 v_saldoreal_disp2

                              text-046 text-047.

          ENDIF.

        ENDIF.

      ENDIF.

* << Fim da inclusão

  ENDCASE.

ENDMODULE.

MODULE verifica_data_disp INPUT.

  DATA:

    v_destino TYPE /pws/zycbe238-destino.

  CASE sy-dynnr.

    WHEN '0120'.

      v_destino = c_30.

    WHEN '0131'.

      v_destino = c_70.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB034TOP

 

...

      itab_disp_70        TYPE t_t_disponibilidade,

      itab_contrato       TYPE t_t_contrato,

      itab_zycbt227       TYPE t_t_zycbt227,

      itab_rendimentos    TYPE t_t_rendimentos,

      itab_disp_00        TYPE t_t_disponibilidade,

      itab_disp_ant       TYPE t_t_disponibilidade,

      itab_contrato_ant   TYPE t_t_contrato,

      itab_doctos         TYPE t_t_doctos,

      itab_rendimentos_ant TYPE t_t_rendimentos,

      itab_contabilizacoes TYPE t_t_contabilizacoes.

* >> Início da inclusão:

DATA: BEGIN OF itab_zycbt005 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt005.

DATA: END OF itab_zycbt005.

DATA: BEGIN OF itab_zycbt006 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt006.

DATA: END OF itab_zycbt006.

* << Fim da inclusão

DATA: wa_zycbt007  TYPE t_s_zycbt007,

      wa_zyglt009  TYPE t_s_zyglt009,

      wa_zycbt089  TYPE t_s_zycbt089,

      wa_controle  TYPE t_controle,

      wa_fat       TYPE t_s_zycbt017,

      wa_zycbt030  TYPE t_s_zycbt030.

...

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCB034

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 045

 

Texto: (40 caracteres)

"Valor excede saldo para disponibilidade:"

 

Comprimento máximo: 40

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 046

 

Texto: (45 caracteres)

". Fatura já está vinculada e ainda não possui"

 

Comprimento máximo: 45

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 047

 

Texto: (22 caracteres)

"liquidação. Verificar."

 

Comprimento máximo: 22