Layout-Arquivo Nota Fiscal Paulista!
Com o objetivo de dificultar a sonegação de impostos a Secretaria da Fazenda criou a Nota Fiscal Paulista (NFP), um documento digital e será enviado para a mesma, para controle das movimentações no comércio.
Porém, com o surgimento desta tecnologia, surgiu também a necessidade de melhoria em sistemas comerciais e sistemas que controlam a parte fiscal de empresas. Sendo assim não anda faltando trabalho para analistas e programadores, principalmente aqueles que atendem empresas cujo segmento exige esta informatização de imediato, até porque a multa para cada NF emitida e não informada eletronicamente é de aproximadamente R$ 1400,00.
Entretanto para se gerar o arquivo e efetuar a transmissão para a receita é necessário um layout de criação, uma regra, para que este seja validado pelo sistema do fisco (o arquivo é semelhante a um arquivo remessa/retorno de bancos).
É aí que está o problema que os colegas programadores vêm tendo durante as últimas semanas.
As informações sobre o layout são escassas, quase nulas, muitas vezes os programadores buscam informações na central de atendimento (todo eletrônico), mas sem êxito acabam voltando à estaca zero.
Durante estas últimas semanas este foi o dilema do gerente de projetos da ZetaSoft Informática de Campinas, Douglas Zanella, quando foi contatado por uma empresa cliente que necessitava com urgência da informatização fiscal e implantação do módulo da NFP.
Douglas conseguiu desenvolver e implantar o módulo com êxito e com o intuito de auxiliar os programadores da comunidade disponibiliza aqui um exemplo do layout.
CLIQUE AQUI PARA VISUALIZAR O ARQUIVO DE EXEMPLO
Este é apenas um exemplo, ou seja, para cada caso e sistema é necessário ter a devida cautela e acompanhamento contábil para que maiores problemas sejam evitados.
Lembrando que o padrão a ser gerado é sempre o UTF-8 e válido para Notas Fiscais modelos 1 e 1A, segundo a portaria CAT 102-07. O link abaixo, referente a esta portaria, contém o layout e todas as informações:
http://www.nfp.fazenda.sp.gov.br/leg03_port102_07.shtm
O meio usado atualmente para a transmissão do arquivo é através do programa que a Secretaria disponibiliza, chamado TD-REDF (Transmissor de Dados para Registro Eletrônico de Documentos Fiscais), que pode ser baixado neste link:
http://www.nfp.fazenda.sp.gov.br/aplicativos/transmissor/
O manual do transmissor pode ser adquirido neste link:
http://www.nfp.fazenda.sp.gov.br/TDREDF2007.pdf
Abraços a todos e esperamos que este post seja de grande ajuda.
Até a próxima;
Gabriel Domingues
Maiores informações acesse:
http://www.nfp.fazenda.sp.gov.br/
http://www.nfe.fazenda.gov.br/portal
Agradecimentos especiais a:
Douglas Zanella e a ZetaSoft Informática Ltda.
Últimos 5 artigos de Gabriel Angeli
- Dr. Fusão: O lixo no tanque do seu carro. - 04.03.2010
- Electronic Rock Guitar Shirt - 26.02.2010
- Spare: Sorria no trânsito com Drivemocion EX - 26.02.2010
- Games: Command & Conquer agora é free! - 22.02.2010
- FX: Bad Apple e a beleza do Stop-Motion - 19.02.2010
242 Comentários »
RSS feed para os comentários deste artigo. TrackBack URL

