Página 1 de 1

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 13 Jul 2016 20:35
por porter
olá pessoal,
Quando executo o NFe_EnviarNFe O AcbrMonitor me retorna o arquivo SAINFE.TXT, com o conteúdo abaixo, eu preciso encontrar por exemplo Rejeição,
posso tratar isso, passando tudo para caractres maiusculos, mas e para tirar os acentos, cedilhas, pois nao tenho certeza que o retorno vai ser sempre com acentos ou sem acentos com c cedilha ou nao, gostaria de saber como os colegas estão tratando isso, teria que criar uma função para tirar os acentos, cedilhas etc, ?

xHarbour, obrigado.

[RETORNO]
Versao=SP_NFE_PL_008i2
TpAmb=2
VerAplic=SP_NFE_PL_008i2
NRec=351000101048916
CStat=204
XMotivo=Rejeição: Duplicidade de NF-e
[nRec:351000100767097]
CUF=35
[NFE10666]
Versao=SP_NFE_PL_008i2
TpAmb=2
VerAplic=SP_NFE_PL_008i2
CStat=204
XMotivo=Rejeição: Duplicidade de NF-e
[nRec:351000100767097]
CUF=35
ChNFe=35160708090994000196550010000101016610001
01668
DhRecbto=13/7/2016 16:04:09
NProt=
DigVal=

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 13 Jul 2016 21:16
por janio
Eu primeiro verifico se o cStat eh diferente de AUTORIZAÇÃO! Se for diferente, então vejo se foi rejeição ou denegado!

Tem funcionado!

Código: Selecionar todos

			   		///////////////
			   		// procura erro
	
						vStat   = Hwg_GetIni( 'NFE' + AllTrim(Str(vNUMNFE)),'CStat'  ,,cPathACBrNfe + "\" + SAI_TXTnfe )
						vMotivo = Hwg_GetIni( 'NFE' + AllTrim(Str(vNUMNFE)),'XMotivo',,cPathACBrNfe + "\" + SAI_TXTnfe )
	
						//
			
						If vStat != "100" .and. vStat != "150"
			
						 	 If At("Rejeicao",vMotivo) > 0
								
								 nfe->( TRAVA() )
								 replace nfe->FLGNFE with "5"     ,; // rejeitada
								         nfe->MOTREJ with vMotivo ,;
								         nfe->CODREJ with vStat

						       Msg( "Nota Fiscal Eletronica REJEITADA!" + Quebra + ;
						            vMotivo )		              

						       Exit
		      
							 ElseIf At("Denegado",vMotivo) > 0

							 	 nfe->( TRAVA() )
								 replace nfe->FLGNFE with "6"     ,; // denegada
								         nfe->MOTDEN with vMotivo ,;
								         nfe->CODDEN with vStat

						       Msg( "Nota Fiscal Eletronica DENEGADA!" + Quebra + ;
						            vMotivo )		              
	
						       Exit

							 Else

						       Msg( "PROBLEMA NA AUTORIZACAO DA NOTA FISCAL ELETRONICA" + Quebra + ;
						            "ANOTE OS DADOS ABAIXO E REPASSE-OS AO PROGRAMADOR" + Quebra + ;		              
						            "cStat : " + vStat + Quebra + ;
						            "Motivo : " + vMotivo )		              
									
						       Exit

							 Endif		         

						Endif

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 14 Jul 2016 08:17
por porter
olá Janio,
Mas nesse caso, se o retorno for Rejeição com acentos e cedilha, a busca retornara falso.
Observando melhor, o retorno de palavras com acentos e cedilhas parece que é somente Rejeição.

xHarbour
obrigado.

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 14 Jul 2016 10:53
por HASA
:))

Tente assim:

Código: Selecionar todos

IF "Rejei" $ vMotivo
...
..
.
Endif
:)Pos
HASA

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 14 Jul 2016 11:49
por JoséQuintas
O próprio cStat, estando diferente de autorizado, já indica que houve problema.
Nem precisa ver o texto, o texto vai ser só pra mostrar pro usuário (se for o caso).

nota: cstat pode indicar denegado, rejeitado, autorizado, etc. etc.

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 14 Jul 2016 19:18
por porter
obrigado pelas dicas pessoal.

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 24 Out 2016 17:27
por janio
Voltando ao tópico...

Acho que o Acbr não padronizou os retornos! Sempre trabalhei com NFe e os retornos do acbr JA VINHAM sem acentuação!

