Manual da SefazClass
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Manual da SefazClass
Eu não tinha pensado por este lado, mas....
O governo tem um webservice para cada tipo de serviço.
A classe tem um método para cada webservice.
Cada webservice do governo precisa certas informações.
Na classe, cada método recebe essas informações por parâmetro.
Então, a princípio, o manual do governo é praticamente o manual da SefazClass.
O que a SefazClass tem a mais é que certas informações ela consegue obter dos parâmetros, então pode reduzir a quantidade de informação que precisa preencher.
Além disso, ela pode fazer um algo mais....
- Cada processo vai pra um endereço diferente, webservice diferente
- Cada processo/webservice tem um método na SefazClass
- A SefazClass cria um XML baseado nas informações, envia pro governo, e recebe a resposta
- Depois junta esse XML enviado ao XML recebido, e gera um autorizado.
A diferença fica no documento autorizado em si: a NFE, NFCE, CTE ou MDFE
- O aplicativo deve gerar o XML
- A Sefaz assina, envia, e recebe um número de recibo
Pra facilitar, a própria Sefaz já faz a parte seguinte:
- Ela gera um XML de consultar recibo, e consulta o recibo pra ter a resposta, pra ver o que aconteceu com a nota
- Se tudo ok, ela junta o XML enviado, com o XML de resposta, e gera um autorizado.
Então, de um modo geral, a SefazClass é igual o governo, o manual do governo acaba explicando cada método da classe.
Ela apenas já faz mais de uma etapa de uma vez, pra facilitar pra quem usa.
Quer entender a classe?
Primeiro entenda o governo, como funciona a parte do governo.
Ao entender como funciona o governo, já entendeu a classe.
O mesmo acima de outra forma, sobre o que a classe faz:
ela monta um XML, envia o XML pro governo, recebe um XML como resposta.
Na autorização de nota/etc. quem cria o XML é o aplicativo, ela apenas complementa, e faz a mesma coisa.
E porque precisa tanto fonte?
pra autorizar nota é um XML de autorizar nota, é um endereço de autorizar nota, é uma resposta de autorizar nota.
pra enviar carta de correção, é um XML de carta de correção, é um endereço de carta de correção, é uma resposta de carta de correção.
O autorizado é um XML contendo os dois XMLs: enviado e recebido, mas devidamente formatado, o que torna diferente em cada processo, por ter detalhes diferentes.
E pra cada UF é um endereço diferente, que pode ter alguma particularidade diferente.
Então as possibilidades seriam uns 20 webservices diferentes, pra 26 UFs diferentes, resultando em 520 combinações diferentes.
Se considerar ambiente de homologação e produção, que usam webservices diferentes, as possibilidades vão pra 1040.
Se considerar ambiente de contingência, que é pra quando os outros não funcionam, multiplica isso por 2 ou mais.
Toda complicação é pra escolher dentro dessas 520 possibilidades, qual delas será usada.
Teoricamente são mais de 1.000 endereços de internet diferente.
Algumas UFs não tem serviço próprio, e usam o serviço de outras, isso reduz a quantidade.
Pra não ter milhares de rotinas diferentes, uma pra cada situação, é onde entram os arrays e os IFs dentro da SefazClass.
É escolher entre milhares de endereços de internet, e algum detalhe específico de alguma UF.
Tem lá, por exemplo, o serviço RecebeLoteDaNota.... mas uma UF decidiu chamar de RecebeNota, ou RecebeNota2 pra identificar que é nota 2.0.
É só uma palavra, mas se mandar a palavra errada não funciona.
Então a SefazClass também precisa identificar qual a palavra correta pra cada UF.
Todo o mecanismo de escolher endereço, e escolher detalhes diferentes está pronto desde o começo.
Mas eu só trabalho com São Paulo, só tenho certificado digital de São Paulo, então só testei São Paulo.
Conforme vai aparecendo alguma diferença, em alguma UF não testada, então é só acrescentar a diferença na SefazClass.
E nota de serviço......
nota de serviço não tem pequena diferença, só tem GRANDES diferenças.
É o contrário de NFE, enquanto em NFE é difícil ter uma UF diferente, na NFSe é difícil ter uma igual.
O processo é o mesmo: criar XML, enviar pra um endereço de internet, pegar resposta.
Mas os tipos de webservices são outros, a informação que vai é outra, a informação que volta é outra.
E não são 26 UFs, são milhares de cidades.... o que multiplicaria tudo.
Se alguém tiver feito pra alguma cidade, e quiser enviar, pra tentarmos fazer uma classe mais universal, tudo bem, podemos tentar pra ver o que dá...
De repente só a parte de webservice/endereços... e cada um que veja em manuais sobre os XMLs.
Também ao contrário de NFE, não existe data pra mudar layout de cada cidade, cada uma pode alterar o modelo em data diferente.
O governo tem um webservice para cada tipo de serviço.
A classe tem um método para cada webservice.
Cada webservice do governo precisa certas informações.
Na classe, cada método recebe essas informações por parâmetro.
Então, a princípio, o manual do governo é praticamente o manual da SefazClass.
O que a SefazClass tem a mais é que certas informações ela consegue obter dos parâmetros, então pode reduzir a quantidade de informação que precisa preencher.
Além disso, ela pode fazer um algo mais....
- Cada processo vai pra um endereço diferente, webservice diferente
- Cada processo/webservice tem um método na SefazClass
- A SefazClass cria um XML baseado nas informações, envia pro governo, e recebe a resposta
- Depois junta esse XML enviado ao XML recebido, e gera um autorizado.
A diferença fica no documento autorizado em si: a NFE, NFCE, CTE ou MDFE
- O aplicativo deve gerar o XML
- A Sefaz assina, envia, e recebe um número de recibo
Pra facilitar, a própria Sefaz já faz a parte seguinte:
- Ela gera um XML de consultar recibo, e consulta o recibo pra ter a resposta, pra ver o que aconteceu com a nota
- Se tudo ok, ela junta o XML enviado, com o XML de resposta, e gera um autorizado.
Então, de um modo geral, a SefazClass é igual o governo, o manual do governo acaba explicando cada método da classe.
Ela apenas já faz mais de uma etapa de uma vez, pra facilitar pra quem usa.
Quer entender a classe?
Primeiro entenda o governo, como funciona a parte do governo.
Ao entender como funciona o governo, já entendeu a classe.
O mesmo acima de outra forma, sobre o que a classe faz:
ela monta um XML, envia o XML pro governo, recebe um XML como resposta.
Na autorização de nota/etc. quem cria o XML é o aplicativo, ela apenas complementa, e faz a mesma coisa.
E porque precisa tanto fonte?
pra autorizar nota é um XML de autorizar nota, é um endereço de autorizar nota, é uma resposta de autorizar nota.
pra enviar carta de correção, é um XML de carta de correção, é um endereço de carta de correção, é uma resposta de carta de correção.
O autorizado é um XML contendo os dois XMLs: enviado e recebido, mas devidamente formatado, o que torna diferente em cada processo, por ter detalhes diferentes.
E pra cada UF é um endereço diferente, que pode ter alguma particularidade diferente.
Então as possibilidades seriam uns 20 webservices diferentes, pra 26 UFs diferentes, resultando em 520 combinações diferentes.
Se considerar ambiente de homologação e produção, que usam webservices diferentes, as possibilidades vão pra 1040.
Se considerar ambiente de contingência, que é pra quando os outros não funcionam, multiplica isso por 2 ou mais.
Toda complicação é pra escolher dentro dessas 520 possibilidades, qual delas será usada.
Teoricamente são mais de 1.000 endereços de internet diferente.
Algumas UFs não tem serviço próprio, e usam o serviço de outras, isso reduz a quantidade.
Pra não ter milhares de rotinas diferentes, uma pra cada situação, é onde entram os arrays e os IFs dentro da SefazClass.
É escolher entre milhares de endereços de internet, e algum detalhe específico de alguma UF.
Tem lá, por exemplo, o serviço RecebeLoteDaNota.... mas uma UF decidiu chamar de RecebeNota, ou RecebeNota2 pra identificar que é nota 2.0.
É só uma palavra, mas se mandar a palavra errada não funciona.
Então a SefazClass também precisa identificar qual a palavra correta pra cada UF.
Todo o mecanismo de escolher endereço, e escolher detalhes diferentes está pronto desde o começo.
Mas eu só trabalho com São Paulo, só tenho certificado digital de São Paulo, então só testei São Paulo.
Conforme vai aparecendo alguma diferença, em alguma UF não testada, então é só acrescentar a diferença na SefazClass.
E nota de serviço......
nota de serviço não tem pequena diferença, só tem GRANDES diferenças.
É o contrário de NFE, enquanto em NFE é difícil ter uma UF diferente, na NFSe é difícil ter uma igual.
O processo é o mesmo: criar XML, enviar pra um endereço de internet, pegar resposta.
Mas os tipos de webservices são outros, a informação que vai é outra, a informação que volta é outra.
E não são 26 UFs, são milhares de cidades.... o que multiplicaria tudo.
Se alguém tiver feito pra alguma cidade, e quiser enviar, pra tentarmos fazer uma classe mais universal, tudo bem, podemos tentar pra ver o que dá...
De repente só a parte de webservice/endereços... e cada um que veja em manuais sobre os XMLs.
Também ao contrário de NFE, não existe data pra mudar layout de cada cidade, cada uma pode alterar o modelo em data diferente.
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/
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Manual da SefazClass
Muito obrigado amigo quintas , venho estudando muito para entender , tanto a NFCE quanto a NFSE pois vou precisar dos 2 tipos
obrigado por sua ajuda e a dos demais componentes deste fórum
att: Nascimento
obrigado por sua ajuda e a dos demais componentes deste fórum
att: Nascimento
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
Manual da SefazClass
Bom dia Mestre, fiz nfese para foz de iguaçu, se precisar dos fontes te envio. Obrigado
- depaula.jau
- Usuário Nível 2

