FONTE NFE VB.NET

WILHAMPS 15/06/2010 20:46:07
#344927
Citação:

:
WILHAMPS,

mande tambem o xml que endica o erroooooooooo 215 para analizar o erro



Putz cara não coloquei pra gravar esse retorno ainda, acabei me esquecendo. mais o erro é [Ô]FALHA NO SCHEMA XML[Ô]. se ajudar

Depolis vou vr se faço um esquema pra gravar ai posto aqui

OTAVIOFAVERO 15/06/2010 20:49:05
#344929
bom WILHAMPS,

o erro 215 tambem e erro de credenciamento

verifique se a empresa que vc esta em ambiente de homologação esta credenciada...

abç
WILHAMPS 16/06/2010 08:34:29
#344946
Citação:

:
bom WILHAMPS,

o erro 215 tambem e erro de credenciamento

verifique se a empresa que vc esta em ambiente de homologação esta credenciada...

abç



Pode ser que seje a chave, fui pesquizar no site da receita e deu erro no digito verificador agora estranho pq fiz o calculo exatamente como fala no manual.

1º numero da chave -1

entao no caso o me é 4 então o peso é 3 ai vc vai subtraindoentao ficou

peso=3298765432987654329876543298765432987654329

ai ele calcula e dá o digito mais no site da receita deu 0 e o meu dá 7

alguma coisa está estranha, será que estou calculando o numero inicial do peso errado?
DUHHH 16/06/2010 10:39:33
#344966
posta como se fez o calculo que te ajudo!
OTAVIOFAVERO 16/06/2010 22:17:30
#345060
Public Function L_ChaveNFE(ByVal codUF As String, ByVal DtEmissao As String, ByVal CNPJ As String, ByVal Modelo As String, ByVal Serie As String, ByVal NumeroNF As String, ByVal CodNumerico As String, ByVal Demo As String) As String

Dim Chave As String
Dim Digito As String = [Ô][Ô]
Dim erro As String = [Ô][Ô]
Dim blErroFatal As String
DtEmissao = CDate(DtEmissao)
Dim DtEmissaoMes As String = Month(DtEmissao)
DtEmissaoMes = mascaranumerico(DtEmissaoMes, 14, 15)

Dim DtEmissaoAno As String = Year(DtEmissao)
DtEmissaoAno = mascaranumerico(DtEmissaoAno, 14, 15)

DtEmissao = DtEmissaoAno & DtEmissaoMes [ô]([Ô]MMYY[Ô])

CNPJ = SoNumero(CNPJ)
If VCNPJ_CPF(CNPJ) = False Then
erro = erro & [Ô]<br>CNPJ/CPF INVÁLIDO, não será possível iniciar a chave.[Ô] & vbCritical & [Ô]Erro Fatal.[Ô] [ô] Exit Function
blErroFatal = True
End If

Modelo = mascaranumerico(Modelo, 14, 15)
Serie = mascaranumerico(Serie, 13, 15)
NumeroNF = mascaranumerico(NumeroNF, 7, 15)


CodNumerico = mascaranumerico(CodNumerico, 7, 15)

[ô] cUF - Código da UF do emitente do Documento Fiscal (02)
[ô] AAMM - Ano e Mês de emissão da NF-e (04)
[ô] CNPJ - CNPJ do emitente (14)
[ô] mod - Modelo do Documento Fiscal (02)
[ô] serie - Série do Documento Fiscal (03)
[ô] nNF - Número do Documento Fiscal (09)
[ô] cNF - Código Numérico que compõe a Chave de Acesso (01)
[ô] cDV - Dígito Verificador da Chave de Acesso

Chave = Trim(codUF & DtEmissao & CNPJ & Modelo & Serie & NumeroNF & CodNumerico)
[ô]response.write codUF & DtEmissao & CNPJ & Modelo & Serie & NumeroNF & CodNumerico & [Ô]<br>[Ô]
[ô]Digito = Calculo_DV11(Chave)
L_ChaveNFE = Chave [ô] & Digito

[ô]Response.Write(erro)
End Function

Public Function L_Digito(ByVal Chave As String) As String
L_Digito = Calculo_DV11(Chave)
End Function



