Jump to content


Photo

Projeto Nota Fiscal Eletronica Em Php


  • Faça o login para participar
28 replies to this topic

#1 rbslinux

rbslinux

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino
  • Localidade:Rio Branco do Sul - PR

Posted 15/01/2009, 07:52

Caros amigos:
Estou criando um projeto para emitir nota fiscal eletronica em php, comecei a fazer o script, já li toda a documentação, mas necessito de muita ajuda para que tudo fique bem legal em pouco tempo. Não é difícil.
Segue o script para gerar o famigerado arquivo xml que será enviado para a receita federal, o banco de dados é em mysql, no futuro pretendo interligar o php com meu sistema em clipper que está nas lojas. Agradeço qualquer colaboraçao de vocês para que o projeto seja implementado.

<?php/*Script desenvolvido por Celio Alexandre Galli[url="http://www.planetariobranco.com.br"]http://www.planetariobranco.com.br[/url]rbslinux@ig.com.brEntre em contato para alguma sugestão de melhoramento...*/*/ Faz a conexão ao bando de dados -> crie um banco de dados qualquer com as variaveis que serao usadasinclude  "conecta.php";*/Abre um arquivo chamado xml_gerado.xml (aconselhavel criar o arquivo manualmente e mudar atributos para gravar e ler 777 recomendado...$vai_xml = fopen("xlm_gerado.xml","w+");/*Começamos a gravar os dados no arquivo xlm....fwrite($vai_xml,"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");$cab1='<cabecMsg xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.02">';fwrite($vai_xml,$cab1);fwrite($vai_xml," \n");$cab2='  <versaoDados>1.07</versaoDados>';fwrite($vai_xml,$cab2);fwrite($vai_xml," \n");$cab3='</cabecMsg>';fwrite($vai_xml,$cab3);fwrite($vai_xml," \n");$sql = mysql_query("SELECT * FROM dados ORDER BY id ASC");/*Looping para pegar os dados no banco de dados*/while($exibir = mysql_fetch_array($sql)){	$nome = $exibir['nome'];	$email = $exibir['email'];	$data = $exibir['data'];	$data = date("d-m-Y", strtotime("$data"));	$conteudo = "\n<dados>\n";	$conteudo .= "<nome>$nome</nome>\n";	$conteudo .= "<email>$email</email>\n";	$conteudo .= "<data>$data</data>\n";	$conteudo .= "</dados>";	fwrite($vai_xml,$conteudo);}/*Fecho da estrutura do xml*/fwrite($vai_xml,"\n</meusite>");/*Fecha o arquivo aberto (não é necessário, mas é bom*/fclose($vai_xml);/*Fecha a conexão com o banco de dados*/mysql_close($conecta);?>

O script já está tomando corpo de acordo com um modelo de nota fiscal, se alguém quiser continuar, poderá colaborar para o desenvolvimento deste projeto.


<?php/*Script desenvolvido por Celio Alexandre Galli[url="http://www.planetariobranco.com.br"]http://www.planetariobranco.com.br[/url]rbslinux@ig.com.brEntre em contato para alguma sugestão de melhoramento...*//*Faz a conexão ao bando de dados -> crie um banco de dados qualquer com as variaveis que serao usadas*/include  "conecta.php";/*Abre um arquivo chamado xml_gerado.xml (aconselhavel criar o arquivo manualmente e mudar atributos para gravar e ler 777 recomendado...*/$vai_xml = fopen("xlm_gerado.xml","w+");/*Começamos a gravar os dados no arquivo xlm....*/fwrite($vai_xml,"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");$cab1='<cabecMsg xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10">';fwrite($vai_xml,$cab1);fwrite($vai_xml," \n");$cab2='  <versaoDados>1.07</versaoDados>';fwrite($vai_xml,$cab2);fwrite($vai_xml," \n");$cab3='</cabecMsg>';fwrite($vai_xml,$cab3);fwrite($vai_xml," \n");/* Dados da Empresa origem (Fazer uma tabela)*/$origx='-<ide>';fwrite($vai_xml,$origx);fwrite($vai_xml," \n");$orig1=' <cUF>35</cUF>';fwrite($vai_xml,$orig1);fwrite($vai_xml," \n");$orig2=' <cNF>518005127</cNF>';fwrite($vai_xml,$orig2);fwrite($vai_xml," \n");$orig3=' <natOp>Venda a vista</natOp>';fwrite($vai_xml,$orig3);fwrite($vai_xml," \n");$orig4=' <indPag>0</indPag>';fwrite($vai_xml,$orig4);fwrite($vai_xml," \n");$orig5=' <mod>55</mod>';fwrite($vai_xml,$orig5);fwrite($vai_xml," \n");$orig6=' <serie>1</serie>';fwrite($vai_xml,$orig6);fwrite($vai_xml," \n");$orig7=' <nNF>1</nNF>';fwrite($vai_xml,$orig7);fwrite($vai_xml," \n");$orig8=' <dEmi>2008-05-06</dEmi>';fwrite($vai_xml,$orig8);fwrite($vai_xml," \n");$orig9=' <dSaiEnt>2008-05-06</dSaiEnt>';fwrite($vai_xml,$orig9);fwrite($vai_xml," \n");$orig10=' <tpNF>0</tpNF>';fwrite($vai_xml,$orig10);fwrite($vai_xml," \n");$orig11=' <cMunFG>3550308</cMunFG>';fwrite($vai_xml,$orig11);fwrite($vai_xml," \n");$orig12=' <tpImp>1</tpImp>';fwrite($vai_xml,$orig12);fwrite($vai_xml," \n");$orig13=' <tpEmis>1</tpEmis>';fwrite($vai_xml,$orig13);fwrite($vai_xml," \n");$orig14=' <cDV>3</cDV>';fwrite($vai_xml,$orig14);fwrite($vai_xml," \n");$orig15=' <tpAmb>2</tpAmb>';fwrite($vai_xml,$orig15);fwrite($vai_xml," \n");$orig16=' <finNFe>1</finNFe>';fwrite($vai_xml,$orig16);fwrite($vai_xml," \n");$orig17=' <procEmi>0</procEmi>';fwrite($vai_xml,$orig17);fwrite($vai_xml," \n");$orig18=' <verProc>NF-eletronica.com</verProc>';fwrite($vai_xml,$orig18);fwrite($vai_xml," \n");$orig19='</ide>';fwrite($vai_xml,$orig19);fwrite($vai_xml," \n");/* Emitente */$emitx='<emit>';fwrite($vai_xml,$emitx);fwrite($vai_xml," \n");$emit1=' <CNPJ>99999090910270</CNPJ>';fwrite($vai_xml,$emit1);fwrite($vai_xml," \n");$emit2=' <xNome>NF-e Associacao NF-e</xNome>';fwrite($vai_xml,$emit2);fwrite($vai_xml," \n");$emit3=' <xFant>NF-e</xFant>';fwrite($vai_xml,$emit3);fwrite($vai_xml," \n");$emit3=' <xFant>NF-e</xFant>';fwrite($vai_xml,$emit3);fwrite($vai_xml," \n");$emit4=' <enderemit>';fwrite($vai_xml,$emit4);fwrite($vai_xml," \n");$emit5='  <xLgr>Rua Central</xLgr>';fwrite($vai_xml,$emit5);fwrite($vai_xml," \n");$emit6='  <nro>100</nro>';fwrite($vai_xml,$emit6);fwrite($vai_xml," \n");$emit7='  <xCpl>Fundos</xCpl>';fwrite($vai_xml,$emit7);fwrite($vai_xml," \n");$emit8='  <xBairro>Distrito Industrial</xBairro>';fwrite($vai_xml,$emit8);fwrite($vai_xml," \n");$emit9='  <cMun>3502200</cMun>';fwrite($vai_xml,$emit9);fwrite($vai_xml," \n");$emit10='  <xMun>Angatuba</xMun>';fwrite($vai_xml,$emit10);fwrite($vai_xml," \n");$emit11='  <UF>SP</UF>';fwrite($vai_xml,$emit11);fwrite($vai_xml," \n");$emit12='  <CEP>17100171</CEP>';fwrite($vai_xml,$emit12);fwrite($vai_xml," \n");$emit13='  <cPais>1058</cPais>';fwrite($vai_xml,$emit13);fwrite($vai_xml," \n");$emit14='  <xPais>Brasil</xPais>';fwrite($vai_xml,$emit14);fwrite($vai_xml," \n");$emit15='  <fone>1733021717</fone>';fwrite($vai_xml,$emit15);fwrite($vai_xml," \n");$emit16=' </enderEmit>';fwrite($vai_xml,$emit16);fwrite($vai_xml," \n");$emitx1='</emit>';fwrite($vai_xml,$emitx1);fwrite($vai_xml," \n");/*Fecho da estrutura do xml*/fwrite($vai_xml,"\n</meusite>");/*Fecha o arquivo aberto (não é necessário, mas é bom*/fclose($vai_xml);/*Fecha a conexão com o banco de dados*/mysql_close($conecta);?>

Attached Files


Edição feita por: Dudu, 25/02/2009, 15:04.


#2 Fish

Fish

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 28/01/2009, 08:36

Bom dia rbslinux.

Estou a pesquisar sobre a NF-E para faze-la em php, não tenho muito conhecimento em PHP, porém estou começando a desenvolver algumas coisas....

Tem alguma novidade sobre o projeto que esta desenvolvendo ??

Desde já agradeço.

#3 rbslinux

rbslinux

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino
  • Localidade:Rio Branco do Sul - PR

Posted 28/01/2009, 17:55

Caro Fish:
Agora estou estudando xml, não tem como desenvolver em php sem ter muito conhecimento em xml. Se tiver alguma novidade de seu projeto, poderia ir postando aqui para darmos opiniões.

#4 MarcusMarinho

MarcusMarinho

    Turista

  • Usuários
  • 59 posts
  • Sexo:Não informado

Posted 29/01/2009, 21:15

olá,

O que está faltando em seu projeto? a documentação poderia liberar ?


Abraços
Marcus

#5 rbslinux

rbslinux

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino
  • Localidade:Rio Branco do Sul - PR

Posted 01/02/2009, 09:11

Marcus.
Bom, o projeto está apenas iniciando. No primeiro passo estou tentando fazer com que o php crie o arquivo para ser enviado para a receita, com a base de dados em mysql. Este script que está ai em cima é o código para gerar o arquivo xml, apenas um esboço. Vou dar mais um incrementada para postar em breve o script completo, já com o sql que vai fazer o preenchimento do campo. Depois teremos outros problemas com a transmissão.
Mas se for possível em php vai ser um sucesso

Script que gera o arquivo xml totalmente concluído. Agora começo a montar a base mysql para preenchimento dos campos.

<?php/*Script desenvolvido por Celio Alexandre Galli[url="http://www.planetariobranco.com.br"]http://www.planetariobranco.com.br[/url]rbslinux@ig.com.brEntre em contato para alguma sugestão de melhoramento...*//*Faz a conexão ao bando de dados -> crie um banco de dados qualquer com as variaveis que serao usadas*/include  "conecta.php";/*Abre um arquivo chamado xml_gerado.xml (aconselhavel criar o arquivo manualmente e mudar atributos para gravar e ler 777 recomendado...*/$vai_xml = fopen("xlm_gerado.xml","w+");/*Começamos a gravar os dados no arquivo xlm....*/fwrite($vai_xml,"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");fwrite($vai_xml,'<NFe xmlns="http://www.portalfiscal.inf.br/nfe">');fwrite($vai_xml,'<infNFe Id="NFe35080599999090910270550010000000015180051273" versao="1.10">');fwrite($vai_xml,"<ide>\n");fwrite($vai_xml,"<cUF>35</cUF>\n");fwrite($vai_xml,"<cNF>518005127</cNF>\n");fwrite($vai_xml,"<natOp>Venda a vista</natOp>\n");fwrite($vai_xml,"<indPag>0</indPag>\n");fwrite($vai_xml,"<mod>55</mod>\n");fwrite($vai_xml,"<serie>1</serie>\n");fwrite($vai_xml,"<nNF>1</nNF>\n");fwrite($vai_xml,"<dEmi>2008-05-06</dEmi>\n");fwrite($vai_xml,"<dSaiEnt>2008-05-06</dSaiEnt>\n");fwrite($vai_xml,"<tpNF>0</tpNF>\n");fwrite($vai_xml,"<cMunFG>3550308</cMunFG>\n");fwrite($vai_xml,"<tpImp>1</tpImp>\n");fwrite($vai_xml,"<tpEmis>1</tpEmis>\n");fwrite($vai_xml,"<cDV>3</cDV>\n");fwrite($vai_xml,"<tpAmb>2</tpAmb>\n");fwrite($vai_xml,"<finNFe>1</finNFe>\n");fwrite($vai_xml,"<procEmi>0</procEmi>\n");fwrite($vai_xml,"<verProc>NF-eletronica.com</verProc>\n");fwrite($vai_xml,"</ide>\n");fwrite($vai_xml,"<emite>\n");fwrite($vai_xml,"<CNPJ>99999090910270</CNPJ>\n");fwrite($vai_xml,"<xNome>NF-e Associacao NF-e</xNome>\n");fwrite($vai_xml,"<xFant>NF-e</xFant>\n");fwrite($vai_xml,"<enderEmit>\n");fwrite($vai_xml,"<xLgr>Rua Central</xLgr>\n");fwrite($vai_xml,"<nro>100</nro>\n");fwrite($vai_xml,"<xCpl>Fundos</xCpl>\n");fwrite($vai_xml,"<xBairro>Distrito Industrial</xBairro>\n");fwrite($vai_xml,"<cMun>3502200</cMun>\n");fwrite($vai_xml,"<xMun>Angatuba</xMun>\n");fwrite($vai_xml,"<UF>SP</UF>\n");fwrite($vai_xml,"<CEP>17100171</CEP>\n");fwrite($vai_xml,"<cPais>1058</cPais>\n");fwrite($vai_xml,"<xPais>Brasil</xPais>\n");fwrite($vai_xml,"<fone>1733021717</fone>\n");fwrite($vai_xml,"</enderEmit>\n");fwrite($vai_xml,"<IE>123456789012</IE>\n");fwrite($vai_xml,"</emite>\n");fwrite($vai_xml,"<dest>\n");fwrite($vai_xml,"<CNPJ>00000000000191</CNPJ>\n");fwrite($vai_xml,"<xNome>DISTRIBUIDORA DE AGUAS MINERAIS</xNome>\n");fwrite($vai_xml,"<enderDest>\n");fwrite($vai_xml,"<xLgr>AV DAS FONTES</xLgr>\n");fwrite($vai_xml,"<nro>1777</nro>\n");fwrite($vai_xml,"<xCpl>10 ANDAR</xCpl>\n");fwrite($vai_xml,"<xBairro>PARQUE FONTES</xBairro>\n");fwrite($vai_xml,"<cMun>5030801</cMun>\n");fwrite($vai_xml,"<xMun>Sao Paulo</xMun>\n");fwrite($vai_xml,"<UF>SP</UF>\n");fwrite($vai_xml,"<CEP>13950000</CEP>\n");fwrite($vai_xml,"<cPais>1058</cPais>\n");fwrite($vai_xml,"<xPais>BRASIL</xPais>\n");fwrite($vai_xml,"<fone>1932011234</fone>\n");fwrite($vai_xml,"</enderDest>\n");fwrite($vai_xml,"<IE></IE>\n");fwrite($vai_xml,"</dest>\n");fwrite($vai_xml,"<retirada>\n");fwrite($vai_xml,"<CNPJ>99171171000194</CNPJ>\n");fwrite($vai_xml,"<xLgr>AV PAULISTA</xLgr>\n");fwrite($vai_xml,"<nro>12345</nro>\n");fwrite($vai_xml,"<xCpl>TERREO</xCpl>\n");fwrite($vai_xml,"<xBairro>CERQUEIRA CESAR</xBairro>\n");fwrite($vai_xml,"<cMun>3550308</cMun>\n");fwrite($vai_xml,"<xMun>SAO PAULO</xMun>\n");fwrite($vai_xml,"<UF>SP</UF>\n");fwrite($vai_xml,"</retirada>\n");fwrite($vai_xml,"<entrega>\n");fwrite($vai_xml,"<CNPJ>99299299000194</CNPJ>\n");fwrite($vai_xml,"<xLgr>AV FARIA LIMA</xLgr>\n");fwrite($vai_xml,"<nro>1500</nro>\n");fwrite($vai_xml,"<xCpl>15 ANDAR</xCpl>\n");fwrite($vai_xml,"<xBairro>PINHEIROS</xBairro>\n");fwrite($vai_xml,"<cMun>3550308</cMun>\n");fwrite($vai_xml,"<xMun>SAO PAULO</xMun>\n");fwrite($vai_xml,"<UF>SP</UF>\n");fwrite($vai_xml,"</entrega>\n");fwrite($vai_xml,'<det nItem="1">\n');fwrite($vai_xml,'</det>\n');fwrite($vai_xml,"</infNFe>\n");fwrite($vai_xml,"</NFe>\n");/*Fecha o arquivo aberto (não é necessário, mas é bom*/fclose($vai_xml);/*Fecha a conexão com o banco de dados*/mysql_close($conecta);?>

Edição feita por: Dudu, 25/02/2009, 15:05.


#6 rbslinux

rbslinux

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino
  • Localidade:Rio Branco do Sul - PR

Posted 06/02/2009, 06:56

Criando o Banco de dados e tabelas ( falta ainda a tabela dos itens)

arquivo conecta.php
===============================================
Caso tenha algum problema entre em contato...
*/

[codebox]/*
Arquivo de configuração da conexão ao banco de dados
Primeiro vamos configura a conexão com o servidor
*/
$servidor = "localhost";//Geralmente é localhost mesmo
$nome_usuario = "usuario";//Nome do usuário do mysql
$senha_usuario = "123456"; //Senha do usuário do mysql
$nome_do_banco = "notafiscal"; //Nome do banco de dados


/*
Agora vamos conectar...
*/
$conecta = mysql_connect("$servidor", "$nome_usuario", "$senha_usuario") or die (mysql_error());
mysql_select_db("$nome_do_banco",$conecta) or die (mysql_error());
$sql = 'CREATE TABLE `cab001` (`NFe` VARCHAR(40) NOT NULL, `infNFe` VARCHAR(62) NOT NULL) ENGINE = MyISAM';
mysql_query($sql,$conecta);
$sql = 'CREATE TABLE `cab002` (`cUF` VARCHAR(2) NOT NULL, `cNF` VARCHAR(9) NOT NULL, `natOp` VARCHAR(14) NOT NULL, `indPag` VARCHAR(1) NOT NULL, `mod1` VARCHAR(2) NOT NULL, `serie` VARCHAR(1) NOT NULL, `nNF` VARCHAR(12) NOT NULL, `dEmi` DATE NOT NULL, `dSaiEnt` DATE NOT NULL, `tpNF` VARCHAR(1) NOT NULL, `cMunFG` VARCHAR(7) NOT NULL, `tpImp` VARCHAR(1) NOT NULL, `tpEmis` VARCHAR(1) NOT NULL, `cDV` VARCHAR(1) NOT NULL, `tpAmb` VARCHAR(1) NOT NULL, `finNFe` VARCHAR(1) NOT NULL, `procEmi` VARCHAR(1) NOT NULL, `verProc` VARCHAR(20) NOT NULL) ENGINE = MyISAM';
mysql_query($sql,$conecta);
$sql = 'CREATE TABLE `emite` (`CNPJ` VARCHAR(14) NOT NULL, `xNome` VARCHAR(50) NOT NULL, `xFant` VARCHAR(50) NOT NULL, `xLgr` VARCHAR(50) NOT NULL, `nro` VARCHAR(5) NOT NULL, `xCpl` VARCHAR(20) NOT NULL, `xBairro` VARCHAR(25) NOT NULL, `cMun` VARCHAR(7) NOT NULL, `xMun` VARCHAR(25) NOT NULL, `UF` VARCHAR(2) NOT NULL, `CEP` VARCHAR(8) NOT NULL, `cPais` VARCHAR(4) NOT NULL, `xPais` VARCHAR(15) NOT NULL, `fone` VARCHAR(12) NOT NULL, `IE` VARCHAR(12) NOT NULL) ENGINE = MyISAM';
mysql_query($sql,$conecta);
$sql = 'CREATE TABLE `dest` (`CNPJ` VARCHAR(14) NOT NULL, `xNome` VARCHAR(40) NOT NULL, `xLgr` VARCHAR(50) NOT NULL, `nro` VARCHAR(6) NOT NULL, `xCpl` VARCHAR(20) NOT NULL, `xBairro` VARCHAR(25) NOT NULL, `cMun` VARCHAR(7) NOT NULL, `xMun` VARCHAR(20) NOT NULL, `UF` VARCHAR(2) NOT NULL, `CEP` VARCHAR(8) NOT NULL, `cPais` VARCHAR(4) NOT NULL, `xPais` VARCHAR(20) NOT NULL, `fone` VARCHAR(12) NOT NULL, `IE` VARCHAR(14) NOT NULL) ENGINE = MyISAM';
mysql_query($sql,$conecta);
$sql = 'CREATE TABLE `retirada` (`CNPJ` VARCHAR(14) NOT NULL, `xLgr` VARCHAR(25) NOT NULL, `nro` VARCHAR(6) NOT NULL, `xCpl` VARCHAR(20) NOT NULL, `xBairro` VARCHAR(25) NOT NULL, `cMun` VARCHAR(7) NOT NULL, `xMun` VARCHAR(20) NOT NULL, `UF` VARCHAR(2) NOT NULL) ENGINE = MyISAM';
mysql_query($sql,$conecta);
$sql = 'CREATE TABLE `entrega` (`CNPJ` VARCHAR(14) NOT NULL, `xLgr` VARCHAR(25) NOT NULL, `nro` VARCHAR(6) NOT NULL, `xCpl` VARCHAR(20) NOT NULL, `xBairro` VARCHAR(25) NOT NULL, `cMun` VARCHAR(7) NOT NULL, `xMun` VARCHAR(20) NOT NULL, `UF` VARCHAR(2) NOT NULL) ENGINE = MyISAM';
mysql_query($sql,$conecta);
?>[/codebox]

Arquivo incluir.php
Form para inclusão dos dados

[codebox]<html>
<head>
<title>Incluir Dados</title>
</head>
<form name="incluir" action="insere.php" method="post">

<p align="center"><h1>Inclusão do Cabeçalho da Nota Fiscal Eletrônica</h1></p>
NFe: <input type="text" name="numero_nota" size="40" maxlength="80">&nbsp;&nbsp;infNFe:<input type="text" name="inf_NFE" size="62"> <br> <br>
<hr>
<h3>Inclusão dos Dados da Nota Fiscal Eletrônica</h3>
cUF : <input type="text" name="cUF" size="2" maxlength="80"> &nbsp;
cNF :<input type="text" name="cNF" size="9"> &nbsp;
natOp :<input type="text" name="natOp" size="14"> &nbsp;
indPag :<input type="text" name="indPag" size="1"> &nbsp;
mod1 :<input type="text" name="mod1" size="2"> <br> <br>
serie :<input type="text" name="serie" size="1"> &nbsp;
nNF :<input type="text" name="nNF" size="12"> &nbsp;
dEmi :<input type="date" name="dEmi" size="10"> &nbsp;
dSaiEnt :<input type="date" name="dSaiEnt" size="10"> &nbsp;
tpNF :<input type="text" name="tpNF" size="1"> <br> <br>
cMunFG :<input type="text" name="cMunFG" size="7">&nbsp;
tpImp :<input type="text" name="tpImp" size="1"> &nbsp;
tpEmis :<input type="text" name="tpEmis" size="1"> &nbsp;
cDV :<input type="text" name="cDV" size="1"> &nbsp;
tpAmb :<input type="text" name="tpAmb" size="1"> <br> <br>
finNFe :<input type="text" name="finNFe" size="1"> &nbsp;
procEmi :<input type="text" name="procEmi" size="1"> &nbsp;
verProc:<input type="text" name="verProc" size="1"> &nbsp;
<hr><p align="center">
<h3>Dados do Emitente</h3>
CNPJ:<input type="text" name="CNPJ1" size="14"> &nbsp;
xNome<input type="text" name="xNome1" size="50"> &nbsp;
xFant<input type="text" name="xFant1" size="50"> &nbsp;<br><br>
xLgr<input type="text" name="xLgr1" size="50"> &nbsp;
nro<input type="text" name="nro1" size="5"> &nbsp;
xCpl<input type="text" name="xCpl1" size="20"> &nbsp;
xBairro<input type="text" name="xBairro1" size="25"> &nbsp;<br><br>
cMun<input type="text" name="cMun1" size="7"> &nbsp;
xMun<input type="text" name="xMun1" size="25"> &nbsp;
UF<input type="text" name="UF1" size="2"> &nbsp;
CEP<input type="text" name="CEP1" size="8"> &nbsp;
cPais<input type="text" name="cPais1" size="4"> &nbsp;
xPais<input type="text" name="xPais1" size="15"> &nbsp;
fone<input type="text" name="fone1" size="12"> &nbsp;<br><br>
IE<input type="text" name="IE1" size="12"> &nbsp;</p>
<hr>
<h3>Dados do Destinatário</h3>
CNPJ:<input type="text" name="CNPJ2" size="14"> &nbsp;
xNome<input type="text" name="xNome2" size="40"> &nbsp;
xLgr<input type="text" name="xLgr2" size="50"> &nbsp;<br><br>
nro<input type="text" name="nro2" size="6"> &nbsp;
xCpl<input type="text" name="xCpl2" size="20"> &nbsp;
xBairro<input type="text" name="xBairro2" size="25"> &nbsp;<br><br>
cMun<input type="text" name="cMun2" size="7"> &nbsp;
xMun<input type="text" name="xMun2" size="25"> &nbsp;
UF<input type="text" name="UF2" size="2"> &nbsp;
CEP<input type="text" name="CEP2" size="8"> &nbsp;
cPais<input type="text" name="cPais2" size="4"> &nbsp;
xPais<input type="text" name="xPais2" size="15"> &nbsp;
fone<input type="text" name="fone2" size="12"> &nbsp;<br><br>
IE<input type="text" name="IE2" size="12"> &nbsp;</p>
<hr>
<h3>Retirada</h3>
CNPJ:<input type="text" name="CNPJ3" size="14"> &nbsp;
xLgr<input type="text" name="xLgr3" size="25"> &nbsp;
nro<input type="text" name="nro3" size="6"> &nbsp;<br><br>
xCpl<input type="text" name="xCpl3" size="20"> &nbsp;
xBairro<input type="text" name="xBairro3" size="25"> &nbsp;
cMun<input type="text" name="cMun3" size="7"> &nbsp;<br><br>
xMun<input type="text" name="xMun3" size="20"> &nbsp;
UF<input type="text" name="UF3" size="2"> &nbsp;
<hr>
<h3>Entrega</h3>
CNPJ:<input type="text" name="CNPJ4" size="14"> &nbsp;
xLgr<input type="text" name="xLgr4" size="25"> &nbsp;
nro<input type="text" name="nro4" size="6"> &nbsp;<br><br>
xCpl<input type="text" name="xCpl4" size="20"> &nbsp;
xBairro<input type="text" name="xBairro4" size="25"> &nbsp;
cMun<input type="text" name="cMun4" size="7"> &nbsp;<br><br>
xMun<input type="text" name="xMun4" size="20"> &nbsp;
UF<input type="text" name="UF4" size="2"> &nbsp;
<hr>
<center><input type="submit" value="Incluir"></center>

</form>


<body>

</body>
</html>[/codebox]

arquivo insere.php

Se alguém puder colaborar na melhoria dos script poderia postar aqui.

Estou fazendo a conexao com mysql e o arquivo que gera o xml.
em breve irei postar aqui.
Colaborem com o projeto de Nota Fiscal Eletrônica em php


[codebox]<?
$servidor = "localhost";//Geralmente é localhost mesmo
$nome_usuario = "usuario";//Nome do usuário do mysql
$senha_usuario = "1234567"; //Senha do usuário do mysql
$nome_do_banco = "notafiscal"; //Nome do banco de dados
$numero_nota=$_POST[numero_nota];
$inf_NFE=$_POST[inf_NFE];
// cabecalho parte 2
$cUF ==$_POST[cUF];
$cNF=$_POST[cNF];
$natOp=$_POST[natOp];
$indPag=$_POST[indPag];
$mod1=$_POST[mod1];
$serie=$_POST[serie];
$nNF=$_POST[nNF];
$dEmi=$_POST[dEmi];
$dSaiEnt=$_POST[dSaiEnt];
$tpNF=$_POST[tpNF];
$cMunFG=$_POST[cMunFG];
$tpImp=$_POST[cMunFG];
$tpEmis=$_POST[tpEmis];
$cDV=$_POST[cDV];
$tpAmb=$_POST[tpAmb];
$finNFe=$_POST[finNFe];
$procEmi=$_POST[procEmi];
$verProc=$_POST[verProc];
//Dados do emitente
$CNPJ1=$_POST[CNPJ1];
$xNome1=$_POST[xNome1];
$xFant1=$_POST[xFant1];
$xLgr1=$_POST[xLgr1];
$nro1=$_POST[nro1];
$xCpl1=$_POST[xCpl1];
$xBairro1=$_POST[xBairro1];
$cMun1=$_POST[cMun1];
$xMun1=$_POST[xMun1];
$UF1=$_POST[UF1];
$CEP1=$_POST[CEP1];
$Pais1=$_POST[Pais1];
$xPais1=$_POST[xPais1];
$fone1=$_POST[fone1];
$IE1=$_POST[IE1];

//Dados do destinatário
$CNPJ2=$_POST[CNPJ2];
$xNome2=$_POST[xNome2];
$xFant2=$_POST[xFant2];
$xLgr2=$_POST[xLgr2];
$nro2=$_POST[nro2];
$xCpl2=$_POST[xCpl2];
$xBairro2=$_POST[xBairro2];
$cMun2=$_POST[cMun2];
$xMun2=$_POST[xMun2];
$UF2=$_POST[UF2];
$CEP2=$_POST[CEP2];
$Pais2=$_POST[Pais2];
$xPais2=$_POST[xPais2];
$fone2=$_POST[fone2];
$IE2=$_POST[IE2];

//Dados da Retirada
$CNPJ3=$_POST[CNPJ3];
$xLgr3=$_POST[xLgr3];
$nro3=$_POST[nro3];
$xCpl3=$_POST[xCpl3];
$xBairro3=$_POST[xBairro3];
$cMun3=$_POST[cMun3];
$xMun3=$_POST[xMun3];
$UF3=$_POST[UF3];

//Dados da Entrega
$CNPJ4=$_POST[CNPJ4];
$xLgr4=$_POST[xLgr4];
$nro4=$_POST[nro4];
$xCpl4=$_POST[xCpl4];
$xBairro4=$_POST[xBairro4];
$cMun4=$_POST[cMun4];
$xMun4=$_POST[xMun4];
$UF4=$_POST[UF4];
/*
Agora vamos conectar...
*/
$conecta = mysql_connect("$servidor", "$nome_usuario", "$senha_usuario") or die (mysql_error());
mysql_select_db("$nome_do_banco",$conecta) or die (mysql_error());
// depois de conectado vamos inserir os dados
$sql = "INSERT INTO cab001(NFe,infNFe) VALUES ('$numero_nota', '$inf_NFE');";
mysql_query($sql,$conecta) or die (mysql_error());
$sql = "INSERT INTO cab002(cUF,cNF,natOp,indPag,mod1,serie,nNF,dEmi,dSaiEnt,tpNF,cMunFG,tpImp,tpEmis,cDV,tpAmb,finNFe,procEmi,verProc) VALUES ('$cUF','$cNF','$natOp','$indPag','$mod1','$serie','$nNF','$dEmi','$dSaiEnt','$tpNF','$cMunFG','$tpImp','$tpEmis','$cDV','$tpAmb','$finNFe','$procEmi','$verProc');";
mysql_query($sql,$conecta) or die (mysql_error());
$sql = "INSERT INTO emite (CNPJ,xNome,xFant,xLgr,nro,xCpl,xBairro,cMun,xMun,UF,CEP,cPais,xPais,fone,IE) VALUES ('$CNPJ1','$xNome1','$xFant1','$xLgr1','$nro1','$xCpl1','$xBairro1','$cMun1','$xMun1','$UF1','$CEP1','$cPais1','$xPais1','$fone1','$IE1');";
mysql_query($sql,$conecta) or die (mysql_error());
$sql = "INSERT INTO dest (CNPJ,xNome,xLgr,nro,xCpl,xBairro,cMun,xMun,UF,CEP,cPais,xPais,fone,IE) VALUES ('$CNPJ2','$xNome2','$xLgr2','$nro2','$xCpl2','$xBairro2','$cMun2','$xMun2','$UF2','$CEP2','$cPais2','$xPais2','$fone2','$IE2');";
mysql_query($sql,$conecta) or die (mysql_error());
$sql = "INSERT INTO entrega (CNPJ,xLgr,nro,xCpl,xBairro,cMun,xMun,UF) VALUES ('$CNPJ4','$xLgr4','$nro4','$xCpl4','$xBairro4','$cMun4','$xMun4','$UF4');";
mysql_query($sql,$conecta) or die (mysql_error());
$sql = "INSERT INTO retirada (CNPJ,xLgr,nro,xCpl,xBairro,cMun,xMun,UF) VALUES ('$CNPJ3','$xLgr3','$nro3','$xCpl3','$xBairro3','$cMun3','$xMun3','$UF3');";
mysql_query($sql,$conecta) or die (mysql_error());[/codebox]

Edição feita por: Dudu, 25/02/2009, 15:09.


#7 Fish

Fish

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 11/02/2009, 09:43

Caro Fish:
Agora estou estudando xml, não tem como desenvolver em php sem ter muito conhecimento em xml. Se tiver alguma novidade de seu projeto, poderia ir postando aqui para darmos opiniões.


Bom dia Rbslinux,

Gostaria de usar uma aplicação em php para essa solução, porém como o tempo esta ficando curto, estou finalizando a NF-E (provisoria). Minha solução provisoria foi exportar um txt e importar no programa que a receita oferece.

De acordo que pinta um tempo livre, estou pesquisando como desenvolver com PHP, estou ainda so a pesquisar, estou mais claro em relação como funciona.

#8 Thiago Ferri

Thiago Ferri

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 13/02/2009, 16:13

Opa, fiz o mesmo esquema para gerar XML, a tela de input's tb ja desenvolvi, mas estou com problema na hra de gerar, DIGEST VALUE, ASSINATURA e CERTIFICADO.

Alguem consegui ?

Obrigado.

#9 hooligans

hooligans

    Normal

  • Usuários
  • 83 posts
  • Sexo:Não informado

Posted 08/06/2009, 12:14

gostaria de saber como anda o projeto da NFE e me oferecer pra ajudar no projeto não manjo nada de NFE estou começando agora mas se precisarem de algo com php ai estamos ai

#10 Paulo Gabriel

Paulo Gabriel

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 11/08/2009, 16:42

Olá pessoal!

Já existe um projeto de código aberto chamado NFePHP (Nota fiscal eletrônica em PHP), lançado em junho, que está num estágio avançado, porém precisa de colaboradores para sua conclusão.

O site é:
http://www.assembla....iki/show/nfephp

Na wikipedia:
http://pt.wikipedia.org/wiki/NFePHP

Acredito que unindo forças podemos ter um sistema profissional e de código aberto.

Atualmente o projeto já valida e assina os XML, e envia em lotes através de webservices. A assinatura usa biblioteca própria, não necessitando de programas externos.

Quem puder, participe!

#11 Antonio Newlands

Antonio Newlands

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 12/08/2009, 08:56

Olá pessoal!

Já existe um projeto de código aberto chamado NFePHP (Nota fiscal eletrônica em PHP), lançado em junho, que está num estágio avançado, porém precisa de colaboradores para sua conclusão.

O site é:
http://www.assembla....iki/show/nfephp

Na wikipedia:
http://pt.wikipedia.org/wiki/NFePHP

Acredito que unindo forças podemos ter um sistema profissional e de código aberto.

Atualmente o projeto já valida e assina os XML, e envia em lotes através de webservices. A assinatura usa biblioteca própria, não necessitando de programas externos.

Quem puder, participe!


Eu baixei este sistema a partir de http://code.assembla...n...=zip&rev=38, e o que notei é que ele tem mais bugs do que uma colméia :lol:
Mesmo depois de conseguir corrigir algumas coisas, ainda aparece a seguinte mensagem: "Warning: openssl_sign() [function.openssl-sign]: supplied key param cannot be coerced into a private key in C:\xampp\htdocs\OK\nfephp\libs\classNFEtools.php on line 828" alguém conseguiu consertar isso? Ele até gera o arquivo xml mas não assina. Outra coisa: o parâmetro signaturevalue é gerado usando base64_encode() do que? Da chave rsa extraída do certificado ou de outro dado?
Grato,
Antonio

Edição feita por: Antonio Newlands, 12/08/2009, 13:09.

Antonio Newlands - Webdesigner
http://www.antonionewlands.com.br

#12 Paulo Gabriel

Paulo Gabriel

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 12/08/2009, 13:20

Olá Antonio!

Não se esqueça de configurar corretamente os parâmetros do arquivo config_inc.php

Nesse arquivo você deve especificar os diretórios, como os diretórios onde serão gravadas as notas, dado que deve estar preenchido para o correto funcionamento da linha 828 do arquivo classNFEtools.php

if ($outDir != ''){
				$outname = $outDir.$idnome.'-NFe.xml';
				$ret = $xmldoc->save($outname);
			}


E como eu disse, o projeto "está num estágio avançado, porém precisa de colaboradores para sua conclusão" ;)

