FONTE NFE VB.NET

VANTO 10/05/2011 19:41:05
#373610
Pessoal estou ralando bastante aqui para terminar este projeto, acho que todos já terminaram rsrsrs pois poucos tem passado por aqui... bom aos poucos estou conseguindo me virar, terminei hoje meu DANFE com o FastReport.NET, se alguém tiver interesse posso postar o arquivo aqui no fórum.

Com relação a minha pergunta acima, se alguém puder me ajudar, eu não consegui resolver o problema más contornei editando o arquivo depois de validado e removendo a tag no braço, más ficou deselegante se alguém puder ajudar fico agradecido.

Abraço a todos.
LEONARDOSILVEIR 10/05/2011 23:56:10
#373628
Pessoal uma dúvida, com o ceriticado digital eCPF é possivel consumir o webservice da sefaz, para somente validar o status da NFe?
DANIELCPAETE 11/05/2011 09:21:32
#373636
Vanto de uma olhada nesta função no seu projeto. Se estiver diferente disso troque por esta. Outra coisa porque não quis usar a impressão de DANFE pelo printer conforme o projeto?


    [ô]FUNÇÃO QUE POR RECURSIVIDADE PREENCHE ESCREVE OS DADOS DO XML
Private Sub objetoParaXML(ByVal xmlWriter As XmlWriter, ByVal objeto As Object, ByVal ignorarDeclaracaoElemento As Boolean)
If objeto Is Nothing Then
Exit Sub
End If

Dim tipoObjeto As Type
tipoObjeto = objeto.[GetType]()
Dim propriedades As PropertyInfo()
propriedades = tipoObjeto.GetProperties()

[ô]VERIFICA SE é UM CAMPO DO TIPO LIST
[ô]SE FOR ADICIONA NOVO ELEMENTE
If Not ignorarDeclaracaoElemento And tipoObjeto.Name <> [Ô]List'1[Ô] Then
xmlWriter.WriteStartElement(tipoObjeto.Name)
End If

[ô]SE FORM UMA LISTA CHAMA FUNÇÃO NOVAMENTE PARA PREENCHER ELEMENTOS DA LISTA
If tipoObjeto.Name = [Ô]List'1[Ô] Then
If objeto.ToString.Contains([Ô]dup[Ô]) Then
For Each Ddup As dup In objeto
objetoParaXML(xmlWriter, Ddup, False)
Continue For
Next
ElseIf objeto.ToString.Contains([Ô]med[Ô]) Then
For Each Dmed As med In objeto
objetoParaXML(xmlWriter, Dmed, False)
Continue For
Next
Else
For Each DNFref As NFref In objeto
objetoParaXML(xmlWriter, DNFref, False)
Continue For
Next
End If
Exit Sub
End If

[ô]VERIFICA CAMPOS E ADICIONA TAGS E ELEMENTOS XML
For Each propriedade As PropertyInfo In propriedades

If funcoesNfe.novaTag(propriedade) AndAlso Not (propriedade.GetValue(objeto, Nothing) Is Nothing) Then
[ô]VERIFICA é UMA LISTA DE NOTAS REFERENCIADAS
[ô]SE FOR VERIFICA Sé é NOTA PAPEL OU NOTA ELETRONICA
If propriedade.Name = [Ô]RefNF[Ô] AndAlso objeto.refNFE <> [Ô][Ô] Then
Else
objetoParaXML(xmlWriter, propriedade.GetValue(objeto, Nothing), False)
Continue For
End If
End If

Dim obj As Object() = propriedade.GetCustomAttributes(False)
funcoesNfe.gravarElemento(xmlWriter, propriedade.Name, propriedade.GetValue(objeto, Nothing), obj)
Next
If Not ignorarDeclaracaoElemento Then
xmlWriter.WriteEndElement()
End If
End Sub
VANTO 11/05/2011 10:34:21
#373644
Olá Daniel, conferi a função que vc mensionou e está igualzinho ao meu projeto, não sei se vc leu o meu tópico anterior, más este problema só ocorre quando eu utilizo referência à Cupons Fiscais, eu postei tb a classe que criei e as alterações que fiz no projeto em tópicos anteriores se quiser dar uma olhada.

