fev
08
2008

Layout-Arquivo Nota Fiscal Paulista!

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

Compartilhe e Aproveite:

  • email
  • Print
  • PDF
  • RSS
  • Google Bookmarks
  • Twitter
  • Digg
  • MySpace
  • del.icio.us
  • Facebook
  • Mixx
  • LinkedIn
  • Live
  • Technorati
  • Netvibes
  • Rec6
  • MSN Reporter
  • Yahoo! Bookmarks
  • Add to favorites

242 Comentários »

  • Giovana disse:

    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

  • PASCOAL disse:

    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

  • Gabriel - Dimensão Tech disse:

    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:

    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:

    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:

    Entre em contato com o posto fiscal.

    Responder


  • Edson disse:

    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

  • Gabriel - Dimensão Tech disse:

    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:

    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:

    Qual a linguagem de programação utilizada?

    De qualquer forma crie primeiro o TXT e depois transforme em UTF8.

    Abs;

    Responder

    PASCOAL Respondeu:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    Caro amigo;

    Se conseguiu solucionar seu problema gostaríamos que compartilhasse conosco aqui no Dimensão Tech a solução.

    Abs;


    PASCOAL Respondeu:

    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:

    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:

    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:

    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:

    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




  • Edson disse:

    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:

    Caro Edson,
    Não consegui entender sua dúvida. “EF BB e BF” seriam relativos a que ?

    Abs;

    Responder

    Edson Respondeu:

    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:

    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:

    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




  • PASCOAL disse:

    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:

    No segundo campo do registro 10, tente trocar o ponto pela vírgula, desta forma:

    10|1,00|

    Responder

    PASCOAL Respondeu:

    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:

    esqueçi de colocar : tipo de registro incorreto: {0}



    PASCOAL Respondeu:

    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:

    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:

    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


  • marcal rocha saccardo disse:

    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:

    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


  • Paulo Sergio Guimaraes disse:

    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:

    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:

    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:

    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:

    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:

    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

  • Paulo disse:

    Pascoal me passa seu contato pelo msn ou e-mail para que eu possa te ajudar.

    Responder

    PASCOAL ANTONIO SCOPETTO NETO Respondeu:

    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


  • Paulo disse:

    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:

    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:

    Por favor to perdido……preciso de ajuda…..

    Obrigado

    Responder



    PASCOAL ANTONIO SCOPETTO NETO Respondeu:

    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:

    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



  • Marcelo de Simoni disse:

    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:

    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


  • fernanda sabino disse:

    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

  • Gabriel - Dimensão Tech disse:

    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

  • Ismael disse:

    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

  • Sidon disse:

    Para quem ainda vai iniciar o desenvolvimento e esta perdido, aqui vai um link que pode ajudar:

    http://www.cosmoverbal.net/?p=243

    Responder

  • Cristina disse:

    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

  • Fernando Tupinambá disse:

    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:

    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


  • Nilson disse:

    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:

    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:

    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:

    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:

    *———————————————*
    * 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:

    *—————————-> 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:

    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




  • Nilson disse:

    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

  • Vladimir Almeid disse:

    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:

    oi valdimir almeid qual é a mensagem de erro que está dando no envio?

    Responder

    Vladimir Almeid Respondeu:

    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



  • Isabel Cristina disse:

    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

RSS feed para os comentários deste artigo. TrackBack URL


Deixe uma Resposta

Powered by WordPress. Theme: TheBuckmaker. Darlehen, OpenID