essa função é de qual biblioteca?
$emit_endereco = strtoupper(url_amigavel(trim($emit->getElementsByTagName(“xLgr”)->item(0)->nodeValue)));
essa função é de qual biblioteca?
$emit_endereco = strtoupper(url_amigavel(trim($emit->getElementsByTagName(“xLgr”)->item(0)->nodeValue)));
jean,
este arquivo nao depende de nenhuma rotina ele faz a leitura do XML recebido de um fornecedor… e grava estes informações em uma tabela
$emit->getElementsByTagName(“xLgr”)->item(0)->nodeValue)
Esta éo objeto XML gerado para fazer a leitura assim voce consegue ler tudo que esta abaxio de um node…
a outra é para trocar os caracteres especiais pelos normais
e a outra e uma funcao php para transformar em maiuscula
as tabelas foram crias em base Postgres…
Obrigado por compartilhar, tenho um sistema que faz isso e está bem parecido.
Também importo tudo que está em um diretótio específico. No final da importação renomeio o arquivo xml com “-” antes do nome e faço um foreach lendo todo diretório com opendir pegando apenas o que for extensão xml e que o nome do arquivo não inicie com “-”, assim o usuário importa diversos xmls ao mesmo tempo.
Rodrigo,
obrigado…
mas pelo jeito o seu esta mlhor que o meu se tiver como compartilhar esta aplicação seria legal…
por que todos precisamos de algo muito parecido com o que eu fiz e o que voce fez…
Tenho uma pergunta pra todos aqui…nao sei como definir isso pra que fique automatico:
Na minha tabela tenho muitos campos defido como moeda e decimal, mas no SC eu tenho que ir campo a campo pra informar:
==> Tipo Moeda
==> Tamanho do Campo…
==> Casa Decimal
==> Completa com zero
Existe alguma forma de fazer isso automático… pra que todos os campos ja venham em uma definição que eu coloque?
Bom o que fiz é quase igual ao seu porém com o início para ler tudo que está no diretório:
Vou passar o resumo como fiz para não ficar confuso e cada um pode fazer de acordo com a necessidade.
$diretorioup = "C:/Program Files (x86)/NetMake/v8/wwwroot/xml";
// Verificando se a pasta é valida
if (is_dir($diretorioup))
{
//Abrindo a pasta selecionada
if ($dh = opendir($diretorioup))
{
//Percorrendo todos os arquivos da pasta selecionada
while (($file = readdir($dh)) !== false)
{
if(substr($file,0,2) != "--" && trim($file) != "." && trim($file)!=".." && (substr(trim($file),-3)=='xml' || substr(trim($file),-3)=='XML'))
{
//Obtendo caminho completo até o arquivo
$xmlUrl = $diretorioup."/".$file;
//Transformando o XML em array
$arrXml = simplexml_load_file($xmlUrl);
----------------------- daqui para baixo pego as tags assim:
$varcnpj_temp = trim($nfe->infNFe->dest->CNPJ); //outras linhas devem ser geradas igual essa com o caminho das tags
//Obtendo dos itens da NF
$docDom = new DomDocument;
$docDom->Load($xmlUrl);
$items = $docDom->getElementsByTagName('prod');
for ($i=0; $i < $items->length; $i++)
{
--------------daqui para baixo pego as tags com o DOM
$D1_CF = (isset($items->item($i)->getElementsByTagName('CFOP')->item(0)->nodeValue))? $items->item($i)->getElementsByTagName('CFOP')->item(0)->nodeValue : ""; //outras linhas devem ser geradas igual essa com o caminho das tags (dessa maneira irá percorrer todos os itens
nessa parte que faço o insert na tabela de itens
}
nessa parte faço o insert na tabela de cabeçalho
também renomeio para não pegar o arquivo novamente
rename($diretorioup."/".$file,$diretorioup."/--importado--".$file);
}
}
}
}
me refiro ao -> (url_amigavel(…
olha o retorno->
Fatal error: Call to undefined function url_amigavel() in C:\Program Files (x86)\NetMake\v8\wwwroot\scriptcase\app\MAM_Gestao_ISO_PBQPH\control_grava_nfe\control_grava_nfe_apl.php on line 2337
Dá uma olhada nesse tópico tem exatamente o que você precisa
https://github.com/nfephp-org/nfephp/blob/master/libs/NFe/UnConvertNFePHP.class.php
Obrigado Rodrigo…resolvido…
Resolvi de outra forma…
Qual a finalidade em Transformar o XML da NF-e em TXT ?
Na verdade passei o link apenas para explorar e verificar como pegar as tags que são de mesmo nome pelo getelementbyname do dom.
Se for gerar em txt ou em XML, ou apenas pegar o valor seria da mesma maneira.
Porém alguns sistemas geram em TXT e convertem para XML, o que eu particularmente não faço.
@miguell agradeço o arquivo compartilhado, mas estranhei apenas uma coisa e não entendi o motivo do uso… um exemplo…
$emit_nome = strtoupper(url_amigavel(trim($emit->getElementsByTagName(“xNome”)->item(0)->nodeValue)));
Pra quê este lance de “url_amigavel”?
Outra pergunta, no seu arquivo tem um método…
php_grava_emitente([vg_empresa_id],[vg_empresa_id],$emit_cnpj,$ide_nr_notafis,
$ide_serie_nf,$emit_nome,$emit_endereco,$emit_num_ende,
$emit_compl_end,$emit_bairro,$emit_cod_muni,$emit_nome_muni,
$emit_estado,$emit_cep,$emit_cod_pais,$emit_nome_pais,
$emit_telefone,$emit_insc_est,$emit_crt,{tx_arquivo},$emit_fantasia);
O que tem dentro neste método?