Agora, fazendo testes com MANIFESTO ELETRONICO, tbm pelo Acbr, os retornos ESTÃO VINDO ACENTUADOS!

Neste caso ultimo, para encontrar "rejeição" temos que fazer uso das funções HB_UTF8ToStr e HB_OemToAnsi, conforme abaixo!

Código: Selecionar todos

vMotivo = HB_OemToAnsi( HB_UTF8ToStr(Hwg_GetIni( 'MDFe' + AllTrim(Str(vNumMdf)),'XMotivo',,cPathACBrNfe + "\" + SAI_TXTnfe ) ))						

//

If vStat != "100"

 	 If At("Rejeição",vMotivo) > 0
		
		 mdf->( TRAVA() )
		 replace mdf->flgmdf with "2"     ,; // rejeitada
		         mdf->MOTREJ with vMotivo ,;
		         mdf->CODREJ with vStat

       Msg( "Manifesto Eletronico REJEITADO!" + Quebra + ;
            vMotivo )		              

       Exit

	 ElseIf At("Denegado",vMotivo) > 0

	 	 mdf->( TRAVA() )
		 replace mdf->flgmdf with "3"     ,; // denegada
		         mdf->MOTDEN with vMotivo ,;
		         mdf->CODDEN with vStat

       Msg( "Manifesto Eletronico DENEGADO!" + Quebra + ;
            vMotivo )		              
...

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 24 Out 2016 22:18
por lugab
Boa noite.... Ficou complicado mesmo..

Alguns de nós q tem acesso ao desenvolvedor do AcbrMonitorPlus, deveriam solicitar um padrão nos arquivos de retorno, sem acentuação, para termos certeza do que aconteceu a cada operação anterior...

Alguém ??

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 25 Out 2016 12:23
por lucimauro
Bom dia a todos;

A acbrMonitorplus já tem a opção de retirar os acentos nas respostas para facilitar esse controle.

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 25 Out 2016 15:56
por janio
A acbrMonitorplus já tem a opção de retirar os acentos nas respostas para facilitar esse controle.
Poiseh. Isso funciona para NFE, mas para MDFe não funciona (ou não influencia) essa configuração do Plus!

A padronização para os outros documentos fiscais (MDFe/CTe/ETC) é o que mim refiro!

Janio

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 25 Out 2016 22:32
por JoséQuintas
Isso de codepage é froids.

As UFs não tem padrão, então não dá pra converter todas da mesma forma.
A mesma conversão que vale pra uma não vale pra outra.
É consertar uma e estragar a outra.

Se o usuário ver "NÃO AUTORIZADO", ou "N%O AUTORIZADO", vai realmente fazer diferença?
Ele vai reclamar do mesmo jeito.

Quanto a checagem, cStatus que é número resolve.

E se ficar modificando a resposta, você não vai ver a mensagem original da Sefaz, vai acabar vendo outra coisa, pode ser pior.

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 27 Out 2016 19:17
por janio
Se o usuário ver "NÃO AUTORIZADO", ou "N%O AUTORIZADO", vai realmente fazer diferença?
A questão eh estética! Não eh ESTETICAMENTE agradável o usuário ver uma msg como a abaixo!

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 28 Out 2016 00:04
por JoséQuintas
Concordo mas....

Vamos ver se muda de idéia.

Tem 26 UFs, umas 20 opções de serviço (consulta, autoriza, envia, evento, etc), normal, contingência, EPEC, DPEC, etc.
Isso dá mais de 2.000 webservices diferentes.

Qual a idéia?
Fazer 2.000 rotinas para tratamentos de conversão pro usuário ficar feliz?
Ok, não precisa tantas, basta testar as 2.000 opções, e configurar cada uma delas pra mesma rotina.

Aceito sugestões.

duvida para tratar arquivo retornado pelo AcbrMonitor

Enviado: 28 Out 2016 00:12
por JoséQuintas
Acabo de pensar numa mais simples, não faço idéia das funções, mas existem...

1) Criar uma tabela com os caracteres válidos para PT-BR
2) Testar conversão usando cada uma das codepages possíveis/existentes, e testar se a conversão resulta em caracteres válidos pra PT-BR.

Se possível, registrar quais foram usadas, assim vai dar pra reduzir os próximos testes, ou pelo menos deixar as mais usadas como primeiras opções.
Ou esperar usuário reclamar, e ir acrescentando as que precisar, assim não corre o risco de deixar tudo lento.

Até que isso pode ser uma saída....