kkkkk não te preocupes, isso acontece com todos, principalmente quando estamos pressionados pelo fato de ainda não termos descoberto o erro no sistema… O importante é que conseguiste resolver e ficou a dica para as próximas oportunidades. Vamos em frente!!
Kleyber, ainda dentro deste tema, gostaria de fazer o seguinte:
Antes de Importar, analisar se os telefones que constam no Arquivo CSV já estão no banco de dados.
Para isso, criei uma nova aplicação Controle e a chamei de Analisar Arquivo. O objetivo é que ele Leia o CSV em busca de duplicidade, então fiz um lookup. Fiz separado, pois a idéia, é que ele me mostre uma lista de duplicados, antes de importar. Com esta lista de duplicados, vou conseguir, manualmente, limpar o ARQUIVO CSV e só então importa-lo de vez.
Imagino que isso seja possível dentro da mesma Controle de Importação, mas acho que seria muito mais complexo. Veja o que fiz apenas para analisar as duplicidades:
[code]// Pegando o arquivo com caminho
$caminho = $this->Ini->path_doc;
$_arquivo = $caminho.’/’.{importa_lig};
$_Delimitador = ‘;’;
$_Cerca = ‘"’;
$_Duplicados=0;
// Abrir arquivo para leitura
$arq = fopen($_arquivo, ‘r’);
if ($arq) {
// Ler cabecalho do arquivo
$cabecalho = fgetcsv($arq, 0, $_Delimitador, $_Cerca);
// Enquanto nao terminar o arquivo
while (!feof($arq)) {
// Ler uma linha do arquivo
$linha = fgetcsv($arq, 0, $_Delimitador, $_Cerca);
if (!$linha) {
continue;
}
// Montar registro com valores indexados pelo cabecalho
$registro = array_combine($cabecalho, $linha);
// Obtendo campos do CSV
// Olhar no Seu CSV como estão os NOMES CABEÇALHO dos campos e colocar ['NOME_CAMPO']
$usuario_clientes = $registro['usuario_clientes'];
$data_clientes = $registro['data_clientes'];
$horario_clientes = $registro['horario_clientes'];
$recepcao_clientes = $registro['recepcao_clientes'];
$sexo_clientes = $registro['sexo_clientes'];
$nome_clientes = $registro['nome_clientes'];
$idade_clientes = $registro['idade_clientes'];
$telefone1_clientes = $registro['telefone1_clientes'];
$telefone2_clientes = $registro['telefone2_clientes'];
$midia_clientes = $registro['midia_clientes'];
$profissao_clientes = $registro['profissao_clientes'];
$estado_civil_clientes = $registro['estado_civil_clientes'];
$email_clientes = $registro['email_clientes'];
$nome_conjuge_clientes = $registro['nome_conjuge_clientes'];
$idade_conjuge_clientes = $registro['idade_conjuge_clientes'];
$profissao_conjuge_clientes = $registro['profissao_conjuge_clientes'];
$email_conjuge_clientes = $registro['email_conjuge_clientes'];
$observacao_clientes = $registro['observacao_clientes'];
$endereco_clientes = $registro['endereco_clientes'];
$numero_clientes = $registro['numero_clientes'];
$complemento_clientes = $registro['complemento_clientes'];
$bairro_clientes = $registro['bairro_clientes'];
$cep_clientes = $registro['cep_clientes'];
$cidade_clientes = $registro['cidade_clientes'];
$referencia_clientes = $registro['referencia_clientes'];
$terapeuta_clientes = $registro['terapeuta_clientes'];
$responsavel_visita_clientes = $registro['responsavel_visita_clientes'];
$data_visita_clientes = $registro['data_visita_clientes'];
$horario_visita_clientes = $registro['horario_visita_clientes'];
$status_clientes = $registro['status_clientes'];
$filial_clientes = $registro['filial_clientes'];
$relatorio_visita = $registro['relatorio_visita'];
$relatorio_venda = $registro['relatorio_venda'];
$relatorio_ligacoes = $registro['relatorio_ligacoes'];
$relatorio_agendamento = $registro['relatorio_agendamento'];
$data_venda_clientes = $registro['data_venda_clientes'];
$numero_nota_clientes = $registro['numero_nota_clientes'];
$valor_total_clientes = $registro['valor_total_clientes'];
$dia_vencimentos_clientes = $registro['dia_vencimentos_clientes'];
$forma_de_pagamento_clientes = $registro['forma_de_pagamento_clientes'];
$condicao_de_pagamento_clientes = $registro['condicao_de_pagamento_clientes'];
$observacoes_financeiro_clientes = $registro['observacoes_financeiro_clientes'];
$cargo_usuario = $registro['cargo_usuario'];
$andamento = $registro['andamento'];
$vendido = $registro['vendido'];
$reagendamento = $registro['reagendamento'];
$cancelado = $registro['cancelado'];
$insert_table = 'clientes'; // Nome da Tabela
$insert_fields = array(
'usuario_clientes' => "'$usuario_clientes'",
'data_clientes' => "'$data_clientes'",
'horario_clientes' => "'$horario_clientes'",
'recepcao_clientes' => "'$recepcao_clientes'",
'sexo_clientes' => "'$sexo_clientes'",
'nome_clientes' => "'$nome_clientes'",
'idade_clientes' => "'$idade_clientes'",
'telefone1_clientes' => "'$telefone1_clientes'",
'telefone2_clientes' => "'$telefone2_clientes'",
'midia_clientes' => "'$midia_clientes'",
'profissao_clientes' => "'$profissao_clientes'",
'estado_civil_clientes' => "'$estado_civil_clientes'",
'email_clientes' => "'$email_clientes'",
'nome_conjuge_clientes' => "'$nome_conjuge_clientes'",
'idade_conjuge_clientes' => "'$idade_conjuge_clientes'",
'profissao_conjuge_clientes' => "'$profissao_conjuge_clientes'",
'email_conjuge_clientes' => "'$email_clientes'",
'observacao_clientes' => "'$observacao_clientes'",
'endereco_clientes' => "'$endereco_clientes'",
'numero_clientes' => "'$numero_clientes'",
'complemento_clientes' => "'$complemento_clientes'",
'bairro_clientes' => "'$bairro_clientes'",
'cep_clientes' => "'$cep_clientes'",
'cidade_clientes' => "'$cidade_clientes'",
'referencia_clientes' => "'$referencia_clientes'",
'terapeuta_clientes' => "'$terapeuta_clientes'",
'responsavel_visita_clientes' => "'$responsavel_visita_clientes'",
'data_visita_clientes' => "'$data_visita_clientes'",
'horario_visita_clientes' => "'$horario_visita_clientes'",
'status_clientes' => "'$status_clientes'",
'filial_clientes' => "'$filial_clientes'",
'relatorio_visita' => "'$relatorio_visita'",
'relatorio_venda' => "'$relatorio_venda'",
'relatorio_ligacoes' => "'$relatorio_ligacoes'",
'relatorio_agendamento' => "'$relatorio_agendamento'",
'data_venda_clientes' => "'$data_venda_clientes'",
'numero_nota_clientes' => "'$numero_nota_clientes'",
'valor_total_clientes' => "'$valor_total_clientes'",
'dia_vencimentos_clientes' => "'$dia_vencimentos_clientes'",
'forma_de_pagamento_clientes' => "'$forma_de_pagamento_clientes'",
'condicao_de_pagamento_clientes' => "'$condicao_de_pagamento_clientes'",
'observacoes_financeiro_clientes' => "'$observacoes_financeiro_clientes'",
'cargo_usuario' => "'$cargo_usuario'",
'andamento' => "'$andamento'",
'vendido' => "'$vendido'",
'reagendamento' => "'$reagendamento'",
'cancelado' => "'$cancelado'",
);
$sql = "SELECT telefone1_clientes FROM clientes WHERE telefone1_clientes = $telefone1_clientes";
sc_lookup( ds, $sql);
if(empty({ds})) {}
else{
$id_cli = {ds[0][0]};
echo $id_cli;
$_Duplicados++;
}
/*
Inserir registro
$insert_sql = 'INSERT INTO ' . $insert_table
. ' (' . implode(', ', array_keys($insert_fields)) . ')'
. ' VALUES (' . implode(', ', array_values($insert_fields)) . ')';
sc_exec_sql($insert_sql);
sc_commit_trans();
$_Cadastrados++;
*/
} // Fim: while (!feof($arq))
fclose($arq);
}
if ($_Duplicados==0) {
sc_error_message(“Não há registros Duplicados nesta lista”);
}
else{
{Status}="DUPLICIDADE ENCONTRADA : " . $_Duplicados;
}
[/code]
Ele diz que não há registros duplicados, mas todos da lista são duplicados… onde posso estar errando ?
obrigado !!
Teria que fazer o SELECT pra checar a duplicidade antes de dar o INSERT.
A leitura da planilha pode ser antes jogada em array e a cada insert de dados no array verificar antes se o índice é existente e se for criar um contador no próprio array marcando quantos registros existem para o mesmo índice (ou seja registros duplicados).
Haroldo poderia me dar um exemplo deste que comentou?