duvida para tratar arquivo retornado pelo AcbrMonitor
Moderador: Moderadores
duvida para tratar arquivo retornado pelo AcbrMonitor
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=
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
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!
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
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
duvida para tratar arquivo retornado pelo AcbrMonitor
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.
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.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
duvida para tratar arquivo retornado pelo AcbrMonitor
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.
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/
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/
duvida para tratar arquivo retornado pelo AcbrMonitor
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!
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
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
duvida para tratar arquivo retornado pelo AcbrMonitor
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 ??
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
duvida para tratar arquivo retornado pelo AcbrMonitor
Bom dia a todos;
A acbrMonitorplus já tem a opção de retirar os acentos nas respostas para facilitar esse controle.
A acbrMonitorplus já tem a opção de retirar os acentos nas respostas para facilitar esse controle.
duvida para tratar arquivo retornado pelo AcbrMonitor
Poiseh. Isso funciona para NFE, mas para MDFe não funciona (ou não influencia) essa configuração do Plus!A acbrMonitorplus já tem a opção de retirar os acentos nas respostas para facilitar esse controle.
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
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
duvida para tratar arquivo retornado pelo AcbrMonitor
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.
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/
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/
duvida para tratar arquivo retornado pelo AcbrMonitor
A questão eh estética! Não eh ESTETICAMENTE agradável o usuário ver uma msg como a abaixo!Se o usuário ver "NÃO AUTORIZADO", ou "N%O AUTORIZADO", vai realmente fazer diferença?
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
duvida para tratar arquivo retornado pelo AcbrMonitor
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.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
duvida para tratar arquivo retornado pelo AcbrMonitor
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....
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/
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/


