Viewing file: dt_encuesta.php (7.42 KB) -rw-rw-r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
class dt_encuesta extends tdfonline_datos_tabla
{
function get_listado($filtro=array())
{
$where = array();
if (isset($filtro['portada'])) {
$where[] = "encuesta.portada = '".$filtro['portada']."'";
}
if (isset($filtro['estado'])) {
$where[] = "encuesta.estado = '".$filtro['estado']."'";
}
$sql="SELECT
encuesta.id_encuesta,
encuesta.fecha_alta,
encuesta.usuario_alta,
encuesta.pregunta,
CASE
WHEN encuesta.estado='A' THEN 'Activa'
WHEN encuesta.estado='I' THEN 'Inactiva'
ELSE encuesta.estado
END as estado_descripcion,
encuesta.portada as portada_descripcion
FROM
public.encuesta
ORDER BY id_encuesta DESC";
if (count($where)>0) {
$sql = sql_concatenar_where($sql, $where);
}
$datos = toba::db('tdfonline')->consultar($sql);
if(count($datos)>0) {
foreach ($datos as &$d) {
if ($d['portada_descripcion']) {
$d['portada_descripcion']='SI';
} else {
$d['portada_descripcion']='NO';
}
}
}
return $datos;
}
function get_grafico($id)
{
$sql=" SELECT
encuesta.pregunta,
detalle_encuesta.leyenda_opcion as opcion,
detalle_encuesta.votos,
detalle_encuesta.orden
FROM
public.encuesta,
public.detalle_encuesta
WHERE encuesta.id_encuesta=$id
AND detalle_encuesta.id_encuesta = encuesta.id_encuesta
ORDER BY detalle_encuesta.orden ASC";
$datos = toba::db('tdfonline')->consultar($sql);
$total = 0;
foreach($datos as $dato){
$total = $total + $dato['votos'];
}
//grafico
$barras='<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load(\'visualization\', \'1\', {packages: [\'corechart\', \'bar\']});
google.setOnLoadCallback(drawAnnotations);
function drawAnnotations() {
var data = google.visualization.arrayToDataTable([
[\'Opcion\', \'%\', {type: \'string\', role: \'annotation\'}],';
$primero=true;
foreach ($datos as $d){
//total 100
//votos x = votos * 100 / total
$leyenda = $d['opcion'];
$valor = $d['votos'] * 100 / $total;
$valor = (int)$valor;
$valor2 = $valor.'%';
if($primero){
$primero = false;
$barras .= "['$leyenda', $valor, '$valor2']";
}else{
$barras .= ",['$leyenda', $valor, '$valor2']";
}
}
$barras.=']);
var options = {
legend: {position: \'none\'},
annotations: {
alwaysOutside: true,
textStyle: {
fontSize: 12,
auraColor: \'none\',
color: \'#555\'
},
boxStyle: {
stroke: \'#ccc\',
strokeWidth: 1,
gradient: {
color1: \'#f3e5f5\',
color2: \'#f3e5f5\',
x1: \'0%\', y1: \'0%\',
x2: \'100%\', y2: \'100%\'
}
}
},
hAxis: {
minValue: 0,
},
};
var chart = new google.visualization.BarChart(document.getElementById(\'chart_div\'));
chart.draw(data, options);
}
</script>
';
return $barras;
}
function get_grafico_cantidad($id)
{
$sql=" SELECT
encuesta.pregunta,
detalle_encuesta.leyenda_opcion as opcion,
detalle_encuesta.votos,
detalle_encuesta.orden
FROM
public.encuesta,
public.detalle_encuesta
WHERE encuesta.id_encuesta=$id
AND detalle_encuesta.id_encuesta = encuesta.id_encuesta
ORDER BY detalle_encuesta.orden ASC";
$datos = toba::db('tdfonline')->consultar($sql);
$total = 0;
foreach($datos as $dato){
$total = $total + $dato['votos'];
}
//grafico
$barras='<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load(\'visualization\', \'1\', {packages: [\'corechart\', \'bar\']});
google.setOnLoadCallback(drawAnnotations);
function drawAnnotations() {
var data = google.visualization.arrayToDataTable([
[\'Opcion\', \'Votos\', {type: \'string\', role: \'annotation\'}],';
$primero=true;
foreach ($datos as $d){
//total 100
//votos x = votos * 100 / total
$leyenda = $d['opcion'];
$votos = $d['votos'];
$valor = $d['votos'] * 100 / $total;
$valor = (int)$valor;
$valor2 = $valor.'%';
if($primero){
$primero = false;
$barras .= "['$leyenda', $votos, '$valor2']";
}else{
$barras .= ",['$leyenda', $votos, '$valor2']";
}
}
$barras.=']);
var options = {
legend: {position: \'none\'},
annotations: {
alwaysOutside: true,
textStyle: {
fontSize: 12,
auraColor: \'none\',
color: \'#555\'
},
boxStyle: {
stroke: \'#ccc\',
strokeWidth: 1,
gradient: {
color1: \'#f3e5f5\',
color2: \'#f3e5f5\',
x1: \'0%\', y1: \'0%\',
x2: \'100%\', y2: \'100%\'
}
}
},
hAxis: {
minValue: 0,
},
};
var chart = new google.visualization.BarChart(document.getElementById(\'chart_div\'));
chart.draw(data, options);
}
</script>
';
return $barras;
}
function set_portada($array_datos){
$sql = "UPDATE encuesta SET portada = 0 WHERE estado = 'A'";
toba::db('tdfonline')->ejecutar($sql);
foreach($array_datos as $dato){
if(!empty($dato['id_encuesta'])){
$sql = "UPDATE encuesta SET portada = 1 WHERE id_encuesta = '".$dato['id_encuesta']."'";
toba::db('tdfonline')->ejecutar($sql);
}
}
return true;
}
function get_activas()
{
$sql = "SELECT id_encuesta, usuario_alta, '#'||id_encuesta||' '||pregunta as pregunta
FROM encuesta
WHERE estado = 'A'
ORDER BY id_encuesta DESC";
return toba::db('tdfonline')->consultar($sql);
}
function get_portada()
{
$sql = "SELECT
encuesta.id_encuesta,
encuesta.pregunta,
detalle_encuesta.leyenda_opcion,
detalle_encuesta.id_detalle_encuesta
FROM
public.encuesta,
public.detalle_encuesta
WHERE
detalle_encuesta.id_encuesta = encuesta.id_encuesta
AND encuesta.estado='A'
AND encuesta.portada=1
ORDER BY detalle_encuesta.orden";
return toba::db('tdfonline')->consultar($sql);
}
function get_descripciones()
{
$sql = "SELECT id_encuesta, '#'||id_encuesta||' '||pregunta as pregunta FROM encuesta ORDER BY id_encuesta DESC";
return toba::db('tdfonline')->consultar($sql);
}
function get_publicadas()
{
$sql = "SELECT id_encuesta, '#'||id_encuesta||' '||pregunta as pregunta FROM encuesta ORDER BY id_encuesta DESC";
return toba::db('tdfonline')->consultar($sql);
}
}
?>
|