%@ $Language=JScript /* PARA COLORES PHP */ %>
<%
// ------------------------------------------------------------------------------------ //
// Modulo Administrativo de encuestas //
// ------------------------------------------------------------------------------------ //
// Prototipo de las funciones definidas: //
// ------------------------------------- //
// function RGBaHTML($r,$g,$b) //
// //
// function encNuevaSeccion($nombreseccion) //
// function encBorrarSeccion($idseccion) //
// function encModificarSeccion($idseccion,$nuevonombre) //
// function encObtenerSeccion($seccion) //
// function encObtenerSecciones() //
// //
// function encNuevaEncuesta($idseccion,$nombre,$diaEnd,$mesEnd,$anioEnd,$activo) //
// function encBorrarEncuesta($idencuesta) //
// function encModificarEncuesta($idencuesta,$idseccion,$nombre,$diaEnd,$mesEnd, //
// $anioEnd,$activo) //
// function encObtenerEncuesta($encuesta) //
// function encObtenerEncuestas($seccion=0) //
// //
// function encNuevaPregunta($encuesta,$pregunta,$respuestamultiple,$prioridades) //
// function encBorrarPregunta($idpregunta) //
// function encModificarPregunta($idpregunta,$encuesta,$pregunta,$respuestamultiple, //
// $prioridades) //
// function encObtenerPregunta($pregunta) //
// function encObtenerPreguntas($encuesta=0) //
// //
// function encNuevaRespuesta($pregunta,$respuesta,$tipo) //
// function encBorrarRespuesta($idrespuesta) //
// function encModificarRespuesta($idrespuesta,$pregunta,$respuesta,$tipo) //
// function encObtenerRespuesta($respuesta) //
// function encObtenerRespuestas($pregunta=0) //
// ------------------------------------------------------------------------------------ //
function RGBaHTML($r,$g,$b)
{
return sprintf("#%02X%02X%02X",$r,$g,$b);
}
function encNuevaSeccion($nombreseccion)
{
// ------------------------------------------------------------------------ //
// encNuevaSeccion: //
// - Esta funcion se encarga de dar de alta una nueva seccion. //
// //
// Parametros: //
// - $nombreseccion: Justamente el nombre de la seccion. //
// //
// Retorna: //
// - ID generado, -1 cuando sucedio un error. //
// ------------------------------------------------------------------------ //
global $conn;
$sql = "insert into encSecciones (secNombre) values ('".addslashes($nombreseccion)."')";
$conn->execute($sql);
$rs = $conn->execute("select secID from encSecciones where secNombre = '".addslashes($nombreseccion)."'");
if($rs->field("secID")) return $rs->field("secID");
else return -1;
}
function encBorrarSeccion($idseccion)
{
// ------------------------------------------------------------------------ //
// encBorrrarSeccion: //
// - Esta funcion se encarga de dar de baja una seccion y todos los //
// elementos asociados a ella.(Encuestas,preguntas,respuestas,votos ) //
// //
// Parametros: //
// - $idseccion: La seccion que se quiere dar de baja. //
// //
// Retorna: //
// - nada. //
// ------------------------------------------------------------------------ //
global $conn;
$e = encObtenerEncuestas($idseccion);
for($i=0;$i<$e["Cant"];$i++)
encBorrarEncuesta($e["Encuestas"][$i]["ID"]);
$sql = "delete from encSecciones where secID = $idseccion";
$conn->execute($sql);
//echo "Seccion:".$sql."
";
}
function encModificarSeccion($idseccion,$nuevonombre)
{
// ------------------------------------------------------------------------ //
// encModificarSeccion: //
// - Esta funcion se encarga de modificar una seccion. //
// //
// Parametros: //
// - $idseccion : La seccion a modificar. //
// - $nuevonombre: El nuevo nombre de la seccion. //
// //
// Retorna: //
// - nada. //
// ------------------------------------------------------------------------ //
global $conn;
$sql = "update encSecciones set secNombre = '$nuevonombre' where secID = $idseccion";
$conn->execute($sql);
return;
}
function encObtenerSeccion($seccion)
{
// ------------------------------------------------------------------------ //
// encObtenerSeccion: //
// - Esta funcion busca datos sobre las secciones. //
// //
// Parametros: //
// - $seccion: El nombre o el ID de la seccion. //
// //
// Retorna: //
// - ID o Nombre de seccion, -1 o "" cuando sucedio un error. //
// ------------------------------------------------------------------------ //
global $conn;
if(is_numeric($seccion))
{
// Supuestamente si es numerico debe ser porque es el id, asi que retornamos
// el nombre.
$rs = $conn->execute("select secNombre from encSecciones where secID = $seccion");
if($rs->field("secNombre")) return $rs->field("secNombre");
else return "";
}else
{
// Supuestamente si no es numerico es el texto, deberiamos retornarle el id,
// aunque veo que es una posibilidad muy poco probable para usarla.
$rs = $conn->execute("select secID from encSecciones where secNombre = '".addslashes($seccion)."'");
if($rs->field("secID")) return $rs->field("secID");
else return -1;
}
}
function encObtenerSecciones()
{
// ------------------------------------------------------------------------ //
// encObtenerSecciones: //
// - Esta funcion busca todas las secciones. //
// //
// Parametros: //
// - nada. //
// //
// Retorna: //
// - Array con los datos. //
// ------------------------------------------------------------------------ //
global $conn;
$rs = $conn->execute("select * from encSecciones");
$ret = array();
while(!$rs->eof)
{
$rs2 = $conn->execute("select count(*) as cantencuestas from encEncuestas where secID = ".$rs->field("secID"));
array_push($ret,
array("ID" => $rs->field("secID"),
"Nombre" => $rs->field("secNombre"),
"CantEncuestas" => $rs2->field("cantencuestas")
)
);
$rs->movenext();
}
return array("Cant"=>$rs->numrows,"Secciones"=>$ret);
}
function encNuevaEncuesta($idseccion,$nombre,$diaEnd,$mesEnd,$anioEnd,$activo,$publica)
{
// ------------------------------------------------------------------------ //
// encNuevaEncuesta: //
// - Esta funcion se encarga de dar de alta una nueva encuesta. //
// //
// Parametros: //
// - $idseccion: Seccion a la que pertenece. //
// - $nombre : Nombre de la encuesta. //
// - $diaEnd : Dia de finalizacion. //
// - $mesEnd : Mes de finalizacion. //
// - $anioEnd : Aņo de finalizacion. //
// - $activo : El estado de la encuesta. //
// //
// Retorna: //
// - ID generado, -1 cuando sucedio un error. //
// //
// Nota: //
// La fecha se pasa en ese formato para que no dependa de el formato de //
// la base de datos. Si la fecha no es valida retorna -1 //
// ------------------------------------------------------------------------ //
global $conn;
if(($mesEnd==$diaEnd)&&($diaEnd==$anioEnd)&&($anioEnd==-1)) $fecha = "NULL";
elseif(!checkdate($mesEnd,$diaEnd,$anioEnd)) return -1;
else $fecha = "$anioEnd-$mesEnd-$diaEnd";
$sql = "insert into encEncuestas ( secID, encNombre, encFechaAlta, encFechaFinalizacion,";
$sql .= "encActiva,encPublica) values ( $idseccion,'$nombre', NOW(),$fecha ,'$activo','$publica')";
$conn->execute($sql);
// Obtenemos ahora el ID
$rs = $conn->execute("select encID from encEncuestas where encNombre = '$nombre'");
if($rs->field("encID")) return $rs->field("encID");
else return -1;
}
function encBorrarEncuesta($idencuesta)
{
// ------------------------------------------------------------------------ //
// encBorrarEncuesta: //
// - Esta funcion se encarga de dar de baja una encuesta. //
// //
// Parametros: //
// - $idencuesta : Encuesta a borrar. //
// //
// Retorna: //
// - nada. //
// //
// ------------------------------------------------------------------------ //
global $conn;
$p = encObtenerPreguntas($idencuesta);
for($i=0;$i<$p["Cant"];$i++)
encBorrarPregunta($p["Preguntas"][$i]["ID"]);
$sql = "delete from encEncuestas where encID = $idencuesta";
$conn->execute($sql);
//echo "Encuesta:$sql
";
}
function encModificarEncuesta($idencuesta,$idseccion,$nombre,$diaEnd,$mesEnd,$anioEnd,$activo,$publica)
{
// ------------------------------------------------------------------------ //
// encModificarEncuesta: //
// - Esta funcion se encarga de dar modificar los datos de una encuesta. //
// //
// Parametros: //
// - $idencuesta: Encuesta a modificar. //
// - $idseccion : Nueva Seccion. //
// - $nombre : Nuevo Nombre. //
// - $diaEnd : Nuevo Dia de finalizacion. //
// - $mesEnd : Nuevo Mes de finalizacion. //
// - $anioEnd : Nuevo Aņo de finalizacion. //
// - $activo : Nuevo estado de la encuesta. //
// //
// Retorna: //
// - nada. //
// //
// Nota: //
// La fecha se pasa en ese formato para que no dependa de el formato de //
// la base de datos. Si la fecha no es valida retorna -1 //
// ------------------------------------------------------------------------ //
global $conn;
if(!checkdate($mesEnd,$diaEnd,$anioEnd)) return -1;
$sql = "update encEncuestas set secID = $idseccion, encNombre = '$nombre', encFechaFinalizacion = '$anioEnd-$mesEnd-$diaEnd', ";
$sql .= "encActiva='$activo', encPublica='$publica' where encID = $idencuesta";
$conn->execute($sql);
return;
}
function encObtenerEncuesta($encuesta)
{
// ------------------------------------------------------------------------ //
// encObtenerEncuesta: //
// - Esta funcion busca datos sobre una encuesta. //
// //
// Parametros: //
// - $encuesta: El nombre o el ID de la encuesta. //
// //
// Retorna: //
// - Un array con los datos sobre la encuesta, -1 cuando sucedio un error. //
// ------------------------------------------------------------------------ //
global $conn;
if(is_numeric($encuesta))
{
// Supuestamente si es numerico debe ser porque es el id
$rs = $conn->execute("select *, DAYOFMONTH(encFechaFinalizacion) as diaFin, MONTH(encFechaFinalizacion) as mesFin, YEAR(encFechaFinalizacion) as anioFin from encEncuestas where encID = $encuesta");
$rs2 = $conn->execute("select count(*) as cantpreg from encPreguntas where encID = $encuesta");
$ret = array("ID" => $rs->field("encID"),
"Nombre" => $rs->field("encNombre"),
"Activa" => $rs->field("encActiva"),
"Publica" => $rs->field("encPublica"),
"Seccion" => $rs->field("secID"),
"CantVotos" => $rs->field("encCantVotos"),
"CantPreguntas" => $rs2->field("cantpreg"),
"diaFin" => $rs->field("diaFin"),
"mesFin" => $rs->field("mesFin"),
"anioFin" => $rs->field("anioFin"));
return $ret;
}else
{
// Supuestamente si no es numerico es el texto, deberiamos retornarle el id,
// aunque veo que es una posibilidad muy poco probable para usarla.
$rs = $conn->execute("select encID from encEncuestas where encNombre = '$encuesta'");
if($rs->field("encID")) return encObtenerEncuesta($rs->field("secID"));
else return -1;
}
}
function encObtenerEncuestas($seccion=0)
{
// ------------------------------------------------------------------------ //
// encObtenerSecciones: //
// - Esta funcion busca todas las secciones. //
// //
// Parametros: //
// - $seccion: Si se incluye, solo trae encuestas de esa seccion. // //
// //
// Retorna: //
// - Array con los datos. //
// ------------------------------------------------------------------------ //
global $conn;
if($seccion)
$rs = $conn->execute("select encID from encEncuestas where secID = $seccion");
else
$rs = $conn->execute("select encID from encEncuestas");
$ret = array();
while(!$rs->eof)
{
array_push($ret,encObtenerEncuesta($rs->field("encID")));
$rs->movenext();
}
return array("Cant"=>$rs->numrows,"Encuestas"=>$ret);
}
function encNuevaPregunta($encuesta,$pregunta,$respuestamultiple,$prioridades)
{
// ------------------------------------------------------------------------ //
// encNuevaEncuesta: //
// - Esta funcion se encarga de dar de alta una nueva pregunta para una //
// encuesta. //
// //
// Parametros: //
// - $encuesta : Encuesta a la que pertenece. //
// - $pregunta : Pregunta. //
// - $respuestasmultiples : Soporte para respuestas multiples (S/N). //
// - $prioridades : Soporte para prioridades. //
// //
// Retorna: //
// - ID generado, -1 cuando sucedio un error. //
// //
// ------------------------------------------------------------------------ //
global $conn;
$sql = "insert into encPreguntas (encID, prePregunta, preMultiplesRespuestas, prePrioridades)";
$sql .= " VALUES ($encuesta, '$pregunta', '$respuestamultiple', '$prioridades')";
$conn->execute($sql);
// Obtenemos ahora el ID
$rs = $conn->execute("select preID from encPreguntas where prePregunta = '$pregunta'");
if($rs->field("preID")) return $rs->field("preID");
else return -1;
}
function encBorrarPregunta($idpregunta)
{
// ------------------------------------------------------------------------ //
// encBorrarPregunta: //
// - Esta funcion se encarga de dar de baja una pregunta //
// //
// Parametros: //
// - $ipregunta : Pregunta a borrar. //
// //
// Retorna: //
// - nada. //
// ------------------------------------------------------------------------ //
global $conn;
$r = encObtenerRespuestas($idpregunta);
for($i=0;$i<$r["Cant"];$i++)
encBorrarRespuesta($r["Respuestas"][$i]["ID"]);
$sql = "delete from encPreguntas where preID = $idpregunta";
$conn->execute($sql);
//echo "Pregunta:$sql
";
}
function encModificarPregunta($idpregunta,$encuesta,$pregunta,$respuestamultiple,$prioridades)
{
// ------------------------------------------------------------------------ //
// encModificarPregunta: //
// - Esta funcion se encarga de modificar una pregunta //
// //
// Parametros: //
// - $idpregunta : Id de la pregunta a modificar. //
// - $encuesta : Nueva encuesta a la que pertenece. //
// - $pregunta : Nuevo texto pregunta. //
// - $respuestasmultiples : Soporte para respuestas multiples (S/N). //
// - $prioridades : Soporte para prioridades. //
// //
// Retorna: //
// - nada, -1 cuando sucedio un error. //
// //
// ------------------------------------------------------------------------ //
global $conn;
$sql = "update encPreguntas set encID = $encuesta, prePregunta='$pregunta', ";
$sql .= "preMultiplesRespuestas = '$respuestamultiple', prePrioridades = '$prioridades' where preID = $idpregunta";
$conn->execute($sql);
return;
}
function encObtenerPregunta($pregunta)
{
// ------------------------------------------------------------------------ //
// encObtenerEncuesta: //
// - Esta funcion busca datos sobre una pregunta. //
// //
// Parametros: //
// - $pregunta: El nombre o el ID de la pregunta. //
// //
// Retorna: //
// - Un array con los datos sobre la pregunta, -1 cuando sucedio un error. //
// ------------------------------------------------------------------------ //
global $conn;
if(is_numeric($pregunta))
{
// Supuestamente si es numerico debe ser porque es el id
$rs = $conn->execute("select * from encPreguntas where preID = $pregunta");
$ret = array("ID" => $rs->field("preID"),
"Pregunta" => $rs->field("prePregunta"),
"Encuesta" => $rs->field("encID"),
"MultiplesRespuestas" => $rs->field("preMultiplesRespuestas"),
"Prioridades" => $rs->field("prePrioridades"),
"CantRespuestas" => $rs->field("preCantRespuestas"));
return $ret;
}else
{
// Supuestamente si no es numerico es el texto, deberiamos retornarle el id,
// aunque veo que es una posibilidad muy poco probable para usarla.
$rs = $conn->execute("select preID from encPreguntas where prePregunta = '$pregunta'");
if($rs->field("preID")) return encObtenerEncuesta($rs->field("preID"));
else return -1;
}
}
function encObtenerPreguntas($encuesta=0)
{
// ------------------------------------------------------------------------ //
// encObtenerPreguntas: //
// - Esta funcion busca todas las preguntas. //
// //
// Parametros: //
// - $encuesta: Si se incluye, solo trae preguntas de esta encuesta. // //
// //
// Retorna: //
// - Array con los datos. //
// ------------------------------------------------------------------------ //
global $conn;
if($encuesta)
$rs = $conn->execute("select preID from encPreguntas where encID = $encuesta");
else
$rs = $conn->execute("select preID from encPreguntas");
$ret = array();
while(!$rs->eof)
{
array_push($ret,encObtenerPregunta($rs->field("preID")));
$rs->movenext();
}
return array("Cant"=>$rs->numrows,"Preguntas"=>$ret);
}
function encNuevaRespuesta($pregunta,$respuesta,$tipo)
{
// ------------------------------------------------------------------------ //
// encNuevaRespuesta: //
// - Esta funcion se encarga de dar de alta una nueva respuesta para una //
// pregunta. //
// //
// Parametros: //
// - $pregunta : pregunta a la cual pertenece. //
// - $respuesta : Texto de la respuesta. //
// - $tipo : Tipo de respuesta ( ABIERTA / NORMAL ) //
// //
// Retorna: //
// - ID generado, -1 cuando sucedio un error. //
// //
// ------------------------------------------------------------------------ //
global $conn;
$sql = "insert into encRespuestas (preID, resRespuesta, resTipo) VALUES ($pregunta,'$respuesta', $tipo)";
$conn->execute($sql);
$sql = " update encPreguntas set preCantRespuestas = preCantRespuestas + 1 where preID = $pregunta";
$conn->execute($sql);
// Obtenemos ahora el ID
$rs = $conn->execute("select resID from encRespuestas where resRespuesta = '$respuesta'");
if($rs->field("resID")) return $rs->field("resID");
else return -1;
}
function encBorrarRespuesta($idrespuesta)
{
// ------------------------------------------------------------------------ //
// encBorrarRespuesta: //
// - Esta funcion se encarga de dar de baja una respuesta //
// //
// Parametros: //
// - $idrespuesta : Respuesta a eliminar. //
// //
// Retorna: //
// - nada. //
// //
// ------------------------------------------------------------------------ //
global $conn;
$sql = "delete from encVotos where resID = $idrespuesta";
//echo "Respuesta:$sql
";
$conn->execute($sql);
$rs = $conn->execute("select preID from encRespuestas where resID = $idrespuesta");
$preid = $rs->field("preID");
$sqlfinal = "update encPreguntas set preCantRespuestas = preCantRespuestas -1 where preID = $preid";
$sql = "delete from encRespuestas where resID = $idrespuesta";
//echo "Respuesta:$sql
";
$conn->execute($sql);
$conn->execute($sqlfinal);
}
function encModificarRespuesta($idrespuesta,$pregunta,$respuesta,$tipo)
{
// ------------------------------------------------------------------------ //
// encModificarRespuesta: //
// - Esta funcion se encarga de modificar una respuesta //
// //
// Parametros: //
// - $idrespuesta : Id de la respuesta a modificar. //
// - $pregunta : id de la nueva pregunta. //
// - $respuesta : Nuevo Texto de la respuesta. //
// - $tipo : Nuevo tipo de respuesta ( ABIERTA / NORMAL ) //
// //
// Retorna: //
// - Nada, -1 cuando sucedio un error. //
// //
// ------------------------------------------------------------------------ //
global $conn;
$sql = "update encRespuestas set preID = $pregunta, resRespuesta = '$respuesta', resTipo = $tipo where resID = $idrespuesta";
$conn->execute($sql);
return;
}
function encObtenerRespuesta($respuesta)
{
// ------------------------------------------------------------------------ //
// encObtenerRespuesta: //
// - Esta funcion busca datos sobre una respuesta. //
// //
// Parametros: //
// - $respuesta: El nombre o el ID de la respuesta //
// //
// Retorna: //
// - Un array con los datos sobre la respuesta, -1 cuando sucedio un error. //
// ------------------------------------------------------------------------ //
global $conn;
if(is_numeric($respuesta))
{
// Supuestamente si es numerico debe ser porque es el id
$rs = $conn->execute("select * from encRespuestas where resID = $respuesta");
$ret = array("ID" => $rs->field("resID"),
"Respuesta" => $rs->field("resRespuesta"),
"Pregunta" => $rs->field("preID"),
"Tipo" => $rs->field("resTipo"),
"TotalVotos" => $rs->field("resTotalVotos"),
"TotalPrioridades" => $rs->field("resTotalPrioridades"));
return $ret;
}else
{
// Supuestamente si no es numerico es el texto, deberiamos retornarle el id,
// aunque veo que es una posibilidad muy poco probable para usarla.
$rs = $conn->execute("select resID from encRespuestas where resRespuesta = '$respuesta'");
if($rs->field("resID")) return encObtenerEncuesta($rs->field("resID"));
else return -1;
}
}
function encObtenerRespuestas($pregunta=0)
{
// ------------------------------------------------------------------------ //
// encObtenerRespuestas: //
// - Esta funcion busca todas las respuestas. //
// //
// Parametros: //
// - $pregunta: Si se incluye, solo trae respuestas de esa pregunta. // //
// //
// Retorna: //
// - Array con los datos. //
// ------------------------------------------------------------------------ //
global $conn;
if($pregunta) $rs = $conn->execute("select resID from encRespuestas where preID = $pregunta order by resID");
else $rs = $conn->execute("select resID from encRespuestas");
$ret = array();
while(!$rs->eof)
{
array_push($ret,encObtenerRespuesta($rs->field("resID")));
$rs->movenext();
}
return array("Cant"=>$rs->numrows,"Respuestas"=>$ret);
}
%>