FONTE NFE VB.NET

DPCI 29/01/2013 11:00:20
#418290
...obg a todos do forum pelas preciosas dicas fornecidas.

- Adicionei um botão ao projeto NFe do forum = VALIDAR SCHEMA xml com o seguinte codigo:

If Trim(CAMINHONFEGERADA.Text) = [Ô][Ô] Then
MsgBox([Ô]Informe o Nome do Arquivo XML, e, Tente Novamente.[Ô], MsgBoxStyle.Exclamation)
Exit Sub
End If

[ô]preparando arquivo para validação
Dim xDoc As New XmlDocument : xDoc.Load(CAMINHONFEGERADA.Text)
[ô]Salva o Arquivo
xDoc.Save(My.Application.Info.DirectoryPath & [Ô]\NFE\validaXML.xml[Ô])

Dim resultado As String = ValidaXML.ValidarXML(xDoc, My.Application.Info.DirectoryPath & [Ô]\[Ô] & [Ô]NFe_v2.00.xsd[Ô])

If resultado.Trim().Length = 0 Then
resultado = [Ô]Validação Concluida Com Sucesso[Ô]
End If

textBox1.Text = resultado

...e a função validarXML que já existia no projeto da NFe baixado:

Public Function ValidarXML(ByVal documento As XmlDocument, ByVal SchemaNf As String) As String

Dim xmlSaida As Stream = New MemoryStream()
documento.Save(xmlSaida)

xmlSaida.Flush()
xmlSaida.Position = 0
Dim retorno As String = [Ô][Ô]

If (documento IsNot Nothing) AndAlso (File.Exists(SchemaNf)) Then

[ô]COMPARA XML COM ESQUEMA SELECIONADO
Dim cStreamReader As New StreamReader(xmlSaida)
Dim cXmlTextReader As New XmlTextReader(cStreamReader)
Dim reader As New XmlValidatingReader(cXmlTextReader)

Dim schemaCollection As New XmlSchemaCollection()
schemaCollection.Add([Ô]http://www.portalfiscal.inf.br/nfe[Ô], SchemaNf)

reader.Schemas.Add(schemaCollection)

AddHandler reader.ValidationEventHandler, AddressOf reader_ValidationEventHandler

Erro = [Ô][Ô]
Try
While reader.Read()
End While
Catch ex As Exception
Erro = ex.Message
End Try

reader.Close()

If Erro <> [Ô][Ô] Then
retorno = [Ô]Resultado da validação [Ô] & vbCr & vbLf & vbCr & vbLf
retorno += Erro
retorno += vbCr & vbLf & [Ô]...Fim da validação[Ô]
End If
Else
retorno = [Ô]Documento XML inválido ou arquivo do Schema não foi encontrado.[Ô]
End If

Return retorno
End Function

- Baixei também a última atualização dos schemas no portal da NFe nacional e substitui os que vinheram no projeto da NFe do forum.

- Ao validar o schema xml de qualquer arquivo, do mundo real, já processado pela sefaz e autorizado obtenho sempre o mesmo retorno:
Retorno:
Elemento [ô]http://www.portalfiscal.inf.br/nfe:xMotivo[ô] não foi declarado.

<protNFe xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô] versao=[Ô]2.00[Ô]>
<infProt Id=[Ô]NFe1[Ô]>
<tpAmb>1</tpAmb>
<verAplic>NFEPE_P_04.00.01.018</verAplic>
<chNFe>261212093399360007015500100001147311260?????</chNFe>
<dhRecbto>2012-12-08T09:54:47</dhRecbto>
<nProt>1261200530?????</nProt>
<digVal>sGqvKyGyd7NiwfB2gEUDT+FzKWY=</digVal>
<cStat>100</cStat
><xMotivo>Autorizado o uso da NF-e</xMotivo>
</infProt>
</protNFe>

Porque isso, já que a tag xMotivo consta no arquivo xml?

O objetivo desse codigo seria poder verificar a integridade de um arquivo xml recebido.


FOXMAN 29/01/2013 13:31:23
#418305
Citação:

