@ -22,7 +22,7 @@ if (isset($_GET["idUser"]) && $_GET["idUser"] == 0) {
} else if (isset($_GET["idUser"]) & & $_GET["idUser"] > 0) {
$msgLogin = "disabled";
$acaoUser = 'Alterar';
$query = "SELECT id, nome, apelido, matricula, flag, coalesce(\"admin\", false)::int as adm , senha, coalesce(supervisor, false)::int as supervisor, coalesce(agente,false)::int as agente, email, coalesce(status,true)::int as status, penalidade, senha_dias_expira, org_padrao FROM pbx_usuarios \n";
$query = "SELECT id, nome, apelido, matricula, flag, coalesce(\"admin\", false)::int as adm , senha, coalesce(supervisor, false)::int as supervisor, coalesce(agente,false)::int as agente, email, coalesce(status,true)::int as status, penalidade, senha_dias_expira FROM pbx_usuarios \n";
$query .= "WHERE id = $idUser";
$result = pg_query($dbcon, $query);
@ -37,9 +37,11 @@ if (isset($_GET["idUser"]) && $_GET["idUser"] == 0) {
$userExpiraSenha = $dados["senha_dias_expira"];
$userStatus = $dados["status"] ? "checked" : "";
$penalidade = $dados["penalidade"];
$empPadrao = $dados['org_padrao'];
$dacAgente = GetIdDacPadrao($dbcon, $idUser);
$dacPadrao = GetDacs($dbcon, $dacAgente, "", 0, 1);
$userSuper = $dados["supervisor"];
$userAgente = $dados["agente"];
} else if ((isset($_POST["btGravar"]))) {
$msg = "";
if (empty($_POST["userNome"])) {
@ -114,7 +116,7 @@ if (isset($_GET["idUser"]) && $_GET["idUser"] == 0) {
* Inclui usuario como grupo.
*/
$query = sprintf("INSERT INTO pbx_grupo(gp_nome, gp_status, user_id, gp_user, org_id)
SELECT apelido, 1, id, id, $org_id FROM pbx_usuarios WHERE apelido = %s", QuotedStr($userLogin) );
SELECT apelido, 1, id, id, $org_id FROM pbx_usuarios WHERE id = %s", $user['id'] );
$result2 = $result & & pg_query($dbcon, $query);
/*
@ -133,6 +135,13 @@ if (isset($_GET["idUser"]) && $_GET["idUser"] == 0) {
$result4 = $result & & pg_query($dbcon, $query);
}
/*
* Insere o usuario no grupo (agente/supervisor) que foi escolhido.
*/
$grupo = $userSuper === 'TRUE' ? 'SUPERVISOR' : 'AGENTE';
$query = sprintf("INSERT INTO pbx_grupo_usuario(user_id, gp_id, org_id) SELECT %d, gp_id, org_id FROM pbx_grupo WHERE gp_nome = '%s' AND org_id = $org_id", $user['id'],$grupo);
$result5 = $result & & pg_query($dbcon, $query);
/*
* Finaliza a transacao.
*/
@ -199,6 +208,11 @@ if (isset($_GET["idUser"]) && $_GET["idUser"] == 0) {
$result = $result & & pg_query($dbcon, $query);
}
if($result) {
$grupo = $userSuper === 'TRUE' ? 'SUPERVISOR' : 'AGENTE';
updateGrupoUser($dbcon,$grupo,$org_id,$idUser);
}
if ($result) {
$ret = IncluiAgenteFile($dbcon);
$result = strtoupper($ret) == "OK";
@ -224,6 +238,36 @@ if (isset($_GET["idUser"]) && $_GET["idUser"] == 0) {
$jsStartup[] = $msg;
}
function updateGrupoUser($dbcon, $grupoNovo, $org_id, $idUser) {
// Determine o grupo oposto
$grupoOposto = $grupoNovo === 'AGENTE' ? 'SUPERVISOR' : 'AGENTE';
// Preparar a consulta para obter os IDs dos grupos de interesse
$query = "SELECT gp_nome, gp_id FROM pbx_grupo WHERE (gp_nome = $1 OR gp_nome = $2) AND org_id = $3;";
$result = pg_query_params($dbcon, $query, array($grupoNovo, $grupoOposto, $org_id));
$valorNovo = null;
$valorOposto = null;
// Verificar e atribuir os valores dos IDs dos grupos
while ($row = pg_fetch_assoc($result)) {
if ($row['gp_nome'] === $grupoNovo) {
$valorNovo = $row['gp_id'];
} elseif ($row['gp_nome'] === $grupoOposto) {
$valorOposto = $row['gp_id'];
}
}
// Se ambos os IDs dos grupos forem encontrados, atualize o grupo do usuário
if ($valorNovo !== null & & $valorOposto !== null) {
$query = "UPDATE pbx_grupo_usuario SET gp_id = $1 WHERE org_id = $2 AND gp_id = $3 AND user_id = $4;";
$result = pg_query_params($dbcon, $query, array($valorNovo, $org_id, $valorOposto, $idUser));
return $result !== false;
} else {
return false;
}
}
$smarty->assign("userExpiraSenha", $userExpiraSenha ? $userExpiraSenha : 0);
$smarty->assign("userNome", $limpaVar ? "" : $userNome);
$smarty->assign("userLogin", $limpaVar ? "" : $userLogin);
@ -237,8 +281,9 @@ $smarty->assign("userStatus", $limpaVar ? "checked" : $userStatus);
$smarty->assign("acaoUser", $acaoUser);
$smarty->assign("idUser", $idUser);
$smarty->assign("dacPadrao", $dacPadrao);
$smarty->assign("empPadrao", getOrgPadrao($dbcon, $idUser));
$smarty->assign("penalidade", $penalidade ? $penalidade : "0");
$smarty->assign("userAgente", $userAgente ? true : false);
$smarty->assign("userSuper", $userSuper ? true : false);
$jsJQuery[] = "\$('#userLogin').change(function(){limpaEspaco(this);}) ";
$jsJQuery[] = "\$('#penalidade').keyup(function(){somenteNumeros(this);}) ";
@ -290,31 +335,4 @@ function getEmailUser($dbcon, $email, $id = null)
return false;
}
return true;
}
function getOrgPadrao($dbcon, $idUser)
{
$query = "SELECT a.id, a.nome, a.master, org_padrao
FROM pbx_organizacao a
INNER JOIN pbx_organizacao_usuarios b ON b.id_organizacao = a.id
INNER JOIN pbx_usuarios c ON c.id = b.id_usuario
WHERE b.id_usuario = {$idUser}
AND a.status = 1
ORDER BY a.id";
$result = pg_query($dbcon, $query);
$data = pg_fetch_all($result);
if (!$data) {
return null;
}
$select = "< select name = 'empPadrao' id = 'empPadrao' > ";
foreach ($data as $v) {
$sel = $v['id'] == $v['org_padrao'] ? 'selected' : '';
$select .= "< option value = '{$v[' id ' ] } ' $ sel > {$v['nome']}< / option > ";
}
$select .= "< / select > ";
return $select;
}
}