Com relação ao Danfe, preferi fazer no FastReport.NET pois todos os meus relatórios são nele e os usuários já estão acostumados, ele já tem todos os recursos que preciso (salvar em PDF, enviar e-mail etc.), não sei se vc conhece más depois que comecei a usar, adeus crystal report, ele é infinitamente melhor, pra vc ter uma idéia fiz o DANFE em retrato nele com menos de 1 dia, é claro lendo do meu banco de dados, do XML vou fazer depois más é tranquilo.

Com relação aos problemas que mencionei, se tiver alguma novidade me avise...

Abraço.




DYNARIGA 11/05/2011 11:28:15
#373654
Olá,
Estou enviando meu xml para o webservice e quando faço a consulta de retorno ele me vem o erro [Ô]215 - Rejeição: Falha no schema XML ;Verifica Schema XML da Área de Dados[Ô]. Sendo que o Xml esta valido.
MMGONCALVES 11/05/2011 17:45:25
#373705
Olá a todos, gostaria de parabenizar o pessoal que está contribuindo com o projeto, acabei de baixá-lo, ainda é o da página 69 ? Pois é, pra mim funcionou de boa, estou aqui testando, gostaria de mais informações sobre como transformá-lo em DLL pra uso tanto no vb 6 quanto em visual foxpro 9. Obrigado!
VINICIUSHP 16/05/2011 17:16:33
#374070
Galera, tudo bom?
Sou novo aqui no Fórum, e já trago algumas dúvidas ^^
Tenho algumas NFe do PR no formato XML, e preciso importar para o programa Prosoft, já tenho até o Layout do programa por aqui, mas ainda não entendi a parte de XML. só preciso descobrir como ler essas notas no vb.net, o restante já tenho como fazer!
abraço a todos vocês!
GUILHERMEDEFRAN 18/05/2011 10:07:19
#374244
Bom dia

Estou implementando a rotina DPEC no meu sistema

esta dando erro de SCHEMA XML,vou pesquisando pra ver se consigo arrumar e post aqui...meu projeto está pronto, qualquer duvida e ajuda é só pedirem
e para quem quer me ajudar a realizar a DPEC:

ta dando erro de SCHEMA XML:

utilizo VB6 no meu ERP e VB.NET para as funções de envio

VB 6:
  Public Function GeraDPEC(CGCOrigem As String, NumNota As String, Serie As String) As Boolean

Dim Fso As New FileSystemObject
Dim ArqIni As TextStream
Dim URL As String
Dim BuscaUF As New ADODB.Recordset
Dim rsGravaDPEC As New ADODB.Recordset

On Error GoTo GeraDPEC_Error

Xml = [Ô][Ô]
If Trim(CGCOrigem) = [Ô][Ô] Then
GeraDPEC = False
Exit Function
End If

wArquivoWS = App.Path & [Ô]\NFE\webservices.xml[Ô]
If Not (Fso.FileExists(wArquivoWS)) Then
MsgBox [Ô]Arquivo webservices.xml dos Web Services não encontrado. Verifique.[Ô], vbCritical, [Ô]Atenção[Ô]
GeraDPEC = False
Exit Function
End If

IdentAmbiente = Left(BuscaGenerico(w_NumLoja, [Ô]IdentAmb[Ô]), 1)
If IdentAmbiente = [Ô][Ô] Then
MsgBox [Ô]Configuração no Toolkit de identificação do ambiente da nota fiscal eletrônica não difinido. Verifique e tente novamente.[Ô], vbInformation, [Ô]Atenção[Ô]
GeraDPEC = False
Exit Function
End If

Set rsBuscaUF = w_Conn.Execute([Ô]select Estado from Pessoas where cgccpf = [ô][Ô] & CNPJDestinatario & [Ô][ô][Ô])

LoadMensagem [Ô]Gerando DPEC. Aguarde...[Ô]

