HttpServletRequest enviado por el cliente.
* @param response Objeto HttpServletResponse que recibirá el cliente.
*/
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
LogTarisan.logger.log(NivelLog.INFO, "GestorAdministracion.service().INI");
response.setHeader("Expires", "0");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
HttpSession sesion = request.getSession(true);
if(sesion.isNew() || (sesion.getAttribute("USUARIO") == null))
{
String opcion = request.getParameter("OPCION");
if (Integer.parseInt(opcion)==OPC_ADM_MOSTRAR_LOG){
this.evaluarOpcion(opcion, request, response, sesion);
}else{
LogTarisan.logger.log(NivelLog.DEBUG, "Sesión no iniciada redirigimos");
response.sendRedirect("../html/login.html");
}
}
else
{
LogTarisan.logger.log(NivelLog.DEBUG, "Entrada aceptada al módulo de Administración");
String opcion = request.getParameter("OPCION");
this.evaluarOpcion(opcion, request, response, sesion);
}
LogTarisan.logger.log(NivelLog.INFO, "GestorAdministracion.service().FIN");
}
/**
* Evalúa la opción del módulo de administración solicitada por el usuario.
* Redirigiendo a la página JSP correspondiente a la opción de menú requerida.
* @param sOpcion El código de la opción de menú solicitada por el usuario.
* @param request Objeto HttpServletRequest enviado por el cliente.
* @param response Objeto HttpServletResponse que retornará la página al cliente.
* @param sesion Objeto HttpSession conla sesión del usuario conectado.
*/
private void evaluarOpcion(String sOpcion, HttpServletRequest request, HttpServletResponse response, HttpSession sesion) throws IOException
{
int nOpcion = 0;
try
{
nOpcion = Integer.parseInt(sOpcion);
}
catch(NumberFormatException e)
{
}
switch(nOpcion)
{
case OPC_ADM_USUARIO_LISTA:
{
LogTarisan.logger.log(NivelLog.DEBUG, "Opción 'Usuarios' seleccionada");
response.sendRedirect("../jsp/adm/lista_usuarios.jsp?x=0&pagina=1");
break;
}
case OPC_ADM_PASSWORD:
{
LogTarisan.logger.log(NivelLog.DEBUG, "Opción 'Password' seleccionada");
response.sendRedirect("../jsp/med/password.jsp");
break;
}
case OPC_ADM_USUARIO_DETALLE:
{
try
{
LogTarisan.logger.log(NivelLog.DEBUG, "Se actualiza la informacion del usuario seleccionado");
this.actualizarDatosUsuario(request, response, sesion);
//redirigimos a la pagina de detalle de usuario
response.sendRedirect("../jsp/adm/detalle_usuario.jsp?x=" + request.getParameter("x") + "&medico=" + request.getParameter("medico"));
}
catch(ExcepcionTarisan ex)
{
LogTarisan.logger.log(NivelLog.ERROR, "ExcepcionTarisan: " + ex.getMensaje());
sesion.setAttribute("ERROR", "Error en la actualizacion de los datos del usuario." + ex.getMensaje());
response.sendRedirect("../jsp/error.jsp");
}
catch(Exception ex)
{
LogTarisan.logger.log(NivelLog.ERROR, "Exception: " + ex);
sesion.setAttribute("ERROR", "Error en la actualizacion de los datos del usuario.");
response.sendRedirect("../jsp/error.jsp");
}
break;
}
case OPC_ADM_ACT_AUTORIZACION:
{
LogTarisan.logger.log(NivelLog.DEBUG, "Vamos a actualizar autorizacion");
try {
if(this.actualizarAutorizacion(request, response, sesion))
{
sesion.setAttribute("MENSAJE", "Actualizacion realizada correctamente");
response.sendRedirect("../jsp/adm/mto_taconaut.jsp?x=" + request.getParameter("x"));
}
} catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Exception: " + e);
sesion.setAttribute("ERROR", "Error en la actualizacion de la autorizacion.");
response.sendRedirect("../jsp/error.jsp");
}
break;
}
case OPC_ADM_GES_NIVELES_ESPE:
{
LogTarisan.logger.log(NivelLog.DEBUG, "Obtener Niveles y Visibilidad de las especialidades");
response.sendRedirect("../jsp/adm/mto_niveles.jsp?x=3&especialidad=" + request.getParameter("hiddenEspecialidad") +"&especialidadSolicitada=" + request.getParameter("hiddenEspecialidadSolicitada"));
break;
}
case OPC_ADM_GES_ACT_VISIBILI:
{
LogTarisan.logger.log(NivelLog.DEBUG, "Actualizar Visibilidad de los niveles");
PersistenciaTanivelEspecialidadTanivelActo per = new PersistenciaTanivelEspecialidadTanivelActo();
Vector v = new Vector();
for (int i = 0; i<3; i++){
TanivelEspecialidad TanivEsp = new TanivelEspecialidad();
TanivEsp.setEspecialidad(Integer.parseInt(request.getParameter("hiddenEspe")));
TanivEsp.setNivel(Integer.parseInt(request.getParameter("hiddenNivel"+(i+1))));
TanivEsp.setVisibilidad(Integer.parseInt(request.getParameter("hiddenVisi"+(i+1))));
v.addElement(TanivEsp);
}
if(per.ActualizarVisibilidad(v,Integer.parseInt(request.getParameter("hiddenEspeS"))))
{
LogTarisan.logger.log(NivelLog.DEBUG, "OK al actualizar la visibilidad de los niveles");
response.sendRedirect("../jsp/adm/mto_niveles.jsp?x=3");
}
else
{
LogTarisan.logger.log(NivelLog.DEBUG, "Error al actualizar la visibilidad de los niveles");
sesion.setAttribute("ERROR", "Error al actualizar visibilidad de los niveles");
response.sendRedirect("../jsp/error.jsp");
}
break;
}
case OPC_ADM_GES_NIVELES_ACT:
{
LogTarisan.logger.log(NivelLog.DEBUG, "Obtener Actos y niveles de las especialidades");
response.sendRedirect("../jsp/adm/mto_actos.jsp?x=3&especialidad=" + request.getParameter("hiddenEspecialidad")+"&pagina="+ request.getParameter("pagina")+"&hiddenActo="+ request.getParameter("hiddenActo"));
break;
}
case OPC_ADM_GES_ACT_NIVEL_ACTO:
{
LogTarisan.logger.log(NivelLog.DEBUG, "Actualizar Nivel de los actos");
PersistenciaTanivelEspecialidadTanivelActo per = new PersistenciaTanivelEspecialidadTanivelActo();
Vector v = new Vector();
for (int i = 0; i"; tabla += "
| Linea | "; tabla += "Fecha | "; tabla += "Hora | "; tabla += "Tipo | "; tabla += "Log | "; tabla += "
| "+numLin+" | "; tabla += ""+strFecha+" | "; tabla += ""+strHora+" | "; tabla += ""+strTipo+" | "; tabla += ""+strLog+" | "; tabla += "
"; tabla += "Anterior"; tabla += "Siguiente"; tabla += ""; return tabla; } public String mostrarLogJson(String archivo, int maxLinMostradas) throws FileNotFoundException, IOException { Gson gson = new Gson(); FileReader fr= new FileReader(archivo); BufferedReader br= new BufferedReader(fr); String linea=null; int numLin =0; // Número de líneas del fichero int linInicial=0; // Primera línea mostrada while ((linea=br.readLine())!=null){ numLin++; } br.close(); LogTarisan.logger.log(NivelLog.DEBUG, "Número líneas fichero: "+numLin); LogTarisan.logger.log(NivelLog.DEBUG, "Número máximo de lines a mostrar: "+maxLinMostradas); // Calculamos primera línea mostrada linInicial = numLin-maxLinMostradas; LogTarisan.logger.log(NivelLog.DEBUG, "Linea Inicial: "+linInicial); // Volvemos a leer mostrando sólo lo requerido FileReader fr2= new FileReader(archivo); BufferedReader br2 = new BufferedReader(fr2); numLin=0; // Línea actual Collection collection = new ArrayList(); while ((linea=br2.readLine())!=null){ // Si el número de líneas a mostrar es superioral número de líneas mostramos todas if(numLin>=linInicial || linInicial<0){ //System.out.println("Tail:"+linea); collection.add(numLin); collection.add(linea); //String jsonString = gson.toJson(linea); } numLin++; } String json = gson.toJson(collection); br2.close(); return json; } private TanivelEspecialidad MostrarNivelesEspe(HttpServletRequest request, HttpServletResponse response, HttpSession sesion) throws ExcepcionTarisan { TanivelEspecialidad resultado = null; PersistenciaTanivelEspecialidadTanivelActo per = new PersistenciaTanivelEspecialidadTanivelActo(); //resultado = per.ObtenerNiveles(Integer.parseInt(request.getParameter("especialidad"))); return resultado; } private boolean actualizarAutorizacion(HttpServletRequest request, HttpServletResponse response, HttpSession sesion) throws ExcepcionTarisan { boolean resultado = false; LogTarisan.logger.log(NivelLog.DEBUG, "Vamos a actualizar la autorizacion: "+request.getParameter("num_aut")+", con la cantidad "+request.getParameter("cantidad")); PersistenciaTaconaut pertacon = new PersistenciaTaconaut(); long autorizacion = Long.parseLong(request.getParameter("num_aut")); int acto = Integer.parseInt(request.getParameter("acto")); int especialidad = Integer.parseInt(request.getParameter("especialidad")); int cantidad = Integer.parseInt(request.getParameter("cantidad")); if(pertacon.AutorizacionSinTarjeta(autorizacion)) { String tarjeta = pertacon.ObtenerTarjeta(autorizacion); resultado = pertacon.ActualizarCantidadTarjetaAutorizacionADM(autorizacion, acto, especialidad, cantidad, tarjeta); } else resultado = pertacon.ActualizarCantidadAutorizacionADM(autorizacion, acto, especialidad, cantidad); return resultado; } /** * Actualiza los datos del usuario seleccionado por el administrador. * @param request Objeto
HttpServletRequest que contiene los parámetros enviados desde la página Html.
* @param response Objeto HttpServletResponse que retornará la página al cliente.
* @param sesion Objeto HttpSession con la sesión actual del usuario.
* @throws
*/
private void actualizarDatosUsuario(HttpServletRequest request, HttpServletResponse response, HttpSession sesion) throws ExcepcionTarisan
{
Object[] aValores = null;
Object[] aCondiciones = null;
StringBuffer strSql = new StringBuffer();
Object nMedico = null;
Object valor = null;
boolean haAccedido = false;
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Calendar calCaducidad = Calendar.getInstance();
int intMedicoConectado = ((Usuario)sesion.getAttribute("USUARIO")).getMedico();
Timestamp tsFechaUltimoAcceso = ((Usuario)sesion.getAttribute("USUARIO")).getFechaUltAcceso();
try
{
nMedico = request.getParameter("medico");
if ((request.getParameter("fecha_ult_acceso") != null) && (request.getParameter("fecha_ult_acceso").trim().compareTo("") != 0))
{
haAccedido = true;
}
if ((request.getParameter("valor_password") != null) && (request.getParameter("valor_password").trim().compareTo("") != 0))
{
aValores = new Object[3];
if (haAccedido)
{
aValores[2] = Utilidades.encripta(request.getParameter("valor_password"), (String)nMedico);
}
else
{
aValores[2] = request.getParameter("valor_password");
}
strSql.append(", PASSWORD = ?");
}
else
{
aValores = new Object[3];
}
valor = sdf.parse(request.getParameter("valor_fecha_modif_clave"));
calCaducidad.setTime((java.util.Date)valor);
calCaducidad.add(Calendar.DATE, -ParametrosConfiguracion.diasCaducidad);
strSql.insert(0, ", FECHA_MODIF_CLAVE = ?");
aValores[2] = new java.sql.Date(calCaducidad.getTime().getTime());
valor = request.getParameter("valor_bloqueo_clave");
/*if ((valor == null) || (((String)valor).toUpperCase().compareTo("S") != 0))
{
valor = "N";
}*/
if (valor.equals("N")){
strSql.insert(0, " BLOQUEO_CLAVE = ?");
strSql.insert(0, "FECHA_ULT_ACCESO = ?,");
aValores[0] = "";
aValores[1] = valor;
} else {
aValores = new Object[2];
strSql.insert(0, " BLOQUEO_CLAVE = ?");
aValores[1] = new java.sql.Date(calCaducidad.getTime().getTime());
aValores[0] = valor;
}
strSql.insert(0, "UPDATE TAMEDICO SET ");
//array condiciones
strSql.append(" , PASSWORD='123' WHERE MEDICO = ? ");
aCondiciones = new Object[1];
aCondiciones[0] = nMedico;
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ParametrosConfiguracion.dataStore.iniciarTransaccion(conexion);
try
{
PersistenciaTamedico perTamedico = new PersistenciaTamedico();
LogTarisan.logger.log(NivelLog.DEBUG, "--- La sql es esta: "+strSql.toString()+"<<");
perTamedico.modificarMedico(strSql.toString(), aValores, aCondiciones);
//insertamos un registro en la tabla tareglog para indicar los movimientos realizados por el usuario
PersistenciaTareglog perTareglog = new PersistenciaTareglog();
//obtenemos el ultimo valor del campo correlativo de la tabla tareglog.
//Este campo es un numero correlativo utilizado para diferenciar las claves.
int intUltimoValorCorrelativo = perTareglog.obtenerUltimoValorCorrelativo(intMedicoConectado, tsFechaUltimoAcceso);
perTareglog.insertarLog(intMedicoConectado, tsFechaUltimoAcceso, Calendar.getInstance(), intUltimoValorCorrelativo + 1, "TAMEDICO", Utilidades.obtenerSentenciaSQL(strSql, aValores, aCondiciones), "", conexion);
//las actualizaciones han ido bien. Confirmamos la transaccion
ParametrosConfiguracion.dataStore.confirmarTransaccion(conexion);
}
catch (ExcepcionTarisan ex)
{
ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
LogTarisan.logger.log(NivelLog.ERROR, "ExcepcionTarisan: " + ex.getMensaje());
throw (ExcepcionTarisan)ex;
}
catch (Exception ex)
{
ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
LogTarisan.logger.log(NivelLog.ERROR, "Exception: " + ex.getMessage());
throw new ExcepcionTarisan(ex.getMessage());
}
finally
{
//liberamos la conexion
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
}
catch (ExcepcionTarisan ex)
{
LogTarisan.logger.log(NivelLog.ERROR, "ExcepcionTarisan: " + ex.getMensaje());
throw (ExcepcionTarisan)ex;
}
catch(Exception ex)
{
LogTarisan.logger.log(NivelLog.ERROR, "Exception: " + ex);
throw new ExcepcionTarisan(ex.getMessage());
}
}
}