Public Function Calculo_DV11(ByVal strNumero As String) As String

Dim intcontador As Integer = [Ô]0[Ô]
Dim intnumero As Integer = [Ô]0[Ô]
Dim intTotalNumero As Integer = [Ô]0[Ô]
Dim intMultiplicador As Integer = [Ô]0[Ô]
Dim intResto As Integer = [Ô]0[Ô]
Dim resultmult As String = [Ô]0[Ô]

If Not IsNumeric(strNumero) Then
Calculo_DV11 = [Ô][Ô]
Exit Function
End If
[ô]inicia o multiplicador com 2
intMultiplicador = 2
intTotalNumero = 0
[ô]pega cada caracter do numero a partir da direita
For intcontador = Len(strNumero) To 1 Step -1
[ô]extrai o caracter e multiplica prlo multiplicador
intnumero = (Mid(strNumero, intcontador, 1)) * intMultiplicador

intTotalNumero = intTotalNumero + intnumero
[ô]se o multiplicador for maior ou igual a 2 atribui valor padrão, caso contrario incrementa
If intMultiplicador >= 9 Then
resultmult = 2
Else
resultmult = intMultiplicador + 1
End If
intMultiplicador = resultmult
Next
[ô]calcula o resto da divisao do total por 11
intResto = intTotalNumero Mod 11
[ô]verifica as exceções ( 0 -> DV=0 10 -> DV=X (para o BB) e retorna o DV
Select Case intResto
Case 0
Calculo_DV11 = [Ô]0[Ô]
Case 1
Calculo_DV11 = [Ô]0[Ô]
Case Else
Calculo_DV11 = Trim((11 - intResto * 1))
End Select

End Function

Public Function mascaranumerico(ByVal numero As String, ByVal casasx As String, ByVal casasy As String) As String
[ô]30 numero

If IsNumeric(numero) = False Then
Response.Write([Ô]<br><br>( ([Ô] & numero & [Ô]) erro mascara numerico)<br><br>[Ô])
numero = [Ô]0[Ô]
End If

mascaranumerico = Mid((numero) + 100000000000000, casasx, casasy)
[ô]mascaranumerico = numero
End Function

Dim ChaveNFE As String = L_ChaveNFE(ideCAMPO_cUF, ideCAMPO_dEmi, emitCAMPO_CNPJ, ideCAMPO_mod, ideCAMPO_serie, ideCAMPO_nNF, ideCAMPO_cNF, [Ô][Ô])
Dim Digitox As String = Calculo_DV11(ChaveNFE)

Dim ideCAMPO_cDV As String = Digitox [ô]Informar o DV da Chave de Acesso da NF-e,

Dim chavex As String = [Ô]NFe[Ô] & ChaveNFE & Digitox [ô] chave ja formada




bom proveitooo
DUHHH 17/06/2010 09:28:08
#345079
Cara pra que tudo isso? Vou mandar como eu fiz:

Public Function DV(ByVal sChave As String) As Integer
Dim wmultip As Integer, I As Integer, var_tamanho As Integer

DV = 0
wmultip = 2
For I = 43 To 1 Step -1
var_tamanho = 0
var_tamanho = Mid(sChave, I, 1)
var_tamanho = var_tamanho * wmultip
DV = DV + var_tamanho

wmultip = wmultip + 1
If wmultip = 10 Then wmultip = 2
Next
DV = DV Mod 11
DV = IIf(DV <= 0 Or DV = 1, 0, 11 - DV)
End Function

SChave é os 43 caracteres antes do Digito Verificador, essa função funciona a quase 2 anos!
WILHAMPS 17/06/2010 23:38:06
#345151
Bom galera eu fiz mais ou menos como indicava no manuial do contribuinte, ficou assim.


[ô]para formatar com 0 antes valor para atingir o numero de caracteres necessarios
Private Function Formata_campo_str(ByVal qt_necessario As Integer, ByVal valor As String, ByVal valor_preencher As String) As String
Dim tamanho_string As Integer
Dim tamanho_result As Integer
Contagem:
tamanho_string = Len(valor)
tamanho_result = qt_necessario - tamanho_string

If tamanho_result <= 0 Then
Formata_campo_str = Right(valor, qt_necessario)
Else
valor = Mid(valor_preencher, 1, 1) & valor
GoTo Contagem
End If
Formata_campo_str = valor
End Function


[ô]Gera a chave

Function Chave_nfe(ByVal COD_UF As String, ByVal Data_emissao As String, ByVal CNPJ_EMIT As String, ByVal Modelo As Long, ByVal Serie As Long, ByVal Numero_nota As Long, ByVal Tipo_emissao As Long, ByVal Numero_sequencia As Long) As String

Dim N_CodUF As String

Dim N_DEMI As String

Dim N_CNPJ As String

Dim N_SERIE As String

Dim N_nota As String

Dim N_chave As String

Dim N_Numero_sequencia As String

N_CodUF = Formata_campo_str(2, COD_UF, 0)

N_DEMI = Mid(Data_emissao, 3, 2) & Mid(Data_emissao, 6, 2)

N_CNPJ = Formata_campo_str(14, CNPJ_EMIT, 0)

N_SERIE = Formata_campo_str(3, Serie, 0)

N_nota = Formata_campo_str(9, Numero_nota, 0)

N_Numero_sequencia = Formata_campo_str(8, Numero_sequencia, 0)

N_chave = N_CodUF & N_DEMI & N_CNPJ & Modelo & N_SERIE & N_nota & Tipo_emissao & N_Numero_sequencia

Dim Calculo As Integer = 0

Calculo = Mid(N_chave, 1, 1) - Val(1)

Dim Semichave As String

Dim semi_peso As String

If Calculo <= 1 Then

semi_peso = [Ô]9[Ô]

Else : semi_peso = Calculo

End If

Semichave = semi_peso
For i = 1 To 42
semi_peso = semi_peso - Val(1)

If semi_peso <= 1 Then
semi_peso = [Ô]9[Ô]
End If

Semichave = Semichave & semi_peso
Next

Dim baseCalculo As String = Semichave
Dim somaResultados As Integer = 0

For i As Integer = 0 To N_chave.Length - 1
Dim numNF As Integer = Convert.ToInt32(N_chave(i).ToString())
Dim numBaseCalculo As Integer = Convert.ToInt32(baseCalculo(i).ToString())

somaResultados += (numBaseCalculo * numNF)
Next

Dim restoDivisao As Integer = (somaResultados Mod 11)
Dim dv As Integer = 11 - restoDivisao
If (dv < 0) OrElse (dv > 9) Then
Chave_nfe = N_chave & [Ô]0[Ô]
Else
Chave_nfe = N_chave & dv
End If

End Function


Está errado?
WILHAMPS 19/06/2010 13:29:20
#345268
Pessoal agora me surgiu uma duvida, para que eu possa emitir NFe2.0 minha empresa tem que estar cadastrada para isso ou eu posso simplesmente manter meu cadastro de nfe1.0 que nao muda nada?
MICHELEAPARECID 20/06/2010 21:54:43
#345319
Boa Noite pessoal !!!

Td bem ?

Estou com um problemas para enviar os arquivos XML ao sefaz apenas de SP...

para qualquer arquivo que tento encaminhar : envio, cancelamento, consulta de serviço aparece a mensagem :

para testar estou tentando validar pelo arquivo de status do serviço mas está dando a seguinte mensagem de erro :

?Err.Description
Server did not recognize the value of HTTP Header SOAPAction: /nfeStatusServicoNF.

Isto no ambiente de homologação... agora se tento encaminhar para o web service de GO, MG dá certo ...

Alguém já teve o mesmo problema?

Agradeço pela atenção....




MICHELEAPARECID 20/06/2010 22:00:25
#345320
Citação:



Pessoal agora me surgiu uma duvida, para que eu possa emitir NFe2.0 minha empresa tem que estar cadastrada para isso ou eu posso simplesmente manter meu cadastro de nfe1.0 que nao muda nada?



Boa Noite WILHAMPS,

Pelo que sei não há necessidade de se homologar perante a sefaz para emitir a nfe 2.0.
A versão 2.0 é a versão 1.1 com alguns campos adicionais pelo que percebi ao fazer a comparação dos 2 layout's...

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