Olá Ricardo, fiz o lançamento de uma nota fiscal modelo 1 com a data de 02/08/2008, mas a data correta é 29/09/2008, e o prazo para retificação e cancelamento já expirou. O que devo fazer agora? A receita não sabe informar direito, falaram até sobre uma denúncia espontânea. Agradeço sua ajuda. Obrigada.
Responder
POR FAVOR….TENHOS UMAS DÚVIDAS :
1-) NÃO COLOCO EM LUGAR NENHUM A NATUREZA DE OPERAÇÃO ?
2-) NOTAS CANCELADAS AONDE ENTRAM ?
3-) E O TIPO DO ARQUIVO SE É INCLUSÃO OU RETIFICAÇÃO….ETC?
FICO NO AGUARDO
MUITO OBRIGADO
Responder
Pascoal;
1 – A natureza da operação deve ser colocada sim, no registro 20 do arquivo.
2 – Notas canceladas também devem ser informadas, preenchendo com “C” o segundo campo do registro 20;
3 – Inclusão, retificação e cancelamento, idem tópico 2, informando o respectivo tipo de operação.
Lembrando que o ideal é verificar sempre a portaria (link acima no artigo) para certificar-se de gerar sempre o arquivo no layout aceitado.
Att;
Responder
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
janeiro 9th, 2009 as 23:01:11
POR FAVOR FIZ TUDO ENVIEI O ARQUIVO E RETORNOU : “formato do arquivo incorreto”, O QUE FAÇO??
ALGUEM PODE ME AJUDAR PELO AMOR DE DEUS…….
OBRIGADO
Responder
255 – Falha na estrutura do arquivo TXT da nota fiscal paulista,
mais um com esse probleminha. Alguém tem a solução pra ele, além de refazer?
Responder
Sebastiao Respondeu:
dezembro 16th, 2008 as 17:12:35
Caro colega. Tambem não consigo transmitir nf D2 no site da NFp. O arquivo retorna com o erro 225 Falha na extrutura TXT da NF Psta. Caso tenha resolvido este problema, por favor me informe como sana-lo.
Um abraço
Responder
boa tarde gostaria que vs me desse melhoes informçao de recuperaçao de senha da nfp ja pedi varias veses um resposta mai detalhadas para poder recuperar minha senha /boa tarde?
Responder
Gabriel - Dimensão Tech Respondeu:
janeiro 16th, 2009 as 08:01:57
Entre em contato com o posto fiscal.
Responder
Alguém pode me ajudar ??
estou tentando enviar o arquivo pelo site da receita federal, mas sempre retorna o erro:
1003|Versão de layout do arquivo não está entre as versões aceitas
CAT 102/07. não sei o que ocorre.
Responder
NINGUEM RESPONDE MAIS ESSE FORUM?
O ARQUIVO ESTA VOLTANDO COM O “formato do arquivo incorreto”, NINGUEM SABE OU PODE ME AJUDAR ??
PELO AMOR DE DEUS……
Responder
Pascoal,
Acredito que você realmente esteja transmitindo o arquivo no formato incorreto.
Verifique cautelosamente o arquivo, compare com os arquivos de exemplo disponíveis tanto no site da receita quanto aqui no Dimensão Tech. (Formato UTF8, veja o artigo)
Infelizmente não existe uma fórmula mágica para a geração do arquivo. Cada caso é um caso, mas verificando a estrutura do arquivo com calma, acompanhando a portaria vigente(link aqui no artigo) com certeza encontrará o motivo do erro.
Leia novamente com atenção o nosso artigo e veja o comentário dos colegas leitores pois, as informações disponíveis aqui, se não sanarem sua dúvida, ao menos te deixará bem próximo da solução do problema.
Att;
Responder
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
janeiro 16th, 2009 as 08:01:23
SERÁ QUE TO FAZENDO ERRADO?
POIS EU QUANDO VOU MONTANDO O ARQUIVO TXT JA VOU TRANSFORMANDO NO FORMATO UTF8, OU PRECISA PRIMEIRO FAZER O TXT E DEPOIS COLOCAR NO UTF8?
FICO NO AGUARDO
Responder
Gabriel - Dimensão Tech Respondeu:
janeiro 16th, 2009 as 09:01:21
Qual a linguagem de programação utilizada?
De qualquer forma crie primeiro o TXT e depois transforme em UTF8.
Abs;
Responder
PASCOAL Respondeu:
fevereiro 7th, 2009 as 21:02:41
Gabriel,
Agora na hora que estou enviando da erro nessa linha : 10|1.00|00308333000146|01/01/2009|31/01/2009
o que pode estar errado?
ou ele pega o arquivo todo e pode ser que o erro esteja em outra parte mas logo ao transmitir da erro : tipo de registro 10 {0} vc pode me ajudar?
Consegui gerar o arquivo em uma unico usando o UTF8.
Fico no aguardo
Obrigado
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
outubro 14th, 2009 as 23:10:01
GABRIEL OU QUEM POSSA ME AJUDAR
O QUE PODE SER NA PRE VALIDAÇÃO TUDO BEM NADA DE ERROSE QUANDO VOU ENVIAR O ARQUIVO DA UMA MENSAGEM : “FALHA NA ESTRUTURA DO ARQUIVO TXT DA NOTA FISCAL PAULISTA”, TODOS OS CAMPOS DE VALORES FICAM -0,00……..ALGUEM PODE ME AJUDAR?
POIS JA ESTOU USANDO DESDE ABRIL /2009 E NUMCA DEU ESSE ERRO INCLUSIVE É EM UMA EMPRESA SÓ DAS 3 QUE É ENVIADO O ARQUIVO.
OBRIGADO
Responder
Nilson Respondeu:
outubro 15th, 2009 as 15:10:50
Paschoal, todas as vezes que dava erro na estrutura é porque faltava um “|” no final de um dos registros. Apanhei bastante até descobrir. O meu ocorria no registro 60.
Eu faço pelo editor de textos Texpad, que é muito bom para estes casos.
Veja se não está deixando a primeira linha em branco, se estiver ele dá erro no registro tipo 10.
Responder
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
outubro 15th, 2009 as 15:10:52
MAS DESDE QUE FECHEI NUMCA DEU ESSE ERRO E SÓ EM UMA DAS EMPRESAS QUE USAM A MESMA ROTINA?
SERA QUE MUDOU ALGUMA COISA?
OBRIGADO
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
outubro 15th, 2009 as 15:10:23
NO FINAL EU NÃO COLOCO O | PRECISA?
OLHA AI:
30||BATERIA MA100STE||PC|1,0000|220,0000|220,00|060|0,00|0,00|0,00
40|0,00|0,00|0,00|0,00|220,00|0,00|0,00|0,00|0,00|0,00|220,00|0,00|0,00|0,00
50|0|||||||||0||||0,000|0,000
60|||
90|00012|00014|00012|00012|00012
OBRIGADO
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
outubro 16th, 2009 as 08:10:40
Nilson
O arquivo começou a dar erro nesses mes 10, pois mando todos os meses e numca deu esse tipo de erro, o que pode ser?
Obrigado
Nilson Respondeu:
outubro 16th, 2009 as 10:10:01
Paschoal.
No registro tipo 60 tem 5 pipes, o layout está errado
20|I||VENDA|0|13392|05/08/2009 21:38:52|05/08/2009 21:38:52|1|5102|||56395510000160|TERRAP PAV E OBRAS LTDA|ROD.PIRACICABA, KM 1.95|125||DIST. ASSISTENCIA|RIO CLARO|SP|13500000|||
30|002786|MADEIRA SERRADA PEROBA NORTE PRANCHA||UN|0,3800|1200,0000|456,00|000|12,00|00,00|0,00
40|503,70|0,00|0,00|0,00|456,00|0,00|0,00|7,00|0,00|0,00|449,00|0,00|0,00|0,00
50|1||||||||||||||
60|||||
Coloque do código 20 ao 60 em todas as notas, não deixe o CPF ou CNPJ em branco
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
outubro 19th, 2009 as 06:10:12
Nilson,
Bom dia
Deu certo era problema no cadastro da Cfop que o cliente fez errado e ai não passava, pois pelo que percebi eles checam tb cada natureza de operação informada.
Obrigado
ESTOU DESENVOLVENDO EM VB 6.0
OK VOU TENTAR E TE AVISO
OBRIGADO
Responder
Gabriel - Dimensão Tech Respondeu:
janeiro 16th, 2009 as 11:01:06
Outra coisa muito importante:
Na maioria dos casos o pessoal não respeita o tamanho dos campos entre os “pipes” (“|”).
Baseie-se no nosso arquivo de exemplo (link no artigo).
Responder
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
janeiro 16th, 2009 as 13:01:57
só mais uma o arquivo pe dividido em várias partes o que estou fazendo é colocando no formato UTF8, essas parte e já gravo no txt, tenho que gerar todo o txt prineiro e depois mandar para o formato UTF8?
fico no aguardo
Obrigado
Responder
Gabriel - Dimensão Tech Respondeu:
janeiro 20th, 2009 as 17:01:46
Caro amigo;
Se conseguiu solucionar seu problema gostaríamos que compartilhasse conosco aqui no Dimensão Tech a solução.
Abs;
PASCOAL Respondeu:
janeiro 20th, 2009 as 18:01:13
GABRIEL,
NÃO CONSEGUI NÃO ESOU REFAZENDO TUDO POIS A MINHA DUVIDA E SE DEVO FAZER O ARQUIVO CAMPO A CAMPO TIPO 10 DEPOIS O 20 ASSIM POR DIANTE TRANSFORMANDO PARA UTF8
Gabriel - Dimensão Tech Respondeu:
janeiro 21st, 2009 as 08:01:25
Pascoal,
Não posso te informar com certeza quanto a codificação UTF-8 por partes porém o que fazemos é gerar todo o layout e DEPOIS executar a instrução para transformá-lo em UTF-8.
Abs;
PASCOAL Respondeu:
janeiro 30th, 2009 as 13:01:04
Gabriel,
Voltou de novo, o que yo fazendo é o seguinte a cada tipo de registro 20 – 30 – 40 eu gero o txt ja transformando em UTF-8 e ai fica varia linhas de ▒ é isso ?
Por favor deu um trabalho daqueles para refazer e não deu certo me mato….rsrsrsrsr
Fico no aguardo
Obrigado
Fernando Fonte - Dimensão Tech Respondeu:
janeiro 30th, 2009 as 17:01:12
Cara, até eu que não tenho nada a ver com esse layout para a NFP já entendi o problema. Você tem que criar o seu arquivo TXT inteiro e só depois de pronto, converter para UTF8!
Não é linha por linha, não é a cada 20 ou 40 registros. É o arquivo todo que deve ser convertido para UTF8.
Nilson Respondeu:
setembro 25th, 2009 as 17:09:56
Gere o arquivo inteiro e depois passe para UTF-8. Eu faço pelo processador de textos TEXPAD, é excelente, pois fornece a linha onde está dando o erro na validação
Como você gravou os caracteres EF BB BF no inicio do arquivo para converte-lo para UTF-8 ? Eu estou tentando fazer, porém não estou conseguindo gravar esses caracteres.
Estou usando VB6.
Responder
Gabriel - Dimensão Tech Respondeu:
janeiro 20th, 2009 as 17:01:43
Caro Edson,
Não consegui entender sua dúvida. “EF BB e BF” seriam relativos a que ?
Abs;
Responder
Edson Respondeu:
janeiro 21st, 2009 as 08:01:20
Para a conversão de ANSI para UTF-8. Mesmo usando as funções postadas anteriormente, abrindo o texto e vendo sua codificação ainda está como ANSI.
Porém algo estranho aconteceu ontem. Mesmo com o arquivo sem estar com a codificação UTF8, um cliente conseguiu validar e transmitir o arquivo. Outros clientes também conseguem transmitir sem a codificação.
Não sei se é versão do transmissor o que pode ter permitido o envio. O cadastro dele na receita também pode influenciar ?
Responder
Gabriel - Dimensão Tech Respondeu:
janeiro 21st, 2009 as 08:01:28
Quanto ao cadastro na receita acredito que não, porém conforme comentei com o amigo Pascoal, o que fazemos aqui é gerar todo o layout e depois o transformamos em UTF-8.
Feito isto para termos certeza, apenas abrimos o arquivo no programa Bloco de Notas mesmo, selecionamos a opção “Salvar Como” e verificamos a caixa “Codificação” para ter certeza que está como “UTF-8″.
Edu Respondeu:
setembro 24th, 2009 as 12:09:56
Ocorre que o arquivo passa por duas etapas de validação- 1ª na sua máquina, que valída os campos obrigatórios,pipes, números de registros etc. e não necessariamente ter sido validado na sua máquina o arquivo esta correto. A 2ª validação ocorre na SEFAZ onde é verificado a integridade das NFS se não existe duplicidade, e entre outras, se o arquivo está transformado em UTF-8
Bom dia
Alguem poderia me ajudar ???
Estou enviando o arquivo e esta dando erro :
tipo de registro 10 {0}
o registro 10 esta assim :
10|1.00|00308333000146|01/01/2009|31/01/2009
Alguem sabe o por que????
Obrigado
Responder
Gabriel - Dimensão Tech Respondeu:
fevereiro 11th, 2009 as 08:02:03
No segundo campo do registro 10, tente trocar o ponto pela vírgula, desta forma:
10|1,00|
Responder
PASCOAL Respondeu:
fevereiro 11th, 2009 as 08:02:10
Gabriel
Acabei de enviar o arquivo e deu erro de novo :
erro 1002, id do registro 10
olha a linha:
10|1,00|00308108000146|01/01/2009|31/01/2009
O que pode ser?
Obrigado
Responder
PASCOAL Respondeu:
fevereiro 11th, 2009 as 08:02:56
esqueçi de colocar : tipo de registro incorreto: {0}
PASCOAL Respondeu:
março 18th, 2009 as 21:03:36
Gabriel,
esta voltando com o mesmo erro 10 Tipo de Registro Incorreto abaixo coloco um lançamento :
10|1.00|00308108000146|13/3/2009|13/3/2009
20|I||VENDA MERC.ADQ. P/ TERC.|2|000003699|13/3/2009 11:46:38||1|2025|||00308108000146|TRANSPORTADORA PTAZ DE MALAR LTDA|AV GUILHERME COTCHING|||CL MARIA|SAO PAULO|SP02113-010|BRASIL|||
30|||BATERIA MB150CD ||PC|6|295,0000|1.770,00|60|0|||
30|||BATERIA SC150CE ||PC|2|295,0000|590,00|60|0|||
40|2.360,00|0,00||||2.360,00|||0,00|||2.360,00||||
50|0|||||||||||||||
60||||
90|00001|00002|00001|00001|00000|
SE VC VE O QUE PODE ESTAR ERRADO.
OBRIGADO
Responder
PASCOAL Respondeu:
março 20th, 2009 as 06:03:21
GABRIEL,
TEM ALGUMA DIFERENÇA EM USAR O Chr(124) E O “||”?
CONTINUA DANDO O ERRO ?
POR FAVOR O PRAZO DE ENTRAGA DO SISTEMA ESTA TERMINANDO E SÓ ESTA FALTANDO ISSO.
OBRIGADO
Responder
Edson Respondeu:
fevereiro 11th, 2009 as 12:02:13
10|1,00|00308333000146|01/01/2009|31/01/2009
tem que ficar assim. Os separadores de casa decimal devem ser vírgulas.
Quanto ao UTF, não tive problemas com isso. estou enviando o arquivo sem converte-lo e está dando certo. O problema era o cadastro de número e bairro do cliente que estava em branco para alguns registros.
Responder
Boa tarde, hoje envio o arquivo da nota fiscal paulista incluindo todas as notas e depois gero um arquivo das notas canceladas, pergunta, eu posso já incluir tudo num aquivo só ?. Ou seja se estou transmitindo notas do mes 01/2009 e lá existe notas canceladas, eu tenho q incluir num arquivo e depois gerar outro arquivo das canceladas ?.
Responder
Douglas-Zetasoft Respondeu:
fevereiro 12th, 2009 as 09:02:54
Isso. Na verdade o que foi me informado pela secretaria é que não existe a necessidade de enviar o cancelamento se a inclusão não foi enviada.
O cancelamento só se faz necessario caso o arquivo de inclusão já tenha sido enviado.
Por via das dúvidas eu sempre mando a inclusão e depois o cancelamento.
Responder
Estou enviando um lote de Notas Fiscais (TD-REDF) ,porem existem 2 notas que foram canceladas, ja informei correntamete o Registro 20 com o motivo do cancelamento, só que no momento do envio sempre esta me retornando o erro 2006 – Campo função de Registro Indica cancelamento de nota fiscal não enviada anteriormente. Já pesquisei na internet e vi que outras pessoas estão com esse mesmo problemas. Estão enviando 1. a inclusão da nota fiscal e mesmo assim quando enviam o cancelamento ele da erro. O que posso fazer para resolver esse problema? (Estão dizendo que o problema da Secretaria da Fazenda).
Responder
Douglas-Zetasoft Respondeu:
fevereiro 12th, 2009 as 08:02:40
Paulo, você só pode cancelar notas já enviadas para a secretaria.
Existem duas opções para voce nesse caso.
Se você ainda não as enviou não precisa enviar o cancelamento.
Se mesmo assim você quiser enviar o cancelamento, primeiro envie essa nota como inclusão.
Responder
marcal rocha saccardo Respondeu:
fevereiro 13th, 2009 as 09:02:57
Bom dia douglas, quer dizer q se eu emitir notas do nro 1 ao 10 por exemplo no mes 01 e a nota 8 foi cancelada antes de emitir eu posso enviar o arquivo sem o nro de nota 8 ?. Pode ficar com esse furo de numeração na receita então ?. HOje eu envio tudo e depois mando o arquivo de cancelamento
Responder
POR FAVOR TO DESESPERADO….. PRECISO DE UMA JUDA URGENTE NÃO CONSIGO ENVIAR O ARQUIVO.
Esta voltando com o mesmo erro 10 Tipo de Registro Incorreto abaixo coloco um lançamento :
10|1.00|00308108000146|13/3/2009|13/3/2009
20|I||VENDA MERC.ADQ. P/ TERC.|2|000003699|13/3/2009 11:46:38||1|2025|||00308108000146|TRANSPORTADORA PTAZ DE MALAR LTDA|AV GUILHERME COTCHING|||CL MARIA|SAO PAULO|SP|02113-010|BRASIL|||
30|||BATERIA MB150CD ||PC|6|295,0000|1.770,00|60|0|||
30|||BATERIA SC150CE ||PC|2|295,0000|590,00|60|0|||
40|2.360,00|0,00||||2.360,00|||0,00|||2.360,00||||
50|0|||||||||||||||
60||||
90|00001|00002|00001|00001|00000|
SE VC VE O QUE PODE ESTAR ERRADO.
MAIS UMA : TEM ALGUMA DIFERENÇA EM USAR O Chr(124) E O “||”?
OBRIGADO
QUE DEUS NOS AJUDE…..
Responder
Paulo Respondeu:
março 24th, 2009 as 07:03:02
Bom Dia Pascoal..
Segue um registro 10 enviado sem problemas.
10|1,00|07859573000114|02/03/2009|02/03/2009
Responder
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
março 24th, 2009 as 08:03:17
PAULO
O MESMO ERRO A LINHA ACERTADA :
10|1,00|00308108000146|13/03/2009|13/03/2009
20|I||VENDA MERC.ADQ. P/ TERC.|2|000003699|13/03/2009 11:46:38|13/03/2009 11:46:38|1|2025|||00308108000146|TRANSPORTADORA CRUZ DE MALTA LTDA|AV GUILHERME COTCHING|||CL MARIA|SAO PAULO|SP|02113-010|BRASIL||
30|||BATERIA MB150CD ||PC|6|295,0000|1.770,00|60|0|||
30|||BATERIA SC150CE ||PC|2|295,0000|590,00|60|0|||
40|2.360,00|0,00||||2.360,00|||0,00|||2.360,00||||
50|0|||||||||||||||
60||||
90|00001|00002|00001|00001|00000|
O ERRO :
linha: 0
id do registro: registro 10
erro: 1002
tipo do registro incorreto: {0}
POR FAVOR ME AJUDE
OBRIGADO
Responder
Nilson Respondeu:
outubro 15th, 2009 as 16:10:51
Paschoal, segue abaixo um arquivo que enviei e deu certo.
Observei que na linha 10 é virgula.
No tipo vc colocou 50|0|…. eu coloquei 50|1|….
Observe o tipo 60, o seu parece que tem um “|” a menos.
Eu fiz no Clipper e só coloquei o chr(13) no final, mais nada.
Me mande seu email
o meu é
Nilson
unidata@vivax.com.br
Abraços
10|1,00|CNPJ|05/08/2009|05/08/2009
20|I||VENDA|0|13391|05/08/2009 21:38:52|05/08/2009 21:38:52|1|5102|||CPF|NOME DO COMPRADOR|RUA 2|125||SAUDE|RIO CLARO|SP|13500010|||
30|000044|COMPENSADO AMESCLA 220 X 160 X 6MM||UN|2,0000|37,2000|74,40|000|18,00|00,00|0,00
30|000261|FORMICA BRILH 308 X 125 0.8 MM BRANCO||PC|1,0000|55,0800|55,08|000|12,00|00,00|0,00
40|6,61|0,00|0,00|0,00|129,48|0,00|0,00|0,00|0,00|0,00|129,48|0,00|0,00|0,00
50|1||||||||||||||
60|||||
20|I||VENDA|0|13392|05/08/2009 21:38:52|05/08/2009 21:38:52|1|5102|||56395510000160|STAVIAS STANOSKI TERRAP PAV E OBRAS LTDA|ROD RIO CLARO-PIRACICABA, KM 1.95|125||DIST. ASSISTENCIA|RIO CLARO|SP|13500000|||
30|002786|MADEIRA SERRADA PEROBA NORTE PRANCHA||UN|0,3800|1200,0000|456,00|000|12,00|00,00|0,00
40|503,70|0,00|0,00|0,00|456,00|0,00|0,00|7,00|0,00|0,00|449,00|0,00|0,00|0,00
50|1||||||||||||||
60|||||
20|I||VENDA|0|13393|05/08/2009 21:38:52|05/08/2009 21:38:52|1|5102|||37377450800|ODEMIR FERNANDES DE OLIVEIRA|RUA 6 N§744|744 05||CENTRO|RIO CLARO|SP|13500050|||
30|000273|LAMBRIL CEDRILHO 10 CM VERMELHO||UN|1,3000|40,3100|52,40|000|18,00|00,00|0,00
40|61,43|0,00|0,00|0,00|52,40|0,00|0,00|0,40|0,00|0,00|52,00|0,00|0,00|0,00
50|1||||||||||||||
60|||||
20|I||VENDA|0|13394|05/08/2009 21:38:52|05/08/2009 21:38:52|1|5102|||51411924000111|IGREJA EVANGELICA ASSEMBLEIA DE DEUS M. BELEM|RUA 11-A, 275|125||VILA ALEMA|RIO CLARO|SP|13506667|||
30|000540|TABUA PINHO APARELHADA 1″ X 12″||ML|5,1500|23,2800|119,89|000|18,00|00,00|0,00
30|000535|SARRAFO DE PINHO APARELHADO 1″ X 2″||ML|4,5000|3,2500|14,63|000|18,00|00,00|0,00
40|2,63|0,00|0,00|0,00|134,52|0,00|0,00|0,00|0,00|0,00|134,52|0,00|0,00|0,00
50|1||||||||||||||
60|||||
90|00004|00006|00004|00004|00004
Responder
ALTEREI POIS ACHEI DUAS COISAS QUE FALTAVA MAIS O ERRRO CONTINUA ASSIM :
tipo: erro
linha: 0
id do registro: registro 10
erro: 1002
tipo do registro incorreto: {0}
O CAMPO TODO REFEITO :
10|1,0|00308108000146|13/03/2009|13/03/2009
20|I||VENDA MERC.ADQ. P/ TERC.|2|000003699|13/03/2009 11:46:38|13/03/2009 11:46:38|1|2025|||00308108000146|TRANSPORTADORA CRUZ DE MALTA LTDA|AV GUILHERME COTCHING|||CL MARIA|SAO PAULO|SP|02113-010|BRASIL||
30|||BATERIA MB150CD ||PC|6|295,0000|1.770,00|60|0|||
30|||BATERIA SC150CE ||PC|2|295,0000|590,00|60|0|||
40|2.360,00|0,00||||2.360,00|||0,00|||2.360,00||||
50|0|||||||||||||||
60||||
90|00001|00002|00001|00001|00000|
POR FAVOR ALGUEM ME AJUDE…….
Responder
Pascoal me passa seu contato pelo msn ou e-mail para que eu possa te ajudar.
Responder
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
março 24th, 2009 as 21:03:21
flowsys@hotmail.com
Paulo,
Se possível me enviar o link do lay out que vc esta usando pois alguma coisa esta errada no meu esta faltando campos e agora fiquei preocupado,
Por favor
Obrigado
Responder
SEGUE UM EXEMPLO QUE PASSOU PELA VALIDAÇÃO.
COMPARA COM O SEU…
———————————————————
10|1,00|00308108000146|02/03/2009|13/03/2009
20|I||Venda de Mercadoria/Serviço |2|000000124|02/03/2009 10:48:56|02/03/2009 10:48:56|1|5405||58631|01099909000101|RENASCER FERRAGENS E ACESSORIOS LTDA |R. ANSELMO MANARELLI |213 a ||SANTANA |Aracatuba |SP|16050590||1821034218|177120749117
30|0000706|KIT VED. CARBURADOR 125/150/STRADA– ||KIT|1,0000|5,6000|5,60|090|0,00|0,00|0,00
30|0003696|VELA 150/BIZ-125———————”NGK- ||PCA|1,0000|30,0000|30,00|090|0,00|0,00|0,00
30|0001261|OLEO MOTOR MOBIL SUPER MOTO-ORIGINAL—— ||LTO|1,0000|18,0000|18,00|090|0,00|0,00|0,00
30|0003564|PNEU D. TITAN MF-04 PREDATOR 2/75-18— ||PCA|1,0000|67,0000|67,00|090|0,00|0,00|0,00
30|0003678|PNEU T. TITAN MT-96 GRAN STYLE 90/90-18 ||PCA|1,0000|78,0000|78,00|090|0,00|0,00|0,00
30|0000149|CAMARA AR TITAN—————— ||PCA|1,0000|17,0000|17,00|090|0,00|0,00|0,00
30|0003622|COXIM COROA 150 TITAN——————–” ||KIT|1,0000|12,0000|12,00|090|0,00|0,00|0,00
30|0003825|TAMPA DE VALVULA ORIG. ||—|1,0000|40,0000|40,00|090|0,00|0,00|0,00
30|0002890|GUARNICAO TAMPA VALVULAS 150/BROS— ||PCA|1,0000|4,5000|4,50|090|0,00|0,00|0,00
30|0000286|RETENTOR TAMPA CABECOTE 150——–90.543. ||PCA|2,0000|6,0000|12,00|090|0,00|0,00|0,00
30|0002271|.LIMPEZA CARBURADOR CG 125/150——————–|| |1,0000|17,0000|17,00|090|0,00|0,00|0,00
30|0000033|.LIMPEZA FILTRO AR CG 125/150/TWISTER————-|| |1,0000|6,0000|6,00|090|0,00|0,00|0,00
30|0000046|.REGULAR VALVULAS CG——————————|| |1,0000|12,0000|12,00|090|0,00|0,00|0,00
30|0000089|.LIMPEZA VALVULA “PER” TITAN—————– || |1,0000|38,0000|38,00|090|0,00|0,00|0,00
30|0001689|.TROCAR/COLOCAR PNEU/CAMARA AR-BORRACHARIA——–|| |1,0000|12,0000|12,00|090|0,00|0,00|0,00
40|0,00|0,00|0,00|0,00|369,10|0,00|0,00|0,00|0,00|0,00|369,10|85,00|0,00|0,00
50|0||||||||||||||
60|||||
90|00001|00015|00001|00001|00001
Responder
Fernando Fonte - Dimensão Tech Respondeu:
março 24th, 2009 as 18:03:59
Pessoal, peguem leve ao postar dados reais de seus clientes. Peguei um dos CNPJ´s e consultei na Receita e vi que os dados são válidos. O que o seu cliente vai achar quando um dia encontrar no Google os dados do seu cupom fiscal?
Responder
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
março 26th, 2009 as 18:03:14
Por favor to perdido……preciso de ajuda…..
Obrigado
Responder
PASCOAL ANTONIO SCOPETTO NETO Respondeu:
março 24th, 2009 as 21:03:43
Paulo,
Se possível me enviar o link do lay out que vc esta usando pois alguma coisa esta errada no meu esta faltando campos e agora fiquei preocupado,
Por favor
Obrigado
Responder
PAULO Respondeu:
março 26th, 2009 as 20:03:01
Ja te adicionei no meu MSN me aceita.
Eu te mando o layout pelo msn.
Aguardo um retorno seu.
Me passa seu e-mail..
Responder
Boa Tarde!
Estou com uma dúvida referente ao Layout do arquivo da Nota Modelo 1.
Os campos no registro 20, referentes ao Endereço do Cliente, Bairro, Número, Município e UF são obrigatórios.
Contanto em todos os estabelecimentos que selocitei NFP até hoje, só pedirem meu CPF.
Gostaria de saber se esses campos podem ser preenchidos com os dados do Emitente ou se realmente o cliente que não possui cadastro no sistema, terá que fornecer todas essas informações?
Ah, e outro detalhe, o campo referente ao CPF/CNPJ não é OBRIGATÓRIO, se não preenchê-lo no arquivo, como a receita fará a devida identificação ?
Aguardo uma Resposta… Obrigado!!!
Responder
Nilson Elias de Souza Respondeu:
julho 28th, 2009 as 15:07:59
Que eu saiba, os que não informam o CPF não entram na distribuição da NFP.O valor é rateado para aqueles que se inscreveram na NFP.
Todas as notas tem de ser enviadas.
Abraços
Responder
Bom dia!!! alguém pode me ajudar fiz um lançamento de NF modelo 1, só q na empresa errada agora não sei o que faço para cancelar…. me ajudem por favor
Responder
Olá Fernanda;
Se você já transmitiu a inclusão desta nota então deverá fazer o mesmo lançamento informando o cancelamento dela. Todos os dados iguais porém informando Cancelamento.
Att;
Responder
POR FAVOR PRECISO DO LAY OUT DO MODELO 2 ALGUEM PODERIA ME AJUDAR URGENTE ?
OBRIGADO
Responder
……..AGRADECIMENTOS………
Depois de vários meses tentando fazer o arquivo com a ajuda de todos aqui em especial do Paulo, que me deu a maior força e assim consegui montar o arquivo.
Obrigado
P.S. Se alguem puder me enviar alguma coisa sobre nota fiscal eletrônica eu agradeço.
Responder
Para enviar, e eventualmente corrigir os arquivos, utilize o programa NFPWeb, do site http://www.dusoftware.com.br/nfpweb.
Além de enviar automaticamente, ele gera relatórios detalhados.
Responder
Para quem ainda vai iniciar o desenvolvimento e esta perdido, aqui vai um link que pode ajudar:
http://www.cosmoverbal.net/?p=243
Responder
Olá, bom dia.
Estou com uma duvida a respeito da versão do layout do arquivo texto.
Pelo que entendi o layout é para nota fiscal modelo 1 e 1A.
Minha empresa utiliza a opção de contabilista e a Nota Fiscal é Modelo 2.
Então quando envio o arquivo diz que a versão do layout não está correta.
A versão que o arquivo está gerando é 1,00.
Por acaso para opcção de contabilista e nota fiscal modelo 2 é algum layout diferente??
Obrigada,
Cristina
Responder
Olá Pessoal,
Boa tarde,
Estou com um erro no arquivo txt de Cancelamento ( notas modelo 1/1A), alguém poderia publicar um arquivo que conseguiu passar pelo validador, para que eu possa compara-lo.
Grato.
Fernando.
Responder
ed Respondeu:
outubro 16th, 2009 as 14:10:57
Verifique se a nota que você está tentando cancelar foi enviada ou não para a receita.
Se foi cancelada antes, normalmente nem se envia o registro.
Mas se é cancelado depois do seu envio, basta lançar de acordo com o layout.
Se não foi enviada e vocÇe está tentando mandar a instrução de cancelar vai dar erro mesmo. A nota tem que estar no sistema da receita para poder ser cancelada.
Responder
Estou transformando o arquivo texto criado pelo Clipper do formato Ansi para o UTF-8 pelo programa TexPad.Acho que não é ele que está dando problemas, né? Estou usando os caracteres chr(124) (Pipes) e no final somente o chr(13).
Se eu estiver errado por favor, corrijam-me.
Obrigado
Responder
Deluqui Respondeu:
setembro 25th, 2009 as 16:09:51
Ola Nilton
Também implementei uma rotinaem Clipper para o RDEF.
Paramim passa. Utilizo o BLOCO DE NOTAS, salvar como e escolho ANSI e vai.
Mas agora tenho o seguinte, testo e valida e transmite, mas vem erro 225 de estrutura do arquivo TXT e não acho o problema.
Que será??
SDS
Deluqui
Responder
Nilson Respondeu:
setembro 25th, 2009 as 17:09:47
Oi Deluqui.
É melhor vc transformar para UTF-8 para evitar erros futuros. É muito fácil, entre no Bloco de notas mesmo e em Salvar Como procure o formato UTF-8.
Responder
Vladimir Almeid Respondeu:
outubro 10th, 2009 as 11:10:09
Bom dia Nilson, to vendo que vc esta com problemas tb pra enviar esse bendito arquivo, meu sistema tb é em clipper, me diz uma coisa, como vc esta usando o chr(13) e o chr(124)?? porque já enviei o arquivo umas 100 vezes e a receita não aceita meu arquivo por nada. Quando abro meu arquivo no bloco de notas ele esta igual ao do layout pedido
Responder
Nilson Respondeu:
outubro 13th, 2009 as 09:10:29
*———————————————*
* Exporta‡Æo NF PAULISTA *
* As FUN€åES E ROTINAS ESTÇO NO PROGRAMA *
* *
* UNIGER7.PRG *
* *
*———————————————*
Alert(“Nome do Arquivo Texto ‚ NFSP.TXT”)
Do while .t.
Public mdataini,mdatafim,Mnota,Mdatamov,Minscri,Mcnpj,Mnome,Var1,mnotan
Public Mender,Mbairro,Mcidade,Mestado,MCEP,Mpais,Mtipo,Mcomple,mprivez
Public Mcodigo,Mdescricao,Mun,Mquant,Mvrunit,Mvalor,MCST,MPicms,Mpipi,Mvipi
Public Mbaseicms,Mvr_icms,Mbasesubs,Mtotsubs,Mvalor,Mfrete,Mtotdesc,Mtotipi,Moutras
Public Mtotnota,Mdata1,Mdata2,tvrnota
Public Mdodfrete,MCNPJtran,Mnometran,Minsctran,Mendtran,MMunitran,MUFtran
Public Mplacatran,MufPlaca,Mnvolumes,Mespecie,Marcavol,MPliquido,MpBruto
Public Mfatura,ifAdfisico,infCPL,mnomenat
Public Mipo10,Mtipo20,Mtipo30,Mtipo40,Mtipo50,Mtipo60,mnatureza
Public Mzeros,Mbarra
Mzeros=”0,00″
Mbarra=”|”
mdataini=ctod(” / / “)
mdatafim=ctod(” / / “)
Privez=”S”
mdrive=”C”
Tex=”S”
mmfilial=space(3)
mmfilial=mfilial
mxempr=space(08)
mxempr=”GLOBO”
mprivez=”S”
mnotan=0
Store space(2) to dia,mes,var1
Store 0 to Mtipo10,Mtipo20,Mtipo30,Mtipo40,Mtipo50,Mtipo60
mnomenat:=space(60)
boxnil(14,13,22,65,”branco”,”palha”)
set colo to w+/bg,w+/b
@ 16, 15 say “Informe a Data Inicial..:” get mdataini
@ 17, 15 say “Informe a Data Final….:” get mdatafim valid(mdatafim >=mdataini)
@ 18, 15 say “Informe o dia………..:” get dia pict “##”
@ 19, 15 say “Informe o mes………..:” get mes pict “##”
@ 20, 15 say “Drive p/exportar(A/C/D).:” get mdrive valid(mdrive$”ACDEF”)
@ 21, 15 say “Dados Corretos..?: ” get tex valid(tex$”SNsn”)
read
if lastkey () = 27
return
endif
if upper(tex)=”S”
exit
else
loop
endi
Enddo
titulo2_1 (‘Gerando Arquivo Texto…aguarde …’)
set print on
set console off
set date brit
set device to printer
mprinter= mdrive +”:NFP_”+ dia + mes + “.txt”
erase &mprinter
set printer to &mprinter
Do Abre_2 && Clientes
Do Abre_29 && Esdiam – detalhe de produtos
Do Abre_28 && Esdian – master de notas
Sele Dian // leitura do arquivo de notas
set order to 7
go top
* set filter to (Dtos(datamov) >=Dtos(mdataini) .or. Dtos(datamov) <=Dtos(mdatafim))
set softseek on
mchave=Dtos(mdataini) + space(6)
tiracara(mchave)
Seek mchave
if eof()
Alert("Parametros data errado…Fim do arquivo encontrado")
return
endi
set softseek off
Func10(Mdataini,Mdatafim) && monta registro 10
*********************************
* Leitura arquivo MESTRE *
*********************************
Sele DIAN
Set order to 7 && ordem de data de emissao
Do While !EOF() // arquivo de notas
Sele Dian
Set order to 7 // ordem de data de emissÆo
if eof()
close data
exit
endif
if deleted()
skip
loop
endif
If Nat="99"
skip
loop
Endif
If REG # "S"
skip
loop
endif
*———————————-*
* checa duplicidade de notas *
*———————————-*
* If mnotan=nota
* mprivez="N"
* skip
* loop
* Endif
If mprivez="S"
mnotan:=nota
endif
If mnotan=nota .and. mprivez="N"
* mprivez="S"
skip
loop
Endif
mnotan=nota
mprivez="N"
if Dtos(datamov)Dtos(mdatafim)
exit
endi
if nota=0
skip
loop
endi
if reg#”S”
skip
loop
endif
Mnota=Nota
*————————*
* Carrega campos *
*————————*
Sele Dian && Leitura do arquivo mestre
Set order to 7
Mnota=Str(Nota,6)
Mserie=”0″ && Serie
* Mufnota=ufnota
Mdevolucao=str(devolucao)
Var1=tiracara(Mdevolucao)
Mdevolucao=Var1
Mnat = Nat
Mnatureza=Natureza
Var1=tiracara(mnatureza)
Mnatureza=rtrim(Var1)
Mcodfor=codfor
Mcodcli=codcli
Var1 = tiracara(Mcodcli)
Mcodcli=rtrim(var1)
Mnome=RTRIM(Nome)
* Var1=Tiracara(Mnome)
* Mnome=rtrim(Var1)
Mende=Rtrim(Ende)
* Var1=Tiracara(mende)
* mende=rtrim(var1)
Mnumero=rtrim(Numero)
* Var1=Tiracara(Mnumero)
* Mnumero=rtrim(Var1)
MCep=Cep
Var1=Tiracara(Mcep)
Mcep=rtrim(var1)
Mcidade=Rtrim(Cidade)
* Var1=Tiracara(Mcidade)
* Mcidade=rtrim(var1)
Mbairro=rtrim(Bairro)
* Var1=Tiracara(Mbairro)
* Mbairro=rtrim(var1)
Mesta=Esta
Mtipocli=tipocli
Mcnpj=cnpj
Var1=Tiracara(Mcnpj)
Mcnpj=rtrim(var1)
Minscri=Inscri
Var1=Tiracara(Minscri)
Minscri=rtrim(var1)
Mcpf=Cpf
Var1=Tiracara(Mcpf)
Mcpf=rtrim(var1)
MRG=RG
* Var1=Tiracara(MRG)
* Mrg=rtrim(var1)
* Mcfo=CFO
* Var1=Tiracara(Mcfo)
* Mcfo=rtrim(var1)
Mcfop=Cfop
Var1=Tiracara(Mcfop)
Mcfop=rtrim(var1)
Mcodtri=codtri
* Mbaseicms=str(baseicms) && valor tributado
* * Var1=Tiracara(Mbaseicms)
* * Mbaseicms=Var1
* store 0 to Tvrnota
* Tvrnota=Totnota+descontos
Mbaseicms=str(tributado) && valor tributado
* Var1=Tiracara(Tributado)
* Mbaseicms=Var1
store 0 to Tvrnota
Tvrnota=Totnota+descontos
Mvrnota=str(Vrnota)
* Var1=Tiracara(Mvrnota)
* Mvrnota=var1
Macrescimo=Acrescimos
* Var1=Tiracara(Macrescimo)
* Macrescimo=Var1
MDescontos=str(Descontos)
* Var1=Tiracara(Mdescontos)
* Mdescontos=var1
Mtributado=str(Tributado)
* Var1=Tiracara(Mtributado)
* Mtributado=strzero(var1)
Misentos=str(Isentos)
* Var1=Tiracara(misentos)
* misentos=strzero(var1)
Mservicos=str(Servicos)
* Var1=Tiracara(Mservicos)
* Mservicos=strzero(var1)
Moutras=str(Outras)
* Var1=Tiracara(Moutras)
* Moutras=strzero(var1)
Menc_Finan=str(Enc_Finan)
* Var1=Tiracara(Menc_Finan)
* Menc_Finan=strzero(var1)
Mtotnota=STR(Totnota)
* Var1=Tiracara(mtotnota)
* mtotnota=strzero(var1)
Mpicms=str(Picms)
* Var1=Tiracara(MPicms)
* Mpicms=strzero(var1)
MVr_icms=str(vr_icms)
* Var1=Tiracara(Mvr_icms)
* Mvr_icms=strzero(var1)
Mdatamov=Dtoc(Datamov)
Mdatamov1=dtos(Datamov)
Mhoraemis=time()
Mhorasai=time()
Mnometran=nometran
* Var1=Tiracara(Mnometran)
* Mnometran=rtrim(Var1)
MEndtran=Endtran
* Var1=Tiracara(Mendtran)
* Mendtran=rtrim(var1)
Muftran=Uftran
Mfretetran=Fretetran
* Var1=Tiracara(Mfretetran)
Mfretetran=Fretetran && 1 digito
Mfrete=str(Frete,9)
* Mfrete=Strzero(mfrete)
Mplacatran=Placatran
* Var1=Tiracara(Mplacatran)
* Mplacatran=rtrim(var1)
MCGCtran=CGCTran
Var1=Tiracara(mCGCtran)
MCGCtran=rtrim(var1)
Minsctran=Insctran
Var1=Tiracara(Minsctran)
Minsctran=rtrim(minsctran)
MMunitran=MUnitran
* Var1=tiracara(MMunitran)
* MMunitran=rtrim(var1)
Func20() && faz o cabe‡alho da nota
* endif
mtrabal=0
*———————————*
* Pesquisa no arquivo Detalhes *
*———————————*
Sele Diam
Set order to 9
mnota1=mnota
mnota1=rtrim(mnota1)
Mchave1=mnota
Seek Mchave1
If eof()
Alert(“Arquivo detalhe com problema…NF nÆo encontrada”)
endif
Do While !EOF() // leitura no arquivo acumulado de itens Esdiam
Sele Diam
Set order to 9
If reglock(40)
if deleted()
skip
loop
endi
if str(ndocto,6) > mnota
exit
endi
Func30() && registra o produto
unlock
SKIP
else
Alert(“Arquivo de estoque nÆo dispon¡vel”)
unlock all
exit
return
endif
enddo // finaliza arquivo do estoque
//
sele dian // volta para nota fiscal
Func40() && faz a totaliza‡Æo da nota
Func50() && faz a transportadora
Func60() && faz dados da fatura
skip // lˆ proximo registro das notas (corpo da nota)
Enddo // finaliza arquivo de notas
Func90(Mtipo20,Mtipo30,Mtipo40,Mtipo50,Mtipo60)
set print off
unlock all
close data
set device to screen
set console on
Return
************************************************
As funções estão no programa de rotinas abaixo
************************************************
*———————————————*
* FUNیES N.F.PAULISTA *
* As fun‡äes abaixo pertencem … NF. Paulista *
*———————————————*
*******************************************************************
* Os caracteres CR = Carriage Return = chr(13) *
* e LF => Line Feed = chr(10) fazem praticamente a mesma coisa *
* CR -> Salta uma linha e retorna a posi‡Æo de impressÆo para 0 *
* LF -> Salta uma linha e mantem a posi‡Æo de impressÆo *
* Logo utilizar os dois juntos ‚ desnecess rio *
*******************************************************************
Function Func10(mdataini,mdatafim)
Store space(8) to Mdata1,Mdata2
Mcfop=”|”
Store “|” to mhoraemis,mhorasai
Store Time() to mhoraemis,mhorasai
MHoraemis=Horaemis && Hora emissÆo
MHorasai=Horasai && Hora Saida
@ 00, 0 say “10″
@ prow(),pcol() say chr(124) + “1,00″
@ prow(),pcol() say chr(124) + “CNPJ SEM PONTOS OU TRAÇOS”
@ prow(),pcol() say chr(124) + dtoc(Mdataini)
@ prow(),pcol() say chr(124) + dtoc(Mdatafim) + chr(13) && + chr(10)
mtipo10=1
Return nil
*———————————-*
Function Func20
FunReg=Reg && I=InclusÆo / R=Retifica‡Æo C=Cancelamento
If Reg=”S”
Funreg=”I”
MtpNF=”1″ && Saida
endif
If Reg=”E”
Mtpnf=”0″ && Entrada
Endif
mtipocli=tipocli && 1 = fisica / 2 = juridica
If mtipocli=”1″ && fisica
Mcpf=CPF && Verifica CPF
VCPF(mcpf)
Var1=tiracara(mcpf)
* Mcpf=var1
Mdocum=var1
else
Mcnpj=CNPJ
Ver_CGC(mcnpj) && verifica CNPJ
Tiracara(mcnpj)
Mdocum=var1
endif
mZERO=0.00
mZERO=STRZERO(MZERO,3,2)
@ prow(),pcol() say “20″
@ prow(),pcol() say chr(124) + ‘I’ + chr(124)
@ prow(),pcol() say chr(124) + ‘VENDA’
@ prow(),pcol() say chr(124) + ‘0′
@ prow(),pcol() say chr(124) + ltrim(Mnota)
@ prow(),pcol() say chr(124) + Mdatamov + ‘ ‘ + Mhoraemis
@ prow(),pcol() say chr(124) + mdatamov +’ ‘ + mhoraemis
@ prow(),pcol() say chr(124) + ‘1′
@ prow(),pcol() say chr(124) + Mcfop && codigo fiscal
@ prow(),pcol() say chr(124) + chr(124)
@ prow(),pcol() say chr(124) + Mdocum
@ prow(),pcol() say chr(124) + Mnome
@ prow(),pcol() say chr(124) + Mende
@ prow(),pcol() say chr(124) + Mnumero
@ prow(),pcol() say chr(124) && complemento
@ prow(),pcol() say chr(124) + Mbairro
@ prow(),pcol() say chr(124) + Mcidade
@ prow(),pcol() say chr(124) + Mesta
@ prow(),pcol() say chr(124) + Mcep
@ prow(),pcol() say chr(124)
@ prow(),pcol() say chr(124) && Telefone
@ prow(),pcol() say chr(124) + chr(13) && IE do Destinatario
Mtipo20 = Mtipo20 + 1
Return (nil)
*——————
Function Func30 && Itens da nota
Mtipofun=”30″
Mcodigo=rtrim(codigo)
Mdescri=rtrim(descricao)
mNCM=” ”
Mun=un
Mbruto=0
Mbruto= qtdmovi * pcounit
Mbruto=ltrim(str(mbruto,12,2))
Mbruto=strtran(mbruto,”.”,”,”)
Mquant=ltrim(str(qtdmovi,12,4))
Mquant=strtran(Mquant,”.”,”,”)
mvrunit=ltrim(str(pcounit,10,4))
mvrunit=strtran(mvrunit,”.”,”,”)
Mvalor=valor + acrescimos-descontos
Mvalor=ltrim(str(mvalor,12,2))
mvalor=strtran(mvalor,”.”,”,”)
if picms >0
Mcst=”000″
else
Mcst=”040″
endif
* MCST=CST && c¢digo da situa‡Æo tribut ria
MPicms=ltrim(str(Picms,5,2))
MPicms=strtran(mPicms,”.”,”,”)
Mpipi=ltrim(str(pipi,10,2))
Mpipi=strtran(mpipi,”.”,”,”)
Mvr_ipi=ltrim(str(vr_ipi,5,2))
Mvr_ipi=strtran(mvr_ipi,”.”,”,”)
@ prow(),pcol() say “30″
@ prow(),pcol() say chr(124) + Mcodigo
@ prow(),pcol() say chr(124) + Mdescri
@ prow(),pcol() say chr(124) + chr(124) + Mun
@ prow(),pcol() say chr(124) + Mquant
@ prow(),pcol() say chr(124) + mvrunit
@ prow(),pcol() say chr(124) + Mbruto
@ prow(),pcol() say chr(124) + mCST
@ prow(),pcol() say chr(124) + MPicms
@ prow(),pcol() say chr(124) + “00,00″ && % IPI
@ prow(),pcol() say chr(124) + Mvr_ipi + chr(13)
Mtipo30=Mtipo30+1
Return nil
*——————
Function Func40
Mtipofun=”40″
MbaseIcms=ltrim(str(baseicms,12,2))
mbaseicms=strtran(mbaseicms,”.”,”,”)
Mvr_icms=ltrim(str(Vr_icms,12,2))
mvr_icms=strtran(mvr_icms,”.”,”,”)
Mbasesubs=”0,00″
Mtotsubs=”0,00″
Tvrnota=ltrim(str(tvrnota,12,2))
Tvrnota=strtran(tvrnota,”.”,”,”)
Mvrnota=ltrim(str(VrNota,14,2))
*Mvrnota=ltrim(str(Valor,14,2))
mvrnota= strtran(mvrnota,”.”,”,”)
Mfrete=ltrim(str(Frete,12,2))
mfrete= strtran(mfrete,”.”,”,”)
Mseguro=”0,00″
Mtotdesc=ltrim(str(descontos,12,2))
mtotdesc= strtran(mtotdesc,”.”,”,”)
MtotIPI=ltrim(str(VR_IPI,12,2))
mtotipi= strtran(mtotipi,”.”,”,”)
Moutras=ltrim(str(Outras,12,2))
moutras= strtran(moutras,”.”,”,”)
Mtotnota=ltrim(str(totnota,14,2))
mtotnota= strtran(mtotnota,”.”,”,”)
vServ=”0,00″
pISS=”0,00″
vISS=”0,00″
@ prow(),pcol() say “40″
@ prow(),pcol() say chr(124) + MbaseIcms
@ prow(),pcol() say chr(124) + Mvr_icms
@ prow(),pcol() say chr(124) + Mbasesubs
@ prow(),pcol() say chr(124) + Mtotsubs
@ prow(),pcol() say chr(124) + Tvrnota
@ prow(),pcol() say chr(124) + Mfrete
@ prow(),pcol() say chr(124) + Mseguro
@ prow(),pcol() say chr(124) + Mtotdesc
@ prow(),pcol() say chr(124) + “0,00″ && vr. total do IPI
@ prow(),pcol() say chr(124) + Moutras
@ prow(),pcol() say chr(124) + Mtotnota
@ prow(),pcol() say chr(124) + “0,00″ && vr.total servicos
@ prow(),pcol() say chr(124) + “0,00″ && % do ISS
@ prow(),pcol() say chr(124) + “0,00″ + chr(13) && Total do ISS
Mtipo40=Mtipo40+1
Return
*——————–
Function Func50
Mtipofun=”50″
Modfrete=Fretetran
mcgctran=”"
MNometran=nometran
*tiracara(mnometran)
*mnometran=rtrim(var1)
Minsctran=insctran
*tiracara(minsctran)
*minsctran=rtrim(var1)
Mendtran=endtran
*tiracara(mendtran)
*mendtran=rtrim(var1)
MMunitran=rtrim(Munitran)
MUFTran=UFtran
Mplacatran=rtrim(Placatran)
MUFPlaca=Muftran
*MNvolumes=rtrim(str(N_volumes,8))
Mnvolumes=”"
Mespecie=Especie
MarcaVol=”"
MnumVol=”1″
MPliquido=ltrim(str(Pliquido,12,3))
Mpliquido=strtran(mpliquido,”.”,”,”)
MPBruto=ltrim(str(Pbruto,12,3))
MpBruto=strtran(mpBruto,”.”,”,”)
@ prow(),pcol() say “50|1||||||||||||||” + chr(13)
Mtipo50=Mtipo50+1
Return
*——————-*
Function Func60
*——————-*
@ prow(), pcol() say “60|||||” + chr(13)
Mtipo60=Mtipo60+1
return
*——————
Function Func90(Mtipo20,Mtipo30,Mtipo40,Mtipo50)
Mtipofun=”90″
Mtipo20=strZERO(mtipo20,5)
Mtipo30=strzero(mtipo30,5)
Mtipo40=strzero(mtipo40,5)
Mtipo50=strzero(mtipo50,5)
Mtipo60=strzero(mtipo60,5)
@ prow(),pcol() say “90″
@ prow(),pcol() say chr(124) + rtrim(Mtipo20)
@ prow(),pcol() say chr(124) + rtrim(Mtipo30)
@ prow(),pcol() say chr(124) + rtrim(Mtipo40)
@ prow(),pcol() say chr(124) + rtrim(Mtipo50)
@ prow(),pcol() say chr(124) + rtrim(mtipo60) + chr(13) && + chr(10)
Return nil
*——————
Responder
Vladimir Almeid Respondeu:
outubro 13th, 2009 as 12:10:59
*—————————-> Relatorio Analitico e Sintetico de Clientes
#include “BOX.CH”
#include “INKEY.CH”
function VN13NFPL( )
local nivel1 := savescreen( )
local wtipo_arq, wdt_inicial, wdt_final, wcaminho,warquivo, wtipo_nf, wnat
local wtipo_nota := wdesconto := wregnf := wreg30 := wbase_icms := wdifer_nf := wreg20 := 0
public wgrafico := .f.
public nnum := 1
wtipo_arq := “C”
wtipo_nf := “S”
wdt_inicial := wdt_final := ctod(“/ /”)
wcaminho := space(20)
wcaminho := “C:\”+space(17)
warquivo := “BROBINF”
wdifer:=”"
wtp_nf := wtp_dif := wobs := “”
set softseek off
set deleted on
set scoreboard off
set wrap on
set cursor on
set date brit
set message to 24 center
set exclusive on
set decimal to 4
set procedure to VN00FUNC
set epoc to 1950
set date format to “dd/mm/yyyy”
setacor( )
@ 11,15,17,60 box B_DOUBLE + ” ”
* @ 12, 16 say “ontab/eceita : ” get wtipo_arq pict “@!” valid wtipo_arq = “R” .or. wtipo_arq = “C”
@ 13, 16 say “Tipo aida/nt : ” get wtipo_nf pict “@!” valid wtipo_nf = “S” .or. wtipo_nf = “E”
@ 14, 16 say “Data Inicial : ” get wdt_inicial pict “99/99/9999″ valid !empty( wdt_inicial )
@ 15, 16 say “Data Final : ” get wdt_final pict “99/99/9999″ valid !empty( wdt_final ) .and. wdt_final >= wdt_inicial
@ 16, 16 say “Caminho do Arquivo : ” get wcaminho PICT “@!” valid !empty( wcaminho )
ler( )
if lastkey() == 27
restscreen(, , , ,nivel1)
return
endif
if confirma(“Confirma a Geracao do ARQUIVO ?”) == 2
restscreen(, , , ,nivel1)
return
endif
warquivo := “BROBINF.TXT”
centro(” Aguarde Gerando ARQUIVO…. “)
SELECT 0
if !( usearq(“ARQNF”,.F.,”ARQNF”))
deumerda( )
restscreen(,,,,nivel1)
return
endif
set index to NF_X01, NF_X02
ARQNF->( dbsetorder(1))
SELECT 0
if ( !usearq(“CAD_CLIE”,.F.,”CAD_CLIE”))
deumerda( )
unlock
return
endif
set index to CLI_X01,CLI_X02,CLI_X03
SELECT 0
if ( !usearq(“CABE_PED”,.F.,”CABE_PED”))
deumerda( )
unlock
return
endif
set index to CABE_X01, CABE_X02, CABE_X03, CABE_X04, CABE_X05, CABE_X06
SELECT 0
if ( !usearq(“ITEM_PED”,.F.,”ITEM_PED”))
deumerda( )
unlock
return .f.
endif
set index to ITEM_X01,ITEM_X02,ITEM_X03
* setprc(0,0)
SET PRINTER TO &(alltrim(wcaminho)+warquivo)
set device to printer
set print on
set console off
setprc(0,0)
@ prow(),0 say “10|1,00|65756942000140|”+dtoc(wdt_inicial)+”|”+dtoc(wdt_final)
wvlr_nota := wtotal_ped := wtotal_icm := wperc_icms := “”
SELECT ARQNF
set relation to ARQNF->CODIGO_PED into CABE_PED
ARQNF->( dbgotop( ))
while ARQNF->( !eof( ) )
if ARQNF->DT_EMISSAO >= wdt_inicial .and. ARQNF->DT_EMISSAO CFO > 5000
* wvlr_nota := “0″+substr(strzero( ARQNF->TOTAL_NF,12,2),1,09)+substr(strzero( ARQNF->TOTAL_NF,12,2),11,2)
* wtotal_ped := “0″+substr(strzero( CABE_PED->TOTAL_PED,12,2),1,09)+substr(strzero( CABE_PED->TOTAL_PED,12,2),11,2)
* wtotal_icm := “0″+substr(strzero( ARQNF->TOTAL_ICM,12,2),1,09)+substr(strzero( ARQNF->TOTAL_ICM,12,2),11,2)
wvlr_nota := cor_valor( ARQNF->TOTAL_NF,15,2)
wtotal_ped := cor_valor( CABE_PED->TOTAL_PED,15,2)
wtotal_icm := cor_valor( ARQNF->TOTAL_ICM,15,2)
wperc_icms := cor_valor( ARQNF->PERC_ICMS,2)
wnat=iif(CABE_PED->CANCELADA, “CANCELADA”,iif(ARQNF->CFO DIFER ,cor_valor( ARQNF->TOTAL_NF*0.6667,15,2) ,cor_valor( ARQNF->TOTAL_NF,15,2))
wdifer :=iif(ARQNF->DIFER ,cor_valor( (ARQNF->TOTAL_NF-(ARQNF->TOTAL_NF*0.6667)),15,2) ,”0,00″)
wtp_nf:= iif(CABE_PED->CANCELADA, “C”,”I”)
wtp_dif :=iif(ARQNF->DIFER ,”051″,iif(ARQNF->CFO > 5900,”050″, “000″))
wobs=iif(CABE_PED->CANCELADA, “ERRO DE IMPRESSAO”,”")
@ prow()+1,0 say “20|”+wtp_nf+”|”+wobs+”|”+wnat+”|001|”+cor_valor(ARQNF->NUMERO_NF,9)+”|”+dtoc(ARQNF->DT_EMISSAO)+” “+ARQNF->HR_SAIDA+”|”+dtoc(ARQNF->DT_SAIDA)+” “+ARQNF->HR_SAIDA+”|1|”+trim(str(ARQNF->CFO))+”|”+;
“||”+if(CAD_CLIE->(dbseek(CABE_PED->CLIENT_PED)), SUBSTR(CAD_CLIE->CGC_CLI,1,14), “”)+”|”+;
trim(CABE_PED->RAZAO_CLI)+”|”+if(CAD_CLIE->(dbseek(CABE_PED->CLIENT_PED)), trim(CAD_CLIE->ENDERE_CLI), “”)+”| ||”+;
if(CAD_CLIE->(dbseek(CABE_PED->CLIENT_PED)), iif(empty(CAD_CLIE->BAIRRO_CLI),”CENTRO”,trim(CAD_CLIE->BAIRRO_CLI)), “CENTRO”)+”|”+;
if(CAD_CLIE->(dbseek(CABE_PED->CLIENT_PED)), trim(CAD_CLIE->CIDADE_CLI), “”)+”|”+;
if(CAD_CLIE->(dbseek(CABE_PED->CLIENT_PED)), trim(CAD_CLIE->ESTADO_CLI), “”)+”|”+;
if(CAD_CLIE->(dbseek(CABE_PED->CLIENT_PED)), limpa_cep(CAD_CLIE->CEP_CLI), “”)+”||”+;
if(CAD_CLIE->(dbseek(CABE_PED->CLIENT_PED)), limpa_cep(CAD_CLIE->FONE_CLI), “”)+”||”+;
if(CAD_CLIE->(dbseek(CABE_PED->CLIENT_PED)), limpa_cep(CAD_CLIE->IE_CLI), “”)
wreg20+=1
if CABE_PED->CANCELADA = .f.
ITEM_PED->( dbgotop( ))
if ITEM_PED->(dbseek(CABE_PED->CODIGO_PED))
while ITEM_PED->CODIGO_PED = CABE_PED->CODIGO_PED
@ prow()+1,00 say “30|”+trim(ITEM_PED->ITEM_PED)+”|”+trim(ITEM_PED->DESCRI_PED)+”||PECA|”+cor_valor(ITEM_PED->QTDADE_PED,12,4)+”|”+;
cor_valor(ITEM_PED->PRECO_PED,16,4)+”|”+ cor_valor((ITEM_PED->QTDADE_PED*ITEM_PED->PRECO_PED),15,2)+”|”+wtp_dif+”|”+;
cor_valor(ARQNF->PERC_ICMS,5,2)+”|0,00|0,00″
wdesconto += ITEM_PED->QTDADE_PED*ITEM_PED->DESCON_PED
wreg30+=1
ITEM_PED->( dbskip( ))
end
endif
@ prow()+1,00 say “40|”+wbase_icms+”|”+wtotal_icm+”|0,00|0,00|”+wvlr_nota+”|”+cor_valor(ARQNF->VLR_FRETE,15,2)+”|”+;
cor_valor(ARQNF->VLR_SEGURO,15,2)+”|”+cor_valor(wdesconto,15,2)+”|0,00|”+cor_valor(ARQNF->DESP_ACESS,15,2)+”|”+;
wvlr_nota+”|”+wdifer+”|0,00|0,00″
@ prow()+1,00 say “50|0|”+trim(ARQNF->CGC_TRANSP)+”|”+trim(ARQNF->TRANS_NOME)+”|”+trim(ARQNF->IE_TRANSP)+”|”+trim(ARQNF->END_TRANSP)+”|”+;
trim(ARQNF->MUN_TRANSP)+”|”+trim(ARQNF->UF_TRANSP)+”|”+trim(ARQNF->PLACA_VEIC)+”||”+cor_valor(ARQNF->QTDE_VOL,5)+”|”+;
trim(ARQNF->ESPECIE)+”|”+trim(ARQNF->UNIDADE)+”||”+cor_valor(ARQNF->PESO_LIQUI,9,3)+”|”+cor_valor(ARQNF->PESO_BRUTO,9,3)
wregnf+=1
endif
endif
ARQNF->( dbskip( ))
set device to screen
roda2(24, 53)
set device to printer
end
@ prow()+1,00 say “90|”+strzero(wreg20,5)+”|”+strzero(wreg30,5)+”|”+strzero(wregnf,5)+”|”+strzero(wregnf,5)+”|00000″
set device to screen
close data
restscreen( , , , , nivel1 )
return
function LIMPA_IE(wie)
local i, wie_limpo
wie_limpo = “”
wie := alltrim(wie)
if empty(wie)
return wie
endif
for i=1 to len(wie)
wie_limpo += if ( type( substr(wie,i,1) ) = “N”, substr(wie,i,1), “.”)
next
return wie_limpo
function LIMPA_CEP(wcep)
local i, wcep_limpo
wcep_limpo = “”
wcep := alltrim(wcep)
if empty(wcep)
return wcep
endif
for i=1 to len(wcep)
wcep_limpo += if ( type( substr(wcep,i,1) ) = “N”, substr(wcep,i,1), “”)
next
return wcep_limpo
Function cor_valor(wcampo,tamanho,decimais)
set device to screen
clear
decimais := iif(decimais==nil,0,decimais)
@ 1,1 say wcampo
@ 2,1 say tamanho
@ 3,1 say decimais
@ 4,1 say strzero(int(wcampo),tamanho-iif(decimais==0,0,decimais+1),0)+iif(decimais>0,”,”+strzero((wcampo-int(wcampo))*10^decimais,decimais,0),”")
@ 5,1 say “12345678901234567890″
set device to printer
* return strzero(int(wcampo),tamanho-iif(decimais==0,0,decimais+1),0)+iif(decimais>0,”,”+strzero((wcampo-int(wcampo))*10^decimais,decimais,0),”")
return alltrim(str(int(wcampo)))+iif(decimais>0,”,”+strzero((wcampo-int(wcampo))*10^decimais,decimais,0),”")
Vladimir Almeid Respondeu:
outubro 13th, 2009 as 12:10:20
Nilson, Bom dia
meu e-mail : vlade.almeida@gmail.com
msn. cecsistemas@hotmail.com
se puder me add, cara meu arquivo não da certo de jeito nenhum… fica igual ao layout da receita e eles recusam, já não sei mais o que fazer..
obrigado
Abraços
Oi Colegas, creio que vem mais uma bomba do governo.Pretendem acabar com o ECF e implantar o Projeto S@T-Fiscal Sefaz SP. As informações estão no site abaixo.
Abraços
http://www.fazenda.sp.gov.br/sat/
Responder
Bom dia pessoal,
estou com um problema no envio do arquivo da nota fiscal paulista. O programa esta certo, pegando todos os campos corretamente e gravando em seus devido lugares, quando pré-valido ele no programa da nota fiscal paulista ele não me da erro e nem alertas, porém quando envio o arquivo salvo para a contabilidade enviar para a receita a contabilidade me avisa que a receita recusou meu arquivo. Alguém poderia me ajudar???
Responder
Tu Moon Respondeu:
outubro 21st, 2009 as 21:10:22
oi valdimir almeid qual é a mensagem de erro que está dando no envio?
Responder
Vladimir Almeid Respondeu:
outubro 22nd, 2009 as 09:10:21
Bom dia Tu Moon….
consegui resolver já… estava faltando o cep (que pelo layout não é necessário), porém so passou depois que eu coloquei.
de qualquer maneira obrigado
Responder
Boa tarde!
Estou tentando enviar o arquivo da NFP modelo 1 e 1A pelo transmissor TED-REDF e dá o seguinte erro:
Erro 2004 – Erro função de registro indica inclusão e nota fiscal já registrada anteriormente.
ID de registro 20
Alguém poderia me dizer que tipo de erro seria este?
Obrigada.
Responder