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

- Mensagens: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 765
- 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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 765
- 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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 765
- 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: 783
- 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 B7, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart, Python + FASTAPI , Android Kotlin