:
...obg a todos do forum pelas preciosas dicas fornecidas..
.
.
.



O objetivo desse codigo seria poder verificar a integridade de um arquivo xml recebido.




A validação feita através da função ValidarXML, não testa a integridade, nem a validade da NFE já processada.
Essa função tem por objetivo, validar apenas os XMLs assinados e se todas as tags necessárias estão na sequencia correta na montagem do xml, bem como se o conteúdo/tamanho dos campos estão sendo preenchidos corretamente(tipo de dados e tamanho).


Por exemplo :

O campo nChave deve ter OBRIGATORIAMENTE tamanho = 44 e conter somente numeros.
Esta é a validação que a função executa, porém ela não calcula o digito verificador, nem testa o CNPJ, não faz nenhuma validação sobre essa integridade e veracidade dos dados.



DPCI 31/01/2013 15:37:33
#418499
Citação:

:
:
...obg a todos do forum pelas preciosas dicas fornecidas..
.
.
.



O objetivo desse codigo seria poder verificar a integridade de um arquivo xml recebido.




A validação feita através da função ValidarXML, não testa a integridade, nem a validade da NFE já processada.
Essa função tem por objetivo, validar apenas os XMLs assinados e se todas as tags necessárias estão na sequencia correta na montagem do xml, bem como se o conteúdo/tamanho dos campos estão sendo preenchidos corretamente(tipo de dados e tamanho).


Por exemplo :

O campo nChave deve ter OBRIGATORIAMENTE tamanho = 44 e conter somente numeros.
Esta é a validação que a função executa, porém ela não calcula o digito verificador, nem testa o CNPJ, não faz nenhuma validação sobre essa integridade e veracidade dos dados.



.

Tentando entender:

- o arquivo xml montado e assinado antes de ser autorizado é diferente do arquivo xml já autorizado. Observei que algumas tags mudam de nome. Nesse caso, se eu desejasse validar o schema do arquivo xml já autorizado seria apenas uma questão de indicar um outro layout xsd???? se sim qual seria???

Ex: só assinado
<?xml version=[Ô]1.0[Ô] encoding=[Ô]UTF-8[Ô]?>
-<[txt-color=#e80000]enviNFe[/txt-color] versao=[Ô]2.00[Ô] xmlns=[Ô]http://www.portalfiscal.inf.br/nfe:inviNFe[Ô]><idLote>000000000000187</idLote>-<NFe xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>-<infNFe ....

Ex: autorizado
<?xml version=[Ô]1.0[Ô] encoding=[Ô]UTF-8[Ô]?>
-<[txt-color=#e80000]nfeProc[/txt-color] xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô] versao=[Ô]2.00[Ô]>-<NFe xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>-<infNFe versao=[Ô]2.00[Ô] ....
FOXMAN 01/02/2013 18:16:31
#418608
DPCI, o que vc está tentando fazer é verificar a veracidade de uma NFE.
Os Schemas de validação são somente para validar os xmls antes de enviar.

Citação:

Tentando entender:

- o arquivo xml montado e assinado antes de ser autorizado é diferente do arquivo xml já autorizado. Observei que algumas tags mudam de nome. Nesse caso, se eu desejasse validar o schema do arquivo xml já autorizado seria apenas uma questão de indicar um outro layout xsd???? se sim qual seria???

Ex: só assinado
<?xml version=[Ô]1.0[Ô] encoding=[Ô]UTF-8[Ô]?>
-<enviNFe versao=[Ô]2.00[Ô] xmlns=[Ô]http://www.portalfiscal.inf.br/nfe:inviNFe[Ô]><idLote>000000000000187</idLote>-<NFe xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>-<infNFe ....

Ex: autorizado
<?xml version=[Ô]1.0[Ô] encoding=[Ô]UTF-8[Ô]?>
-<nfeProc xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô] versao=[Ô]2.00[Ô]>-<NFe xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>-<infNFe versao=[Ô]2.00[Ô] ....



Você deve utilizar os EVENTOS da NFe para esta questão.
S4NGU3 06/02/2013 01:13:01
#418863
alguem tem o codigo do CONS CAD - CADASTRO DE EMITENTES ???? para compartilhar !!!!!!!!!!


obrigado
DPCI 06/02/2013 18:16:48
#418919
Citação:

:
DPCI, o que vc está tentando fazer é verificar a veracidade de uma NFE.
Os Schemas de validação são somente para validar os xmls antes de enviar.

Tentando entender:

- o arquivo xml montado e assinado antes de ser autorizado é diferente do arquivo xml já autorizado. Observei que algumas tags mudam de nome. Nesse caso, se eu desejasse validar o schema do arquivo xml já autorizado seria apenas uma questão de indicar um outro layout xsd???? se sim qual seria???

Ex: só assinado
<?xml version=[Ô]1.0[Ô] encoding=[Ô]UTF-8[Ô]?>
-<enviNFe versao=[Ô]2.00[Ô] xmlns=[Ô]http://www.portalfiscal.inf.br/nfe:inviNFe[Ô]><idLote>000000000000187</idLote>-<NFe xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>-<infNFe ....

Ex: autorizado
<?xml version=[Ô]1.0[Ô] encoding=[Ô]UTF-8[Ô]?>
-<nfeProc xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô] versao=[Ô]2.00[Ô]>-<NFe xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>-<infNFe versao=[Ô]2.00[Ô] ....

