PABX da Simples IP
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

#!/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();
}
}