Beispiel #1
0
  // retorna true cuando el usuario si ha particiado en la cc.
  private boolean esParticipanteCC(Formulario formulario, Usuario usuario) {
    logger.setLevel(Level.ALL);
    logger.entering(this.getClass().getName(), "obtenerParticipantesCC");
    if (usuario.equals(formulario.getUsuarioidUsuario1())) {
      logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true);
      return true;
    }
    List<Traslado> traslados = trasladoFacade.findByNue(formulario);

    if (traslados
        .get(0)
        .getUsuarioidUsuario()
        .equals(usuario)) { // valida 1er traslado, útil para digitador.
      logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true);
      return true;
    }

    for (int i = 0; i < traslados.size(); i++) {
      if (traslados.get(i).getUsuarioidUsuario1().equals(usuario)) {
        logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true);
        return true;
      }
    }
    logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", false);
    return false;
  }
Beispiel #2
0
  // retorna true cuando el usuario si ha particiado en la cc.
  @Override
  public boolean esParticipanteCC(Formulario formulario, Usuario usuario) {
    logger.setLevel(Level.ALL);
    logger.entering(this.getClass().getName(), "obtenerParticipantesCC");
    if (usuario.equals(formulario.getUsuarioidUsuario1())) {
      logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true);
      return true;
    }
    List<Traslado> traslados = trasladoFacade.findByNue(formulario);
    if (traslados == null || traslados.isEmpty()) {
      logger.log(Level.INFO, "formulario ''{0}'' no registra traslados", formulario.getNue());
      logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", false);
      return false;
    }

    if (traslados
        .get(0)
        .getUsuarioidUsuario()
        .equals(usuario)) { // valida 1er traslado, útil para digitador.
      logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true);
      return true;
    }

    for (int i = 0; i < traslados.size(); i++) {
      if (traslados.get(i).getUsuarioidUsuario1().equals(usuario)) {
        logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true);
        return true;
      }
    }
    logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", false);
    return false;
  }
