0) $sicVincTmp .= ","; $sicVincTmp .= "" . $sicVinculado[$i][0] . ""; } if (empty($sicVincTmp)) $filtro .= " and (mov.idsecretariadestino = $idSicUsuario or mov.idsecretariaorigem = $idSicUsuario) "; else $filtro .= " and (mov.idsecretariadestino IN ($idSicUsuario, $sicVincTmp) or mov.idsecretariaorigem IN ($idSicUsuario, $sicVincTmp) "; } //Critica status if (!empty($status)) $filtro .= " and situacao IN ($status) "; //Critica o sistema de origem da demanda if (!empty($origem)) $filtro .= " and origem = $origem "; $sql = $sqlTmp . "from lda_solicitacao sol left join lda_movimentacao mov on mov.idmovimentacao = (select max(m.idmovimentacao) from lda_movimentacao m where m.idsolicitacao = sol.idsolicitacao) left join sis_secretaria secDestino on secDestino.idsecretaria = mov.idsecretariadestino where 1=1 $filtro $group"; $rs = execQuery($sql); if ($opc == 1) { $ret = mysqli_fetch_assoc($rs); return $ret; } else return $rs; } /* Retorna resumo de demandas por sistema e situacao formatado em uma table */ function getSolResSis($rs) { $ret = ""; $resumo = array(); while ($reg = mysqli_fetch_array($rs)) { $situacao = $reg["situacao"]; $total = $reg["total"]; $origem = $reg["origem"]; $situacaoLink = "'" . $reg["situacao"] . "'"; $link = ' Ver'; $resumo[$origem]['link'] = $link; $resumo[$origem][$situacao] = $resumo[$origem][$situacao] + $total; $resumo[$origem]['total'] = $resumo[$origem]['total'] + $total; } $resumo[1]['A'] = ($resumo[1]['A']) ?: 0; $resumo[1]['T'] = ($resumo[1]['T']) ?: 0; $resumo[1]['R'] = ($resumo[1]['R']) ?: 0; $resumo[1]['N'] = ($resumo[1]['N']) ?: 0; $resumo[1]['total'] = ($resumo[1]['total']) ?: 0; $resumo[2]['A'] = ($resumo[2]['A']) ?: 0; $resumo[2]['T'] = ($resumo[2]['T']) ?: 0; $resumo[2]['R'] = ($resumo[2]['R']) ?: 0; $resumo[2]['N'] = ($resumo[2]['N']) ?: 0; $resumo[2]['total'] = ($resumo[2]['total']) ?: 0; $resumo[3]['A'] = ($resumo[3]['A']) ?: 0; $resumo[3]['T'] = ($resumo[3]['T']) ?: 0; $resumo[3]['R'] = ($resumo[3]['R']) ?: 0; $resumo[3]['N'] = ($resumo[3]['N']) ?: 0; $resumo[3]['total'] = ($resumo[3]['total']) ?: 0; $resumo[0]['total'] = $resumo[1]['total'] + $resumo[2]['total'] + $resumo[3]['total']; return $resumo; } function formatSolSis($resumo) { $ret .= " ".getOrigem(1)." ".$resumo[1]['A']." ".$resumo[1]['T']." ".$resumo[1]['R']." ".$resumo[1]['N']." ".$resumo[1]['total']." ".$resumo[1]['link']." "; $ret .= " ".getOrigem(2)." ".$resumo[2]['A']." ".$resumo[2]['T']." ".$resumo[2]['R']." ".$resumo[2]['N']." ".$resumo[2]['total']." ".$resumo[2]['link']." "; $ret .= " ".getOrigem(3)." ".$resumo[3]['A']." ".$resumo[3]['T']." ".$resumo[3]['R']." ".$resumo[3]['N']." ".$resumo[3]['total']." ".$resumo[3]['link']." "; return $ret; } /* Retorna total de demandas por Diretoria e Origem */ function getSolResDir() { $sql = "select sec.idsecretaria, sec.nome as nome, sol.situacao as situacao, count(sec.nome) as total, sol.origem as origem from lda_solicitacao sol left join lda_movimentacao mov on mov.idmovimentacao = (select max(m.idmovimentacao) from lda_movimentacao m where m.idsolicitacao = sol.idsolicitacao) left join sis_secretaria sec on sec.idsecretaria = mov.idsecretariadestino where sol.situacao not in('R','N') GROUP BY sec.idsecretaria, sec.nome, sol.situacao, sol.origem ORDER BY sol.origem, sec.nome; "; $rs = execQuery($sql); $ret = ""; while ($reg = mysqli_fetch_array($rs)) { if (empty($reg["nome"])) $nome = 'Ouvidoria TCE-RN'; else $nome = $reg["nome"]; $situacao = getStatus($reg["situacao"]); $situacaoLink = "'" . $reg["situacao"] . "'"; $total = $reg["total"]; $origem = getOrigem($reg["origem"]); $link = 'Ver'; if ($total > 0) { $ret .= " $nome $situacao $total $origem $link "; } } return $ret; } function getDemandas($filtro_ = "", $limit = 0) { $idSicUsuario = getSession('idsecretaria'); //Sic logado $sicsUsuarios = getSession('sic'); //Todos os sics do usuario $sicCentral_ = $sicsUsuarios[$idSicUsuario][2]; $qryLimit = ""; //Se nao for um sic central, limita a visualizacao ao sic logado e seus vinculados if ($sicCentral_ == "0") { $sicVinculado = $sicsUsuarios[$idSicUsuario][3]; //Sic(s) vinculado(s) ao sic logado $sicVincTmp = ""; //Considera na query todos os sics vinculados ao sic logado. //Ou seja, o Sic "pai" visualiza demandas de todos os sics "filhos". for ($i = 0; $i < count($sicVinculado); $i++) { if ($i > 0) $sicVincTmp .= ","; $sicVincTmp .= "" . $sicVinculado[$i][0] . ""; } if (empty($sicVincTmp)) $filtro_ .= " and (mov.idsecretariadestino = $idSicUsuario or mov.idsecretariaorigem = $idSicUsuario) "; else $filtro_ .= " and (mov.idsecretariadestino IN ($idSicUsuario, $sicVincTmp) or mov.idsecretariaorigem IN ($idSicUsuario, $sicVincTmp) "; } if ($limit > 0) $qryLimit = "LIMIT $limit"; $sql = "select sol.*, pes.nome as solicitante, ifnull(secOrigem.sigla,'Solicitante') as secretariaorigem, ifnull(secDestino.sigla,'SIC Central') as secretariadestino, mov.idsecretariadestino, mov.datarecebimento, mov.idmovimentacao, c.*, DATEDIFF(sol.dataprevisaoresposta, NOW()) as prazorestante, tip.nome as tiposolicitacao from lda_solicitacao sol join lda_tiposolicitacao tip on tip.idtiposolicitacao = sol.idtiposolicitacao join lda_solicitante pes on pes.idsolicitante = sol.idsolicitante left join lda_movimentacao mov on mov.idmovimentacao = (select max(m.idmovimentacao) from lda_movimentacao m where m.idsolicitacao = sol.idsolicitacao) left join sis_secretaria secOrigem on secOrigem.idsecretaria = mov.idsecretariaorigem left join sis_secretaria secDestino on secDestino.idsecretaria = mov.idsecretariadestino join lda_configuracao c where 1=1 $filtro_ ORDER BY sol.idsolicitacao DESC $qryLimit"; //print($sql); if ($limit > 0 ) $rs__ = execQuery($sql); else $rs__ = execQueryPag($sql); return $rs__; } /* Retorna quantidade de demandas por mes */ function getDemandaMes($sicCentral_) { $rs_ = getSolTotal("", "", 3, $sicCentral_); // total, origem, mes, situacao $total; while ($reg = mysqli_fetch_array($rs_)) { $somaAberta = 0; $somaRespondido = 0; $origem = $reg["origem"]; $mesSol = $reg["mesSol"]; $mesRes = $reg["mesRes"]; if (!empty($reg["mesSol"])) $somaAberta = 1; if (!empty($reg["mesRes"])) $somaRespondido = 1; $total[$origem][$mesSol]['A'] = $total[$origem][$mesSol]['A'] + $somaAberta; $total[$origem][$mesRes]['R'] = $total[$origem][$mesRes]['R'] + $somaRespondido; } return $total; } function getStatus($status) { if ($status == "A") return "Aberto"; else if ($status == "T") return "Tramita��o"; else if ($status == "R") return "Respondido"; else if ($status == "N") return "Negado"; } function getOrigem($status) { if ($status == 1) return "E-Sic"; else if ($status == 2) return "Ouvidoria"; else if ($status == 3) return "Eu Inspetor"; else return "N�o classificado"; } /* getEnquete - retorna a pesquisa de satisfa��o do retorno da demanda */ function getEnquete() { $comentarios= []; $totais = []; $sql = "SELECT * FROM lda_enquete "; $rs = execQuery($sql); while ($reg = mysqli_fetch_array($rs)) { if ($reg['resposta'] == 'U') $resposta = 'Ruim'; else if ($reg['resposta'] == 'R') $resposta = 'Regular'; else if ($reg['resposta'] == 'B') $resposta = 'Bom'; else if ($reg['resposta'] == 'O') $resposta = '�tima'; $total++; $totais[$reg['resposta']] = $totais[$reg['resposta']] + 1; if (!empty($reg['comentario'])) array_push($comentarios, array($reg['dataresposta'], $reg['comentario'])); } return [$totais, $total, $comentarios]; } /* getFiltroVinculo - retorna o filtro de v�nculo do usu�rio para query */ function getFiltroVinculo() { $idSicUsuario = getSession('idsecretaria'); //Sic logado $sicsUsuarios = getSession('sic'); //Todos os sics do usuario $sicCentral_ = $sicsUsuarios[$idSicUsuario][2]; $filtroVinc = ""; //Se nao for um sic central, limita a visualizacao ao sic logado e seus vinculados if ($sicCentral_ == "0") { $sicVinculado = $sicsUsuarios[$idSicUsuario][3]; //Sic(s) vinculado(s) ao sic logado $sicVincTmp = ""; //Considera na query todos os sics vinculados ao sic logado. //Ou seja, o Sic "pai" visualiza demandas de todos os sics "filhos". for ($i = 0; $i < count($sicVinculado); $i++) { if ($i > 0) $sicVincTmp .= ","; $sicVincTmp .= "" . $sicVinculado[$i][0] . ""; } if (empty($sicVincTmp)) $filtroVinc = " and (mov.idsecretariadestino = $idSicUsuario or mov.idsecretariaorigem = $idSicUsuario) "; else $filtroVinc = " and (mov.idsecretariadestino IN ($idSicUsuario, $sicVincTmp) or mov.idsecretariaorigem IN ($idSicUsuario, $sicVincTmp) "; } return $filtroVinc; } ?>