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.
143 lines
5.8 KiB
143 lines
5.8 KiB
#!/usr/bin/php -q |
|
<?php |
|
/******************************************************************************* |
|
* IMPORTA AGENDA * |
|
* * |
|
* Data: 17/04/2019 * |
|
* Autor: Jose Henrique Joanoni * |
|
* * |
|
* Script criado para replicação da agenda entre unidades de uma mesma empresa* |
|
* * |
|
******************************************************************************/ |
|
include('util/util.php'); |
|
|
|
/* |
|
* Configuração do banco de dados. Deixe a variável $str para pegar o valor padrao |
|
*/ |
|
$str = ''; |
|
if (!$str) { |
|
$str = GetDefStrDb(); |
|
} |
|
|
|
/* |
|
* Realiza a conexao ao banco de daodos. |
|
*/ |
|
$dbcon = pg_connect($str); |
|
|
|
$sql = "SELECT prm_normaliza_agenda FROM pbx_parametros"; |
|
$result = pg_query($dbcon, $sql); |
|
$norm = pg_fetch_all($result); |
|
|
|
if($norm[0]['prm_normaliza_agenda'] != '1'){ |
|
exit; |
|
}else{ |
|
$sql = "SELECT ip_servidores FROM pbx_agenda_servidores WHERE 1=1"; |
|
$result = pg_query($dbcon,$sql); |
|
$server = pg_fetch_all($result); |
|
|
|
foreach($server as $dados){ |
|
if(is_array($dados)){ |
|
foreach($dados as $servidores){ |
|
$arServer[] = $servidores; |
|
} |
|
ImportaAgenda($arServer); |
|
}else{ |
|
ImportaAgenda($dados); |
|
} |
|
} |
|
} |
|
|
|
function ImportaAgenda($servidores) |
|
{ |
|
|
|
try { |
|
$dbPort = "5432"; |
|
$dbHost = "127.0.0.1"; |
|
$dbName = "pbx"; |
|
$dbUser = "contacte"; |
|
$dbPassword = "ctepgSQL"; |
|
$str = "host='$dbHost' port='$dbPort' dbname='$dbName' user='$dbUser' password='$dbPassword'"; |
|
$con = pg_connect($str); |
|
|
|
$sql = "SELECT rma_telefone,rma_nome,data_reg,user_reg,ddd FROM pbx_ramais_agenda ORDER BY 1"; |
|
$result = pg_query($con, $sql); |
|
if (!$result) {throw new Exception("Não foi possível executar a query");} |
|
$contatos[] = pg_fetch_all($result); |
|
|
|
$sql2 = "SELECT dpto_id, dpto_nome, dpto_status,data_reg, user_reg " |
|
. "FROM rma_departamentos ORDER BY 1"; |
|
$resultado = pg_query($con,$sql2); |
|
if(!$resultado){throw new Exception("Não foi possível executar a query!");} |
|
$departamentos[] = pg_fetch_all($resultado); |
|
|
|
$sql3 = "SELECT nome,dpto_id FROM rma_depto_ramais"; |
|
$result1 = pg_query($con,$sql3); |
|
if(!$result1){throw new Exception("Não foi possível executar a query!");} |
|
$dptoRamais[] = pg_fetch_all($result1); |
|
|
|
foreach ($servidores as $host) { |
|
|
|
$dbPort = "5432"; |
|
$dbHost = "$host"; |
|
$dbName = "pbx"; |
|
$dbUser = "contacte"; |
|
$dbPassword = "ctepgSQL"; |
|
$str = "host='$dbHost' port='$dbPort' dbname='$dbName' user='$dbUser' password='$dbPassword'"; |
|
$con = pg_connect($str); |
|
|
|
try{ |
|
$transac = 0; |
|
|
|
$result = pg_query($con,'begin;'); |
|
if(!$result){throw new Exception('Não foi possível iniciar a transação');} |
|
$transac = 1; |
|
|
|
$deleteRamais = pg_query($con, "DELETE FROM pbx_ramais_agenda"); |
|
if (!$deleteRamais) {throw new Exception("Não foi possível apagar os registros da tabela!");} |
|
|
|
$deleteDepto = pg_query($con,"DELETE FROM rma_departamentos;"); |
|
if(!$deleteDepto){throw new Exception("Não foi possível apagar os registros da tabela");} |
|
|
|
$deleteDeptRamais = pg_query($con,"DELETE FROM rma_depto_ramais"); |
|
if(!$deleteDeptRamais){throw new Exception("Não foi possível apagar os registros da tabela.");} |
|
|
|
foreach ($contatos[0] as $key => $value) { |
|
$sql = "INSERT INTO pbx_ramais_agenda (rma_telefone, rma_nome, data_reg, user_reg, ddd) " |
|
. "VALUES ('{$value['rma_telefone']}','{$value['rma_nome']}','{$value['data_reg']}', |
|
'{$value['user_reg']}','{$value['ddd']}')"; |
|
$result = pg_query($con, $sql); |
|
|
|
if (!$result) {throw new Exception("Não foi possível inserir os registros na tabela pbx_ramais_agenda!");} |
|
} |
|
|
|
foreach ($departamentos[0] as $key => $value) { |
|
$sql = "INSERT INTO rma_departamentos (dpto_id,dpto_nome, dpto_status, data_reg, user_reg) " |
|
. "VALUES ({$value['dpto_id']},'{$value['dpto_nome']}','{$value['dpto_status']}','{$value['data_reg']}','{$value['user_reg']}')"; |
|
$result = pg_query($con, $sql); |
|
|
|
if (!$result) {throw new Exception("Não foi possível inserir os registros na tabela rma_departamentos!");} |
|
} |
|
|
|
foreach ($dptoRamais[0] as $key => $value) { |
|
$sql = "INSERT INTO rma_depto_ramais(nome, dpto_id) VALUES ('{$value['nome']}','{$value['dpto_id']}')"; |
|
$result = pg_query($con, $sql); |
|
|
|
if (!$result) {throw new Exception("Não foi possível inserir os registros na tabela rma_depto_ramais!");} |
|
} |
|
|
|
$result = pg_query($con, 'commit'); |
|
if (!$result) {throw new Exception("Não foi possivel concluir a transação");} |
|
|
|
}catch (Exception $ex){ |
|
if($transac){ |
|
pg_query($con, 'rollback;'); |
|
} |
|
return $ex->getMessage(); |
|
} |
|
} |
|
|
|
return "Sucesso!"; |
|
} catch (Exception $ex) { |
|
return $ex->getMessage(); |
|
} |
|
}
|
|
|