- Mensagens: 98
- Registrado em: 15 Mai 2007 17:07
- Localização: JAU
Manual da SefazClass
Quintas!
Quando uso a SEFAZCLASS para transmitir funciona perfeitamente, mas algumas poucas vezes acontece de não receber o protocolo do WebServices SEFAZ.
Não sei por qual motivo ele não retorna o protocolo, apesar de já ter sido transmitido.
Então numa segunda tentativa ele retorna dizendo que é duplicidade. Não sei se é a internet ou outra coisa, mas ele se perde em algumas raros momentos.
Vc Sabe se existe uma forma mais segura verificar o recebimento do protocolo ?
Abs;
Marcelo de Paula
Quando uso a SEFAZCLASS para transmitir funciona perfeitamente, mas algumas poucas vezes acontece de não receber o protocolo do WebServices SEFAZ.
Não sei por qual motivo ele não retorna o protocolo, apesar de já ter sido transmitido.
Então numa segunda tentativa ele retorna dizendo que é duplicidade. Não sei se é a internet ou outra coisa, mas ele se perde em algumas raros momentos.
Vc Sabe se existe uma forma mais segura verificar o recebimento do protocolo ?
Abs;
Marcelo de Paula
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Manual da SefazClass
São Paulo está tendo problemas, e não está dando conta de responder rápido.
Criei um quebra-galho, usando o tempo de 3 minutos recomendado pela Sefaz...
Simplificando, se retornar "lote em processamento", fica tentando mais vezes.
Tratar essas coisas envolve uso de tela para avisos, e uso de pastas pra salvar/recuperar.
Essa parte complica, porque cada LIB gráfica precisa de um jeito diferente, e salvar/recuperar pode depender de DBF/MYSQL/disco/etc.
Criei um quebra-galho, usando o tempo de 3 minutos recomendado pela Sefaz...
Simplificando, se retornar "lote em processamento", fica tentando mais vezes.
Código: Selecionar todos
DO WHILE .T.
IF oSefaz:cStatus $ "100,101,202,302"
// o que fazer quando ok
MsgExclamation( iif( oSefaz:cStatus == "100", "MDFE Autorizado", "MDFE Denegado" ) )
EXIT
ENDIF
IF oSefaz:cStatus $ "105" // em processamento
Mensagem( "Problemas na SEFAZ. Nova tentativa de obter retorno em 3 minutos, ESC abandona" )
IF Inkey(180) != K_ESC
Mensagem( "Tentando novamente" )
oSefaz:MDFeConsultaRecibo()
LOOP
ENDIF
ENDIF
// o que fazer quando erro
EXIT
ENDDO
Essa parte complica, porque cada LIB gráfica precisa de um jeito diferente, e salvar/recuperar pode depender de DBF/MYSQL/disco/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/
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Manual da SefazClass
José Quintas,
Não sei aí qual o prazo, mas aqui no Mato Grosso tá alertando quanto ao consumo do WebService... Deram um tempo de 15 segundos para consultar uma nfce depois de enviada... sob penalidade bloquear o emissor por até meia hora...
De repente já tem esse controle aí... desconsidere...
Rubens
Não sei aí qual o prazo, mas aqui no Mato Grosso tá alertando quanto ao consumo do WebService... Deram um tempo de 15 segundos para consultar uma nfce depois de enviada... sob penalidade bloquear o emissor por até meia hora...
De repente já tem esse controle aí... desconsidere...
Rubens
"Eu e minha casa servimos ao Senhor e você
"
- depaula.jau
- Usuário Nível 2