E são colaboradores como você que podem nos ajudar a concluir o projeto, já que os erros acontecem, e é com a crítica que se refina o trabalho! (Viva o código aberto!)

É isso! Obrigado!

#13 Antonio Newlands

Antonio Newlands

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 12/08/2009, 17:59

Olá Antonio!

Não se esqueça de configurar corretamente os parâmetros do arquivo config_inc.php

Nesse arquivo você deve especificar os diretórios, como os diretórios onde serão gravadas as notas, dado que deve estar preenchido para o correto funcionamento da linha 828 do arquivo classNFEtools.php

if ($outDir != ''){
				$outname = $outDir.$idnome.'-NFe.xml';
				$ret = $xmldoc->save($outname);
			}


E como eu disse, o projeto "está num estágio avançado, porém precisa de colaboradores para sua conclusão" ;)

E são colaboradores como você que podem nos ajudar a concluir o projeto, já que os erros acontecem, e é com a crítica que se refina o trabalho! (Viva o código aberto!)

É isso! Obrigado!


Eu fiz isso; afinal a árvore de diretórios do arquivo original indicam um sistema Linux; na minha máquina ficou assim:


// NF-e para assinar e enviar
$entradasDir = 'c:/xampp/htdocs/OK/nfephp/NFeFiles/entradasNF/';
// NF-e assinadas, ms nao validadas
$assinadasDir = 'c:/xampp/htdocs/OK/nfephp/NFeFiles/assinadasNF/';
// NF-e ja assinadas, validadas e prontas para envio
$validadasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/validadasNF/';
$aprovadasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/aprovadasNF/';
// NF-e ja enviadas (individualmente ou em lote)
$enviadasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/enviadasNF/';
$canceladasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/canceladasNF/';
$inutilizadasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/inutilizadasNF/';
$temporarioDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/temporarioNF/';
$recebidasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/recebidasNF/';
$consultadas='c:/xampp/htdocs/OK/nfephp/NFeFiles/consultadasNF/';
// Bibliotecas e classes
$libDir='c:/xampp/htdocs/OK/nfephp/libs/';
// Certificados e chaves
$certDir='c:/xampp/htdocs/OK/nfephp/certs/';
// Esquemas
$xsdDir='c:/xampp/htdocs/OK/nfephp/xsd/';



