NOTA FISCAL PAULISTA
Ola Pessoal Tenho um sistema de nota fiscal paulista onde eu gero o arquivo txt no meu sistema e vou no programa na receita e envio ele queria deixar a coisa um pouco mais legal tipo enviar o arquivo do meu sistema. validar o arqivo pelo sistema estas coisas sei que o pessoal aqui é fera sera que alguem poderia me dar o caminhos das pedras
Obrigado
Joao
Obrigado
Joao
Você pode enviar o arquivo via WebService ...
Baixe e dê uma olhada nessas orientações tecnicas sobre o assunto ...
http://www.nfp.fazenda.sp.gov.br/pdf/webservice.pdf
Baixe e dê uma olhada nessas orientações tecnicas sobre o assunto ...
http://www.nfp.fazenda.sp.gov.br/pdf/webservice.pdf
bom eu ja tinha lido o manual mas eu queria uma explicação como funciona! tipo se precisa de assinatura digital
o q deve conter no arquivo enviado
e um exemplo do arquivo enviado e o retorno e como deve-se imprimir
seria bom se alguem desse uma luz assim!!!
alguem pode ajudar abç
o q deve conter no arquivo enviado
e um exemplo do arquivo enviado e o retorno e como deve-se imprimir
seria bom se alguem desse uma luz assim!!!
alguem pode ajudar abç
Não precisa de assinatura digital.
E acho que você não leu o manual, pq muito do que você tá perguntando está lá
E acho que você não leu o manual, pq muito do que você tá perguntando está lá
ha eu entei em um web service da nfp e pedio assinatura e eu usei a da NFE por isso eu to falando se precisa de assinatura! eu vou pegar o webservice q eu entrei e mostro!
ninguem tem um exeplo que possa me passar para eu estudar ?
Obrigado
Obrigado
joao benevides, voce poderia me ajudar a implementar a NF Paulista no meu sistema? apenas o gerador de txt.
claro o que tem pronto posta ai que ti ajudo
ENTAO, TENHO UM PROGRAMA QUE USO AQUI NA LOJA Q TRABALHO, ELE FUNCIONA PERFEITO, SO NAO TEM A FUNÇÃO DE GERAR NOTA FISCAL, QUERIA Q ME AJUDA-SE, PQ NEM SEI POR ONDE COMEÇAR.
segue o codigo que eu uso
Sub GerarNotaFiscal(ByVal DataIni As String, ByVal DataFim As String, ByVal Empresa As Integer, ByVal Serie As Integer, ByVal TipoNota As Integer)
Dim Rs As New ADODB.Recordset
Dim RsProd As New ADODB.Recordset
Dim texto As String
Dim FSO As New FileSystemObject
Dim Arq As TextStream
Dim rsp As New ADODB.Recordset
Dim X30 As Integer
Dim ValorIPI, ValorICMS, Valorprod, ValorFrete, ValorSeguro, ValorDesconto, ValorTotal As Currency
Dim X10 As Integer
Dim X20, X40, X50, x60 As Integer
Dim Valoricms1 As String
texto = [Ô]select * from parametros[Ô]
rsp.Open texto, de.DB, adOpenStatic, adLockReadOnly
If rsp.EOF = True Then Exit Sub
texto = [Ô]select * from escriturafiscal where data_emissao>=[Ô] & PreparaData(DataIni) & [Ô]and data_emissao<=[Ô] & PreparaData(DataFim) & [Ô]and status_nota=[Ô] & TipoNota
[ô] texto = [Ô]select * from escriturafiscal where num_pedido=41898[Ô]
Rs.Open texto, de.DB, adOpenStatic, adLockReadOnly
If Rs.EOF = True Then Exit Sub
Set Arq = FSO.CreateTextFile([Ô]C:\Nota_fiscal_paulista
otas.txt[Ô])
[ô] cabecario X10
texto = [Ô]10[Ô] & [Ô]|[Ô] & [Ô]1,00[Ô] & [Ô]|[Ô] & RetiraChar(Isnull2(rsp([Ô]cgc[Ô])), [Ô]./-[Ô]) & [Ô]|[Ô] & DataIni & [Ô]|[Ô] & DataFim
Arq.WriteLine texto
X10 = X10 + 1
Do While Rs.EOF = False
texto = [Ô][Ô]
texto = [Ô]20[Ô] & [Ô]|[Ô] & [Ô]I[Ô] & [Ô]|[Ô] & Isnull2(Rs([Ô]motivo_cancelamento[Ô])) & [Ô]|[Ô] & [Ô]Venda a consulmidor final[Ô] & [Ô]|[Ô] & [Ô]0[Ô] & [Ô]|[Ô] & Isnull2(Rs([Ô]num_nf[Ô])) & [Ô]|[Ô] & FormatDateTime(Rs([Ô]data_emissao[Ô]), vbGeneralDate) & [Ô]|[Ô] & FormatDateTime(Rs([Ô]data_emissao[Ô]), vbGeneralDate) & [Ô]|[Ô] & [Ô]1[Ô] & [Ô]|[Ô] & Isnull2(Rs([Ô]cfpo[Ô])) & [Ô]|[Ô] & [Ô]000000000000[Ô] & [Ô]|[Ô] & [Ô]000000000000[Ô] & [Ô]|[Ô] & Isnull2(Rs([Ô]cnpj[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]razao_social[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]endereco[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]numero[Ô])) & [Ô]|[Ô] & [Ô]02[Ô] & [Ô]|[Ô] & Isnull2(Rs([Ô]bairro[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]cidade[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]estado[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]cep[Ô])) & [Ô]|[Ô] & [Ô]Brasil[Ô] & [Ô]|[Ô] & RetiraChar(Isnull2(Rs([Ô]telefone[Ô])), [Ô] -()[Ô]) & [Ô]|[Ô]
Arq.WriteLine texto
X20 = X20 + 1
texto = [Ô]select * from escritura_fiscal_prod where num_pedido=[Ô] & Isnull2(Rs([Ô]num_nf[Ô]))
RsProd.Open texto, de.DB, adOpenStatic, adLockReadOnly
[ô] produtos 30 X30
ValorIPI = 0: Valorprod = 0: ValorFrete = 0: ValorSeguro = 0: ValorDesconto = 0: ValorICMS = 0
Do While RsProd.EOF = False
texto = [Ô]30[Ô] & [Ô]|[Ô] & Isnull2(RsProd([Ô]descricao[Ô])) & [Ô]|[Ô] & Isnull2(RsProd([Ô]descricao[Ô])) & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & LTrim(RTrim(RsProd([Ô]unidade[Ô]))) & [Ô]|[Ô] & FormatNumber(RsProd([Ô]quantidade[Ô]), 4) & [Ô]|[Ô] & FormatNumber(Isnull2(RsProd([Ô]valor[Ô])), 4) & [Ô]|[Ô] & RetiraChar(FormatNumber(Isnull2(RsProd([Ô]valor_bruto[Ô])), 2), [Ô].[Ô]) & [Ô]|[Ô] & [Ô]060[Ô] & [Ô]|[Ô] & FormatNumber(Isnull2(RsProd([Ô]valor_icms[Ô])), 2) & [Ô]|[Ô] & FormatNumber(Isnull2(RsProd([Ô]ipi[Ô])), 2) & [Ô]|[Ô] & FormatNumber(Isnull2(RsProd([Ô]valor_ipi[Ô])), 2)
X30 = X30 + 1
ValorIPI = ValorIPI + Format$(CCur(Isnull2(RsProd([Ô]valor_ipi[Ô]))), [Ô]#,##0.00[Ô])
ValorICMS = ValorICMS + Format$(CCur(Isnull2(RsProd([Ô]valor_icms[Ô]))), [Ô]#,##0.00[Ô]) [ô] valor total icms
Valorprod = Valorprod + Format$(CCur(Isnull2(RsProd([Ô]valor[Ô]))), [Ô]#,##0.00[Ô]) * RsProd([Ô]quantidade[Ô])
ValorFrete = ValorFrete + Format$(CCur(Isnull2(RsProd([Ô]valor_frete[Ô]))), [Ô]#,##0.00[Ô])
ValorSeguro = ValorSeguro + Format$(CCur(Isnull2(RsProd([Ô]valor_servicos[Ô]))), [Ô]#,##0.00[Ô])
ValorDesconto = ValorDesconto + Format$(CCur(Isnull2(RsProd([Ô]desconto[Ô]))), [Ô]#,##0.00[Ô])
Arq.WriteLine texto
RsProd.MoveNext
Loop
ValorTotal = CCur(ValorIPI) + CCur(Valorprod) + CCur(ValorFrete) + CCur(ValorSeguro) - CCur(ValorDesconto)
[ô] total 40 X40
texto = [Ô]40[Ô] & [Ô]|[Ô] & [Ô]25,00[Ô] & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorICMS, 2), [Ô].[Ô]) & [Ô]|[Ô] & [Ô]0,00[Ô] & [Ô]|[Ô] & [Ô]0,00[Ô] & [Ô]|[Ô] & RetiraChar(FormatNumber(Valorprod, 2), [Ô].[Ô]) & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorFrete, 2), [Ô].[Ô]) & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorSeguro, 2), [Ô].[Ô]) & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorDesconto, 2), [Ô].[Ô]) & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorIPI, 2), [Ô].[Ô]) & [Ô]|[Ô] & [Ô]0,00[Ô] & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorTotal, 2), [Ô].[Ô]) & [Ô]|[Ô] & [Ô]|[Ô] & [Ô]|[Ô]
X40 = X40 + 1
Arq.WriteLine texto
[ô]total 50 transportadora
texto = [Ô]50[Ô] & [Ô]|[Ô] & [Ô]1[Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô]|[Ô] & [Ô]|[Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô]|[Ô] & [Ô]|[Ô] & [Ô]|[Ô]
Arq.WriteLine texto
X50 = X50 + 1
[ô]INSERIDO QUE A NOTA FOI GERADA
texto = [Ô]UPDATE ESCRITURAFISCAL SET STATUS_NOTA=3 WHERE NUM_NF=[Ô] & Aspas(Isnull2(Rs([Ô]NUM_NF[Ô])))
de.DB.Execute texto
[ô] FIM DO UPDATE
[ô]& Formata(X30, 4, [Ô]0[Ô], eEsquerda) & [Ô]|[Ô]
RsProd.Close
Rs.MoveNext
Loop
[ô]total 90 rodape X50
texto = [Ô]90[Ô] & [Ô]|[Ô] & Formata(X20, 5, [Ô]0[Ô], eEsquerda) & [Ô]|[Ô] & Formata(X30, 5, [Ô]0[Ô], eEsquerda) & [Ô]|[Ô] & Formata(X40, 5, [Ô]0[Ô], eEsquerda) & [Ô]|[Ô] & Formata(X50, 5, [Ô]0[Ô], eEsquerda) & [Ô]|[Ô] & Formata(x60, 5, [Ô]0[Ô], eEsquerda)
Arq.WriteLine texto
End Sub
Sub GerarNotaFiscal(ByVal DataIni As String, ByVal DataFim As String, ByVal Empresa As Integer, ByVal Serie As Integer, ByVal TipoNota As Integer)
Dim Rs As New ADODB.Recordset
Dim RsProd As New ADODB.Recordset
Dim texto As String
Dim FSO As New FileSystemObject
Dim Arq As TextStream
Dim rsp As New ADODB.Recordset
Dim X30 As Integer
Dim ValorIPI, ValorICMS, Valorprod, ValorFrete, ValorSeguro, ValorDesconto, ValorTotal As Currency
Dim X10 As Integer
Dim X20, X40, X50, x60 As Integer
Dim Valoricms1 As String
texto = [Ô]select * from parametros[Ô]
rsp.Open texto, de.DB, adOpenStatic, adLockReadOnly
If rsp.EOF = True Then Exit Sub
texto = [Ô]select * from escriturafiscal where data_emissao>=[Ô] & PreparaData(DataIni) & [Ô]and data_emissao<=[Ô] & PreparaData(DataFim) & [Ô]and status_nota=[Ô] & TipoNota
[ô] texto = [Ô]select * from escriturafiscal where num_pedido=41898[Ô]
Rs.Open texto, de.DB, adOpenStatic, adLockReadOnly
If Rs.EOF = True Then Exit Sub
Set Arq = FSO.CreateTextFile([Ô]C:\Nota_fiscal_paulista
otas.txt[Ô])
[ô] cabecario X10
texto = [Ô]10[Ô] & [Ô]|[Ô] & [Ô]1,00[Ô] & [Ô]|[Ô] & RetiraChar(Isnull2(rsp([Ô]cgc[Ô])), [Ô]./-[Ô]) & [Ô]|[Ô] & DataIni & [Ô]|[Ô] & DataFim
Arq.WriteLine texto
X10 = X10 + 1
Do While Rs.EOF = False
texto = [Ô][Ô]
texto = [Ô]20[Ô] & [Ô]|[Ô] & [Ô]I[Ô] & [Ô]|[Ô] & Isnull2(Rs([Ô]motivo_cancelamento[Ô])) & [Ô]|[Ô] & [Ô]Venda a consulmidor final[Ô] & [Ô]|[Ô] & [Ô]0[Ô] & [Ô]|[Ô] & Isnull2(Rs([Ô]num_nf[Ô])) & [Ô]|[Ô] & FormatDateTime(Rs([Ô]data_emissao[Ô]), vbGeneralDate) & [Ô]|[Ô] & FormatDateTime(Rs([Ô]data_emissao[Ô]), vbGeneralDate) & [Ô]|[Ô] & [Ô]1[Ô] & [Ô]|[Ô] & Isnull2(Rs([Ô]cfpo[Ô])) & [Ô]|[Ô] & [Ô]000000000000[Ô] & [Ô]|[Ô] & [Ô]000000000000[Ô] & [Ô]|[Ô] & Isnull2(Rs([Ô]cnpj[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]razao_social[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]endereco[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]numero[Ô])) & [Ô]|[Ô] & [Ô]02[Ô] & [Ô]|[Ô] & Isnull2(Rs([Ô]bairro[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]cidade[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]estado[Ô])) & [Ô]|[Ô] & Isnull2(Rs([Ô]cep[Ô])) & [Ô]|[Ô] & [Ô]Brasil[Ô] & [Ô]|[Ô] & RetiraChar(Isnull2(Rs([Ô]telefone[Ô])), [Ô] -()[Ô]) & [Ô]|[Ô]
Arq.WriteLine texto
X20 = X20 + 1
texto = [Ô]select * from escritura_fiscal_prod where num_pedido=[Ô] & Isnull2(Rs([Ô]num_nf[Ô]))
RsProd.Open texto, de.DB, adOpenStatic, adLockReadOnly
[ô] produtos 30 X30
ValorIPI = 0: Valorprod = 0: ValorFrete = 0: ValorSeguro = 0: ValorDesconto = 0: ValorICMS = 0
Do While RsProd.EOF = False
texto = [Ô]30[Ô] & [Ô]|[Ô] & Isnull2(RsProd([Ô]descricao[Ô])) & [Ô]|[Ô] & Isnull2(RsProd([Ô]descricao[Ô])) & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & LTrim(RTrim(RsProd([Ô]unidade[Ô]))) & [Ô]|[Ô] & FormatNumber(RsProd([Ô]quantidade[Ô]), 4) & [Ô]|[Ô] & FormatNumber(Isnull2(RsProd([Ô]valor[Ô])), 4) & [Ô]|[Ô] & RetiraChar(FormatNumber(Isnull2(RsProd([Ô]valor_bruto[Ô])), 2), [Ô].[Ô]) & [Ô]|[Ô] & [Ô]060[Ô] & [Ô]|[Ô] & FormatNumber(Isnull2(RsProd([Ô]valor_icms[Ô])), 2) & [Ô]|[Ô] & FormatNumber(Isnull2(RsProd([Ô]ipi[Ô])), 2) & [Ô]|[Ô] & FormatNumber(Isnull2(RsProd([Ô]valor_ipi[Ô])), 2)
X30 = X30 + 1
ValorIPI = ValorIPI + Format$(CCur(Isnull2(RsProd([Ô]valor_ipi[Ô]))), [Ô]#,##0.00[Ô])
ValorICMS = ValorICMS + Format$(CCur(Isnull2(RsProd([Ô]valor_icms[Ô]))), [Ô]#,##0.00[Ô]) [ô] valor total icms
Valorprod = Valorprod + Format$(CCur(Isnull2(RsProd([Ô]valor[Ô]))), [Ô]#,##0.00[Ô]) * RsProd([Ô]quantidade[Ô])
ValorFrete = ValorFrete + Format$(CCur(Isnull2(RsProd([Ô]valor_frete[Ô]))), [Ô]#,##0.00[Ô])
ValorSeguro = ValorSeguro + Format$(CCur(Isnull2(RsProd([Ô]valor_servicos[Ô]))), [Ô]#,##0.00[Ô])
ValorDesconto = ValorDesconto + Format$(CCur(Isnull2(RsProd([Ô]desconto[Ô]))), [Ô]#,##0.00[Ô])
Arq.WriteLine texto
RsProd.MoveNext
Loop
ValorTotal = CCur(ValorIPI) + CCur(Valorprod) + CCur(ValorFrete) + CCur(ValorSeguro) - CCur(ValorDesconto)
[ô] total 40 X40
texto = [Ô]40[Ô] & [Ô]|[Ô] & [Ô]25,00[Ô] & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorICMS, 2), [Ô].[Ô]) & [Ô]|[Ô] & [Ô]0,00[Ô] & [Ô]|[Ô] & [Ô]0,00[Ô] & [Ô]|[Ô] & RetiraChar(FormatNumber(Valorprod, 2), [Ô].[Ô]) & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorFrete, 2), [Ô].[Ô]) & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorSeguro, 2), [Ô].[Ô]) & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorDesconto, 2), [Ô].[Ô]) & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorIPI, 2), [Ô].[Ô]) & [Ô]|[Ô] & [Ô]0,00[Ô] & [Ô]|[Ô] & RetiraChar(FormatNumber(ValorTotal, 2), [Ô].[Ô]) & [Ô]|[Ô] & [Ô]|[Ô] & [Ô]|[Ô]
X40 = X40 + 1
Arq.WriteLine texto
[ô]total 50 transportadora
texto = [Ô]50[Ô] & [Ô]|[Ô] & [Ô]1[Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô]|[Ô] & [Ô]|[Ô] & [Ô]|[Ô] & [Ô][Ô] & [Ô]|[Ô] & [Ô]|[Ô] & [Ô]|[Ô] & [Ô]|[Ô]
Arq.WriteLine texto
X50 = X50 + 1
[ô]INSERIDO QUE A NOTA FOI GERADA
texto = [Ô]UPDATE ESCRITURAFISCAL SET STATUS_NOTA=3 WHERE NUM_NF=[Ô] & Aspas(Isnull2(Rs([Ô]NUM_NF[Ô])))
de.DB.Execute texto
[ô] FIM DO UPDATE
[ô]& Formata(X30, 4, [Ô]0[Ô], eEsquerda) & [Ô]|[Ô]
RsProd.Close
Rs.MoveNext
Loop
[ô]total 90 rodape X50
texto = [Ô]90[Ô] & [Ô]|[Ô] & Formata(X20, 5, [Ô]0[Ô], eEsquerda) & [Ô]|[Ô] & Formata(X30, 5, [Ô]0[Ô], eEsquerda) & [Ô]|[Ô] & Formata(X40, 5, [Ô]0[Ô], eEsquerda) & [Ô]|[Ô] & Formata(X50, 5, [Ô]0[Ô], eEsquerda) & [Ô]|[Ô] & Formata(x60, 5, [Ô]0[Ô], eEsquerda)
Arq.WriteLine texto
End Sub
Valew peguei seu codigo, e vou estudar para ver se enetendo.
Tópico encerrado , respostas não são mais permitidas