Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal,
Sou iniciante no que se refere à importação e exportação de arquivos em PHP, então gostaria de dicas para a melhor forma para realizar as seguintes tarefas:
1 - Faço o upload múltiplo de "arquivos" xml (~10).
2 - Faço um loop dos arquivos do diretório e abro 1 à 1.
3 - Leio o arquivo, linha por linha.
4 - Comparo para vê se o dado já existe no banco.
5 - Se não existir, vou inserirndo no banco de dados.
6 - No final gravo um arquivo txt com o log das operações NÃO reazlizadas (ou seja somente os os erros).
OBS:
1 - Já tenho um código para isso, porém não para vários arquivos.
2 - Utilizo a classe "simplexml.class.php".
3 - Existem arquivos com ~5.000 usuários ou +.
4 - Qualquer sugestão é bem vinda!
Código do arquivo Xml:
<usuarios>
<usuario>
<tipoenvio>NORMAL</tipoenvio>
<movimento>I</movimento>
<interno>12345</interno>
<matricula>123456789012345</matricula>
<nome>Fulano de tal</nome>
<cpf>12345678900</cpf>
<nascimento>31122010</nascimento>
<endereco_residencial>
<endereco>Rua 1</endereco>
<numero>123</numero>
<complemento>AP.1</complemento>
<bairro>Centro</bairro>
<cidade>Porto Alegre</cidade>
<codcid>12345</codcid>
<uf>RS</uf>
<cep>99900123</cep>
</endereco_residencial>
<endereco_correspondencia>
<endereco>Rua 1</endereco>
<numero>123</numero>
<complemento>AP.1</complemento>
<bairro>Centro</bairro>
<cidade>Porto Alegre</cidade>
<codcid>12345</codcid>
<uf>RS</uf>
<cep>99900123</cep>
</endereco_correspondencia>
<fone>051-99999999</fone>
<celular>051-99999999</celular>
<email>email@email.com</email>
<orgao>Ministério da cultura</orgao>
<convenio>Não</convenio>
<id>12</id>
<senha>12345</senha>
<dependente>
<nome>Fulano dependente</nome>
<grau>Filho</grau>
<nascimento>31122010</nascimento>
</dependente>
</usuario>
</usuarios>
Código atual PHP (para 1 arquivo por vez):
<?PHP
session_start();
if(!$_SESSION['SSlogado']){ header("location: ../login/index_adm.htm"); }
require_once "simplexml.class.php";
$err = 0; //erros
$exe = 0; //executados
if ($_FILES["cpfile"]["tmp_name"]!=""){
//if (isset($_FILES["cpfile"]["tmp_name"])){
$processo=false; //erro ao processar
$nome = date("YmdHis") . $_FILES["cpfile"]["name"];
$pathxml = getcwd() . "/arq/" . $nome;
if (is_uploaded_file($_FILES["cpfile"]["tmp_name"])){
if(!move_uploaded_file($_FILES["cpfile"]["tmp_name"], $pathxml)){
echo "Ocorreu um erro inesperado ao carregar o arquivo.<br />";
}
}
$processo=true; //arquivo salvo
}
if(!$processo){
echo "Erro ao carregar arquivo!";
} else{
$file = $pathxml;
//$file = "bcoweb_02.xml";
$sxml = new simplexml;
$data = $sxml->xml_load_file($file);
//print_r($data);
include("../inc/conBD.php");
$i=0;
if(is_array($data->usuario)){
foreach($data->usuario as $elemento){
$pro = 0 ; //arquivos processados
$dia = substr($elemento->nascimento,0,2);
$mes = substr($elemento->nascimento,2,2);
$ano = substr($elemento->nascimento,4,4);
$id = $elemento->id;
if($elemento->movimento=="A"){
$strSQL = "UPDATE tbusuario SET ";
$strSQL .= " usuario = '" . $elemento->matricula . "', ";
$strSQL .= " internoSaber = '" . $elemento->interno . "', ";
$strSQL .= " nome = '" . addslashes($elemento->nome) . "', ";
$strSQL .= " matricula = '" . $elemento->matricula . "', ";
$strSQL .= " orgao_trab = '" . addslashes($elemento->orgao) . "', ";
$strSQL .= " cpf = '" . $elemento->cpf . "', ";
$strSQL .= " email = '" . addslashes($elemento->email) . "', ";
$strSQL .= " datanascimento = STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), ";
$strSQL .= " fone = '" . addslashes($elemento->fone) . "', ";
$strSQL .= " fax = '" . addslashes($elemento->celular) . "', ";
$strSQL .= " endereco = '" . addslashes($elemento->endereco_residencial->endereco) . "', ";
$strSQL .= " bairro = '" . addslashes($elemento->endereco_residencial->bairro) . "', ";
if (($elemento->endereco_residencial->codcid!="") && (!is_array($elemento->endereco_residencial->codcid)) && ($elemento->endereco_residencial->codcid!="Array") ){
$strSQL .= " codCidade = " . $elemento->endereco_residencial->codcid . ", ";
}
$strSQL .= " uf = '" . addslashes($elemento->endereco_residencial->uf) . "', ";
$strSQL .= " cep = '" . addslashes($elemento->endereco_residencial->cep) . "', ";
$strSQL .= " endereco_p = '" . addslashes($elemento->endereco_correspondencia->endereco) . "', ";
$strSQL .= " bairro_p = '" . addslashes($elemento->endereco_correspondencia->bairro) . "', ";
if (($elemento->endereco_correspondencia->codcid!="") && (!is_array($elemento->endereco_correspondencia->codcid)) && ($elemento->endereco_correspondencia->codcid!="Array") ){
$strSQL .= " codCidade_p = " . $elemento->endereco_correspondencia->codcid . ", ";
}
$strSQL .= " uf_p = '" . addslashes($elemento->endereco_correspondencia->uf) . "', ";
$strSQL .= " cep_p = '" . addslashes($elemento->endereco_correspondencia->cep) . "', ";
$strSQL .= " ativo = 1 , ";
$strSQL .= " convenio = '" . $elemento->convenio . "' ";
$strSQL .= " WHERE id = " . $id ;
if (Usuario_Existe($id)){
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
echo "<br /><hr /><b>Associado alterado: </b>" . $elemento->nome;
$pro=1;
} else {
echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome;
}
} elseif($elemento->movimento=="I"){
if( ($id!="") && (!is_array($id)) && ($id!="Array") ){
//se é do tipo MASSA e tem id, então update
$strSQL = "UPDATE tbusuario SET ";
$strSQL .= " usuario = '" . $elemento->matricula . "', ";
$strSQL .= " internoSaber = '" . $elemento->interno . "', ";
$strSQL .= " nome = '" . addslashes($elemento->nome) . "', ";
$strSQL .= " matricula = '" . $elemento->matricula . "', ";
$strSQL .= " orgao_trab = '" . addslashes($elemento->orgao) . "', ";
$strSQL .= " cpf = '" . $elemento->cpf . "', ";
$strSQL .= " email = '" . addslashes($elemento->email) . "', ";
$strSQL .= " datanascimento = STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), ";
$strSQL .= " fone = '" . addslashes($elemento->fone) . "', ";
$strSQL .= " fax = '" . addslashes($elemento->celular) . "', ";
$strSQL .= " endereco = '" . addslashes($elemento->endereco_residencial->endereco) . "', ";
$strSQL .= " bairro = '" . addslashes($elemento->endereco_residencial->bairro) . "', ";
if (($elemento->endereco_residencial->codcid!="") && (!is_array($elemento->endereco_residencial->codcid)) && ($elemento->endereco_residencial->codcid!="Array") ){
$strSQL .= " codCidade = " . $elemento->endereco_residencial->codcid . ", ";
}
$strSQL .= " uf = '" . addslashes($elemento->endereco_residencial->uf) . "', ";
$strSQL .= " cep = '" . addslashes($elemento->endereco_residencial->cep) . "', ";
$strSQL .= " endereco_p = '" . addslashes($elemento->endereco_correspondencia->endereco) . "', ";
$strSQL .= " bairro_p = '" . addslashes($elemento->endereco_correspondencia->bairro) . "', ";
if (($elemento->endereco_correspondencia->codcid!="") && (!is_array($elemento->endereco_correspondencia->codcid)) && ($elemento->endereco_correspondencia->codcid!="Array") ){
$strSQL .= " codCidade_p = " . $elemento->endereco_correspondencia->codcid . ", ";
}
$strSQL .= " uf_p = '" . addslashes($elemento->endereco_correspondencia->uf) . "', ";
$strSQL .= " cep_p = '" . addslashes($elemento->endereco_correspondencia->cep) . "', ";
$strSQL .= " ativo = 1 , ";
$strSQL .= " convenio = '" . $elemento->convenio . "' ";
$strSQL .= " WHERE id = " . $id ;
if (Usuario_Existe($id)){
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
echo "<br /><hr /><b>Associado alterado: </b>" . $elemento->nome;
$pro=1;
} else {
echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome;
}
} else {
//se é massa e não tem id, então insert
$strSQL = "INSERT INTO tbusuario( ";
$strSQL .= " usuario, internoSaber, senha, nome, matricula, orgao_trab, cpf, email, datanascimento, tipo, fone, fax, ";
$strSQL .= " endereco, bairro, ";
if ($elemento->endereco_residencial->codcid!=""){
$strSQL .= " codCidade, ";
}
$strSQL .= " uf, cep, ";
$strSQL .= " endereco_p, bairro_p, ";
if ($elemento->endereco_correspondencia->codcid!=""){
$strSQL .= " codCidade_p, ";
}
$strSQL .= " uf_p, cep_p, ";
$strSQL .= " ativo, convenio, c_usuario, c_data, alterado_web ";
$strSQL .= ") VALUES ( ";
$strSQL .= " '" . $elemento->matricula . "', ";
$strSQL .= " '" . $elemento->interno . "', ";
$strSQL .= " '" . md5("12345") . "', ";
$strSQL .= " '" . addslashes($elemento->nome) . "', ";
$strSQL .= " '" . $elemento->matricula . "', ";
$strSQL .= " '" . addslashes($elemento->orgao) . "', ";
$strSQL .= " '" . $elemento->cpf . "', ";
$strSQL .= " '" . addslashes($elemento->email) . "', ";
$strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), ";
$strSQL .= " 'P', ";
$strSQL .= " '" . addslashes($elemento->fone) . "', '" . addslashes($elemento->celular) . "', ";
$strSQL .= " '" . addslashes($elemento->endereco_residencial->endereco) . "', ";
$strSQL .= " '" . addslashes($elemento->endereco_residencial->bairro) . "', ";
if (($elemento->endereco_residencial->codcid!="") && (!is_array($elemento->endereco_residencial->codcid)) && ($elemento->endereco_residencial->codcid!="Array") ){
$strSQL .= " " . addslashes($elemento->endereco_residencial->codcid) . ", ";
}
$strSQL .= " '" . addslashes($elemento->endereco_residencial->uf) . "', ";
$strSQL .= " '" . addslashes($elemento->endereco_residencial->cep) . "', ";
$strSQL .= " '" . addslashes($elemento->endereco_correspondencia->endereco) . "', ";
$strSQL .= " '" . addslashes($elemento->endereco_correspondencia->bairro) . "', ";
if (($elemento->endereco_correspondencia->codcid!="") && (!is_array($elemento->endereco_correspondencia->codcid)) && ($elemento->endereco_correspondencia->codcid!="Array") ){
$strSQL .= " " . addslashes($elemento->endereco_correspondencia->codcid) . ", ";
}
$strSQL .= " '" . addslashes($elemento->endereco_correspondencia->uf) . "', ";
$strSQL .= " '" . addslashes($elemento->endereco_correspondencia->cep) . "', ";
$strSQL .= " 1, ";
$strSQL .= " '" . $elemento->convenio . "', ";
$strSQL .= " 'importacao', ";
$strSQL .= " STR_TO_DATE('" . date('Y-m-d') . "', '%Y-%m-%d'), ";
$strSQL .= " true) ";
if (!Usuario_Existe($elemento->interno,1)){
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
$id = mysql_insert_id();
echo "<br /><hr /><b>Associado incluído: </b>" . $elemento->nome;
$pro=1;
} else {
echo "<br /><hr /><b><font color='red'>Associado já existente!</font></b> (Código interno = ".$elemento->interno.") ".$elemento->nome;
}
}
} elseif($elemento->movimento=="E"){
$strSQL = "UPDATE tbusuario SET ativo = 0 ";
$strSQL .= "WHERE id = $id " ;
if (Usuario_Existe($id)){
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
echo "<br /><hr /><b>Associado desativado: </b>" . $elemento->nome;
$pro=1;
} else {
echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome;
}
}
//incrementando processados e erros
if ($pro == 1){ $exe++; } else { $err++; }
// ATUALIZAÇÃO DOS DEPENDENTES
//
//só entra se NÃO for do tipo $elemento->movimento=="E"
//
if($elemento->movimento!="E" && $pro == 1){
//DELETA TODOS OS DEPENDENTES E INSERE NOVAMENTE PARA NÃO PRECISAR VERFICAR QUAIS PRECISAM SER ATUALIZADOS
$strSQL = "DELETE FROM tbusuario_dep WHERE tbusuario_id = $id ";
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
if(is_array($elemento->dependente)){
foreach($elemento->dependente as $dep){
$dia = substr($dep->nascimento,0,2);
$mes = substr($dep->nascimento,2,2);
$ano = substr($dep->nascimento,4,4);
$strSQL = "INSERT INTO tbusuario_dep( ";
$strSQL .= " tbusuario_id, nome, grau, datanascimento ";
$strSQL .= ") VALUES ( ";
$strSQL .= " " . $id . ", ";
$strSQL .= " '" . addslashes($dep->nome) . "', ";
$strSQL .= " '" . addslashes($dep->grau) . "', ";
$strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d') ";
$strSQL .= ") ";
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
echo "<br /><b>Dependente inserido: </b>" . $dep->nome;
}
} else {
//SE NÃO FOR ARRAY VAI POR AQUI
if($elemento->dependente->nome != ""){
$dia = substr($elemento->dependente->nascimento,0,2);
$mes = substr($elemento->dependente->nascimento,2,2);
$ano = substr($elemento->dependente->nascimento,4,4);
$strSQL = "INSERT INTO tbusuario_dep( ";
$strSQL .= " tbusuario_id, nome, grau, datanascimento ";
$strSQL .= ") VALUES ( ";
$strSQL .= " " . $id . ", ";
$strSQL .= " '" . addslashes($elemento->dependente->nome) . "', ";
$strSQL .= " '" . addslashes($elemento->dependente->grau) . "', ";
$strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d') ";
$strSQL .= ") ";
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
echo "<br /><b>Dependente inserido: </b>" . $elemento->dependente->nome;
}
} //SAINDO DO IF DE VERIFICAÇÃO SE É ARRAY
}//fim das inclusões de dependentes em caso de não exclusão de associado
$i++;
} //SAI DO FOREACH QUE VARRE OS USUÁRIOS
//////#############################################################
} else { //SE TIVER APENAS UM USUÁRIO TEM QUE CRIAR A SOLUÇÃO AQUI
$pro = 0;
$dia = substr($data->usuario->nascimento,0,2);
$mes = substr($data->usuario->nascimento,2,2);
$ano = substr($data->usuario->nascimento,4,4);
$id = $data->usuario->id;
if($data->usuario->movimento=="A"){
$strSQL = "UPDATE tbusuario SET ";
$strSQL .= " usuario = '" . $data->usuario->matricula . "', ";
$strSQL .= " internoSaber = '" . $data->usuario->interno . "', ";
$strSQL .= " nome = '" . addslashes($data->usuario->nome) . "', ";
$strSQL .= " matricula = '" . $data->usuario->matricula . "', ";
$strSQL .= " orgao_trab = '" . addslashes($data->usuario->orgao) . "', ";
$strSQL .= " cpf = '" . $data->usuario->cpf . "', ";
$strSQL .= " email = '" . addslashes($data->usuario->email) . "', ";
$strSQL .= " datanascimento = STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), ";
$strSQL .= " fone = '" . addslashes($data->usuario->fone) . "', ";
$strSQL .= " fax = '" . addslashes($data->usuario->celular) . "', ";
$strSQL .= " endereco = '" . addslashes($data->usuario->endereco_residencial->endereco) . "', ";
$strSQL .= " bairro = '" . addslashes($data->usuario->endereco_residencial->bairro) . "', ";
if (($data->usuario->endereco_residencial->codcid!="") && (!is_array($data->usuario->endereco_residencial->codcid)) && ($data->usuario->endereco_residencial->codcid!="Array") ){
$strSQL .= " codCidade = " . $data->usuario->endereco_residencial->codcid . ", ";
}
$strSQL .= " uf = '" . addslashes($data->usuario->endereco_residencial->uf) . "', ";
$strSQL .= " cep = '" . addslashes($data->usuario->endereco_residencial->cep) . "', ";
$strSQL .= " endereco_p = '" . addslashes($data->usuario->endereco_correspondencia->endereco) . "', ";
$strSQL .= " bairro_p = '" . addslashes($data->usuario->endereco_correspondencia->bairro) . "', ";
if (($data->usuario->endereco_correspondencia->codcid!="") && (!is_array($data->usuario->endereco_correspondencia->codcid)) && ($data->usuario->endereco_correspondencia->codcid!="Array") ){
$strSQL .= " codCidade_p = " . $data->usuario->endereco_correspondencia->codcid . ", ";
}
$strSQL .= " uf_p = '" . addslashes($data->usuario->endereco_correspondencia->uf) . "', ";
$strSQL .= " cep_p = '" . addslashes($data->usuario->endereco_correspondencia->cep) . "', ";
$strSQL .= " ativo = 1 , ";
$strSQL .= " convenio = '" . $data->usuario->convenio . "' ";
$strSQL .= " WHERE id = " . $id ;
if (Usuario_Existe($id)){
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
echo "<br /><hr /><b>Associado alterado: </b>" . $data->usuario->nome;
$pro=1;
} else {
echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome;
}
} elseif($data->usuario->movimento=="I"){
// if($data->tipoenvio=="MASSA"){
if( ($id!="") && (!is_array($id)) && ($id!="Array") ){
//se é do tipo MASSA e tem id, então update
$strSQL = "UPDATE tbusuario SET ";
$strSQL .= " usuario = '" . $data->usuario->matricula . "', ";
$strSQL .= " internoSaber = '" . $data->usuario->interno . "', ";
$strSQL .= " nome = '" . addslashes($data->usuario->nome) . "', ";
$strSQL .= " matricula = '" . $data->usuario->matricula . "', ";
$strSQL .= " orgao_trab = '" . addslashes($data->usuario->orgao) . "', ";
$strSQL .= " cpf = '" . $data->usuario->cpf . "', ";
$strSQL .= " email = '" . addslashes($data->usuario->email) . "', ";
$strSQL .= " datanascimento = STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), ";
$strSQL .= " fone = '" . addslashes($data->usuario->fone) . "', ";
$strSQL .= " fax = '" . addslashes($data->usuario->celular) . "', ";
$strSQL .= " endereco = '" . addslashes($data->usuario->endereco_residencial->endereco) . "', ";
$strSQL .= " bairro = '" . addslashes($data->usuario->endereco_residencial->bairro) . "', ";
if (($data->usuario->endereco_residencial->codcid!="") && (!is_array($data->usuario->endereco_residencial->codcid)) && ($data->usuario->endereco_residencial->codcid!="Array") ){
$strSQL .= " codCidade = " . $data->usuario->endereco_residencial->codcid . ", ";
}
$strSQL .= " uf = '" . addslashes($data->usuario->endereco_residencial->uf) . "', ";
$strSQL .= " cep = '" . addslashes($data->usuario->endereco_residencial->cep) . "', ";
$strSQL .= " endereco_p = '" . addslashes($data->usuario->endereco_correspondencia->endereco) . "', ";
$strSQL .= " bairro_p = '" . addslashes($data->usuario->endereco_correspondencia->bairro) . "', ";
if (($data->usuario->endereco_correspondencia->codcid!="") && (!is_array($data->usuario->endereco_correspondencia->codcid)) && ($data->usuario->endereco_correspondencia->codcid!="Array") ){
$strSQL .= " codCidade_p = " . $data->usuario->endereco_correspondencia->codcid . ", ";
}
$strSQL .= " uf_p = '" . addslashes($data->usuario->endereco_correspondencia->uf) . "', ";
$strSQL .= " cep_p = '" . addslashes($data->usuario->endereco_correspondencia->cep) . "', ";
$strSQL .= " ativo = 1 , ";
$strSQL .= " convenio = '" . $data->usuario->convenio . "' ";
$strSQL .= " WHERE id = " . $id ;
if (Usuario_Existe($id)){
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
echo "<br /><hr /><b>Associado alterado: </b>" . $data->usuario->nome;
$pro=1;
} else {
echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome;
}
} else {
//se é massa e não tem id, então insert
$strSQL = "INSERT INTO tbusuario( ";
$strSQL .= " usuario, internoSaber, senha, nome, matricula, orgao_trab, cpf, email, datanascimento, tipo, fone, fax, ";
$strSQL .= " endereco, bairro, ";
if ($data->usuario->endereco_residencial->codcid!=""){
$strSQL .= " codCidade, ";
}
$strSQL .= " uf, cep, ";
$strSQL .= " endereco_p, bairro_p, ";
if ($data->usuario->endereco_correspondencia->codcid!=""){
$strSQL .= " codCidade_p, ";
}
$strSQL .= " uf_p, cep_p, ";
$strSQL .= " ativo, convenio, c_usuario, c_data, alterado_web ";
$strSQL .= ") VALUES ( ";
$strSQL .= " '" . $data->usuario->matricula . "', ";
$strSQL .= " '" . $data->usuario->interno . "', ";
$strSQL .= " '" . md5("12345") . "', ";
$strSQL .= " '" . addslashes($data->usuario->nome) . "', ";
$strSQL .= " '" . $data->usuario->matricula . "', ";
$strSQL .= " '" . addslashes($data->usuario->orgao) . "', ";
$strSQL .= " '" . $data->usuario->cpf . "', ";
$strSQL .= " '" . addslashes($data->usuario->email) . "', ";
$strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), ";
$strSQL .= " 'P', ";
$strSQL .= " '" . addslashes($data->usuario->fone) . "', '" . addslashes($data->usuario->celular) . "', ";
$strSQL .= " '" . addslashes($data->usuario->endereco_residencial->endereco) . "', ";
$strSQL .= " '" . addslashes($data->usuario->endereco_residencial->bairro) . "', ";
if (($data->usuario->endereco_residencial->codcid!="") && (!is_array($data->usuario->endereco_residencial->codcid)) && ($data->usuario->endereco_residencial->codcid!="Array") ){
$strSQL .= " " . addslashes($data->usuario->endereco_residencial->codcid) . ", ";
}
$strSQL .= " '" . addslashes($data->usuario->endereco_residencial->uf) . "', ";
$strSQL .= " '" . addslashes($data->usuario->endereco_residencial->cep) . "', ";
$strSQL .= " '" . addslashes($data->usuario->endereco_correspondencia->endereco) . "', ";
$strSQL .= " '" . addslashes($data->usuario->endereco_correspondencia->bairro) . "', ";
if (($data->usuario->endereco_correspondencia->codcid!="") && (!is_array($data->usuario->endereco_correspondencia->codcid)) && ($data->usuario->endereco_correspondencia->codcid!="Array") ){
$strSQL .= " " . addslashes($data->usuario->endereco_correspondencia->codcid) . ", ";
}
$strSQL .= " '" . addslashes($data->usuario->endereco_correspondencia->uf) . "', ";
$strSQL .= " '" . addslashes($data->usuario->endereco_correspondencia->cep) . "', ";
$strSQL .= " 1, ";
$strSQL .= " '" . $data->usuario->convenio . "', ";
$strSQL .= " 'importacao', ";
$strSQL .= " STR_TO_DATE('" . date('Y-m-d') . "', '%Y-%m-%d'), ";
$strSQL .= " true) ";
// echo $strSQL . "<br><br><br><br>";
if (!Usuario_Existe($elemento->interno,1)){
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
$id = mysql_insert_id();
echo "<br /><hr /><b>Associado incluído: </b>" . $data->usuario->nome;
$pro=1;
} else {
echo "<br /><hr /><b><font color='red'>Associado já existente!</font></b> (Código interno = ".$elemento->interno.") ".$elemento->nome;
}
}
} elseif($data->usuario->movimento=="E"){
$strSQL = "UPDATE tbusuario SET ativo = 0 ";
$strSQL .= "WHERE id = $id " ;
if (Usuario_Existe($id)){
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
echo "<br /><hr /><b>Associado desativado: </b>" . $data->usuario->nome;
$pro=1;
} else {
echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome;
}
}
//incrementando processados e erros
if ($pro == 1){ $exe++; } else { $err++; }
/*---------------------------------------------------
DEPENDENTES
---------------------------------------------------*/
//só entra se NÃO for do tipo $data->usuario->movimento=="E"
if($data->usuario->movimento!="E" && $pro ==1){
//DELETA TODOS OS DEPENDENTES E INSERE NOVAMENTE PARA NÃO PRECISAR VERFICAR QUAIS PRECISAM SER ATUALIZADOS
$strSQL = "DELETE FROM tbusuario_dep WHERE tbusuario_id = $id ";
@mysql_query($strSQL) or die("Erro ao executar:<br><b>$strSQL</b><br>" . mysql_error());
if(is_array($data->usuario->dependente)){
foreach($data->usuario->dependente as $dep){
$dia = substr($dep->nascimento,0,2);
$mes = substr($dep->nascimento,2,2);
$ano = substr($dep->nascimento,4,4);
$strSQL = "INSERT INTO tbusuario_dep( ";
$strSQL .= " tbusuario_id, nome, grau, datanascimento ";
$strSQL .= ") VALUES ( ";
$strSQL .= " " . $id . ", ";
$strSQL .= " '" . addslashes($dep->nome) . "', ";
$strSQL .= " '" . addslashes($dep->grau) . "', ";
$strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d') ";
$strSQL .= ") ";
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
echo "<br /><b>Dependente inserido: </b>" . $dep->nome;
}
} else {
//SE NÃO FOR ARRAY VAI POR AQUI
if($data->usuario->dependente->nome != ""){
$dia = substr($data->usuario->dependente->nascimento,0,2);
$mes = substr($data->usuario->dependente->nascimento,2,2);
$ano = substr($data->usuario->dependente->nascimento,4,4);
$strSQL = "INSERT INTO tbusuario_dep( ";
$strSQL .= " tbusuario_id, nome, grau, datanascimento ";
$strSQL .= ") VALUES ( ";
$strSQL .= " " . $id . ", ";
$strSQL .= " '" . addslashes($data->usuario->dependente->nome) . "', ";
$strSQL .= " '" . addslashes($data->usuario->dependente->grau) . "', ";
$strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d') ";
$strSQL .= ") ";
@mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error());
echo "<br /><b>Dependente inserido: </b>" . $data->usuario->dependente->nome;
}
} //SAINDO DO IF DE VERIFICAÇÃO SE É ARRAY
}//fim das inclusões de dependentes em caso de não exclusão de associado
$i++;
}
echo "<hr />";
echo "<br /><br />
<br /><br />
<table>";
if ($data -> id){
echo " <tr>
<td width='250px'><b>Identificador de Envio</b></td><td>".$data -> id."</td>
</tr>
<tr>
<td width='250px' colspan='2'> </td>
</tr>";
}
echo " <tr>
<td width='250px'><b>Arquivo</b></td><td>".$_FILES["cpfile"]["name"]."</td>
</tr>
<tr>
<td width='250px' colspan='2'> </td>
</tr>
<tr>
<td width='250px'><b>Total de registros lidos</b></td><td>$i</td>
</tr>
<tr>
<td width='250px'><b>Total de registros processados</b></td><td>$exe</td>
</tr>
<tr>
<td width='250px'><b>Total de registros com erro</b></td><td>$err</td>
</tr>
</table>
<br /><br />
<b>Importação do arquivo concluída!";
if ($err){
echo "<br /><br /><b><font color='red'>VERIFIQUE OS REGISTROS IGNORADOS POR ERRO PARA O PROCEDIMENTO ADEQUADO!</font></b>";
}
} //FIM DO IF DE VERIFICAÇÃO SE O ARQUIVO FOI CARREGADO
/*-----------------------------------
Verifica se usuario ja existe
-----------------------------------
$chave = Item a ser pesquisado
$tipo = NULL -> Por ID
$tipo = 1 -> Por Codigo Saber
$tipo = 2 -> Por Matricula
$tipo = 3 -> Por CPF
$tipo = 4 -> Por Usuario
-----------------------------------*/
function Usuario_Existe($chave, $tipo = NULL){
$sql = "SELECT `id`, `internoSaber` FROM `tbusuario` WHERE ";
switch ($tipo) {
case 1:
$sql .= "`internoSaber` = '$chave' LIMIT 0,1";
break;
case 2:
$sql .= "`matricula` = '$chave' LIMIT 0,1";
break;
case 3:
$sql .= "`cpf` = '$chave' LIMIT 0,1";
break;
case 4:
$sql .= "`usuario` = '$chave' LIMIT 0,1";
break;
default:
$sql .= "`id` = '$chave' LIMIT 0,1";
}
$res = @mysql_query($sql);
if (@mysql_num_rows($res)>0){
return true; //existe
} else {
return false; //nao existe ainda
}
}
@mysql_free_result($RS);
@mysql_free_result($res);
@mysql_close($conexao);
?>Carregando comentários...