Beispiel #3
0
  @Override
  public String crearTraslado(
      Formulario formulario,
      String usuarioEntrega,
      String usuarioEntregaUnidad,
      String usuarioEntregaCargo,
      String usuarioEntregaRut,
      String usuarioRecibe,
      String usuarioRecibeUnidad,
      String usuarioRecibeCargo,
      String usuarioRecibeRut,
      Date fechaT,
      String observaciones,
      String motivo,
      Usuario uSesion) {
    logger.setLevel(Level.ALL);
    logger.entering(this.getClass().getName(), "crearTraslado");

    if (formulario == null) {
      logger.exiting(this.getClass().getName(), "crearTraslado", "Formulario nulo");
      return "Imposible agregar traslado, ocurrió un problema al cargar el formulario, por favor intente más tarde.";
    }

    // verificamos que el formulario no se encuentre bloqueado.
    if (formulario.getBloqueado()) {
      logger.exiting(this.getClass().getName(), "crearTraslado", "Formulario bloqueado");
      return "Imposible agregar traslado, esta cadena de custodia se encuentra cerrada.";
    }

    if (usuarioEntrega == null
        || usuarioEntregaUnidad == null
        || usuarioEntregaCargo == null
        || usuarioEntregaRut == null
        || usuarioRecibe == null
        || usuarioRecibeUnidad == null
        || usuarioRecibeCargo == null
        || usuarioRecibeRut == null
        || motivo == null) {
      logger.exiting(this.getClass().getName(), "crearTraslado", "Campos null");
      return "Faltan campos";
    }

    // Validando usuario que entrega
    if (!val(usuarioEntregaRut)
        || !soloCaracteres(usuarioEntrega)
        || !soloCaracteres(usuarioEntregaUnidad)
        || !soloCaracteres(usuarioEntregaCargo)) {
      logger.exiting(
          this.getClass().getName(), "crearTraslado", "Error verificacion datos usuario entrega");
      return "Error datos usuario entrega";
    }

    // Validando usuario que recibe
    if (!val(usuarioRecibeRut)
        || !soloCaracteres(usuarioRecibe)
        || !soloCaracteres(usuarioRecibeUnidad)
        || !soloCaracteres(usuarioRecibeCargo)) {
      logger.exiting(
          this.getClass().getName(), "crearTraslado", "Error verificacion datos usuario recibe");
      return "Error datos usuario recibe";
    }

    // Busco todos los traslados del formulario
    List<Traslado> trasladoList = traslados(formulario);

    // Comparando fechas entre traslados
    if (!trasladoList.isEmpty()
        && !compareFechas(fechaT, trasladoList.get(trasladoList.size() - 1).getFechaEntrega())) {
      logger.exiting(this.getClass().getName(), "crearTraslado", "Error con Fecha");
      return "Error, la fecha del nuevo traslado debe ser igual o posterior a la ultima fecha de traslado.";
    }

    // Comparando fecha entre traslado y formulario
    if (!compareFechas(fechaT, formulario.getFechaOcurrido())) {
      logger.exiting(this.getClass().getName(), "crearTraslado", "Error con Fecha");
      return "Error, la fecha de traslado debe ser igual o posterior a la fecha del formulario.";
    }

    // traer usuarios, motivo
    TipoMotivo motivoP = tipoMotivoFacade.findByTipoMotivo(motivo);
    if (motivoP == null) {
      logger.exiting(this.getClass().getName(), "crearTraslado", "Error con Motivo de Traslado");
      return "Error, se requiere especificar Motivo del traslado.";
    }

    Usuario usuarioEntregaP = null;
    Usuario usuarioRecibeP = null;

    // Verificando usuario Entrega
    usuarioEntregaP = usuarioFacade.findByRUN(usuarioEntregaRut);

    if (usuarioEntregaP == null) {
      usuarioEntregaP =
          crearExterno1(
              usuarioEntregaCargo, usuarioEntregaUnidad, usuarioEntrega, usuarioEntregaRut);
      if (usuarioEntregaP == null) {
        logger.exiting(
            this.getClass().getName(), "crearTraslado", "Error con creacion Usuario Entrega");
        return "Error con datos de la persona que entrega.";
      }
    } else if (!usuarioEntregaP.getNombreUsuario().equals(usuarioEntrega)
        || !usuarioEntregaP.getUnidad().equals(usuarioEntregaUnidad)
        || !usuarioEntregaP.getCargoidCargo().getNombreCargo().equals(usuarioEntregaCargo)) {
      logger.exiting(
          this.getClass().getName(), "crearTraslado", "Error con verificacion Usuario Entrega");
      return "Datos no coinciden con el rut ingresado";
    }
    // Verificando usuario Recibe
    usuarioRecibeP = usuarioFacade.findByRUN(usuarioRecibeRut);
    if (usuarioRecibeP == null) {
      usuarioRecibeP =
          crearExterno1(usuarioRecibeCargo, usuarioRecibeUnidad, usuarioRecibe, usuarioRecibeRut);
      if (usuarioRecibeP == null) {
        logger.exiting(
            this.getClass().getName(), "crearTraslado", "Error con creacion usuario Recibe");
        return "Error con datos de la persona que recibe.";
      }
    } else if (!usuarioRecibeP.getNombreUsuario().equals(usuarioRecibe)
        || !usuarioRecibeP.getUnidad().equals(usuarioRecibeUnidad)
        || !usuarioRecibeP.getCargoidCargo().getNombreCargo().equals(usuarioRecibeCargo)) {
      logger.exiting(
          this.getClass().getName(), "crearTraslado", "Error con verificacion usuario Recibe");
      return "Datos no corresponden al rut";
    }

    // verificando que usuario recibe sea distinto del usuario que entrega
    if (usuarioEntregaP.equals(usuarioRecibeP)) { // si se trata del mismo usuario
      logger.exiting(
          this.getClass().getName(), "crearTraslado", "Usuario Entrega y Recibe son el mismo");
      return "El usuario que recibe la cadena de custodia debe ser distinto al usuario que la entrega.";
    }

    // Creando traslado
    Traslado nuevoTraslado = new Traslado();
    nuevoTraslado.setFechaEntrega(fechaT);
    nuevoTraslado.setFormularioNUE(formulario);
    nuevoTraslado.setObservaciones(observaciones);
    nuevoTraslado.setTipoMotivoidMotivo(motivoP);
    nuevoTraslado.setUsuarioidUsuario(usuarioRecibeP);
    nuevoTraslado.setUsuarioidUsuario1(usuarioEntregaP);

    logger.info("se inicia insercion del nuevo traslado");
    trasladoFacade.create(nuevoTraslado);
    logger.info("se finaliza insercion del nuevo traslado");

    // verificamos si se se trata de un peritaje, lo cual finaliza la cc.
    if (nuevoTraslado.getTipoMotivoidMotivo().getTipoMotivo().equals("Peritaje")) {
      if (uSesion.getCargoidCargo().getNombreCargo().equals("Tecnico")
          || uSesion.getCargoidCargo().getNombreCargo().equals("Perito")) {
        logger.info("se realiza peritaje, por tanto se finaliza la cc.");

        formulario.setBloqueado(true);
        logger.info("se inicia la edición del formulario para bloquearlo");
        formularioFacade.edit(formulario);
        logger.info("se finaliza la edición del formulario para bloquearlo");
      }
    }

    logger.exiting(this.getClass().getName(), "crearTraslado", "Exito");
    return "Exito";
  }