forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
5.9 KiB
146 lines
5.9 KiB
<?php |
|
|
|
require('funcoesFormulario.php'); |
|
$tpLayout = 1; |
|
$upload = 1; |
|
|
|
$templateName = 'cadastros/prevenda/clienteFile.tpl'; |
|
|
|
define("MAX_BUFFER_INSERT", 100000); |
|
|
|
$titulo = isset($_POST['titulo']) ? $_POST['titulo'] : null; |
|
$descricao = isset($_POST['descricao']) ? $_POST['descricao'] : null; |
|
$fornecedor = isset($_POST['fornecedor']) ? $_POST['fornecedor'] : null; |
|
|
|
$fieldsForm = array(); |
|
$fieldsForm = $_REQUEST; |
|
|
|
$fieldsForm['erro'] = ""; |
|
$fieldsForm['msg'] = "Selecione um arquivo e clique em incluir!"; |
|
$tipoconversao = isset($_REQUEST['tipo_conversao']) ? $_REQUEST['tipo_conversao'] : ''; |
|
|
|
$conversao = array(1 => ';', 2 => '|', 3 => ','); |
|
$clients = array(); |
|
|
|
if (IsPostBack()) { |
|
|
|
try { |
|
$file = (object) $_FILES['cliente_file']; |
|
|
|
if (empty($file->name) || !$file->size) { |
|
GeraExcept("Para realizar esta operação é necessario enviar um arquivo!"); |
|
} |
|
|
|
if (!file_exists($file->tmp_name)) { |
|
GeraExcept("Não foi possível ler o arquivo!"); |
|
} |
|
|
|
/* |
|
* Numero de linhas do aquivo original. |
|
*/ |
|
$origLines = FileNumberLines($file->tmp_name); |
|
|
|
$pathFile = "/var/www/html/aplicativo/integracao/arquivoCampanha/"; |
|
$fileName = sprintf("cliente_%s_%s.txt", date(YmdHis), GetLogin()); |
|
|
|
/* |
|
* Limpa e copia o arquivo. |
|
*/ |
|
foreach (file($file->tmp_name) as $line => $string) { |
|
$data = explode($conversao[$tipoconversao], RemoveAcentos($string)); |
|
|
|
/* |
|
* ADICIONA OS NUMEROS DA TABELA DE LISTA |
|
*/ |
|
$clients[] = array( |
|
'client_documento' => trim($data[0]), |
|
'client_tipo_documento' => trim($data[1]), |
|
'client_razao_social' => trim($data[2]), |
|
'client_nome_fantasia' => trim($data[3]), |
|
'client_endereco' => trim($data[4]), |
|
'client_municipio' => trim($data[5]), |
|
'client_uf' => trim($data[6]), |
|
'client_telefone' => trim($data[7]), |
|
'client_celular' => trim($data[8]), |
|
'client_email' => trim($data[9]), |
|
'client_nome_contato' => trim($data[10]) |
|
); |
|
} |
|
$imports = create($titulo, $descricao, $fornecedor, GetMatricula(), $clients); |
|
$fieldsForm['msg'] = "Arquivo carregado com sucesso! Contatos importados {$imports}"; |
|
$jsStartup[] = "window.opener.ResetForm();"; |
|
} catch (Exception $ex) { |
|
|
|
$fieldsForm['msg'] = $ex->getMessage(); |
|
} |
|
} |
|
|
|
/* |
|
* Atualiza templates |
|
*/ |
|
foreach ($fieldsForm as $key => $value) { |
|
$smarty->assign($key, $value); |
|
} |
|
|
|
$smarty->assign('opt', getFornecedor(GetMatricula())); |
|
GetTemplate($smarty, $templateName); |
|
|
|
function create($titulo, $descricao, $fornecedor, $user, $data) { |
|
$imports = 0; |
|
|
|
if (!$titulo && !$descricao && !$fornecedor) { |
|
throw new Exception('É necessário preencher os campos de configuração da lista para prosseguir!'); |
|
} |
|
|
|
pg_query('begin;'); |
|
$sql = "INSERT INTO pbx_cliente_origem (clo_titulo, clo_descricao, cfr_id, user_reg) VALUES ('{$titulo}','{$descricao}', {$fornecedor}, {$user}) RETURNING clo_id;"; |
|
$result = pg_query($sql); |
|
$clo_id = pg_fetch_assoc($result); |
|
|
|
if (!$result) { |
|
pg_query('rollback;'); |
|
throw new Exception('Não foi possível realizar o cadastro da lista!'); |
|
} |
|
|
|
foreach ($data as $value) { |
|
if (($value['client_telefone'] || $value['client_celular'] || $value['client_email']) && $value['client_razao_social'] && $value['client_documento']) { |
|
$query .= sprintf("INSERT INTO pbx_cliente (client_tipo_documento, client_documento, " |
|
. "client_razao_social, client_nome_fantasia, client_endereco, " |
|
. "client_municipio, client_uf, client_telefone, client_celular, " |
|
. "client_email, client_nome_contato, clo_id, client_status) " |
|
. "VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,'0'); \n", |
|
QuotedStr($value['client_tipo_documento']), QuotedStr($value['client_documento']), |
|
QuotedStr(RemoveAcentos($value['client_razao_social'])), QuotedStr(RemoveAcentos($value['client_nome_fantasia'])), |
|
QuotedStr(RemoveAcentos($value['client_endereco'])), QuotedStr(RemoveAcentos($value['client_municipio'])), QuotedStr($value['client_uf']), |
|
QuotedStr($value['client_telefone']), QuotedStr($value['client_celular']), QuotedStr($value['client_email']), |
|
QuotedStr(RemoveAcentos($value['client_nome_contato'])), QuotedStr($clo_id['clo_id'])); |
|
$imports++; |
|
} |
|
} |
|
|
|
$result = pg_query($query); |
|
if (!$result) { |
|
file_put_contents('/var/log/asterisk/clienteFile.log', $query); |
|
pg_query('rollback;'); |
|
throw new Exception("Não foi possível realizar o cadastro dos contatos lista! Error DB: " . pg_last_error()); |
|
} |
|
pg_query('commit;'); |
|
|
|
return $imports; |
|
} |
|
|
|
function getFornecedor($matricula) { |
|
$query = "SELECT * FROM pbx_cliente_fornecedor a |
|
INNER JOIN pbx_fornecedor_permissao b ON b.cfr_id = a.cfr_id |
|
WHERE matricula_permissao = '{$matricula}';"; |
|
$result = pg_query($query); |
|
$resp = pg_fetch_all($result); |
|
|
|
$opt = ""; |
|
foreach ($resp as $value) { |
|
$opt .= "<option value='{$value['cfr_id']}'>{$value['cfr_razao_social']}</option>"; |
|
} |
|
return $opt; |
|
} |
|
|
|
?>
|
|
|