Xml = [Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]utf-8[Ô][Ô] ?>[Ô]
Xml = Xml & [Ô]<envDPEC xmlns=[Ô][Ô]http://www.portalfiscal.inf.br/nfe[Ô][Ô] versao=[Ô][Ô]1.01[Ô][Ô]>[Ô]
Xml = Xml & [Ô]<infDPEC Id=[Ô][Ô]DPEC[Ô] & CGCOrigem & [Ô][Ô][Ô]>[Ô]
Xml = Xml & [Ô]<ideDec>[Ô]
Xml = Xml & [Ô]<cUF>[Ô] & wCodUFEmitente & [Ô]</cUF>[Ô]
Xml = Xml & [Ô]<tpAmb>[Ô] & IdentAmbiente & [Ô]</tpAmb>[Ô]
Xml = Xml & [Ô]<verProc>[Ô] & App.major & App.minor & [Ô]</verProc>[Ô]
Xml = Xml & [Ô]<CNPJ>[Ô] & CGCOrigem & [Ô]</CNPJ>[Ô]
Xml = Xml & [Ô]<IE>[Ô] & IE & [Ô]</IE>[Ô]
Xml = Xml & [Ô]</ideDec>[Ô]
Xml = Xml & [Ô]<resNFe>[Ô]
Xml = Xml & [Ô]<chNFe>[Ô] & Replace(ChaveAcesso, [Ô]NFe[Ô], [Ô][Ô]) & [Ô]</chNFe>[Ô]
If Len(CNPJDestinatario) = [Ô]14[Ô] Then
Xml = Xml & [Ô]<CNPJ>[Ô] & CNPJDestinatario & [Ô]</CNPJ>[Ô]
Else
Xml = Xml & [Ô]<CPF>[Ô] & CNPJDestinatario & [Ô]</CPF>[Ô]
End If
If Not rsBuscaUF.EOF Then
Xml = Xml & [Ô]<UF>[Ô] & rsBuscaUF([Ô]Estado[Ô]) & [Ô]</UF>[Ô]
Else
MsgBox [Ô]Estado do destinátario não definido.[Ô], vbInformation
GeraDPEC = False
Exit Function
End If
Xml = Xml & [Ô]<vNF>[Ô] & Format(FrmNotaFiscal.TxtTotNota, [Ô]0.00[Ô]) & [Ô]</vNF>[Ô]
Xml = Xml & [Ô]<vICMS>[Ô] & Format(VlrICMSTot, [Ô]0.00[Ô]) & [Ô]</vICMS>[Ô]
Xml = Xml & [Ô]<vST>[Ô] & Format(VlrICMSSTTot, [Ô]0.00[Ô]) & [Ô]</vST>[Ô]
Xml = Xml & [Ô]</resNFe>[Ô]
Xml = Xml & [Ô]</infDPEC>[Ô]
Xml = Xml & [Ô]</envDPEC>[Ô]

wArquivoXML = App.Path & [Ô]\DPEC[Ô] & CGCOrigem & [Ô].xml[Ô]
GravaArquivoXML

[ô]Tempo para gravação do arquivo
Sleep 1000
FrmMensagem.Refresh

If Not Signature([Ô]infDPEC[Ô]) Then
GeraDPEC = False
Exit Function
End If

[ô]Tempo para gravação do arquivo
Sleep 1000
FrmMensagem.Refresh

URL = URL_WS([Ô]DPEC[Ô])

If Not ClsNFe.GeraDPEC(wArquivoXML, URL) Then
GeraDPEC = False
Exit Function
End If

