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
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'
...