예제 #1
0
  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;
  }
예제 #2
0
  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");
  }