Existe uma forma simples de automatizar a emissão de NFCe em seu software desenvolvido em PHP, contanto que ele esteja instalado no windows. Quero te apresentar a integração com o Componente NFCe da TecnoSpeed.
Para demonstrar como usar o Componente NFCe, foi utilizado o XAMPP. Neste caso, para liberar o uso da classe COM, é necessário ter no arquivo de configuração, as seguintes extensions:
extension_dir = "./"
[PHP_COM_DOTNET]
extension=com_dotnet
O exemplo de uso, foi feito uma página simples com HTML e PHP. Para comunicar entre os fontes PHP, foi utilizado requisições com Ajax de uma maneira bem simples.
Após ter instalado o componente na máquina, basta fazer a instancia da classe do componente no PHP, conforme exemplo:
$spdNFCe = new COM("NFCeX.spdNFCeX"); //instanciando a NFCeX.dll
$spdNFCeDataSets = new COM("NFCeDataSetX.spdNFCeDataSetX");//instanciando a NfCeDataSetX.dll
Logo após criar o objeto do componente, é necessário configurar a Software House emissora, inserindo o CNPJ de contrato com a TecnoSpeed (Segundo parâmetro pode ir em branco, será implementado futuramente):
$spdNFCe->ConfigurarSoftwareHouse('00000000000000', "");
Para fazer as configurações, pode-se utilizar o arquivo ini e também pode-se configurar por fonte.
Via arquivo ini basta utilizar o seguinte método:
$spdNFCe->LoadConfig("C:/xampp/htdocs/projeto/nfceconfig.ini");
As configurações via fonte devem ser feitas da seguinte maneira:
// $spdNFCe->NomeCertificado = "";
// Para a arquitetura de uma aplicação Web, é recomendado usar o caminho e
senha do certificado, pois assim basta que passe o arquivo .pfx e a senha.
$spdNFCe->CaminhoCertificado = "C:\xampp\htdocs\certificado.pfx";
$spdNFCe->SenhaCertificado = "senha123";
$spdNFCe->UF = "PR";
$spdNFCe->CNPJ = "29062609000177";
$spdNFCe->ArquivoServidoresHom = "C:/Program Files/TecnoSpeed/NFCe/Arquivos/nfceServidoresHom.ini";
$spdNFCe->ArquivoServidoresProd = "C:/Program Files/TecnoSpeed/NFCe/Arquivos/nfceServidoresProd.ini";
$spdNFCe->DiretorioEsquemas = "C:/Program Files/TecnoSpeed/NFCe/Arquivos/Esquemas";
$spdNFCe->DiretorioTemplates = "C:/Program Files/TecnoSpeed/NFCe/Arquivos/Templates";
$spdNFCe->DiretorioLog = "C:/xampp/htdocs/TestesNFCeLog";
$spdNFCe->VersaoManual = "6.0";
$spdNFCe->ConexaoSegura = 1;
$spdNFCe->TimeOut = 60000;
$spdNFCe->Ambiente = 2;
$spdNFCe->MaxSizeLoteEnvio = 500;
$spdNFCe->DiretorioXmlDestinatario = "C:/xampp/htdocs/XMLDestinatario";
$spdNFCe->DiretorioLogErro = "C:/xampp\htdocs/LogErro";
$spdNFCe->DiretorioTemporario = "C:/xampp/htdocs/Temp";
$spdNFCe->CaracteresRemoverAcentos="áéíóúàèìòùâêîôûäëïöüãõñçÁÉÍÓÚÀÈÌÒÙÂÊÎÔÛÄËÏÖÜÃÕÑǺª&@";
Métodos do Componente NFC-e
Consulta de Status: Método utilizado para realizar a consulta de Status da UF configurada na propriedade $spdNFCe->UF. Tem como retorno um XML com a resposta do Web Service da UF.
<?php include("instanciaComponente.php");// Arquivo PHP que instancia o componente e passa as configurações
try{
echo $spdNFCe->StatusDoServico();//Consulta o Status do serviço
}
catch(Exception $e)
{
echo $e;
}
unset($spdNFCe);//Destroi a instancia da dll NFCeX.dll
unset($spdNFCeDataSets);//Destroi a instancia da dll NFCeDataSetX.dll
?>
Gerar XML por Data Set: Método do componente NFC-e para gerar o XML através da implementação do DataSet.
"Mas ainda não sei como funciona a NFC-e, como vou entender o Data Set do componente ?"
<?php include("index.php");// Arquivo PHP que instancia o componente e passa as configurações
try{
$XML = "";
$spdNFCeDataSets->VersaoEsquema = "pl_009";
$spdNFCeDataSets->DicionarioXML = "C:\\Program Files\\TecnoSpeed\\NFCe\Arquivos\\Templates\\vm60\\Conversor\\NFCeDataSets.xml";
$datahora = date('YYYY-MM-DDTHH:MM:SS');
$spdNFCeDataSets->Incluir();
//Dados da NFC-e
$spdNFCeDataSets->SetCampo("versao_A02=4.00");
$spdNFCeDataSets->SetCampo("Id_A03=0");
$spdNFCeDataSets->SetCampo("cUF_B02=41");
$spdNFCeDataSets->SetCampo("cNF_B03=5");
$spdNFCeDataSets->SetCampo("natOp_B04=VENDA MERC.ADQ.REC.TERC");
$spdNFCeDataSets->SetCampo("mod_B06=65");
$spdNFCeDataSets->SetCampo("serie_B07=".rand(20000,90000));
$spdNFCeDataSets->SetCampo("nNF_B08=312342");
$spdNFCeDataSets->SetCampo("dhEmi_B09=".$datahora);
$spdNFCeDataSets->SetCampo("tpNF_B11=1");
$spdNFCeDataSets->SetCampo("idDest_B11a=1");
$spdNFCeDataSets->SetCampo("cMunFG_B12=4115200");
$spdNFCeDataSets->SetCampo("tpImp_B21=4");
$spdNFCeDataSets->SetCampo("tpEmis_B22=1");
$spdNFCeDataSets->SetCampo("cDV_B23=0");
$spdNFCeDataSets->SetCampo("tpAmb_B24=2");
$spdNFCeDataSets->SetCampo("finNFe_B25=1");
$spdNFCeDataSets->SetCampo("indFinal_B25a=1");
$spdNFCeDataSets->SetCampo("indPres_B25b=0");
$spdNFCeDataSets->SetCampo("indIntermed_B25c=0");
$spdNFCeDataSets->SetCampo("procEmi_B26=0");
$spdNFCeDataSets->SetCampo("verProc_B27=TecnoPHP BHETA");
//Dados do Emitente
$spdNFCeDataSets->SetCampo("CNPJ_C02=00000000000000");
$spdNFCeDataSets->SetCampo("xNome_C03=Exemplo de Razão Social");
$spdNFCeDataSets->SetCampo("xFant_C04=Exemplo de nome fantasia");
$spdNFCeDataSets->SetCampo("xLgr_C06=Exemplo");
$spdNFCeDataSets->SetCampo("nro_C07=123");
$spdNFCeDataSets->SetCampo("xBairro_C09=Bairro de Exemplo");
$spdNFCeDataSets->SetCampo("cMun_C10=4115200");
$spdNFCeDataSets->SetCampo("xMun_C11=Maringa");
$spdNFCeDataSets->SetCampo("UF_C12=PR");
$spdNFCeDataSets->SetCampo("CEP_C13=87500000");
$spdNFCeDataSets->SetCampo("cPais_C14=1058");
$spdNFCeDataSets->SetCampo("xPais_C15=Brasil");
$spdNFCeDataSets->SetCampo("indIEDest_E16a=9");
$spdNFCeDataSets->SetCampo("IE_C17=9044016688");
$spdNFCeDataSets->SetCampo("IEST_C18=");
$spdNFCeDataSets->SetCampo("CRT_C21=3");
//Dados Destinatário do Dataset
$spdNFCeDataSets->IncluirParte("YA");
$spdNFCeDataSets->SetCampo("tPag_YA02=01");
$spdNFCeDataSets->SetCampo("vPag_YA03=2.50");
//$spdNFCeDatasets->SalvarParte("YA");
//Dados do Itens
$spdNFCeDataSets->IncluirItem();
$spdNFCeDataSets->SetCampo("nItem_H02=1");
$spdNFCeDataSets->SetCampo("xProd_I04=MELAO Saborozinho");
$spdNFCeDataSets->SetCampo("cProd_I02=0999");
$spdNFCeDataSets->SetCampo("cEAN_I03=");
$spdNFCeDataSets->SetCampo("NCM_I05=11081200");
$spdNFCeDataSets->SetCampo("CFOP_I08=51020");
$spdNFCeDataSets->SetCampo("CEST_I05c=");
$spdNFCeDataSets->SetCampo("uCom_I09=AABCC");
$spdNFCeDataSets->SetCampo("qCom_I10=1.00");
$spdNFCeDataSets->SetCampo("vUnCom_I10a=10.0000");
$spdNFCeDataSets->SetCampo("vProd_I11=10.00");
$spdNFCeDataSets->SetCampo("cEANTrib_I12=");
$spdNFCeDataSets->SetCampo("uTrib_I13=AABCC");
$spdNFCeDataSets->SetCampo("qTrib_I14=1");
$spdNFCeDataSets->SetCampo("vUnTrib_I14a=10.00");
$spdNFCeDataSets->SetCampo("indTot_I17b=1");
$spdNFCeDataSets->SetCampo("infAdProd_V01=Observações do produto infAdProd");
$spdNFCeDataSets->SalvarItem();
//Dados de Prestação de Serviço do Dataset
$spdNFCeDataSets->SetCampo("vBC_W03=0.01");
$spdNFCeDataSets->SetCampo("vICMS_W04=0.01");
$spdNFCeDataSets->SetCampo("vICMSDeson_W04a=0.00");
$spdNFCeDataSets->SetCampo("vFCPUFDest_W04c=0.00");
$spdNFCeDataSets->SetCampo("vICMSUFDest_W04e=0.00");
$spdNFCeDataSets->SetCampo("vICMSUFRemet_W04g=0.00");
$spdNFCeDataSets->SetCampo("vFCP_W04h=0.00");
$spdNFCeDataSets->SetCampo("vBCST_W05=0.00");
$spdNFCeDataSets->SetCampo("vST_W06=0.00");
$spdNFCeDataSets->SetCampo("vFCPST_W06a=0.00");
$spdNFCeDataSets->SetCampo("vFCPSTRet_W06b=0.00");
$spdNFCeDataSets->SetCampo("vProd_W07=2.50");
$spdNFCeDataSets->SetCampo("vFrete_W08=0.00");
$spdNFCeDataSets->SetCampo("vSeg_W09=0.00");
$spdNFCeDataSets->SetCampo("vDesc_W10=0.00");
$spdNFCeDataSets->SetCampo("vII_W11=0.00");
$spdNFCeDataSets->SetCampo("vIPI_W12=0.00");
$spdNFCeDataSets->SetCampo("vIPIDevol_W12a=0.00");
$spdNFCeDataSets->SetCampo("vPIS_W13=0.00");
$spdNFCeDataSets->SetCampo("vCOFINS_W14=0.01");
$spdNFCeDataSets->SetCampo("vOutro_W15=0.00");
$spdNFCeDataSets->SetCampo("vNF_W16=10.00");
$spdNFCeDataSets->SetCampo("vTotTrib_W16a=0.75");
$spdNFCeDataSets->SetCampo("modFrete_X02=9");
//Dados do Responsável Técnico
$spdNFCeDataSets->SetCampo("CNPJ_ZD02=12403490000156");
$spdNFCeDataSets->SetCampo("xContato_ZD04=Marcelo B");
$spdNFCeDataSets->SetCampo("email_ZD05=marcelo@tests.com.br");
$spdNFCeDataSets->SetCampo("fone_ZD06=1126265184");
$spdNFCeDataSets->Salvar();
//retorno
$XML = $spdNFCeDataSets->LoteNFCe;
$chave = str_replace("NFCe", "", $spdNFCeDataSets->GetCampo("id_A03"));
$retornos = array('xml' => $XML, "chaveNFCe" => $chave);
echo "<h3>Dataset em XML:</h3>";
echo json_encode($retornos);
}
catch(Exception $e)
{
echo $e;
}
//Destroi a instancia da NFceX.dll e NfceDataSetX.dll
unset($spdNFCe);
unset($spdNFCeDataSets);
?>
Assinar Nota : Método do componente NF-e que tem como parâmetro o XML gerado pelo Data Set e retorna o XML assinado da NFC-e para ser enviado. Obs.: Após o uso deste método, nada mais pode ser alterado no XML.
try
{
$XML = $_POST["XML"];
$XML = $spdNFCe->AssinarNota($XML);
echo $XML;
}
catch(Exception $e)
{
echo $e;
}
//Destroi a instancia da NFceX.dll e NfceDataSetX.dll
unset($spdNFCe);
unset($spdNFCeDataSets);
?>
Enviar Nota(Assíncrono): Método do componente que tem como parâmetro o num. Lote, o XML Assinado e se o lote é compactado ou não. Tem como retorno o status do processamento do Lote e o número do Recibo.
<?php include("index.php");// Arquivo PHP que instancia o componente e passa as configurações try
{
$xml = $_POST["xmlRet"];
$xml = $spdNFCe->EnviarNF("0001", $xml, false);
$nroRecibo = simplexml_load_string($xml);
$nroRec = $nroRecibo->infRec;
$retornosEnvio = array('xml' => $xml, "nroRec" => $nroRec);
echo json_encode($retornosEnvio);
}
catch(Exception $e)
{
echo $e;
}
//Destroi a instancia da NFceX.dll e NfceDataSetX.dll
unset($spdNFCe);
unset($spdNFCeDataSets);
?>
Exemplo de retorno Assíncrono:
<retEnviNFCe versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfce"><tpAmb>2</tpAmb><verAplic>PR-v3_6_7</verAplic><cStat>103</cStat><xMotivo>Lote recebido com sucesso</xMotivo><cUF>41</cUF><dhRecbto>2020-08-26T14:53:54-03:00</dhRecbto><infRec><nRec>411110215728646</nRec><tMed>1</tMed></infRec></retEnviNFCe>
Enviar Nota(Síncrono): Método do componente que faz o envio e já retorna o resultado da autorização da nota.(Alguns Web Services não apresentam estabilidade quanto ao uso deste método, o mais aconselhado é usar o envio Assíncrono).
<?php include("index.php");// Arquivo PHP que instancia o componente e passa as configurações try
try
{
$xml = $_POST["xmlRet"];
$xml = $spdNFCe->EnviarNFSincrono("0001", $xml, false);
$nroRecibo = simplexml_load_string($xml);
$nroRec = $nroRecibo->infRec;
$retornosEnvio = array('xml' => $xml, "nroRec" => $nroRec);
echo json_encode($retornosEnvio);
}
catch(Exception $e)
{
echo $e;
}
//Destroi a instancia da NFCeX.dll e NfceDataSetX.dll
unset($spdNFCe);
unset($spdNFCeDataSets);
?>
Exemplo de retorno Síncrono:
<retEnviNFCe versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfce"><tpAmb>2</tpAmb><verAplic>PR-v3_6_7</verAplic><cStat>104</cStat><xMotivo>Lote processado</xMotivo><cUF>41</cUF><dhRecbto>2020-08-26T15:02:42-03:00</dhRecbto><protNFe versao="3.10"><infProt Id="ID141160000760514"><tpAmb>2</tpAmb><verAplic>PR-v3_6_7</verAplic><chNFe>41160929062609000177553670003123421004640324</chNFe><dhRecbto>2020-08-26T15:02:42-03:00</dhRecbto><nProt>141160000760514</nProt><digVal>HpNE7evWmgOzlahz1yY6hMUiQj0=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe></retEnviNFCe>
Minha nota está trazendo rejeições, e agora, o que fazer ?
Como encontrar soluções para as Rejeições
Consultar Recibo: Método do componente que tem como parâmetro o número do Recibo, que vem no retorno do envio Assíncrono. Retorna o resultado do processamento da NFC-e.
<?php include("instanciaComponente.php");// Arquivo PHP que instancia o componente e passa as configurações
try
{
$nroRecibo = $_POST["reciboNota"];
$xml = $spdNFCe->ConsultarRecibo($nroRecibo);
echo $xml;
}
catch(Exception $e)
{
echo $e;
}
//Destroi a instancia da NFCeX.dll e NfceDataSetX.dll
unset($spdNFCe);
unset($spdNFCeDataSets);
?>
Exemplo de retorno do método:
<retConsReciNFCe versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfce"><tpAmb>2</tpAmb><verAplic>PR-v3_6_7</verAplic><nRec>411110215728750</nRec><cStat>104</cStat><xMotivo>Lote processado</xMotivo><cUF>41</cUF><dhRecbto>2020-08-26T15:21:27-03:00</dhRecbto><protNFe versao="3.10"><infProt><tpAmb>2</tpAmb><verAplic>PR-v3_6_7</verAplic><chNFe>41160929062609000177552910003123421004640328</chNFe><dhRecbto>2020-08-26T15:21:24-03:00</dhRecbto><nProt>141160000760604</nProt><digVal>hCm7VA2TpfJSa69oqOAN7Pa0i1g=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe></retConsReciNFCe>
Consultar NF-e: Método do componente que tem como parâmetro a chave da Nota. Retorna o status do processamento da NFC-e.
<?php include("instanciaComponente.php");// Arquivo PHP que instancia o componente e passa as configurações
try
{
$chaveNota = $_POST["chaveNota"];
$chaveNota = $spdNFe->ConsultarNF($chaveNota);
echo $chaveNota;
}
catch(Exception $e)
{
echo $e;
}
//Destroi a instancia da NFCeX.dll e NfceDataSetX.dll
unset($spdNFCe);
unset($spdNFCeDataSets);
?>
Exemplo de retorno do método:
<retConsSitNFe versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe"><tpAmb>2</tpAmb><verAplic>PR-v3_6_7</verAplic><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo><cUF>41</cUF><dhRecbto>2020-08-26T15:22:08-03:00</dhRecbto><chNFe>41160929062609000177552910003123421004640328</chNFe><protNFe versao="3.10"><infProt Id="ID141160000760604"><tpAmb>2</tpAmb><verAplic>PR-v3_6_7</verAplic><chNFe>41160929062609000177552910003123421004640328</chNFe><dhRecbto>2020-08-26T15:21:24-03:00</dhRecbto><nProt>141160000760604</nProt><digVal>hCm7VA2TpfJSa69oqOAN7Pa0i1g=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe></retConsSitNFe>
Gerar PDF: Método do componente NF-e que gera o PDF da NFC-e a partir do XML Autorizado da nota. Tem como parâmetro o número do Lote, o XML da nota Autorizado, o modelo RTM do componente NFC-e, o formato de saída e o diretório para gravação do arquivo.
<?php include("instanciaComponente.php");// Arquivo PHP que instancia o componente e passa as configurações
try
{
$chaveNFe = $_POST["chaveNota"];
$XML = file_get_contents("C:\\xampp\\xamppfiles\\htdocs\\my portable files\\XmlDestinatario\\".$chaveNFe."-nfe.xml") ;
$spdNFe->ExportarDanfce("00001", $XML, $spdNFe->ModeloRetrato, 1, "C:\\xampp\\xamppfiles\\htdocs\\my portable files\\PDF\\".$chaveNFCe.".PDF");
}
catch(Exception $e)
{
echo $e;
}
//Destroi a instancia da NFCeX.dll e NFCeDataSetX.dll
unset($spdNFCe);
unset($spdNFCeDataSets);
?>
Clique aqui e veja como enviar e-mail com o componente direto do PHP.
É possível importar um XML de uma NFC-e para o DataSet do componente NFC-e como segue o exemplo:
<?php include("instanciaComponente.php");
try
{
$XML = $_POST["xmlNFCe"];
$spdNFCeDataSets = $spdNFCe->ConverterXmlParaDataSet($XML,"pl_009"); //informações da NFC-e
$versao_A02 = $spdNFCeDataSets->GetCampo("versao_A02");
$Id_A03 = $spdNFCeDataSets->GetCampo("Id_A03");
$cUf_B02 = $spdNFCeDataSets->GetCampo("cUf_B02");
$cNF_B03 = $spdNFCeDataSets->GetCampo("cNF_B03");
$natOp_B04 = $spdNFCeDataSets->GetCampo("natOp_B04");
$indPag_B05 = $spdNFCeDataSets->GetCampo("indPag_B05");
$mod_B06 = $spdNFCeDataSets->GetCampo("mod_B06");
$serie_B07 = $spdNFCeDataSets->GetCampo("serie_B07");
$nNF_B08 = $spdNFCeDataSets->GetCampo("nNF_B08");
$dhEmi_B09 = $spdNFCeDataSets->GetCampo("dhEmi_B09");
$dhSaiEnt_B10 = $spdNFCeDataSets->GetCampo("dhSaiEnt_B10");
$tpNF_B11 = $spdNFCeDataSets->GetCampo("tpNF_B11");
$idDest_B11a = $spdNFCeDataSets->GetCampo("idDest_B11a");
$cMunFG_B12 = $spdNFCeDataSets->GetCampo("cMunFG_B12");
$tpImp_B21 = $spdNFCeDataSets->GetCampo("tpImp_B21");
$tpEmis_B22 = $spdNFCeDataSets->GetCampo("tpEmis_B22");
$cDV_B23 = $spdNFCeDataSets->GetCampo("cDV_B23");
$tpAmb_B24 = $spdNFCeDataSets->GetCampo("tpAmb_B24");
$finNFe_B25 = $spdNFCeDataSets->GetCampo("finNFe_B25");
$indFinal_B25a = $spdNFCeDataSets->GetCampo("indFinal_B25a");
$indPres_B25b = $spdNFCeDataSets->GetCampo("indPres_B25b");
$indIntermed_B25c = $spdNFCeDataSets->GetCampo("indIntermed_B25c=0");
$procEmi_B26 = $spdNFCeDataSets->GetCampo("procEmi_B26");
$verProc_B27 = $spdNFCeDataSets->GetCampo("verProc_B27");
//Informações do Emitente
$CNPJ_C02 = $spdNFCeDataSets->GetCampo("CNPJ_C02=29062609000177");
$xNome_C03 = $spdNFCeDataSets->GetCampo("xNome_C03=NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");
$xFant_C04 = $spdNFCeDataSets->GetCampo("xFant_C04=Felici Pizzaria");
$xLgr_C06 = $spdNFCeDataSets->GetCampo("xLgr_C06=Avenida professor joao thomes");
$nro_C07 = $spdNFCeDataSets->GetCampo("nro_C07=131");
$xCpl_C08 = $spdNFCeDataSets->GetCampo("xCpl_C08=Felici Pizzaria");
$xBairro_C09 = $spdNFCeDataSets->GetCampo("xBairro_C09=ardim dos Ipes");
$cMun_C10 = $spdNFCeDataSets->GetCampo("cMun_C10=4115200");
$xMun_C11 = $spdNFCeDataSets->GetCampo("xMun_C11=Tres Lagoas");
$UF_C12 = $spdNFCeDataSets->GetCampo("UF_C12=PR");
$CEP_C13 = $spdNFCeDataSets->GetCampo("CEP_C13=70611170");
$cPais_C14 = $spdNFCeDataSets->GetCampo("cPais_C14=1058");
$xPais_C15 = $spdNFCeDataSets->GetCampo("xPais_C15=BRASIL");
$indIEDest_E16a = $spdNFCeDataSets->GetCampo("indIEDest_E16a=9");
$IE_C17 = $spdNFCeDataSets->GetCampo("IE_C17=9044016688");
$IEST_C18 = $spdNFCeDataSets->GetCampo("IEST_C18=");
$CRT_C21 = $spdNFCeDataSets->GetCampo("CRT_C21=1");
//Informações do Destinatário
$CNPJ_E02 = $spdNFCeDataSets->GetCampo("CNPJ_E02");
$xNome_E04 = $spdNFCeDataSets->GetCampo("xNome_E04");
//Informações do Item da Nota
$spdNFCeDataSets->FindDataSet("H")->First();
while( $spdNFCeDataSets->FindDataSet("H")->Eof() === false )
{
$nItem_H02 = $spdNFCeDataSets->GetCampo("nItem_H02");
$xProd_I04 = $spdNFCeDataSets->GetCampo("xProd_I04");
$vProd_I11 = $spdNFCeDataSets->GetCampo("vProd_I11");
$CSOSN_N12a = $spdNFCeDataSets->GetCampo("CSOSN_N12a");
$spdNFCeDataSets->FindDataSet("H")->Next();
}
//Informações das Faturas
$spdNFCeDataSets->FindDataSet("Y")->First();
while( $spdNFCeDataSets->FindDataSet("Y")->Eof() === false)
{
$nFat = $spdNFCeDataSets->GetCampo("nFat_Y03");
$vOrig = $spdNFCeDataSets->GetCampo("vOrig_Y04");
$vOrig = $spdNFCeDataSets->GetCampo("vDesc_Y05");
$vLiq = $spdNFCeDataSets->GetCampo("vLiq_Y06");
$spdNFCeDataSets->FindDataSet("Y")->Next();
}
//Informações das Duplicatas
$spdNFCeDataSets->FindDataSet("Dup")->First();
while( $spdNFCeDataSets->FindDataSet("Dup")->Eof() === false)
{
$nroDup = $spdNFCeDataSets->GetCampo("nDup_Y08");
$venc = $spdNFCeDataSets->GetCampo("dVenc_Y09");
$vDup = $spdNFCeDataSets->GetCampo("vDup_Y10");
$spdNFCeDataSets->FindDataSet("Dup")->Next();
}
}
catch(Exception $e)
{
echo $e;
}
//Destroi a instancia da NFCeX.dll e NfCeDataSetX.dll
unset($spdNFCe);
unset($spdNFCeDataSets);
?>
Lista de Tipos dentro do DataSet
{A - Dados da Nota Fiscal eletrônica}
{B - Identificação da Nota Nota Fiscal Eletrônica }
{C - Identificação do Emitente da Nota Nota Fiscal Eletrônica }
{D - Identificação do Fisco Emitente da Nota Nota Fiscal Eletrônica }
{E - Identificação do Destinatário da Nota Nota Fiscal Eletrônica }
{F - Identificação do Local da Retirada da Nota Nota Fiscal Eletrônica }
{G - Identificação do Local da Entrega da Nota Nota Fiscal Eletrônica }
{H - Detalhamento de Produtos e Serviços da Nota Nota Fiscal Eletrônica }
{I - Produtos e Serviços da Nota Nota Fiscal Eletrônica }
{J - Detalhamento Específico de Veículos Novos }
{K - Detalhamento Específico de Medicamentos }
{L - Detalhamento Específico de Armamentos }
{M - Tributos Incidentes no Produto ou Serviço }
{N - ICMS Normal e ST } {O - Imposto sobre Produto Industrializado }
{P - Imposto de Importação }
{Q - PIS }
{R - PIS ST }
{S - COFINS }
{T - COFINS ST }
{U - ISSQN }
{V - Informações Adicionais do Item }
{W - Valores Totais da NFe }
{X - Informações do Transporte da NFe }
{Y - Dados da Cobrança }
{Z - Informações Adicionais da NFe }
Comentários
0 comentário
Por favor, entre para comentar.