public FormatHr getHora(MuniReglaIngreso muni) { FormatHr format = new FormatHr(); String horaInicial = "" + muni.getHoraInicial(); String horaFinal = "" + muni.getHoraFinal(); if (horaInicial.length() % 3 == 0) { format.setHoraInicial("0" + horaInicial.substring(0, 1)); format.setMinutoInicial(horaInicial.substring(1, 3)); } else { format.setHoraInicial(horaInicial.substring(0, 2)); format.setMinutoInicial(horaInicial.substring(2, 4)); } if (horaFinal.length() % 3 == 0) { format.setHoraFinal("0" + horaFinal.substring(0, 1)); format.setMinutoFinal(horaFinal.substring(1, 3)); } else { format.setHoraFinal(horaFinal.substring(0, 2)); format.setMinutoFinal(horaFinal.substring(2, 4)); } return format; }
public ActionForward agregarPermisoUsuario( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("Agregar permiso usuario"); String dia, rutPersona, horaInicial, horaFinal, minutoInicial, minutoFinal; int oficina, permiso; DynaActionForm dynamic = (DynaActionForm) form; rutPersona = dynamic.getString("rutPersona"); dia = dynamic.getString("diaIngreso"); horaInicial = dynamic.getString("horaInicial"); minutoInicial = dynamic.getString("minutoInicial"); horaFinal = dynamic.getString("horaFinal"); minutoFinal = dynamic.getString("minutoFinal"); permiso = (Integer) dynamic.get("idPermiso"); oficina = (Integer) dynamic.get("idOficina"); if (Integer.parseInt(horaInicial) > Integer.parseInt(horaFinal)) { ActionErrors errors = new ActionErrors(); errors.add("errorHoras", new ActionMessage("error.horas.asignar")); saveErrors(request, errors); return mapping.findForward("FailureValidate"); } MuniPersonasDAO muniPersonaDAO = new MuniPersonasDAO(); if (muniPersonaDAO.findByCriteriaObject( MuniPersonas.class, Restrictions.eq("rutPersona", rutPersona)) == null) { ActionErrors errors = new ActionErrors(); errors.add("errorRut", new ActionMessage("error.rut")); saveErrors(request, errors); return mapping.findForward("FailureValidate"); } int hora = Integer.parseInt(horaInicial + minutoInicial); int hora_2 = Integer.parseInt(horaFinal + minutoFinal); MuniReglaIngresoDAO muniReglaIngresoDAO = new MuniReglaIngresoDAO(); // Veo si la regla se encuentra entre las horas previamente establecidas MuniReglaIngreso muniIngreso = (MuniReglaIngreso) muniReglaIngresoDAO.findByCriteriaObject( MuniReglaIngreso.class, Restrictions.eq("diaIngreso", dia), Restrictions.eq("idOficina", oficina), Restrictions.eq("rutPersona", rutPersona), Restrictions.lt("horaInicial", hora), Restrictions.gt("horaFinal", hora)); MuniReglaIngreso muniSalida = (MuniReglaIngreso) muniReglaIngresoDAO.findByCriteriaObject( MuniReglaIngreso.class, Restrictions.eq("diaIngreso", dia), Restrictions.eq("idOficina", oficina), Restrictions.eq("rutPersona", rutPersona), Restrictions.lt("horaInicial", hora_2), Restrictions.gt("horaFinal", hora_2)); MuniReglaIngreso muni = new MuniReglaIngreso(); // Compruebo si corresponde al mismo registro, comparando la hora de // entrada en ambos registros. // if (muniSalida.getHoraInicial() != muniIngreso.getHoraInicial()) { // System.out.println("Distinto clase de registro..."); // } else { if (muniIngreso != null && muniSalida != null) { // En esta sección se ve si existe entre las horas int horaF = muniIngreso.getHoraFinal(); muniIngreso.setHoraFinal(hora); muniReglaIngresoDAO.update(muniIngreso); muniIngreso.setHoraInicial(hora); muniIngreso.setHoraFinal(hora_2); muniReglaIngresoDAO.create(muniIngreso); muniIngreso.setHoraInicial(hora_2); muniIngreso.setHoraFinal(horaF); muniReglaIngresoDAO.create(muniIngreso); logger.info("Creada la nueva configuración horaria"); } else if (muniIngreso != null) { muniIngreso.setHoraFinal(hora); muniReglaIngresoDAO.update(muniIngreso); muniIngreso.setHoraInicial(hora); muniIngreso.setHoraFinal(hora_2); muniReglaIngresoDAO.create(muniIngreso); } else { if (muniSalida == null) { muniReglaIngresoDAO.deleteByCriteriaObject( Restrictions.eq("diaIngreso", dia), Restrictions.eq("idOficina", oficina), Restrictions.eq("rutPersona", rutPersona), Restrictions.lt("horaInicial", hora_2), Restrictions.gt("horaFinal", hora)); muni.setHoraInicial(hora); muni.setHoraFinal(hora_2); muni.setRutPersona(rutPersona); muni.setDiaIngreso(dia); muni.setIdOficina(oficina); muni.setIdPermiso(permiso); muniReglaIngresoDAO.create(muni); return mapping.findForward("Success"); } int horaF = muniSalida.getHoraFinal(); logger.info("Agregado nuevo registro"); muniReglaIngresoDAO.delete(muniSalida); muniSalida.setHoraInicial(hora); muniSalida.setHoraFinal(hora_2); muniReglaIngresoDAO.update(muniSalida); muniSalida.setHoraInicial(hora_2); muniSalida.setHoraFinal(horaF); muniReglaIngresoDAO.create(muniSalida); } // } return mapping.findForward("Success"); }