Fiz uma gambiarra no classNFEtools.php para que ele abra diretamente o certificado pfx, já que ele não conseguia pegar o nome do arquivo, e agora consigo assinar as notas. Mesmo assim ocorre o erro Warning: openssl_x509_read() [function.openssl-x509-read]: supplied parameter cannot be coerced into an X509 certificate! in C:\xampp\htdocs\OK\nfephp\validNF.php on line 70 ao tentar validar as notas fiscais. O arquivo validXSD.php não consegue abrir os arquivos xsd, mesmo com a configuração de diretórios correta; parece que a função listDir não entende arquivos com nomes tipo coisa.01.xsd, alguém também notou isso? E o arquivo danfe.php dá a seguinte mensagem de erro ao ser aberto, mesmo tendo preenchido os argumentos requeridos pela função com valores de teste:

Warning: Missing argument 7 for DANFE::caixaTexto(), called in C:\xampp\htdocs\OK\nfephp\danfe.php on line 235 and defined in C:\xampp\htdocs\OK\nfephp\danfe.php on line 65

Warning: Missing argument 8 for DANFE::caixaTexto(), called in C:\xampp\htdocs\OK\nfephp\danfe.php on line 235 and defined in C:\xampp\htdocs\OK\nfephp\danfe.php on line 65

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\OK\nfephp\danfe.php:65) in C:\xampp\htdocs\OK\nfephp\libs\fpdf\fpdf.php on line 1017
FPDF error: Some data has already been output, can't send PDF file