- Mensagens: 98
- Registrado em: 15 Mai 2007 17:07
- Localização: JAU
Manual da SefazClass
Código: Selecionar todos
IF oSefaz:cStatus $ "105" // em processamento- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Manual da SefazClass
O status "em processamento" é só quando está com problema.
Neste ano de 2017, em poucas datas ele apareceu.
Na Sefaz o default está em 7 segundos.
Pode ser alterado em ::nTempoEspera
Neste ano de 2017, em poucas datas ele apareceu.
Na Sefaz o default está em 7 segundos.
Pode ser alterado em ::nTempoEspera
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
Manual da SefazClass
tem mais alguns....
Código: Selecionar todos
#define SEFAZ_STATUSLIST { ;
{ "100", "Autorizado o uso da NF-e" }, ;
{ "101", "Cancelamento de NF-e homologado" }, ;
{ "102", "Inutilização de número homologado" }, ;
{ "103", "Lote recebido com sucesso" }, ;
{ "104", "Lote processado" }, ;
{ "105", "Lote em processamento" }, ;
{ "106", "Lote não localizado" }, ;
{ "107", "Serviço em Operação" }, ;
{ "108", "Serviço Paralisado Momentaneamente (curto prazo)" }, ;
{ "109", "Serviço Paralisado sem Previsão" }, ;
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/
- depaula.jau
- Usuário Nível 2