With rsGravaDPEC
.Open [Ô]Select * from NotaFiscalEletronicaDPEC WHERE NumLoja = [ô][Ô] & w_NumLoja & [Ô][ô] and CGCOrigem = [ô][Ô] & CGCOrigem & [Ô][ô] and NumNota = [ô][Ô] & NumNota & [Ô][ô] and Serie = [ô][Ô] & Serie & [Ô][ô][Ô], w_Conn, adOpenDynamic, adLockOptimistic, adCmdText
If .EOF Then
.AddNew
End If
.Fields([Ô]Numloja[Ô]) = w_NumLoja
.Fields([Ô]CGCOrigem[Ô]) = CGCOrigem
.Fields([Ô]NumNota[Ô]) = NumNota
.Fields([Ô]Serie[Ô]) = Serie
.Fields([Ô]IdDPEC[Ô]) = ClsNFe.id
.Fields([Ô]DataEmiss[Ô]) = Now
.Fields([Ô]ChaveAcesso[Ô]) = ChaveAcesso
.Fields([Ô]Versao[Ô]) = [Ô]1.01[Ô]
.Fields([Ô]Ambiente[Ô]) = ClsNFe.tpAmb
.Fields([Ô]verAplic[Ô]) = ClsNFe.verAplic
.Fields([Ô]cStat[Ô]) = ClsNFe.cStat
.Fields([Ô]xMotivo[Ô]) = ClsNFe.xMotivo
.Fields([Ô]nRegDPEC[Ô]) = ClsNFe.nProt
.Fields([Ô]dhRegDPEC[Ô]) = Replace(ClsNFe.dhRecbto, [Ô]T[Ô], [Ô][Ô])
.Fields([Ô]Justificativa[Ô]) = Justificativa
Update_HDR rsGravaDPEC, [Ô]GeraDPEC[Ô]
.Update

.Close

End With

GeraDPEC = True

Exit Function


VB.NET

      Public Function GeraDPEC(ByVal Arquivo As String, ByVal URL_WS As String) As Boolean

Try
If IsNothing(Certificado) Then
If Not SelecionaCertificado() Then
Return False
Exit Function
End If
End If

document.PreserveWhitespace = False
document.Load(Arquivo)

Dim cabecalho As New wsNFeRecepcaoDPEC.sceCabecMsg
cabecalho.versaoDados = [Ô]1.01[Ô]

Dim DPEC As New wsNFeRecepcaoDPEC.SCERecepcaoRFB
DPEC.Url = URL_WS
DPEC.sceCabecMsgValue = cabecalho
DPEC.Timeout = 100000
DPEC.ClientCertificates.Add(Certificado)
DPEC.SoapVersion = Web.Services.Protocols.SoapProtocolVersion.Soap12
retorno = DPEC.sceRecepcaoDPEC(document)

For Each outerNode As XmlNode In retorno
If (outerNode.Name = [Ô]infDPEC[Ô]) Then wId = outerNode.Attributes.ItemOf([Ô]Id[Ô]).InnerText
For Each InnerNode As XmlNode In outerNode.ChildNodes

If (outerNode.Name = [Ô]tpAmb[Ô] Or InnerNode.Name = [Ô]tpAmb[Ô]) Then wTpAmb = InnerNode.InnerText
If (outerNode.Name = [Ô]verAplic[Ô] Or InnerNode.Name = [Ô]verAplic[Ô]) Then wVerAplic = InnerNode.InnerText
If (outerNode.Name = [Ô]nRec[Ô] Or InnerNode.Name = [Ô]nRec[Ô]) Then wNRec = InnerNode.InnerText
If (outerNode.Name = [Ô]cStat[Ô] Or InnerNode.Name = [Ô]cStat[Ô]) Then wCStat = InnerNode.InnerText
If (outerNode.Name = [Ô]xMotivo[Ô] Or InnerNode.Name = [Ô]xMotivo[Ô]) Then wXMotivo = InnerNode.InnerText
If (outerNode.Name = [Ô]nRegDPEC[Ô] Or InnerNode.Name = [Ô]nRegDPEC[Ô]) Then wNProt = InnerNode.InnerText
If (outerNode.Name = [Ô]dhRegDPEC[Ô] Or InnerNode.Name = [Ô]dhRegDPEC[Ô]) Then wDhRecbto = InnerNode.InnerText
Next
Next

Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try

End Function
GUILHERMEDEFRAN 18/05/2011 13:42:26
#374274
um erro bem basico na hora de gerar a XML

os pontos nos valores da nota, icms e substributária devem ser substituidos por PONTO, invés de VIRGULA ( bem básico)

se alguem quiser gerar DPEC, pode pegar o que eu fiz, está correto, só realizar essa correção e estará emitindo corretamente....

Página 95 de 228 [2276 registro(s)]
Faça seu login para responder