Você deve utilizar os EVENTOS da NFe para esta questão.



é isso mesmo foxman, valeu pela dica...

Então os eventos no projeto são aqueles das classes do webservice (tipo NFeConsulta2). Notei que as classes dali tem a mesma estrutura variando os endereços do wsdl.
Gostaria de saber se tem como consultar uma NF-e já autorizada, através da leitura do arquivo xml, usando um evento... E se existir se só preciso montar uma nova classe no webservice com aquela estrutura e colocar nela os wsdl???
OTAVIOFAVERO 18/02/2013 13:01:00
#419277
ei pessoal so uma duvida gente eu tenho que fazer um sistema de importação de nfe so que para txt existe algum lugar que valida o txt?

eu sei q tem para xml mas para txt eu nunca vi!!

alguem conhece ou pode me endicar!! ou dar o caminho para a luzzz srrss

valeuu obrigado...
DPCI 20/02/2013 16:19:50
#419434
Como posso utilizar a senha do certificado digital já salva para evitar que o usuário precise redigita-la???

No projeto NF-e tenho a função que seleciona e ou confirma o certificado:

Public Function SelecionarCertificado(ByVal CerSerie As String) As X509Certificate2

Dim certificate As New X509Certificate2

Try
Dim certificatesSel As X509Certificate2Collection
Dim store As New X509Store([Ô]MY[Ô], StoreLocation.CurrentUser)
store.Open(OpenFlags.OpenExistingOnly)

Dim certificates As X509Certificate2Collection = store.Certificates.Find(X509FindType.FindByTimeValid, DateTime.Now, True).Find(X509FindType.FindByKeyUsage, X509KeyUsageFlags.DigitalSignature, True)

If (CerSerie = [Ô][Ô]) Then
certificatesSel = X509Certificate2UI.SelectFromCollection(certificates, [Ô]Certificados Digitais[Ô], [Ô]Selecione o Certificado Digital para uso no aplicativo[Ô], X509SelectionFlag.SingleSelection)
If (certificatesSel.Count = 0) Then
certificate.Reset()
Throw New Exception([Ô]Nenhum Certificado Digital Foi Selecionado ou o Certificado Selecionado Está Com Problemas.[Ô])
Else
certificate = certificatesSel.Item(0)
End If
Else
certificatesSel = certificates.Find(X509FindType.FindBySerialNumber, CerSerie, True)
If (certificatesSel.Count = 0) Then
certificate.Reset()
Throw New Exception([Ô]Certificado Digital Não Encontrado[Ô])
Else
certificate = certificatesSel.Item(0)
End If
End If
store.Close()
Return certificate
Catch exception As Exception
Throw New Exception(exception.Message)
Return certificate
End Try
End Function
Página 156 de 228 [2276 registro(s)]
Faça seu login para responder