CE PLUS - Nota 006217

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Recebimento

Data/Hora da Publicação: 20/03/2008 00:00:00

Data/Hora Última Alteração: 09/03/2010 12:00:06

Descrição da Nota: MSG DUPLICIDADE NO NUMERO DA NOTA FISCAL NO RECEBIMENTO

Sintoma

 

O programa de recebimento de Nota Fiscal de Remessa não estava verificando se o numero da nota após

a / era maior que 99, msg "Nota Duplicada"

 

Solução

 

Verificar se o numero de nota é maior que 99 para aumentar uma casa após a / para iniciar a contagem

das centenas

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 06217 Data: 20/03/2008 Hora: 14:45:25

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

 

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

Nota Número              : 06217

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00005

Agrupamento              : 00039

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

MSG DUPLICIDADE NO NUMERO DA NOTA FISCAL NO RECEBIMENTO

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

Palavras Chave:

RECEBIMENTO - DUPLICIDADE - NUMERO - NOTA - REMESSA

 

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

Objetos da nota:

REPS /PWS/MZYCI017F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI017F01

 

...

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

            (itab_zyglt100-programa) IF FOUND.

    ENDIF.

  ENDIF.

ENDFORM.

FORM executa_recebimento.

  DATA: v_lfsnr_old  LIKE wa_nf-lfsnr,

        v_lfsnr      LIKE wa_nf-lfsnr,

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

        v_indice(02) TYPE n,

* << Fim da exclusão

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

        v_indice_2(02) TYPE n,

        v_indice_3(03) TYPE n,

* << Fim da inclusão

        v_erro.

  CLEAR v_lfsnr.

  IF v_existe_nfr NE 'S'.

    SELECT MAX( lfsnr ) INTO (v_lfsnr) FROM /pws/zycit041

      WHERE nrseq EQ   wa_nf-nrseq.

  ELSEIF v_existe_nfr EQ 'S'.

    SELECT MAX( lfsnr ) INTO (v_lfsnr) FROM /pws/zycit043

      WHERE nrseq EQ   wa_nf-nrseq.

  ENDIF.

  IF v_lfsnr IS INITIAL.

    CONCATENATE wa_nf-nrseq  '/' '01' INTO wa_nf-lfsnr.

    WRITE  wa_nf-lfsnr TO wa_nf-lfsnr RIGHT-JUSTIFIED .

  ELSE.

    v_lfsnr_old = wa_nf-lfsnr.

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

    MOVE v_lfsnr+14(2) TO v_indice.

    ADD 1 TO v_indice.

    CONCATENATE v_lfsnr+0(14) v_indice INTO wa_nf-lfsnr.

* << Fim da exclusão

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

    IF v_lfsnr+13(1) = '/' AND v_lfsnr+14(2) < 99.

      MOVE v_lfsnr+14(2) TO v_indice_2.

      ADD 1 TO v_indice_2.

    ELSE.

      MOVE v_lfsnr+13(3) TO v_indice_3.

      ADD 1 TO v_indice_3.

    ENDIF.

    IF v_lfsnr+13(1) = '/' AND v_lfsnr+14(2) < 99.

      CONCATENATE v_lfsnr+0(14) v_indice_2 INTO wa_nf-lfsnr.

    ELSE.

      IF v_indice_3 > 100.

        CONCATENATE v_lfsnr+0(13) v_indice_3 INTO wa_nf-lfsnr.

      ELSE.

        CONCATENATE v_lfsnr+1(13) v_indice_3 INTO wa_nf-lfsnr.

      ENDIF.

    ENDIF.

* << Fim da inclusão

  ENDIF.

  PERFORM lock_record.

  CLEAR v_erro.

  PERFORM lock_fornecedore CHANGING v_erro.

  IF NOT v_erro IS INITIAL.

    EXIT.

  ENDIF.

  PERFORM verifica_taxa_dolar.

  MOVE wa_nf TO wa_nf_aux.

  PERFORM verifica_exit USING 'D'

...