duvida para tratar arquivo retornado pelo AcbrMonitor

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem 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=
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem 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
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem 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.
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem por HASA »

:))

Tente assim:

Código: Selecionar todos

IF "Rejei" $ vMotivo
...
..
.
Endif
:)Pos
HASA
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem por porter »

obrigado pelas dicas pessoal.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem 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 )		              
...
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem 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 ??
lugab
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem por lucimauro »

Bom dia a todos;

A acbrMonitorplus já tem a opção de retirar os acentos nas respostas para facilitar esse controle.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem 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
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem 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!
Anexos
msgAcen.png
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

duvida para tratar arquivo retornado pelo AcbrMonitor

Mensagem 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....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder