Browse Source

permissoes para editar a classificacao

1.8.1-monitor
douglas.strappasson 1 year ago
parent
commit
81a25a0c38
  1. 1
      include/util/funcoesApl.php
  2. 1
      include/util/funcoesInternas.php
  3. 31
      relatorios/callcenter/geral/relClassificacaoDetalhes.php
  4. 3
      scriptApl/functions15.js
  5. 212
      supervisao/editaClassificado.php
  6. 24
      templates/supervisao/editaClassificado.tpl

1
include/util/funcoesApl.php

@ -402,6 +402,7 @@ function VerificaCadastroMenu($conn) {
$menuUsuario[] = array('218', 'mnSimplesChatSup', '0', 'Supervisor SimplesChat', 'index.php?idProg=360', '', '1', '1', '0', '', '360');
$menuUsuario[] = array('219', 'mnSimplesChatAgt', '0', 'Agente SimplesChat', 'index.php?idProg=361', '', '1', '1', '0', '', '361');
$menuUsuario[] = array('220', 'mnLgpdAdm', '0', 'Administra LGPD', 'index.php?idProg=364', '', '1', '1', '0', '', '364');
$menuUsuario[] = array('221', 'mnpermEditaClassificado', '0', 'Permite Editar Classificação', 'index.php?idProg=368', '', '1', '1', '0', '', '368');
$menuUsuario[] = array('112', 'mnSair', '1', 'Sair', 'index.php?idProg=-1&DEBUG=0', '', '', '1', '1', '10', '-1');

1
include/util/funcoesInternas.php

@ -337,6 +337,7 @@ $funcosInternas[] = "insert into pbx_funcoes_internas(id_prog, arquivo, id_prog_
$funcosInternas[] = "insert into pbx_funcoes_internas(id_prog, arquivo, id_prog_pai, status, exit)values(365,'downloadRel.php',365,0,0)";
$funcosInternas[] = "insert into pbx_funcoes_internas(id_prog, arquivo, id_prog_pai, status, exit)values(366,'relatorios/custom/relChamadaGeral.php',366,0,0)";
$funcosInternas[] = "insert into pbx_funcoes_internas(id_prog, arquivo, id_prog_pai, status, exit)values(367,'supervisao/editaClassificado.php',150,0,0)";
$funcosInternas[] = "insert into pbx_funcoes_internas(id_prog, arquivo, id_prog_pai, status, exit)values(368,'permEditaClassificado.php',368,0,0)";

31
relatorios/callcenter/geral/relClassificacaoDetalhes.php

@ -353,9 +353,11 @@ class RelClassificacaoDetalhes extends Relatorios {
}
protected function ___PreparaGrid() {
global $dbcon;
$dataRel = array();
$mostraColunaServicos = GetUsoServico() == RELATORIO_SERVICOS_HABILITA;
$permiteEditaClassificacao = VerificaPerfilAcesso($dbcon, GetIdProgFromNomeArq('permEditaClassificado.php'));
$dadosCabecalio = array(
'Data/Hora' => 'align="center"',
@ -365,8 +367,7 @@ class RelClassificacaoDetalhes extends Relatorios {
'Classificação' => 'align="left"',
'Item' => 'align="center"',
'Tipo' => 'align="center"',
'Discador' => 'align="Center"',
'Editar Classificação' => 'align="Center"'
'Discador' => 'align="Center"'
);
$dadosField = array(
@ -377,13 +378,17 @@ class RelClassificacaoDetalhes extends Relatorios {
'clas_descricao' => 'align="left"',
'clit_descricao' => 'align="center"',
'tplg_descricao' => 'align="center"',
'discador' => 'align="Center"',
'editarClassificacao' => 'align="Center"'
'discador' => 'align="Center"'
);
if ($mostraColunaServicos) {
$dadosCabecalio = array_merge(['Serviço' => 'align="center"'], $dadosCabecalio);
$dadosField = array_merge(['serv_id' => 'align="left"'], $dadosField);
$dadosCabecalio ['Serviço'] = 'align="center"';
$dadosField ['serv_id'] = 'align="left"';
}
if ($permiteEditaClassificacao){
$dadosCabecalio['Editar Classificação'] = 'align="center"';
$dadosField['editarClassificacao'] = 'align="center"';
}
/*
* Inicia o relat�rio.
@ -434,11 +439,8 @@ class RelClassificacaoDetalhes extends Relatorios {
/*
* Linhas de dados.
*/
foreach ($this->GetData()[0] as $row) {
$editaClassificacao = sprintf("<a href=\"javaScript:NovaJanela('index.php?idProg=367&pbxRequest=1&wipeSessionParameter=1&idDac=%s&listaClas=%s&listaItem=%s&regClassId=%s', 'jneditaClassificado', '0', '0', 'resizable=no,location=no,scrollbars=no');\">
<img src=\"imgSite/class16.png\" width=\"16\" border=\"0\" height=\"16\" title=\"Clique para editar esta classificação.\"
alt=\"Clique para editar esta classificação.\" align=\"absmiddle\"></a>", $row['id_dac'], $row['clas_id'], $row['clit_id'], $row['reg_class_id']);
foreach ($this->GetData()[0] as $row) {
if ($mostraColunaServicos) {
$agrupaServico($row);
}
@ -448,7 +450,12 @@ class RelClassificacaoDetalhes extends Relatorios {
$row['tplg_descricao'] = explode(' ', $row['tplg_descricao'])[0];
$row['origem'] = ocultarTelefone($row['origem']);
$row['destino'] = ocultarTelefone($row['destino']);
$row['editarClassificacao'] = $editaClassificacao;
if ($permiteEditaClassificacao){
$row['editarClassificacao'] = sprintf("<a href=\"javaScript:NovaJanela('index.php?idProg=367&pbxRequest=1&regClassId=%s', 'jneditaClassificado', '0', '0', 'resizable=no,location=no,scrollbars=no');\">
<img src=\"imgSite/class16.png\" width=\"16\" border=\"0\" height=\"16\" title=\"Clique para editar esta classificação.\"
alt=\"Clique para editar esta classificação.\" align=\"absmiddle\"></a>", $row['reg_class_id']);
}
// Formata linha de dados.
$linha = "<tr>";

3
scriptApl/functions15.js

@ -1279,9 +1279,10 @@ function CarregaItem()
{
try
{
var idProg = document.querySelector('input[name="idProg"]').value;
var indice = document.forms[0].listaClas.selectedIndex;
var id = document.forms[0].listaClas.options[indice].value;
var url = "index.php?idProg=192&idSubProg=3&idItem=" + id + "&ajax=1" + GetIdRand();
var url = `index.php?idProg=${idProg}&idSubProg=3&idItem=${id}&ajax=1${GetIdRand()}`;
GetAjax("GET", url, true, GetItemClas, true);
} catch (e)
{

212
supervisao/editaClassificado.php

@ -1,108 +1,140 @@
<?php
$permiteEditarClassificacao = VerificaPerfilAcesso($dbcon, GetIdProgFromNomeArq('permEditaClassificado.php'));
$tpLayout = 1;
$wipeSessionParameter = $_REQUEST['wipeSessionParameter'] ? $_REQUEST['wipeSessionParameter'] : null;
$nomeTpl = "supervisao/editaClassificado.tpl";
$parameters = ['idDac', 'listaClas', 'listaItem', 'regClassId'];
if ($wipeSessionParameter) {
unset($_SESSION['parameters']);
$dados = array();
foreach ($parameters as $parameter) {
if (isset($_REQUEST[$parameter])) {
$dados[$parameter] = $_REQUEST[$parameter];
}
$_SESSION['parameters'] = $dados;
}
} else {
$_SESSION['parameters']["listaClasNew"] ? $_SESSION['parameters']['listaClas'] = $_SESSION['parameters']["listaClasNew"] : '';
$_SESSION['parameters']["idItemNew"] ? $_SESSION['parameters']['listaItem'] = $_SESSION['parameters']["idItemNew"] : '';
$_SESSION['parameters']["listaClasNew"] = $_REQUEST["listaClas"] ? $_REQUEST["listaClas"] : null;
$_SESSION['parameters']["idItemNew"] = $_REQUEST["listaItem"] ? $_REQUEST["listaItem"] : null;
if (!$permiteEditarClassificacao) {
$naoAutorizado = GetIdProgFromNomeArq('naoAutorizado.php');
header("Location: index.php?idProg=" . $naoAutorizado);
exit;
}
$wipeSessionParameter = 0; //evita que a session seja limpa.
if ($_REQUEST['pbxRequest'] == 1) {
$tpLayout = 1;
$nomeTpl = "supervisao/editaClassificado.tpl";
$logPath = "/var/log/asterisk/edicaoClassificados.log";
if ($_REQUEST["regClassId"]){
$_SESSION['regClassId'] = $_REQUEST["regClassId"];
}
// Utilizei a função extract() para criar variáveis com nomes de chaves do array e atribuir seus respectivos valores
if (isset($_SESSION['parameters'])){
extract($_SESSION['parameters']);
}
$regClassId = $_SESSION['regClassId'];
$idClass = $_REQUEST["listaClas"] ? $_REQUEST["listaClas"] : null;
$idItemClass = $_REQUEST["listaItem"] ? $_REQUEST["listaItem"] : null;
if (IsPostBack() && isset($_POST['bt_classifica'])) {
$msg = '';
$result = pg_query($dbcon, "begin");
$dados = getDataClass($dbcon, $regClassId);
$oldIdClass = $dados["clas_id"];
$oldIdItemClass = $dados["clit_id"];
if (!$result) {
$msg = "Não foi possível inicar uma transação no banco de dados!";
} else {
if (!$listaClas || !$listaItem) {
$msg = "Selecione uma classificação!";
}
if (IsPostBack() && isset($_POST['bt_classifica'])) {
$registraLog = false;
$msg = '';
if (!$msg) {
/*
* Esta informações são utilizadas para registrar quem realizou a ultima edição da classificação.
*/
$matUser = GetMatricula();
$query = "UPDATE pbx_classifica_reg SET clas_id = $listaClasNew, clit_id = $idItemNew, matricula_ultimo_update = $matUser, data_ultimo_update = NOW()
WHERE id = $regClassId";
$result = pg_query($dbcon, $query);
if ($oldIdClass == $idClass && $oldIdItemClass == $idItemClass){
$msg = "A nova classificação escolhida deve ser diferente da atual!";
} else {
$result = pg_query($dbcon, "begin");
if (!$result) {
$msg = "Não foi possível registrar a classificação!";
$msg = "Não foi possível inicar uma transação no banco de dados!";
} else {
if (!$idClass || !$idItemClass) {
$msg = "Selecione uma classificação!";
}
if (!$msg) {
/*
* Esta informações são utilizadas para registrar quem realizou a ultima edição da classificação.
*/
$matUser = GetMatricula();
$query = "UPDATE pbx_classifica_reg SET clas_id = $idClass, clit_id = $idItemClass, matricula_ultimo_update = $matUser, data_ultimo_update = NOW()
WHERE id = $regClassId";
$result = pg_query($dbcon, $query);
if (!$result) {
$msg = "Não foi possível registrar a classificação!";
}
}
if (!$msg) {
$newIdClass = $idClass;
$newIdItemClass = $idItemClass;
unset($idClass, $idItemClass);
$registraLog = true;
$msg = "Registros classificados com sucesso!";
pg_query($dbcon, "commit");
} else {
pg_query($dbcon, "rollback");
}
}
}
if (!$msg) {
$msg = "Registros classificados com sucesso!";
pg_query($dbcon, "commit");
} else {
pg_query($dbcon, "rollback");
}
$jsStartup[] = "alert('$msg');";
}
$dados = getDataClass($dbcon, $regClassId);
$agt = $dados["agente"];
$agtNome = $dados["nome_agente"];
$dt = FormataDBDataHora($dados["data_reg"]);
$matricula_ultimo_update = $dados["matricula_ultimo_update"];
$nome_update = $dados["nome_update"];
$data_ultimo_update = $dados["data_ultimo_update"] ? FormataDBDataHora($dados["data_ultimo_update"]) : " - ";
$id_ultimo_update = $dados["id_update"];
$uniqueid = $dados["id_bilhetes"];
$classificacao = $dados["classificacao"];
$itemClassificacao = $dados["item_classificacao"];
$idDac = $dados["id_dac"];
$clas = GetClassificacao($dbcon, $idClass, $idDac);
$clasItem = GetItem($dbcon, $idClass, $idItemClass);
$smarty->assign("classifica", $clas);
$smarty->assign("clas_item", $clasItem);
$smarty->assign("classificacao", $classificacao);
$smarty->assign("itemClassificacao", $itemClassificacao);
$smarty->assign("agt", $agt);
$smarty->assign("agtNome", $agtNome);
$smarty->assign("dt", $dt);
$smarty->assign("matricula_ultimo_update", $matricula_ultimo_update);
$smarty->assign("nome_update", $nome_update);
$smarty->assign("data_ultimo_update", $data_ultimo_update);
GetTemplate($smarty, $nomeTpl);
if($registraLog){
$log = sprintf("\n \n __________________________________________________________________________________________________________
\n Editado por: ID[ $id_ultimo_update ] | MATRICULA[ $matUser ] | NOME[ $nome_update ] na data [ %s ]
\n Uniqueid : [ $uniqueid ] | Id da classificacao: [ $regClassId ]
\n Classificacao anterior: [ $oldIdClass ] - [ $oldIdItemClass ]
\n Nova Classificacao: [ $newIdClass ] - [ $newIdItemClass ]
\n Permissao: $permiteEditarClassificacao",
date("Y-m-d H:i:s"));
GravaLog($log, $logPath);
}
} else {
$idClass = $_GET['idItem'];
echo GetItem($dbcon, $idClass, 0);
}
$idClas = $listaClasNew ? $listaClasNew : $listaClas;
$idItemClass = $idItemNew ? $idItemNew : $listaItem;
$query = "SELECT b.id_bilhetes,
b.data_reg,
e.matricula AS agente,
e.nome nome_agente,
b.matricula_ultimo_update,
b.data_ultimo_update,
b.id_dac,
(SELECT nome FROM pbx_usuarios WHERE matricula = CAST(b.matricula_ultimo_update as VARCHAR)) as nome_update
FROM pbx_classifica_reg b
INNER JOIN pbx_classifica_atendimento c ON c.clas_id = b.clas_id
INNER JOIN pbx_usuarios e ON e.matricula = b.matricula
WHERE b.id = $regClassId";
$result = pg_query($dbcon, $query);
$linhas = '';
$dados = pg_fetch_array($result);
$agt = $dados["agente"];
$agtNome = $dados["nome_agente"];
$dt = FormataDBDataHora($dados["data_reg"]);
$matricula_ultimo_update = $dados["matricula_ultimo_update"];
$nome_update = $dados["nome_update"];
$data_ultimo_update = $dados["data_ultimo_update"] ? FormataDBDataHora($dados["data_ultimo_update"]) : " - ";
$linha = "<tr>
<td align=\"center\">$agt - $agtNome</td>
<td align=\"center\">$dt</td>
<td align=\"center\">$matricula_ultimo_update - $nome_update</td>
<td align=\"center\">$data_ultimo_update</td>
</tr>";
$linhas .= $linha;
$clas = GetClassificacao($dbcon, $idClas, $idDac);
$clasItem = GetItem($dbcon, $idClas, $idItemClass);
$smarty->assign("linhas", $linhas);
$smarty->assign("classifica", $clas);
$smarty->assign("clas_item", $clasItem);
GetTemplate($smarty, $nomeTpl);
function getDataClass($dbcon, $regClassId){
$query = "SELECT b.id, b.id_bilhetes,
b.data_reg,
b.clas_id,
b.clit_id,
c.clas_descricao AS classificacao,
d.clit_descricao AS item_classificacao,
e.matricula AS agente,
e.nome nome_agente,
b.matricula_ultimo_update,
b.data_ultimo_update,
b.id_dac,
(SELECT nome FROM pbx_usuarios WHERE matricula = CAST(b.matricula_ultimo_update as VARCHAR)) as nome_update,
(SELECT id FROM pbx_usuarios WHERE matricula = CAST(b.matricula_ultimo_update as VARCHAR)) as id_update
FROM pbx_classifica_reg b
INNER JOIN pbx_classifica_atendimento c ON c.clas_id = b.clas_id
INNER JOIN pbx_classifica_item d ON d.clit_id = b.clit_id
INNER JOIN pbx_usuarios e ON e.matricula = b.matricula
WHERE b.id = $regClassId";
$result = pg_query($dbcon, $query);
return pg_fetch_array($result);
}
?>

24
templates/supervisao/editaClassificado.tpl

@ -1,18 +1,31 @@
{capture name="display"}
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td>
<table cellpadding="2" class="grid" style="width:100%">
<tr >
<th colspan="6" align="center"><span class="cabRelatorioBase">Informações da Classificação</span></th>
</tr>
<tr>
<th colspan="2" align="center" class="headColun">Classificação</th>
<th colspan="2" align="center" class="headColun">Item</th>
</tr>
<tr>
<td colspan="2" align="center">{$classificacao}</td>
<td colspan="2" align="center">{$itemClassificacao}</td>
</tr>
<tr>
<th align="center" class="headColun">Agente da Classificação</th>
<th align="center" class="headColun">Data e Hora </th>
<th align="center" class="headColun">Agente da Edição</th>
<th align="center" class="headColun">Usuário da Edição</th>
<th align="center" class="headColun">Data e Hora da Edição</th>
</tr>
{$linhas}
<tr>
<td align="center">{$agt} - {$agtNome}</td>
<td align="center">{$dt}</td>
<td align="center">{$matricula_ultimo_update} - {$nome_update}</td>
<td align="center">{$data_ultimo_update}</td>
</tr>
</table>
</td>
@ -21,7 +34,10 @@
<td><table width="100%" border="0" cellspacing="0" cellpadding="2" class="grid">
<tr>
<th colspan="3" align="center">
Classificar</th>
<span class="cabRelatorioBase">
EDITAR CLASSIFICAÇÃO
</span>
</th>
</tr>
<tr>
<th>Classificação</th>

Loading…
Cancel
Save