E o parâmetro signatureValue, é gerado a partir de qual dado? Parece que é da chave privada do certificado, alguém confirma?

Edição feita por: Antonio Newlands, 14/08/2009, 18:16.

Antonio Newlands - Webdesigner
http://www.antonionewlands.com.br

#14 Antonio Newlands

Antonio Newlands

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 07/10/2009, 14:04

Olá Antonio!

Não se esqueça de configurar corretamente os parâmetros do arquivo config_inc.php

Nesse arquivo você deve especificar os diretórios, como os diretórios onde serão gravadas as notas, dado que deve estar preenchido para o correto funcionamento da linha 828 do arquivo classNFEtools.php

if ($outDir != ''){
				$outname = $outDir.$idnome.'-NFe.xml';
				$ret = $xmldoc->save($outname);
			}


E como eu disse, o projeto "está num estágio avançado, porém precisa de colaboradores para sua conclusão" ;)

E são colaboradores como você que podem nos ajudar a concluir o projeto, já que os erros acontecem, e é com a crítica que se refina o trabalho! (Viva o código aberto!)

É isso! Obrigado!


Eu fiz isso; afinal a árvore de diretórios do arquivo original indicam um sistema Linux; na minha máquina ficou assim:


// NF-e para assinar e enviar
$entradasDir = 'c:/xampp/htdocs/OK/nfephp/NFeFiles/entradasNF/';
// NF-e assinadas, ms nao validadas
$assinadasDir = 'c:/xampp/htdocs/OK/nfephp/NFeFiles/assinadasNF/';
// NF-e ja assinadas, validadas e prontas para envio
$validadasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/validadasNF/';
$aprovadasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/aprovadasNF/';
// NF-e ja enviadas (individualmente ou em lote)
$enviadasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/enviadasNF/';
$canceladasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/canceladasNF/';
$inutilizadasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/inutilizadasNF/';
$temporarioDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/temporarioNF/';
$recebidasDir='c:/xampp/htdocs/OK/nfephp/NFeFiles/recebidasNF/';
$consultadas='c:/xampp/htdocs/OK/nfephp/NFeFiles/consultadasNF/';
// Bibliotecas e classes
$libDir='c:/xampp/htdocs/OK/nfephp/libs/';
// Certificados e chaves
$certDir='c:/xampp/htdocs/OK/nfephp/certs/';
// Esquemas
$xsdDir='c:/xampp/htdocs/OK/nfephp/xsd/';