- Mensagens: 98
- Registrado em: 15 Mai 2007 17:07
- Localização: JAU
Manual da SefazClass
Eu estou com a versão antiga ainda da SEFAZCLASS , seria essa a Linha ?
oServer:Open( "POST", ::cWebService, .F. )
oServer:SetRequestHeader( "SOAPAction", cSoapAction )
oServer:SetRequestHeader( "Content-Type", "application/soap+xml; charset=utf-8" )
oServer:Send( ::cXmlSoap )
oServer:WaitForResponse( 500 ) ----->>>>> Tempo de espera
cRetorno := oServer:ResponseBody
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Manual da SefazClass
Não, esse daí é normal, é esperar a resposta da conexão atual.
É que a Sefaz faz o NfeLoteEnvia(), e recebe essa resposta.
Depois, com esse retorno, ela faz o NfeConsultaRecibo() pra pegar o retorno.
E, se nesse não tiver resposta, teria que ficar repetindo esse até conseguir.
O intervalo é entre um e outro.
Acabei deixando na variável ::nIntervaloTempo, se não me engano desde o começo.
E agora que percebi..... não sei se o Inkey() vai ter o mesmo resultado em LIBs que não sejam GTWVG.
Tem algo parecido em CTE, MDFE e NFE que também atende NFCE.
É que a Sefaz faz o NfeLoteEnvia(), e recebe essa resposta.
Depois, com esse retorno, ela faz o NfeConsultaRecibo() pra pegar o retorno.
E, se nesse não tiver resposta, teria que ficar repetindo esse até conseguir.
O intervalo é entre um e outro.
Acabei deixando na variável ::nIntervaloTempo, se não me engano desde o começo.
E agora que percebi..... não sei se o Inkey() vai ter o mesmo resultado em LIBs que não sejam GTWVG.
Tem algo parecido em CTE, MDFE e NFE que também atende NFCE.
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/
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Manual da SefazClass
Na minha humilde opinião , sei que o quintas faz com altruísmo e carinho a sefazclass
mais eu acho que seria ótimo ate para o projeto que juntassem as mãos as pessoas que detém mais conhecimento
tanto da linguagem quando da parte tributária
o que no meu ponto de vista enrriqueceria mais a Sefazclass , com Exemplos com Changelog
porque sabemos que um projeto dessa magnitude que sempre esta em constante mudanças "por conta do nosso governo"
ficar só a cargo de uma pessoa é muito pesado
não seria um caso ao amigo quintas de pensar nessa possibilidade?, de abrir o projeto a pessoas seletas para ajudar no git??
porque a que se saber que nem todos aqui deste fórum detém o conhecimento de alguns aqui
e como diz o velho deitado " a União faz a força!!"
analizando entre o acbr e a sefazclass
a ideia da Sefazclass é maravilhosa!! , sim nosso proprio aplicativo estar pronto pra emissão sem precisar de soft´s de terceiros
mais o que analiso é a falta de exemplos , pra uns parece ser simples pra outros nem tanto, em fim falei o que penso que seria positivo pra todas pessoas do fórum
já o Acbr tem varias pessoas que usam e ate dentro do acbr quando vc instala tem os passos de como proceder para usar no harbour , é isso que na minha opinião falta na Sefazclass , sabendo que pro quintas que mantém essa maravilhosa ferramenta seria muito trabalhoso, por isso a ideia de compartilhar o trabalho, acredito eu que muitos tirariam um tempo para dedicação e para manutenção da ferramenta
e reforçando o que citei acima é so meu ponto de vista!!!
abraços a todos
mais eu acho que seria ótimo ate para o projeto que juntassem as mãos as pessoas que detém mais conhecimento
tanto da linguagem quando da parte tributária
o que no meu ponto de vista enrriqueceria mais a Sefazclass , com Exemplos com Changelog
porque sabemos que um projeto dessa magnitude que sempre esta em constante mudanças "por conta do nosso governo"
ficar só a cargo de uma pessoa é muito pesado
não seria um caso ao amigo quintas de pensar nessa possibilidade?, de abrir o projeto a pessoas seletas para ajudar no git??
porque a que se saber que nem todos aqui deste fórum detém o conhecimento de alguns aqui
e como diz o velho deitado " a União faz a força!!"
analizando entre o acbr e a sefazclass
a ideia da Sefazclass é maravilhosa!! , sim nosso proprio aplicativo estar pronto pra emissão sem precisar de soft´s de terceiros
mais o que analiso é a falta de exemplos , pra uns parece ser simples pra outros nem tanto, em fim falei o que penso que seria positivo pra todas pessoas do fórum
já o Acbr tem varias pessoas que usam e ate dentro do acbr quando vc instala tem os passos de como proceder para usar no harbour , é isso que na minha opinião falta na Sefazclass , sabendo que pro quintas que mantém essa maravilhosa ferramenta seria muito trabalhoso, por isso a ideia de compartilhar o trabalho, acredito eu que muitos tirariam um tempo para dedicação e para manutenção da ferramenta
e reforçando o que citei acima é so meu ponto de vista!!!
abraços a todos
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Manual da SefazClass
Sobre a colaboração:
Estar no GITHUB já significa pronto pra receber ajuda.
Bastar criar um Fork, fazer as alterações, e clicar em "enviar alterações" (não exatamente esse nome).
Sobre o manual, parece nem precisar.... vai na base de escolher o que melhor define a operação, ou excluir as que não definem.
Como funciona: enviar XML e pegar resposta....
Enviar documento: NfeLoteEnvia(), CteLoteEnvia(), MDFeLoteEnvia()
Enviar carta de correção: NfeEventoCarta(), CteEventoCarta()
Cancelar: NfeEventoCancela(), CteEventoCancela(), MDfeEventoCancela()
Encerramento de MDFe: MDfeEventoEncerramento()
Inutilizar: NfeInutiliza(), CteInutiliza()
Status do serviço: NfeStatusServico(), CteStatusServico(), MDfeStatusServico()
E por aí vai.
Quais são os parâmetros: olhar na classe, e pegar detalhes no manual do governo.
Exemplo de manual rápido:
METHOD NFeLoteEnvia( cXml, cLote, cUF, cCertificado, cAmbiente, cIndSinc )
cXml -> XML
cLote -> lote
cUF -> UF
cCertificado -> Certificado
cAmbiente -> Ambiente
cIndSinc -> Indicação de Sincronismo
Disso tudo, a única coisa que o manual do governo não diz, é que número de lote pode ser sempre 1.
Mas é praticamente auto-explicativo, ou fácil de alguém dar a dica que falta, por exemplo de onde tirar o nome do certificado, ou que cXML não é o nome do arquivo e sim o texto dentro do XML.
Estar no GITHUB já significa pronto pra receber ajuda.
Bastar criar um Fork, fazer as alterações, e clicar em "enviar alterações" (não exatamente esse nome).
Sobre o manual, parece nem precisar.... vai na base de escolher o que melhor define a operação, ou excluir as que não definem.
Como funciona: enviar XML e pegar resposta....
Enviar documento: NfeLoteEnvia(), CteLoteEnvia(), MDFeLoteEnvia()
Enviar carta de correção: NfeEventoCarta(), CteEventoCarta()
Cancelar: NfeEventoCancela(), CteEventoCancela(), MDfeEventoCancela()
Encerramento de MDFe: MDfeEventoEncerramento()
Inutilizar: NfeInutiliza(), CteInutiliza()
Status do serviço: NfeStatusServico(), CteStatusServico(), MDfeStatusServico()
E por aí vai.
Quais são os parâmetros: olhar na classe, e pegar detalhes no manual do governo.
Exemplo de manual rápido:
METHOD NFeLoteEnvia( cXml, cLote, cUF, cCertificado, cAmbiente, cIndSinc )
cXml -> XML
cLote -> lote
cUF -> UF
cCertificado -> Certificado
cAmbiente -> Ambiente
cIndSinc -> Indicação de Sincronismo
Disso tudo, a única coisa que o manual do governo não diz, é que número de lote pode ser sempre 1.
Mas é praticamente auto-explicativo, ou fácil de alguém dar a dica que falta, por exemplo de onde tirar o nome do certificado, ou que cXML não é o nome do arquivo e sim o texto dentro do XML.
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/
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Manual da SefazClass
então solicito aos Amigos que detenham conhecimento em ambas a juntar forças!!Quintas disse:
Sobre a colaboração:
Estar no GITHUB já significa pronto pra receber ajuda.
Bastar criar um Fork, fazer as alterações, e clicar em "enviar alterações" (não exatamente esse nome).
estou estudando também para em um futuro próximo contribuir no que puder
sempre pensei talvez um pouco grande em fazer o harbour tomar o seu lugar de direito que foi tirado!
e só nós e nossa união fará isso acontecer!!
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Manual da SefazClass
Tô inteiramente disponivel para ajudar , tenho desenvolvido tudo pela sefazclass , ja estou com nota NF-e e NFC-e funcionando
falta algumas coisas ainda como cancelamento de NFC-e contingencia , mas posso disponibilizar os fonte para que possam ter uma ideia de como funciona
)
)
)
falta algumas coisas ainda como cancelamento de NFC-e contingencia , mas posso disponibilizar os fonte para que possam ter uma ideia de como funciona
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
