Página 1 de 1
teste sefazclass
Enviado: 24 Jun 2018 11:41
por JoséQuintas
O teste da sefazclass agora tem mais opções.
Pra quem ainda não viu a SefazClass, a autorização de nota parece até piada....
Código: Selecionar todos
CASE nOpc == nOpcTemp++
oSefaz:NfeLoteEnvia( [<NFe><infNFe Id="Nfe0001"></infNFe></NFe>] )
? oSefaz:cXmlRetorno
Inkey(0)
Sim, é um XML inválido, só pra fazer o teste e ter retorno.
Mas se enviar um XML válido... nota autorizada.
Tanto faz se homologação, produção, 3.10, 4.00
Por isso estranho pedirem exemplo de uso.... rs
teste sefazclass
Enviado: 30 Ago 2018 17:46
por Marcelo_Antonio
Boa tarde.
Como faço para salvar o arquivo retorno qdo for autorizada e imprimir o respectivo DANFE.
teste sefazclass
Enviado: 30 Ago 2018 20:40
por JoséQuintas
A variável da classe contém tudo que poderia precisar.
hb_MemoWrit( "autorizado.xml", oSefaz:cXmlAutorizado )
E a classe do Danfe, gera o Danfe.
Geralmente a partir do conteúdo de um XML.
oDanfe:ToPdf( oSefaz:cXmlAutorizado )
oDanfe:ToPdf( MemoRead( "arquivo.xml" ) )
teste sefazclass
Enviado: 31 Ago 2018 10:48
por Marcelo_Antonio
Bom Dia.
Obrigado pela ajuda.
teste sefazclass
Enviado: 04 Set 2018 14:50
por Marcelo_Antonio
Boa tarde.
Estou fazendo teste (hambiente de Homologação) para envio da NFe, no entanto não esta me retornando nada.
Segue abaixo como estou utilizando para enviar. Minha dúvida é a seguinte: Devo carregar o arquivo para memória antes de enviar?
FUNCTION Enviar_XML(Arq_XML)
***************************************
LOCAL ArqXML:= HB_MemoRead(Arq_XML) //-->>Carrega o Arquivo Para a Memória
LOCAL L_ret := .T. , oFile, xArqRet
LOCAL nHandle:= FCREATE('Retorno_XML.log', 0)
oFile := mg_fileNameOnlyName(Arq_XML)
oFile := Substr(oFile, 1, Len(oFile)-8)
oSefaz:NfeLoteEnvia(ArqXML) //-->> Envio do Arquivo Para A SEFAZ
FWRITE(nHandle, oSefaz:cXmlRetorno)
FWRITE(nHandle, oSefaz:cXmlAutorizado)
FCLOSE(nHandle)
IF AT('*ERRO*', oSefaz:cXmlRetorno) <> 0
mg_MsgInfo("Solicitação não autorizada", "Retorno", oSefaz:cXmlRetorno )
xArqRet := HB_MemoWrit(Alltrim(M->Erro_XMLNFe)+oFile+"-pro-rec.XML", oSefaz:cXmlRetorno )
L_ret := .F.
WAPI_ShellExecute( NIL, "open", xArqRet, NIL, NIL, 1 )
ELSE //$ "100,101,150,301,302"
ArqXML := HB_MemoWrit(Alltrim(M->Dir_NFeXML)+oFile+"-procNfe.XML", oSefaz:cXmlAutorizado )
if File(ArqXML)
Danfe(ArqXML) //-->> Função para gravação e Impressão do DANFE
else
mg_Msgwarning("Falha na gravação do arquivo Retorno!", "Atenção")
//WAPI_MessageBox( wapi_GetActiveWindow(), "Falha na gravação do Arquivo "+ArqXML, "Advertência", 0x00000030)
endif
//oDanfe:ToPdf( MemoRead( "arquivo.xml" ) )
ENDIF
RETURN L_ret
Agradeço a cooperação.
teste sefazclass
Enviado: 04 Set 2018 15:19
por JoséQuintas
O programa de teste tem tudo, basta olhar lá. /tests
Em todo caso:
Código: Selecionar todos
// minimo
oSefaz := SefazClass():New()
oSefaz:cCertificado := "nome do certificado"
// configurar o que vai usar
oSefaz:cUF := "SP"
oSefaz:cAmbiente := "1"
// Enviar nota?
cXml := MemoRead( "arquivo.xml" )
oSefaz:NfeLoteEnvia( cXml )
// o que podemos obter?
hb_MemoWrit( "123-autorizado.xml", oSefaz:cXmlAutorizado ) // XML autorizado
// ou pra conferencia, além de outros
hb_MemoWrit( "123-retorno.xml", oSefaz:cXmlRetorno ) // XML Retorno
hb_MemoWrit( "123-recibo.xml", oSefaz:cXmlRecibo ) // XML recibo
Mensagem( oSefaz:cStatus ) // codigo de status retornado
Mensagem( oSefaz:cMotivo ) // motivo do status
Lembrando que agora a comunicação exige configuração adicional no Windows W7, e não funciona em XP.
E a classe usa CAPICOM e MSXML5, ambos da Microsoft, que precisam estar instalados corretamente.
E um certificado válido pra NFE, lógico.
teste sefazclass
Enviado: 04 Set 2018 15:23
por JoséQuintas
Complemento:
Isso vai ser seu aplicativo conversando com a Fazenda, do usuário direto ao governo e vice-versa, sem intermediário.
Valem os manuais do governo.
Inclusive os retornos, também são diretamente do governo, ou do windows.
teste sefazclass
Enviado: 04 Set 2018 16:30
por JoséQuintas
Pois é, dica sua.
Como diz a antiga frase: vivendo e aprendendo...
E aproveitando:
Notem o {xhb}, isso é pra se for usar HBMK2 no X-Harbour.
Nota: acaba valendo pra quem usa compatibilidade xharbour, o que pode atrapalhar.