private double minutosTardanzaRefrigerio(List<DetalleAsistencia> detalleAsistenciaList) { double tardanza = 0; for (int i = 1; i < detalleAsistenciaList.size(); i++) { DetalleAsistencia detalleEntrada = detalleAsistenciaList.get(i); if (detalleEntrada.isBandera() && detalleEntrada.getHoraEvento() != null) { tardanza += tardanzaMin( FechaUtil.soloHora(detalleEntrada.getHoraEvento()), FechaUtil.soloHora(detalleEntrada.getHoraReferenciaTolerancia())); } } return tardanza; }
private double obtenerHorasLaboradas(List<DetalleAsistencia> detalles) { double totalHoras = 0; System.out.println("ENTRO A HORAS LABORADAS"); int posicion = 0; while (posicion < detalles.size()) { System.out.println("ENTRO AL WHILE"); DetalleAsistencia ingreso = detalles.get(posicion); DetalleAsistencia salida = detalles.get(posicion + 1); if (!(ingreso.isPermiso() || salida.isPermiso())) { System.out.println("ESTA OBTENIENDO HORAS"); long salidaMilis; // = salida.getHoraEvento() == null ? // salida.getHoraReferencia().getTime() : salida.getHoraEvento().getTime(); long ingresoMilis; // = ingreso.getHoraEvento() == null ? // ingreso.getHoraReferencia().getTime() : ingreso.getHoraEvento().getTime(); if (salida.getHoraEvento() == null) { salidaMilis = salida.getHoraReferencia().getTime(); } else if (FechaUtil.soloHora(salida.getHoraEvento()).compareTo(salida.getHoraReferencia()) > 0) { salidaMilis = salida.getHoraReferencia().getTime(); } else { salidaMilis = FechaUtil.soloHora(salida.getHoraEvento()).getTime(); } if (ingreso.getHoraEvento() == null) { ingresoMilis = ingreso.getHoraReferencia().getTime(); } else if (FechaUtil.soloHora(ingreso.getHoraEvento()) .compareTo(ingreso.getHoraReferencia()) < 0) { ingresoMilis = ingreso.getHoraReferencia().getTime(); } else { ingresoMilis = FechaUtil.soloHora(ingreso.getHoraEvento()).getTime(); } totalHoras += (salidaMilis - ingresoMilis); Date ingresod = new Date(ingresoMilis); Date salidad = new Date(salidaMilis); System.out.println("CONTEO DE: " + ingresod + " - " + salidad); } posicion += 2; } return totalHoras / (60 * 1000 * 60); }
private double minutosTardanza(List<DetalleAsistencia> detalleAsistenciaList, int conteo) { double tardanza = 0; DetalleAsistencia detalleEntrada = detalleAsistenciaList.get(0); if (detalleEntrada.getHoraEvento() == null) { } else if (detalleEntrada.isBandera()) { System.out.println( "HORA EVENTO: " + detalleEntrada.getHoraEvento() + " HORA TOLERANCIA " + detalleEntrada.getHoraReferenciaTolerancia() + " BANDERA: " + detalleEntrada.isBandera()); tardanza += tardanzaMin( FechaUtil.soloHora(detalleEntrada.getHoraEvento()), FechaUtil.soloHora(detalleEntrada.getHoraReferenciaTolerancia())); } return tardanza; }
private int obtenerTipo( List<DetalleAsistencia> detalleAsistenciaList, int conteo, List<DetalleAsistencia> permisoList) { // System.out.println("CONTEO: "+conteo.intValue()); // int marcacionesPendientes = 0; // boolean hayTardanza = false; // for (int i = 0; i < conteo; i++) { // DetalleAsistencia detalle = detalleAsistenciaList.get(i); // // if (detalle.getHoraEvento() == null) { // if (!detalle.isPermiso()) { // marcacionesPendientes++; // } // } else { // hayTardanza // = hayTardanza // || detalle.isBandera() && // tardanzaMin(FechaUtil.soloHora(detalle.getHoraEvento()), // FechaUtil.soloHora(detalle.getHoraReferenciaTolerancia())) > 1; // } // } // // if (marcacionesPendientes > 0) { // return AnalizadorAsistencia.INASISTENCIA; // } else if (hayTardanza) { // return AnalizadorAsistencia.TARDANZA; // } else { // return AnalizadorAsistencia.REGULAR; // } int marcacionesPendientes = 0; boolean hayTardanza = false; DetalleAsistencia entrada = detalleAsistenciaList.get(0); DetalleAsistencia salida = detalleAsistenciaList.get(detalleAsistenciaList.size() - 1); if ((entrada.getHoraEvento() != null || entrada.isPermiso()) && (salida.getHoraEvento() != null || salida.isPermiso())) { hayTardanza = (!entrada.isPermiso() && tardanzaMin( FechaUtil.soloHora(entrada.getHoraEvento()), FechaUtil.soloHora(entrada.getHoraReferenciaTolerancia())) > 1); if (hayTardanza) { return AnalizadorAsistencia.TARDANZA; } else { return AnalizadorAsistencia.REGULAR; } } else { if ((entrada.getHoraEvento() == null && !entrada.isPermiso()) && (salida.getHoraEvento() == null && !salida.isPermiso())) { /* PUEDE SER FALTA, SE HA DE COMPROBAR INCONSISTENCIA */ if (permisoList != null) { if (!permisoList.isEmpty()) { return AnalizadorAsistencia.INCONSISTENCIA; } } if (conteo > 2) { for (int i = 1; i < detalleAsistenciaList.size() - 1; i++) { DetalleAsistencia refrigerio = detalleAsistenciaList.get(i); if (refrigerio.getHoraEvento() != null) { return AnalizadorAsistencia.INCONSISTENCIA; } } return AnalizadorAsistencia.INASISTENCIA; } else { return AnalizadorAsistencia.INASISTENCIA; } } else { return AnalizadorAsistencia.INCONSISTENCIA; } } }