Fiz uma gambiarra no classNFEtools.php para que ele abra diretamente o certificado pfx, já que ele não conseguia pegar o nome do arquivo, e agora consigo assinar as notas. Mesmo assim ocorre o erro Warning: openssl_x509_read() [function.openssl-x509-read]: supplied parameter cannot be coerced into an X509 certificate! in C:\xampp\htdocs\OK\nfephp\validNF.php on line 70 ao tentar validar as notas fiscais. O arquivo validXSD.php não consegue abrir os arquivos xsd, mesmo com a configuração de diretórios correta; parece que a função listDir não entende arquivos com nomes tipo coisa.01.xsd, alguém também notou isso? E o arquivo danfe.php dá a seguinte mensagem de erro ao ser aberto, mesmo tendo preenchido os argumentos requeridos pela função com valores de teste:

Warning: Missing argument 7 for DANFE::caixaTexto(), called in C:\xampp\htdocs\OK\nfephp\danfe.php on line 235 and defined in C:\xampp\htdocs\OK\nfephp\danfe.php on line 65

Warning: Missing argument 8 for DANFE::caixaTexto(), called in C:\xampp\htdocs\OK\nfephp\danfe.php on line 235 and defined in C:\xampp\htdocs\OK\nfephp\danfe.php on line 65

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\OK\nfephp\danfe.php:65) in C:\xampp\htdocs\OK\nfephp\libs\fpdf\fpdf.php on line 1017
FPDF error: Some data has already been output, can't send PDF file


E o parâmetro signatureValue, é gerado a partir de qual dado? Parece que é da chave privada do certificado, alguém confirma?


(n) Estou desde Agosto esperando por essas respostas e até agora ninguém respondeu! Acho que sei porque: porque os autores deste "projeto" de NF-e em php são uns babacas incompetentes que só queriam posar de fodões em programação em php mas são uns MERDAS que inventaram uma porcaria que não funciona de jeito nenhum e agora sumiram pra não ter que assumir publicamente a cagada que fizeram.

ESQUEÇAM ESSA xxxxxx DE PROJETO porque ele NÃO FUNCIONA E JAMAIS FUNCIONARÁ!
E xxxxxx-se se me banirem desse forum... :angry:
Antonio Newlands - Webdesigner
http://www.antonionewlands.com.br

#15 daniborgs

daniborgs

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 14/12/2009, 15:01

Grande rbslinux, está muito bom este início de projeto e um tanto adiantado. Comecei agora com ele e vou ajudá-lo. Parabéns e muito obrigado. Inté mais.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq