8,
'name' => 'usuarioEmpresa',
'width' => '200',
'disable' => '0',
'multiple' => '1'
];
if (isset($fieldsForm['btInclui'])) {
AtualizaEmpresa($dbcon, $fieldsForm['usuarioEmpresainc'], 1, $idOrg);
} else if (isset($fieldsForm['btRemove'])) {
AtualizaEmpresa($dbcon, $fieldsForm['usuarioEmpresarm'], 0, $idOrg);
}
$fieldsForm['listagrupos'] = GetUser($dbcon, 1, $infos, $idOrg);
$fieldsForm['gruposinc'] = GetEmpresaUser($dbcon, 1, $infos, $idOrg);
/*
* Atualiza templates templates
*/
foreach ($fieldsForm as $key => $value) {
$smarty->assign($key, $value);
}
GetTemplate($smarty, $templateName);
function GetUser($dbcon, $codSel, $infos, $idOrg)
{
$sel = "";
$infos['name'] = $infos['name'] . "inc";
$query = "SELECT DISTINCT id, apelido, matricula
FROM pbx_usuarios WHERE id
NOT IN (SELECT id_usuario FROM pbx_organizacao_usuarios WHERE id_organizacao = $idOrg)
AND id NOT IN (342,341,356,357,462,466,467);";
$result = pg_query($dbcon, $query);
$lista = '\n";
return $lista;
}
function GetEmpresaUser($dbcon, $codSel, $infos, $idOrg)
{
$sel = "";
$infos['name'] = $infos['name'] . "rm";
$query = "SELECT DISTINCT pu.id, pu.apelido, matricula
FROM pbx_usuarios pu
INNER JOIN pbx_organizacao_usuarios pou on pou.id_usuario = pu.id
INNER JOIN pbx_organizacao po on po.id = pou.id_organizacao
WHERE pu.id NOT IN (342,341,356,357,462,466,467)
AND pu.id IN (SELECT id_usuario FROM pbx_organizacao_usuarios WHERE id_organizacao = {$idOrg});";
$result = pg_query($dbcon, $query);
$lista = '";
return $lista;
}
function AtualizaEmpresa($dbcon, $field, $status, $idOrg)
{
try {
if (!$field) {
throw new Exception('Selecione um usuário');
}
pg_query($dbcon, 'begin');
foreach ($field as $idUser) {
$query = sprintf("SELECT *, NOW() as current_time FROM pbx_usuarios where id = %d ", $idUser);
$result = pg_query($dbcon, $query);
if ($result && pg_num_rows($result) > 0) {
$result = pg_fetch_assoc($result);
if ($status == 1) {
$query = sprintf("INSERT INTO pbx_organizacao_usuarios (id_usuario, id_organizacao) VALUES (%s, %s); ", $idUser, $idOrg);
$resposta = pg_query($dbcon, $query);
if ($resposta) {
$resposta = pg_query($dbcon, "commit");
} else {
throw new Exception("Erro ao inserir!");
}
}
if ($status == 0) {
$query = sprintf("DELETE FROM pbx_organizacao_usuarios WHERE id_usuario = %s AND id_organizacao = %s;", $idUser, $idOrg);
$resposta = pg_query($dbcon, $query);
if ($resposta) {
$resposta = pg_query($dbcon, "commit");
} else {
throw new Exception("Erro ao remover!$idUser, $idOrg");
}
}
}
}
if (!@pg_query($dbcon, 'commit')) {
throw new Exception('A operação não pode ser realizada!');
}
} catch (Exception $e) {
@pg_query($dbcon, 'rollback');
fmtErro($e->getMessage(), pg_last_error($dbcon));
}
}