Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package cl.cesfam.SERVLET; import cl.cesfam.DAO.PacienteDAO; import cl.cesfam.ENTITY.Composicion; import cl.cesfam.ENTITY.EstadoPrescripcion; import cl.cesfam.ENTITY.FuncionarioFarmacia; import cl.cesfam.ENTITY.Medicamento; import cl.cesfam.ENTITY.Paciente; import cl.cesfam.ENTITY.Prescripcion; import cl.cesfam.UTIL.ParametersUtil; import static cl.cesfam.automa.AutomatizadoEmail.makeDairlyJob; import java.io.IOException; import java.io.PrintWriter; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.hibernate.Query; import org.hibernate.Session; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.quartz.Scheduler; import org.quartz.SchedulerException; public class RequestHelper extends HttpServlet { private static String ACTION_REGISTRAR_REMEDIO = "registrarRemedio"; private static String ACTION_REGISTRAR_PARTIDA = "registrarPartida"; private static String ACTION_REGISTRAR_DETALLE_PARTIDA = "registrarDetallePartida"; private static String ACTION_OBTENER_COMPOSICION = "obtenercomposicion"; private static String ACTION_REGISTRAR_COMPOSICION = "RegistrarComposicion"; private static String ACTION_ELIMINAR_COMPOSICION = "EliminarComposicion"; private static String ACTION_OBTENER_MEDICAMENTOS = "ObtenerMedicamentos"; private static String ACTION_OBTENER_MEDICAMENTOS_STOCK = "ObtenerMedicamentosStock"; private static String ACTION_CADUCAR_MEDICAMENTO = "CaducarMedicamento"; private static String ACTION_OBTENER_CADUCADOS = "ObtenerCaducados"; private static String ACTION_DESECHAR_MEDICAMENTO = "DesecharMedicamento"; private static String ACTION_EMITIR_RESERVA = "emitirReserva"; private static String ACTION_OBTENER_RESERVAS = "ObtenerReservas"; private static String ACTION_OBTENER_PENDIENTES = "ObtenerPendientes"; private static String ACTION_OBTENER_REMEDIOS_PENDIENTES = "ObtenerRemediosPendientes"; private static String ACTION_OBTENER_PACIENTE = "ObtenerPaciente"; private static String ACTION_CREAR_FORMULARIO_MEDICAMENTO = "formularioMedicamento"; private static String ACTION_CREAR_PRESCRIPCION = "crearPrescripcion"; private static String ACTION_ELIMINAR_PRESCRIPCION = "eliminarPrescripcion"; private static String ACTION_OBTENER_PRESCRIPCIONES = "obtenerPrescripciones"; private static String ACTION_GENERAR_RECETA = "generarReceta"; private static String ACTION_AUTENTICAR = "autenticar_android"; private static String ACTION_OBTENER_MEDICAMENTOS_RESERVADOS = "obtenerReservados"; private static String ACTION_ACTIVAR_EMAIL = "ActivarEmail"; private static String ACTION_DETENER_EMAIL = "DetenerEmail"; private static String ACTION_INFORME_STOCK = "informeStock"; private static String ACTION_OBTENER_INFORME = "ObtenerInforme"; private static Scheduler scheduler = null; // http://localhost:8083/CESFAM/RequestHelper?accion=obtenerPrescripciones // http://localhost:8083/CESFAM/RequestHelper?accion=autenticar_android&txtRut=16.797.436.8&txtPass=1234 // http://localhost:8083/CESFAM/RequestHelper?accion=obtenerReservados protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, Exception { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { /* TODO output your page here. You may use following sample code. */ String action = ""; if (request.getParameter("accion") != null) { action = request.getParameter("accion"); } System.out.println("procesando peticion [" + request.getRequestURL() + action + "]"); if (action.equals(ACTION_REGISTRAR_REMEDIO)) { RegistrarMedicamento(request, response); } else if (action.equals(ACTION_REGISTRAR_PARTIDA)) { RegistrarPartida(request, response); } else if (action.equals(ACTION_REGISTRAR_DETALLE_PARTIDA)) { RegistrarDetallePartida(request, response); } else if (action.equals(ACTION_OBTENER_COMPOSICION)) { ObtenerComposicion(request, response); } else if (action.equals(ACTION_REGISTRAR_COMPOSICION)) { RegistrarComposicion(request, response); } else if (action.equals(ACTION_ELIMINAR_COMPOSICION)) { EliminarComposicion(request, response); } else if (action.equals(ACTION_OBTENER_MEDICAMENTOS)) { ObtenerMedicamentos(request, response); } else if (action.equals(ACTION_OBTENER_MEDICAMENTOS_STOCK)) { ObtenerMedicamentosStock(request, response); } else if (action.equals(ACTION_CADUCAR_MEDICAMENTO)) { CaducarMedicamento(request, response); } else if (action.equals(ACTION_OBTENER_CADUCADOS)) { ObtenerCaducados(request, response); } else if (action.equals(ACTION_DESECHAR_MEDICAMENTO)) { DesecharMedicamento(request, response); } else if (action.equals(ACTION_OBTENER_PACIENTE)) { ObtenerPaciente(request, response); } else if (action.equals(ACTION_EMITIR_RESERVA)) { EmitirReserva(request, response); } else if (action.equals(ACTION_OBTENER_RESERVAS)) { ObtenerReservas(request, response); } else if (action.equals(ACTION_OBTENER_PENDIENTES)) { ObtenerPendientes(request, response); } else if (action.equals(ACTION_OBTENER_REMEDIOS_PENDIENTES)) { ObtenerRemediosPendientes(request, response); } else if (action.equals(ACTION_CREAR_FORMULARIO_MEDICAMENTO)) { CrearFormularioMedicamento(request, response); } else if (action.equals(ACTION_CREAR_PRESCRIPCION)) { CrearPrescripcion(request, response); } else if (action.equals(ACTION_ELIMINAR_PRESCRIPCION)) { EliminarPrescripcion(request, response); } else if (action.equals(ACTION_OBTENER_PRESCRIPCIONES)) { ObtenerPrescripciones(request, response); } else if (action.equals(ACTION_GENERAR_RECETA)) { generarReceta(request, response); } else if (action.equals(ACTION_AUTENTICAR)) { AutenticarAndroid(request, response); } else if (action.equals(ACTION_OBTENER_MEDICAMENTOS_RESERVADOS)) { obtenerMedicametosReservados(request, response); } else if (action.equals(ACTION_ACTIVAR_EMAIL)) { ActivarEmail(request, response); } else if (action.equals(ACTION_DETENER_EMAIL)) { DetenerEmail(request, response); } else if (action.equals(ACTION_INFORME_STOCK)) { informeStock(request, response); } else if (action.equals(ACTION_OBTENER_INFORME)) { ObtenerInforme(request, response); } } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>GET</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { processRequest(request, response); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } /** * Handles the HTTP <code>POST</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { processRequest(request, response); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> // METODO DE CREACION MEDICAMENTO public static void RegistrarMedicamento(HttpServletRequest request, HttpServletResponse response) { try { cl.cesfam.ENTITY.Medicamento medicamento = new cl.cesfam.ENTITY.Medicamento(); //Nombre De medicamento if (request.getParameter("txtNombreMed") != null) { medicamento.setNombreMedicamento(request.getParameter("txtNombreMed")); } //Nombre De medicamento if (request.getParameter("radioInline") != null) { medicamento.setPresentacion(Integer.parseInt(request.getParameter("radioInline"))); } //Contenido De Envase if (request.getParameter("txtContenido") != null) { medicamento.setContenidoEnvase(Integer.parseInt(request.getParameter("txtContenido"))); } //Nombre De medicamento if (request.getParameter("txtFabricante") != null) { medicamento.setFabricante(request.getParameter("txtFabricante")); } medicamento.setStock(0); medicamento.setStockCritico(0); if (cl.cesfam.DAO.MedicamentoDAO.add(medicamento)) { medicamento = cl.cesfam.DAO.MedicamentoDAO.getMedicamentoByName(medicamento.getNombreMedicamento()); response.setContentType("text/plain"); String res = Integer.toString(medicamento.getIdMedicamento()); response.getWriter().write(res); } else { response.setContentType("text/plain"); String res = "false"; response.getWriter().write(res); } } catch (Exception e) { e.getMessage(); } } // METODO DE CREACION PARTIDA public static void RegistrarPartida(HttpServletRequest request, HttpServletResponse response) { try { cl.cesfam.ENTITY.Partida partida = new cl.cesfam.ENTITY.Partida(); //nombre de partida if (request.getParameter("txtNombrePartida") != null) { partida.setNombrePartida(request.getParameter("txtNombrePartida")); } if (cl.cesfam.DAO.PartidaDAO.add(partida)) { cl.cesfam.ENTITY.Partida partidaTMP = cl.cesfam.DAO.PartidaDAO .getPartidaByNombre(partida.getNombrePartida()); response.setContentType("text/plain"); String res = Integer.toString(partidaTMP.getIdPartida()); response.getWriter().write(res); } else { response.setContentType("text/plain"); String res = "false"; response.getWriter().write(res); } } catch (Exception e) { e.getMessage(); } } // METODO DE CREACION PARTIDA public static void RegistrarDetallePartida(HttpServletRequest request, HttpServletResponse response) { try { ParametersUtil.MostrarParametros(request); cl.cesfam.ENTITY.DetallePartida detPartida = new cl.cesfam.ENTITY.DetallePartida(); cl.cesfam.ENTITY.Medicamento medicamento = new cl.cesfam.ENTITY.Medicamento(); cl.cesfam.ENTITY.Partida partida = new cl.cesfam.ENTITY.Partida(); //nombre de partida if (request.getParameter("txtCantidadPartida") != null) { detPartida.setCantidad(Integer.parseInt(request.getParameter("txtCantidadPartida"))); } Date startDate = new Date(); detPartida.setFechaIngreso(startDate); if (request.getParameter("txtFechaVencimiento") != null) { try { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy"); Date fechaV = sdf.parse(request.getParameter("txtFechaVencimiento")); detPartida.setFechaVencimiento(fechaV); } catch (Exception e) { e.getMessage(); } } //Medicamento if (request.getParameter("ddlMedicamentos") != null) { try { medicamento = cl.cesfam.DAO.MedicamentoDAO .getMedicamentoById(Integer.parseInt(request.getParameter("ddlMedicamentos"))); detPartida.setMedicamento(medicamento); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } //Partida if (request.getParameter("ddlPartida") != null) { try { partida = cl.cesfam.DAO.PartidaDAO .getPartidaById(Integer.parseInt(request.getParameter("ddlPartida"))); detPartida.setPartida(partida); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } if (cl.cesfam.DAO.DetallePartidaDAO.add(detPartida)) { medicamento.setStock( Integer.parseInt(request.getParameter("txtCantidadPartida")) + medicamento.getStock()); cl.cesfam.DAO.MedicamentoDAO.update(medicamento); response.setContentType("text/plain"); String res = Integer.toString(detPartida.getIdDetallePartida()); response.getWriter().write(res); } else { response.setContentType("text/plain"); String res = "false"; response.getWriter().write(res); } } catch (Exception e) { e.getMessage(); } } //METODO DE CREACION COMPOSICION public static void RegistrarComposicion(HttpServletRequest request, HttpServletResponse response) { try { cl.cesfam.ENTITY.Composicion composicion = new cl.cesfam.ENTITY.Composicion(); JSONObject salida = new JSONObject(); //medicamento if (request.getParameter("ddlMedicamentos") != null) { composicion.setMedicamento(cl.cesfam.DAO.MedicamentoDAO .getMedicamentoById(Integer.parseInt(request.getParameter("ddlMedicamentos")))); } //Cantidad de composicion if (request.getParameter("txtMg") != null) { composicion.setCantidad(Integer.parseInt(request.getParameter("txtMg"))); } //composicion if (request.getParameter("ddlComponentes") != null) { composicion.setComponente(cl.cesfam.DAO.ComponenteDAO .getComponenteById(Integer.parseInt(request.getParameter("ddlComponentes")))); } if (cl.cesfam.DAO.ComposicionDAO.add(composicion)) { cl.cesfam.ENTITY.Componente componenteTMP = cl.cesfam.DAO.ComponenteDAO .getComponenteById(Integer.parseInt(request.getParameter("ddlComponentes"))); Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery("select max(cc.idComposicion) from Composicion cc"); List<Integer> lista = query.list(); System.out.println(lista); session.close(); salida.put("id_composicion", lista.get(0)); salida.put("nombre_componente", componenteTMP.getNombreComponente()); salida.put("mg", composicion.getCantidad()); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } else { response.setContentType("text/plain"); String res2 = "false"; response.getWriter().write(res2); } } catch (Exception e) { e.getMessage(); } } // FIN REGISTRAR COMPOSICION // INICIO ELIMINAR COMPOSICION public static void EliminarComposicion(HttpServletRequest request, HttpServletResponse response) { try { cl.cesfam.ENTITY.Composicion composicion = new cl.cesfam.ENTITY.Composicion(); int id = 0; //medicamento if (request.getParameter("id") != null) { id = Integer.parseInt(request.getParameter("id")); } composicion = cl.cesfam.DAO.ComposicionDAO.getComposicionByIdComposicion(id); if (cl.cesfam.DAO.ComposicionDAO.delete(composicion)) { response.setContentType("text/plain"); String res = "true"; response.getWriter().write(res); } else { response.setContentType("text/plain"); String res = "false"; response.getWriter().write(res); } } catch (Exception e) { e.getMessage(); } } // FIN ELIMINAR COMPOSICION // METODO QUE OBTIENE COMPOSICION public static void ObtenerComposicion(HttpServletRequest request, HttpServletResponse response) { cl.cesfam.ENTITY.Composicion compo = new cl.cesfam.ENTITY.Composicion(); cl.cesfam.ENTITY.Componente componente = new cl.cesfam.ENTITY.Componente(); int idMedicamneto = 0; JSONArray composiciones = new JSONArray(); JSONObject salida = new JSONObject(); if (request.getParameter("id") != null) { idMedicamneto = Integer.parseInt(request.getParameter("id")); } try { Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session .createQuery("from Composicion Composicion where Composicion.medicamento = " + idMedicamneto); List<cl.cesfam.ENTITY.Composicion> lista = query.list(); session.close(); if (lista != null) { for (Composicion com : lista) { JSONObject item = new JSONObject(); componente = cl.cesfam.DAO.ComponenteDAO .getComponenteById(com.getComponente().getIdComponente()); item.put("id_composicion", com.getIdComposicion()); item.put("nombre", componente.getNombreComponente()); item.put("cantidad", com.getCantidad()); composiciones.put(item); } salida.put("data", composiciones); try (PrintWriter out = response.getWriter()) { System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } } else { } } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } // METODO QUE OBTIENE COMPOSICION // METODO QUE OBTIENE MEDICAMENTOS private static void ObtenerMedicamentos(HttpServletRequest request, HttpServletResponse response) { JSONArray medicamentos = new JSONArray(); JSONObject salida = new JSONObject(); try { if (cl.cesfam.DAO.MedicamentoDAO.getList() != null) { for (cl.cesfam.ENTITY.Medicamento tmp : cl.cesfam.DAO.MedicamentoDAO.getList()) { JSONObject item = new JSONObject(); item.put("nombre", tmp.getNombreMedicamento()); item.put("fabricante", tmp.getFabricante()); item.put("presentacion", tmp.getPresentacion()); item.put("contenido", tmp.getContenidoEnvase()); item.put("stock", tmp.getStock()); item.put("stockCritico", tmp.getStockCritico()); medicamentos.put(item); } salida.put("data", medicamentos); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } else { salida.put("data", medicamentos); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } // METODO QUE OBTIENE MEDICAMENTOS private static void ObtenerMedicamentosStock(HttpServletRequest request, HttpServletResponse response) { JSONObject salida = new JSONObject(); Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery("select count(cc.idMedicamento) from Medicamento cc"); List<Integer> lista = query.list(); System.out.println(lista); Query query2 = session.createQuery("select count(cc.idMedicamento) from Medicamento cc where cc.stock < 1"); List<Integer> lista1 = query2.list(); System.out.println(lista); session.close(); try { salida.put("total_medicamentos", lista.get(0)); salida.put("total_sin_stock", lista1.get(0)); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } // METODO QUE CADUCA MEDICAMENTOS private static void CaducarMedicamento(HttpServletRequest request, HttpServletResponse response) { cl.cesfam.ENTITY.Caducar caducar = new cl.cesfam.ENTITY.Caducar(); cl.cesfam.ENTITY.Partida partida = new cl.cesfam.ENTITY.Partida(); cl.cesfam.ENTITY.Medicamento medicamento = new cl.cesfam.ENTITY.Medicamento(); cl.cesfam.ENTITY.FuncionarioFarmacia funcionario = new cl.cesfam.ENTITY.FuncionarioFarmacia(); //Catidad de caducacion if (request.getParameter("txtCantidad") != null) { caducar.setCantidad(Integer.parseInt(request.getParameter("txtCantidad"))); } //Fecha caducacion java.util.Date fecha = new Date(); caducar.setFechaCaducar(fecha); //Motivo caducacion if (request.getParameter("ddlMotivo") != null) { try { caducar.setMotivoCaducar(cl.cesfam.DAO.MotivoCaducarDAO .getMotivoById(Integer.parseInt(request.getParameter("ddlMotivo")))); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } try { //Estado 1 Caducado, 2 Desechado caducar.setEstadoCaducar(cl.cesfam.DAO.EstadoCaducarDAO.getEstadoById(1)); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } //Partida caducacion if (request.getParameter("ddlPartida") != null) { try { partida = cl.cesfam.DAO.PartidaDAO .getPartidaById(Integer.parseInt(request.getParameter("ddlPartida"))); caducar.setPartida(partida); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } //Medicamento caducacion if (request.getParameter("ddlMedicamentos") != null) { try { medicamento = cl.cesfam.DAO.MedicamentoDAO .getMedicamentoById(Integer.parseInt(request.getParameter("ddlMedicamentos"))); caducar.setMedicamento(medicamento); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } //funcionario caducacion if (request.getParameter("idFuncionario") != null) { try { funcionario = cl.cesfam.DAO.FuncionarioFarmaciaDAO .getFuncionarioById(Integer.parseInt(request.getParameter("idFuncionario"))); caducar.setFuncionarioFarmacia(funcionario); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } try { if (cl.cesfam.DAO.CaducarDAO.add(caducar)) { response.setContentType("text/plain"); String res = "true"; response.getWriter().write(res); } else { response.setContentType("text/plain"); String res = "false"; response.getWriter().write(res); } } catch (IOException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } // METODO QUE OBTIENE CADUCADOS private static void ObtenerCaducados(HttpServletRequest request, HttpServletResponse response) { JSONArray caducados = new JSONArray(); JSONObject caducado = new JSONObject(); Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery( "select (select me.nombreMedicamento from Medicamento me where me.idMedicamento = ca.medicamento),\n" + "(select fu.primerNombreFuncionario||' '||fu.apellidoPaternoFuncionario from FuncionarioFarmacia fu where fu.idFuncionario = ca.funcionarioFarmacia),\n" + "(select pa.nombrePartida from Partida pa where pa.idPartida = ca.partida),\n" + "(select mo.nombreMotivoCaducar from MotivoCaducar mo where mo.idMotivoCaducar = ca.motivoCaducar),\n" + "(select es.nombreEstado from EstadoCaducar es where es.idEstadoCaducar = ca.estadoCaducar),\n" + "ca.cantidad,\n" + "ca.fechaCaducar,\n" + "ca.idCaducar\n" + "from Caducar ca where ca.estadoCaducar = 1 order by ca.fechaCaducar"); List<Object[]> lista = query.list(); session.close(); if (lista != null) { try { for (Object[] item : lista) { for (int i = 0; i < 1; i++) { try { JSONObject objeto = new JSONObject(); objeto.put("medicamento", (String) item[0]); objeto.put("funcionario", (String) item[1]); objeto.put("partida", (String) item[2]); objeto.put("motivo", (String) item[3]); objeto.put("estado", (String) item[4]); objeto.put("cantidad", (int) item[5]); DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); String fecha = df.format((Date) item[6]); objeto.put("fecha", fecha); objeto.put("id_caducar", (int) item[7]); caducados.put(objeto); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } } // fin foercha caducado.put("data", caducados); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + caducado); out.println(caducado); out.flush(); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } else { } } // METODO QUE DESECHA MEDICAMENTOS private static void DesecharMedicamento(HttpServletRequest request, HttpServletResponse response) { try { cl.cesfam.ENTITY.Caducar caducar = new cl.cesfam.ENTITY.Caducar(); cl.cesfam.ENTITY.Medicamento medicamento = new Medicamento(); int id = 0; //medicamento if (request.getParameter("id") != null) { id = Integer.parseInt(request.getParameter("id")); } System.out.println("desechando medicamento .............. id : " + id); caducar = cl.cesfam.DAO.CaducarDAO.getCaducarById(id); caducar.setEstadoCaducar(cl.cesfam.DAO.EstadoCaducarDAO.getEstadoById(2)); medicamento = cl.cesfam.DAO.MedicamentoDAO .getMedicamentoById(caducar.getMedicamento().getIdMedicamento()); if (cl.cesfam.DAO.CaducarDAO.update(caducar)) { medicamento.setStock((medicamento.getStock() - caducar.getCantidad())); cl.cesfam.DAO.MedicamentoDAO.update(medicamento); response.setContentType("text/plain"); String res = "true"; response.getWriter().write(res); System.out.println("desechando correctamente"); } else { response.setContentType("text/plain"); String res = "false"; response.getWriter().write(res); System.out.println("Error al desechar"); } } catch (Exception e) { e.getMessage(); } } private void EmitirReserva(HttpServletRequest request, HttpServletResponse response) { try { ParametersUtil.MostrarParametros(request); cl.cesfam.ENTITY.Reserva reserva = new cl.cesfam.ENTITY.Reserva(); cl.cesfam.ENTITY.EstadoReserva eReserva = new cl.cesfam.ENTITY.EstadoReserva(); cl.cesfam.ENTITY.Medicamento medicamento = new cl.cesfam.ENTITY.Medicamento(); cl.cesfam.ENTITY.Paciente paciente = new cl.cesfam.ENTITY.Paciente(); //cantidad a reservar if (request.getParameter("txtCantidadReserva") != null) { reserva.setCantidad(Integer.parseInt(request.getParameter("txtCantidadReserva"))); } //fecha de reserva Date startDate = new Date(); reserva.setFechaEventoReserva(startDate); //Medicamento if (request.getParameter("ddlMedicamentos") != null) { try { medicamento = cl.cesfam.DAO.MedicamentoDAO .getMedicamentoById(Integer.parseInt(request.getParameter("ddlMedicamentos"))); reserva.setMedicamento(medicamento); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } //Paciente if (request.getParameter("ddlPaciente") != null) { try { paciente = cl.cesfam.DAO.PacienteDAO .getPacienteById(Integer.parseInt(request.getParameter("ddlPaciente"))); reserva.setPaciente(paciente); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } try { eReserva = cl.cesfam.DAO.EstadoReservaDAO.getEstadoReservaById(1); System.out.println(eReserva.getIdEstadoReserva() + eReserva.getNombreEstado()); reserva.setEstadoReserva(eReserva); reserva.setObservacion(" "); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } if (cl.cesfam.DAO.ReservaDAO.add(reserva)) { response.setContentType("text/plain"); String res = Integer.toString(reserva.getIdReserva()); response.getWriter().write(res); } else { response.setContentType("text/plain"); String res = "false"; response.getWriter().write(res); } } catch (Exception e) { e.getMessage(); } } private void ObtenerReservas(HttpServletRequest request, HttpServletResponse response) { JSONArray caducados = new JSONArray(); JSONObject caducado = new JSONObject(); Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery(""); List<Object[]> lista = query.list(); session.close(); if (lista != null) { try { for (Object[] item : lista) { for (int i = 0; i < 1; i++) { try { JSONObject objeto = new JSONObject(); objeto.put("medicamento", (String) item[0]); objeto.put("funcionario", (String) item[1]); objeto.put("partida", (String) item[2]); objeto.put("motivo", (String) item[3]); objeto.put("estado", (String) item[4]); objeto.put("cantidad", (int) item[5]); DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); String fecha = df.format((Date) item[6]); objeto.put("fecha", fecha); objeto.put("id_caducar", (int) item[7]); caducados.put(objeto); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } } // fin foercha caducado.put("data", caducados); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + caducado); out.println(caducado); out.flush(); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } else { } } // METODO QUE OBTIENE PRESCRIPCIONES PENDIENTES private static void ObtenerPendientes(HttpServletRequest request, HttpServletResponse response) { JSONArray pendientes = new JSONArray(); JSONObject pendiente = new JSONObject(); Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery( "select (select re.nombreMedicamento from Medicamento re where re.idMedicamento = pre.formularioMediamento),\n" + "(select pac.primerNombrePaciente||' '||pac.apellidoPaternoPaciente from Paciente pac where pac.idPaciente = pre.formularioMediamento),\n" + "(select pac.rutPaciente from Paciente pac where pac.idPaciente = pre.formularioMediamento),\n" + "pre.periodo,\n" + "pre.frecuencia,\n" + "pre.duracionTratamiento\n" + "from Prescripcion pre where pre.estadoPrescripcion = 0"); List<Object[]> lista = query.list(); session.close(); if (lista != null) { try { for (Object[] item : lista) { for (int i = 0; i < 1; i++) { try { JSONObject objeto = new JSONObject(); objeto.put("medicamento", (String) item[0]); objeto.put("paciente", (String) item[1]); objeto.put("rutPaciente", (String) item[2]); objeto.put("periodo", (int) item[3]); objeto.put("frecuencia", (int) item[4]); objeto.put("duracion", (int) item[5]); pendientes.put(objeto); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } } // fin foercha pendiente.put("data", pendientes); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + pendiente); out.println(pendiente); out.flush(); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } else { } } // FIN METODO QUE ENTREGA PRESCRIPCIONES PENDIENTES // Inicio metodo que OBTIENE remedios pendientes. private static void ObtenerRemediosPendientes(HttpServletRequest request, HttpServletResponse response) { JSONArray pendientes = new JSONArray(); JSONObject pendiente = new JSONObject(); Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery( "select (select pac.primerNombrePaciente||' '||pac.apellidoPaternoPaciente from Paciente pac where pac.idPaciente = pre.formularioMediamento),\n" + "(select pac.rutPaciente from Paciente pac where pac.idPaciente = pre.formularioMediamento),\n" + "pre.periodo,\n" + "pre.frecuencia,\n" + "pre.duracionTratamiento\n" + "from Prescripcion pre where pre.estadoPrescripcion = 0"); List<Object[]> lista = query.list(); session.close(); if (lista != null) { try { for (Object[] item : lista) { for (int i = 0; i < 1; i++) { try { JSONObject objeto = new JSONObject(); objeto.put("paciente", (String) item[0]); objeto.put("rutPaciente", (String) item[1]); objeto.put("periodo", (int) item[2]); objeto.put("frecuencia", (int) item[3]); objeto.put("duracion", (int) item[4]); pendientes.put(objeto); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } } // fin foercha pendiente.put("data", pendientes); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + pendiente); out.println(pendiente); out.flush(); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } else { } } // Fin metodo que entrega remedios pendientes private void ObtenerPaciente(HttpServletRequest request, HttpServletResponse response) { JSONObject salida = new JSONObject(); Paciente paciente = null; try { //rut paciente if (request.getParameter("txtRut") != null) { paciente = PacienteDAO.getPacienteByRut(request.getParameter("txtRut")); } if (paciente != null) { salida.put("nombre", paciente.getPrimerNombrePaciente() + " " + paciente.getApellidoPaternoPaciente() + " " + paciente.getApellidoMaternoPaciente()); salida.put("rut", paciente.getRutPaciente()); salida.put("email", paciente.getEmailPaciente()); salida.put("telefono", paciente.getTelefonoPaciente()); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } else { response.setContentType("text/plain"); String res = "false"; response.getWriter().write(res); } } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } // INICIO METODO QUE CREA FORMULARIO DE MEDICAMENTOS private static void CrearFormularioMedicamento(HttpServletRequest request, HttpServletResponse response) throws ParseException, Exception { cl.cesfam.ENTITY.FormularioMedicamento formulario = new cl.cesfam.ENTITY.FormularioMedicamento(); JSONObject salida = new JSONObject(); //medicamento if (request.getParameter("id_medico") != null) { formulario.setMedicoIdMedico(Integer.parseInt(request.getParameter("id_medico"))); } //Cantidad de composicion if (request.getParameter("rut_paciente") != null) { Paciente pa = cl.cesfam.DAO.PacienteDAO.getPacienteByRut(request.getParameter("rut_paciente")); formulario.setPacienteIdPaciente(pa.getIdPaciente()); } //Fecha caducacion java.util.Date fecha_actual = new Date(); formulario.setFechaFormularioMedicamento(fecha_actual); //Motivo caducacion //requiere evaluzacion if (request.getParameter("requiere_evaluacion") != null && request.getParameter("requiere_evaluacion").equals("1")) { formulario.setRequiereProximaEvaluacion(1); //fecha proxima evaluacion if (request.getParameter("fecha_proxima_evaluacion") != null) { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy"); Date fecha = sdf.parse(request.getParameter("fecha_proxima_evaluacion")); formulario.setFechaProximaEvaluacion(fecha); } } else { formulario.setRequiereProximaEvaluacion(0); } if (cl.cesfam.DAO.FormularioMedicamentoDAO.add(formulario)) { Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session .createQuery("select max(cc.idFormularioMedicamento) from FormularioMedicamento cc"); List<Integer> lista = query.list(); System.out.println(lista); session.close(); salida.put("id_formulario_medicamento", lista.get(0)); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } else { response.setContentType("text/plain"); String res2 = "false"; response.getWriter().write(res2); } } //INICIO METODO QUE CREA PRECRIPCION private static void CrearPrescripcion(HttpServletRequest request, HttpServletResponse response) { ParametersUtil.MostrarParametros(request); System.out.println(); Prescripcion pre = new Prescripcion(); JSONObject salida = new JSONObject(); Integer permanete = null; try { //estado de prescripcion EstadoPrescripcion estado = cl.cesfam.DAO.EstadoPrescripcionDAO.getEstadoPrescripcionyId(1); pre.setEstadoPrescripcion(estado); //formuario de medicamento if (request.getParameter("id_formulario") != null) { pre.setFormularioMediamento(cl.cesfam.DAO.FormularioMedicamentoDAO .getFormularioMedicamentoById(Integer.parseInt(request.getParameter("id_formulario")))); } //medicamento if (request.getParameter("id_medicamento") != null) { pre.setMedicamento(cl.cesfam.DAO.MedicamentoDAO .getMedicamentoById(Integer.parseInt(request.getParameter("id_medicamento")))); } //private TipoPrescripcion tipoPrescripcion PENDIENTE if (request.getParameter("permanente") != null) { permanete = Integer.parseInt(request.getParameter("permanente")); pre.setTipoPrescripcion(cl.cesfam.DAO.TipoPrescripcionDAO.getTipoPrescripcionById(permanete)); } if (permanete == 2) { //periodo de prescripcio if (request.getParameter("periodo") != null) { pre.setPeriodo(Integer.parseInt(request.getParameter("periodo").split(" ")[1])); } } //frecuencia de prescripcion if (request.getParameter("frecuencia") != null) { pre.setFrecuencia(Integer.parseInt(request.getParameter("frecuencia").split(" ")[1])); } //cantidad de medicamentos if (request.getParameter("cantidad") != null) { pre.setCantidad(Integer.parseInt(request.getParameter("cantidad"))); } //duracion de tratamientoPENDIENTE if (cl.cesfam.DAO.PrescripcionDAO.add(pre)) { Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery("select max(cc.idPrescripcion) from Prescripcion cc"); List<Integer> lista = query.list(); System.out.println(lista); session.close(); salida.put("id_prescripcion", lista.get(0)); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } else { response.setContentType("text/plain"); String res2 = "false"; response.getWriter().write(res2); } } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); //estado de prescripcion } } private void EliminarPrescripcion(HttpServletRequest request, HttpServletResponse response) { try { cl.cesfam.ENTITY.Prescripcion pre = new cl.cesfam.ENTITY.Prescripcion(); int id = 0; //medicamento if (request.getParameter("id") != null) { id = Integer.parseInt(request.getParameter("id")); } pre = cl.cesfam.DAO.PrescripcionDAO.getPrescripcionById(id); if (cl.cesfam.DAO.PrescripcionDAO.delete(pre)) { response.setContentType("text/plain"); String res = "true"; response.getWriter().write(res); } else { response.setContentType("text/plain"); String res = "false"; response.getWriter().write(res); } } catch (Exception e) { e.getMessage(); } } private void ObtenerPrescripciones(HttpServletRequest request, HttpServletResponse response) { JSONArray formularios = new JSONArray(); JSONObject salida = new JSONObject(); DateFormat df_fecha_hora = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); DateFormat df_fecha = new SimpleDateFormat("dd/MM/yyyy"); Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery("select \n" + "fo.idFormularioMedicamento ,\n" + "(select pa.primerNombrePaciente||' '||pa.apellidoPaternoPaciente from Paciente pa where pa.idPaciente = fo.pacienteIdPaciente ),\n" + "(select pa.rutPaciente from Paciente pa where pa.idPaciente = fo.pacienteIdPaciente ),\n" + "fo.requiereProximaEvaluacion ,\n" + "fo.fechaProximaEvaluacion ,\n" + "fo.fechaFormularioMedicamento \n" + "from FormularioMedicamento fo\n" + "WhERE rownum<=5\n" + "order by fo.fechaFormularioMedicamento asc "); List<Object[]> lista = query.list(); session.close(); if (lista != null) { try { for (Object[] item : lista) { for (int i = 0; i < 1; i++) { try { JSONObject objeto = new JSONObject(); String fecha_prox = null; objeto.put("folio", (int) item[0]); objeto.put("nombre_paciente", (String) item[1]); objeto.put("rut", (String) item[2]); objeto.put("proxima_evaluacion", (int) item[3]); if ((Date) item[4] != null) { fecha_prox = df_fecha.format((Date) item[4]); } objeto.put("fecha_proxima_evaluacion", fecha_prox); objeto.put("fecha", df_fecha_hora.format((Date) item[5])); objeto.put("receta", "<button href=\"RequestHelper?accion=\"generarReceta\"&id=" + (int) item[0] + "\" onclick=\"openVentana()\" class=\"fa fa-print fa-2x\" ></button>"); formularios.put(objeto); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } } // fin foercha salida.put("data", formularios); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } else { } } private void generarReceta(HttpServletRequest request, HttpServletResponse response) { String id = request.getAttribute("id").toString(); int idFinal = Integer.parseInt(id); JSONArray recetas = new JSONArray(); JSONObject salida = new JSONObject(); DateFormat df_fecha = new SimpleDateFormat("dd/MM/yyyy"); Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery("select\n" + "(select pa.primerNombrePaciente||' '||pa.apellidoPaternoPaciente from Paciente pa where pa.idPaciente = fo.pacienteIdPaciente ),\n" + "(select pa.rutPaciente from Paciente pa where pa.idPaciente = fo.pacienteIdPaciente ),\n" + "(select medi.nombreMedicamento from Medicamento medi where medi.idMedicamento = (select pre.medicamento from Prescripcion pre where pre.formularioMediamento = fo.idFormularioMedicamento)),\n" + "(select pre.periodo from Prescripcion pre where pre.formularioMediamento = fo.idFormularioMedicamento),\n" + "(select pre.frecuencia from Prescripcion pre where pre.formularioMediamento = fo.idFormularioMedicamento),\n" + "(select pre.duracionTratamiento from Prescripcion pre where pre.formularioMediamento = fo.idFormularioMedicamento),\n" + "(select med.primerNombreMedico||' '||med.apellidoPaternoMedico from Medico med where med.idMedico = fo.medicoIdMedico)\n" + " from FormularioMedicamento fo\n" + " WhERE fo.idFormularioMedicamento=" + idFinal); List<Object[]> lista = query.list(); session.close(); if (lista != null) { try { for (Object[] item : lista) { for (int i = 0; i < 1; i++) { try { JSONObject objeto = new JSONObject(); objeto.put("paciente", (String) item[0]); objeto.put("rut_paciente", (String) item[1]); objeto.put("medicamento", (String) item[2]); if (item[3] == null) { objeto.put("periodo", "-"); } else { objeto.put("periodo", (int) item[3]); } objeto.put("frecuencia", (int) item[4]); if (item[5] == null) { objeto.put("duracion", "Permanente"); } else { objeto.put("duracion", (int) item[5]); } objeto.put("medico", (String) item[6]); objeto.put("fecha", df_fecha); recetas.put(objeto); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } } salida.put("data", recetas); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } catch (JSONException | IOException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } else { } } private void AutenticarAndroid(HttpServletRequest request, HttpServletResponse response) { ParametersUtil.MostrarParametros(request); cl.cesfam.ENTITY.FuncionarioFarmacia funcionario = new FuncionarioFarmacia(); JSONObject salida = new JSONObject(); String rut = ""; String contrasea = ""; //http://192.168.0.14:8083/CESFAM/RequestHelper?accion=autenticar_android&txtRut=9.856.288-5&txtPass=862065 if (request.getParameter("rut") != null) { rut = request.getParameter("rut"); } if (request.getParameter("pass") != null) { contrasea = request.getParameter("pass"); } System.out.println("Autenticando usuario ANDROID ["+rut+","+contrasea+"]..."); try { if (cl.cesfam.DAO.FuncionarioFarmaciaDAO.getFuncionarioByRut(rut) != null) { funcionario = cl.cesfam.DAO.FuncionarioFarmaciaDAO.getFuncionarioByRut(rut); if (funcionario.getPassword().equals(contrasea)) { System.out.println("Autenticando usuario ["+rut+":OK]"); JSONObject user = new JSONObject(); user.put("nombre", funcionario.getPrimerNombreFuncionario()+" "+funcionario.getApellidoPaternoFuncionario()); salida.put("data",user); PrintWriter out = response.getWriter(); System.out.println("el objeto es :"+salida); out.println(salida); out.flush(); } else { System.out.println("Autenticando usuario ["+rut+":PASSWORD NO OK]"); // salida.put("data",false); // PrintWriter out = response.getWriter(); // System.out.println("el objeto es :"+salida); // out.println(salida); // out.flush(); } }else{ System.out.println("Autenticando usuario ["+rut+":USER NO OK]"); // salida.put("data",false); // PrintWriter out = response.getWriter(); // System.out.println("el objeto es :"+salida); // out.println(salida); // out.flush(); } } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } private void obtenerMedicametosReservados(HttpServletRequest request, HttpServletResponse response) { JSONArray reservas = new JSONArray(); JSONObject salida = new JSONObject(); DateFormat df_fecha_hora = new SimpleDateFormat("dd/MM/yyyy HH:mm"); Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery( "select (select pa.primerNombrePaciente||' '||pa.apellidoPaternoPaciente from Paciente pa where pa.idPaciente = re.paciente),\n" + "(select me.nombreMedicamento from Medicamento me where me.idMedicamento = re.medicamento) ,\n" + "re.cantidad ,\n" + "re.fechaEventoReserva\n" + "from Reserva re"); List<Object[]> lista = query.list(); session.close(); if (lista != null) { try { for (Object[] item : lista) { for (int i = 0; i < 1; i++) { try { JSONObject objeto = new JSONObject(); objeto.put("paciente", (String) item[0]); objeto.put("medicamento", (String) item[1]); objeto.put("cantidad", (int) item[2]); objeto.put("fecha", df_fecha_hora.format((Date) item[3])); reservas.put(objeto); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } } // fin foercha salida.put("data", reservas); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } else { } } private void ActivarEmail(HttpServletRequest request, HttpServletResponse response) { int tiempo = 60 * 5; //http://localhost:8083/CESFAM/RequestHelper?accion=ActivarEmail&tiempo=10 if (request.getParameter("tiempo") != null) { tiempo = Integer.parseInt(request.getParameter("tiempo")); } try { if (scheduler != null) { scheduler.shutdown(false); } } catch (SchedulerException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } scheduler = makeDairlyJob(tiempo); } private void DetenerEmail(HttpServletRequest request, HttpServletResponse response) { //http://localhost:8083/CESFAM/RequestHelper?accion=DetenerEmail try { scheduler.shutdown(false); } catch (SchedulerException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } private void informeStock(HttpServletRequest request, HttpServletResponse response) { JSONArray informe = new JSONArray(); JSONObject salida = new JSONObject(); Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery("select \n" + "(select med.nombreMedicamento from Medicamento med where med.idMedicamento = res.medicamento),\n" + "(select med.stock from Medicamento med where med.idMedicamento = res.medicamento),\n" + "res.cantidad,\n" + "res.estadoReserva \n" + "from Reserva res \n" + "join Medicamento med on med.medicamento = res.medicamento"); List<Object[]> lista = query.list(); session.close(); if (lista != null) { try { for (Object[] item : lista) { for (int i = 0; i < 1; i++) { try { JSONObject objeto = new JSONObject(); String estado = null; objeto.put("medicamento", (int) item[0]); objeto.put("stock", (String) item[1]); objeto.put("reservados", (String) item[2]); if ((int) item[3] == 1) { estado = "Pendiente"; } else if ((int) item[3] == 2) { estado = "Entregado"; } else if ((int) item[3] == 3) { estado = "Disponible"; } objeto.put("estado", estado); informe.put(objeto); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } } // fin foercha salida.put("data", informe); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } catch (JSONException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } } // METODO QUE OBTIENE MEDICAMENTOS private static void ObtenerInforme(HttpServletRequest request, HttpServletResponse response) { JSONArray medicamentos = new JSONArray(); JSONObject salida = new JSONObject(); try { if (cl.cesfam.DAO.MedicamentoDAO.getList() != null) { for (cl.cesfam.ENTITY.Medicamento tmp : cl.cesfam.DAO.MedicamentoDAO.getList()) { JSONObject item = new JSONObject(); String cantidadReservada; Session session = cl.cesfam.DAL.NewHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery( "select sum(cantidad) from Reserva where medicamento=" + tmp.getIdMedicamento()); if (query.uniqueResult() == null) { cantidadReservada = "0"; } else { cantidadReservada = query.uniqueResult().toString(); } session.close(); item.put("nombre", tmp.getNombreMedicamento()); item.put("fabricante", tmp.getFabricante()); item.put("presentacion", tmp.getPresentacion()); item.put("contenido", tmp.getContenidoEnvase()); item.put("stock", tmp.getStock()); item.put("stockCritico", tmp.getStockCritico()); item.put("cantidadReservada", (String) cantidadReservada); medicamentos.put(item); } salida.put("data", medicamentos); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } else { salida.put("data", medicamentos); PrintWriter out = response.getWriter(); System.out.println("el objeto es :" + salida); out.println(salida); out.flush(); } } catch (Exception ex) { Logger.getLogger(RequestHelper.class.getName()).log(Level.SEVERE, null, ex); } } }