Example usage for com.lowagie.text.pdf PdfPCell setHorizontalAlignment

List of usage examples for com.lowagie.text.pdf PdfPCell setHorizontalAlignment

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfPCell setHorizontalAlignment.

Prototype

public void setHorizontalAlignment(int horizontalAlignment) 

Source Link

Document

Sets the horizontal alignment for the cell.

Usage

From source file:vistas.reportes.procesos.rptAsistenciaEntrada.java

public PdfPTable crearTabla(List<String> dnis, Date fechaInicio, Date fechaFin) throws DocumentException {
    /**//w  w  w.j a v  a 2s. c  om
     * Procesamiento para info para generar tablas
     */
    Calendar fechaInicioC = Calendar.getInstance();
    Calendar fechaFinC = Calendar.getInstance();
    fechaInicioC.setTime(fechaInicio);
    fechaFinC.setTime(fechaFin);

    /**
     * Procesamiento para elaborar tabla con datos
     */
    int nroColumnas = 6;
    PdfPTable tabla = new PdfPTable(nroColumnas);
    tabla.setWidthPercentage(100);
    //Asignamos los tamaos a las columnas 
    //MOdifique para tomar en cuenta la nueva columna de dewscuento
    int[] widthColumna = new int[nroColumnas];

    widthColumna[0] = 1;
    widthColumna[1] = 5;
    widthColumna[2] = 2;
    widthColumna[3] = 2;
    widthColumna[4] = 2;
    widthColumna[5] = 2;

    tabla.setWidths(widthColumna);

    //Definimos celdas iniciales
    Font fontCabecera = new Font(Font.HELVETICA, 8, Font.BOLD);
    Font fontCelda = new Font(Font.HELVETICA, 7);

    PdfPCell h0 = new PdfPCell(new Phrase("DNI", fontCabecera));
    h0.setHorizontalAlignment(1);
    h0.setGrayFill(0.7f);
    h0.setColspan(1);
    tabla.addCell(h0);

    PdfPCell h1 = new PdfPCell(new Phrase("NOMBRE EMPLEADO", fontCabecera));
    h1.setHorizontalAlignment(1);
    h1.setGrayFill(0.7f);
    h1.setColspan(1);
    tabla.addCell(h1);

    PdfPCell h2 = new PdfPCell(new Phrase("MARCACION ENTRADA", fontCabecera));
    h2.setHorizontalAlignment(1);
    h2.setGrayFill(0.7f);
    h2.setColspan(1);
    tabla.addCell(h2);

    PdfPCell h3 = new PdfPCell(new Phrase("ASISTENCIA", fontCabecera));
    h3.setHorizontalAlignment(1);
    h3.setGrayFill(0.7f);
    h3.setColspan(1);
    tabla.addCell(h3);

    //Agregado de columna de descuento sin goce
    PdfPCell h4 = new PdfPCell(new Phrase("OBSERVACION", fontCabecera));
    h4.setHorizontalAlignment(1);
    h4.setGrayFill(0.7f);
    h4.setColspan(1);
    tabla.addCell(h4);

    PdfPCell h5 = new PdfPCell(new Phrase("VACACION", fontCabecera));
    h5.setHorizontalAlignment(1);
    h5.setGrayFill(0.7f);
    h5.setColspan(1);
    tabla.addCell(h5);

    /**
     * Procesamiento de los datos para generar los registros de la entrada
     */
    for (String dni : dnis) {
        List<Marcacion> marcaciones = mc.buscarXFecha(dni, fechaInicio);
        String Asistencia = "";
        String Permiso = "";
        String Vacaciones = "";
        String marcacion = "";
        String condicion = "";
        System.out.println("DNI: " + dni);
        Empleado empleado = ec.buscarPorDni(dni);

        List<EmpleadoOpcionInfo> infoEmpleado = eoc.buscarTodos(Integer.parseInt(dni));
        if (!infoEmpleado.isEmpty()) {
            if (infoEmpleado.get(0).getSFieldValue5().equals("0")
                    || infoEmpleado.get(0).getSFieldValue5().equals("")
                    || infoEmpleado.get(0).getSFieldValue5().equals(" ")) {
                condicion = "NORMAL";
            } else if (infoEmpleado.get(0).getSFieldValue5().equals("1")) {
                condicion = "EXONERADO";
            } else if (infoEmpleado.get(0).getSFieldValue5().equals("2")) {
                condicion = "DESIGNADO";
            } else if (infoEmpleado.get(0).getSFieldValue5().equals("3")) {
                condicion = "OTRA SEDE";
            }
        } else {
            condicion = "Sin dato";
        }
        System.out.println("Condicion: " + condicion);
        //Datos de horario, jornada, empleado
        List<DetalleGrupoHorario> detallesGrupos = dc.buscarXEmpleado(empleado);
        if (condicion.equals("NORMAL")) {
            if (!marcaciones.isEmpty()) {
                Marcacion primeraMarcacion = marcaciones.get(0);
                marcacion = primeraMarcacion.getHora().toString();
                if (!detallesGrupos.isEmpty()) {
                    DetalleGrupoHorario detalleGrupoEmpleado = detallesGrupos.get(0);
                    List<AsignacionHorario> asignaciones = ashc
                            .buscarXGrupo(detalleGrupoEmpleado.getGrupoHorario());

                    AsignacionHorario asignacionEmpleado = asignaciones.get(0);
                    Horario horarioEmpleado = asignacionEmpleado.getHorario();
                    Jornada jornadaEmpleado = horarioEmpleado.getJornada();

                    //Validacion de asistencia
                    if (primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHE()) == 0
                            || primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHE()) < 0) {
                        Asistencia = "Asistencia Normal";
                    } else if (primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTardanzaHE()) < 0
                            && primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHE()) > 0) {
                        Asistencia = "Tardanza";
                    } else if (primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTardanzaHE()) > 0) {
                        Asistencia = "Falta";
                    }
                } else {
                    Asistencia = "No tiene grupo horario";
                }
            } else {
                marcacion = "Sin marcacion";
                Asistencia = "Falta";
            }
        } else if (condicion.equals("EXONERADO")) {
            marcacion = "Sin marcacion";
            Asistencia = condicion;
        } else if (condicion.equals("DESIGNADO")) {
            marcacion = "Sin marcacion";
            Asistencia = condicion;
        } else if (condicion.equals("OTRA SEDE")) {
            marcacion = "Sin marcacion";
            Asistencia = condicion;
        } else {
            marcacion = "Sin marcacion";
            Asistencia = "Condicin sin especificar";
        }

        //Validacion de permiso
        //Procesar permisos con horas tbm si no encuentra permisos por fechas 
        AsignacionPermiso asignacionPermisoEmpleado = aspc.buscarXDia(dni, fechaInicio);
        if (asignacionPermisoEmpleado != null) {
            Permiso = asignacionPermisoEmpleado.getPermiso().getTipoPermiso().getNombre();
            Asistencia = "Permiso";
        } else {
            Permiso = "Sin permiso";
        }
        //Validacion de Vacaciones
        Vacacion vacacionEmpleado = vc.buscarXDia(dni, fechaInicio);
        if (vacacionEmpleado != null) {
            Vacaciones = ReporteUtil.obtenerFechaDiaMes(vacacionEmpleado.getFechaInicio()) + " al "
                    + ReporteUtil.obtenerFechaDiaMes(vacacionEmpleado.getFechaFin());
            Asistencia = "Vacaciones";
        } else {
            Vacaciones = "No tiene vacaciones";
        }
        //DNI
        PdfPCell celdaNombre = new PdfPCell(new Phrase(empleado.getNroDocumento(), fontCelda));
        celdaNombre.setHorizontalAlignment(1);
        tabla.addCell(celdaNombre);
        //Nombre
        String celda0 = empleado.getApellidoPaterno() + " " + empleado.getApellidoMaterno() + " "
                + empleado.getNombre();
        celdaNombre.setPhrase(new Phrase(celda0, fontCelda));
        celdaNombre.setHorizontalAlignment(0);
        tabla.addCell(celdaNombre);
        //Hora Marcacion
        String celda = marcacion;
        celdaNombre.setPhrase(new Phrase(celda, fontCelda));
        celdaNombre.setHorizontalAlignment(1);
        tabla.addCell(celdaNombre);
        //Asistencia
        String celda1 = Asistencia;
        celdaNombre.setPhrase(new Phrase(celda1, fontCelda));
        celdaNombre.setHorizontalAlignment(1);
        tabla.addCell(celdaNombre);
        //Permiso
        String celda2 = Permiso;
        celdaNombre.setPhrase(new Phrase(celda2, fontCelda));
        celdaNombre.setHorizontalAlignment(1);
        tabla.addCell(celdaNombre);
        //Vacacion
        String celda3 = Vacaciones;
        celdaNombre.setPhrase(new Phrase(celda3, fontCelda));
        celdaNombre.setHorizontalAlignment(1);
        tabla.addCell(celdaNombre);
    }
    return tabla;
}

From source file:vistas.reportes.procesos.rptAsistenciaTotal.java

public PdfPTable crearTabla(List<String> dnis, Date fechaInicio, Date fechaFin, boolean isSelectedComp,
        boolean isSelectedHoraM, String tipo) throws DocumentException {
    /**//from  ww  w  .j a  v a  2  s  .c o m
     * Procesamiento para info para generar tablas
     */
    /**
     * Procesamiento para elaborar tabla con datos
     */
    int nroColumnas;
    if (isSelectedComp) {
        nroColumnas = 9;
    } else {
        nroColumnas = 8;
    }
    if (tipo == "P") {
        nroColumnas -= 2;
    }
    //int nroColumnas = 8;
    PdfPTable tabla = new PdfPTable(nroColumnas);
    tabla.setWidthPercentage(100);
    //Asignamos los tamaos a las columnas 
    //MOdifique para tomar en cuenta la nueva columna de dewscuento
    int[] widthColumna = new int[nroColumnas];
    if (tipo == "P") {
        widthColumna[0] = 1;
        widthColumna[1] = 1;
        widthColumna[2] = 1;
        widthColumna[3] = 1;
        widthColumna[4] = 2;
        widthColumna[5] = 1;
        if (isSelectedComp) {
            widthColumna[6] = 1;
        }
    } else {
        widthColumna[0] = 1;
        widthColumna[1] = 4;
        widthColumna[2] = 1;
        widthColumna[3] = 1;
        widthColumna[4] = 1;
        widthColumna[5] = 1;
        widthColumna[6] = 2;
        widthColumna[7] = 1;
        if (isSelectedComp) {
            widthColumna[8] = 1;
        }
    }

    tabla.setWidths(widthColumna);

    //Definimos celdas iniciales
    Font fontCabecera = new Font(Font.HELVETICA, 8, Font.BOLD);
    Font fontCelda = new Font(Font.HELVETICA, 7);
    //        HeaderFooter cabecera = new HeaderFooter(new Phrase("This is a header."), false);
    //        cabecera.

    if (tipo != "P") {
        PdfPCell h0 = new PdfPCell(new Phrase("DNI", fontCabecera));
        h0.setHorizontalAlignment(1);
        h0.setGrayFill(0.7f);
        h0.setColspan(1);
        tabla.addCell(h0);

        PdfPCell h1 = new PdfPCell(new Phrase("NOMBRE EMPLEADO", fontCabecera));
        h1.setHorizontalAlignment(1);
        h1.setGrayFill(0.7f);
        h1.setColspan(1);
        tabla.addCell(h1);
    }

    PdfPCell h2 = new PdfPCell(new Phrase("FECHA", fontCabecera));
    h2.setHorizontalAlignment(1);
    h2.setGrayFill(0.7f);
    h2.setColspan(1);
    tabla.addCell(h2);

    PdfPCell h3 = new PdfPCell(new Phrase("MARC. ENTR.", fontCabecera));
    h3.setHorizontalAlignment(1);
    h3.setGrayFill(0.7f);
    h3.setColspan(1);
    tabla.addCell(h3);

    PdfPCell h4 = new PdfPCell(new Phrase("MARC. SAL.", fontCabecera));
    h4.setHorizontalAlignment(1);
    h4.setGrayFill(0.7f);
    h4.setColspan(1);
    tabla.addCell(h4);

    PdfPCell h5 = new PdfPCell(new Phrase("ESTADO", fontCabecera));
    h5.setHorizontalAlignment(1);
    h5.setGrayFill(0.7f);
    h5.setColspan(1);
    tabla.addCell(h5);

    PdfPCell h6 = new PdfPCell(new Phrase("OBSERV.", fontCabecera));
    h6.setHorizontalAlignment(1);
    h6.setGrayFill(0.7f);
    h6.setColspan(1);
    tabla.addCell(h6);

    PdfPCell h7 = new PdfPCell(new Phrase("PER. VAC", fontCabecera));
    h7.setHorizontalAlignment(1);
    h7.setGrayFill(0.7f);
    h7.setColspan(1);
    tabla.addCell(h7);

    if (isSelectedComp) {
        PdfPCell h8 = new PdfPCell(new Phrase("COMPENSA", fontCabecera));
        h8.setHorizontalAlignment(1);
        h8.setGrayFill(0.7f);
        h8.setColspan(1);
        tabla.addCell(h8);
    }
    //Hacemos que la primera fila sea la cabecera
    tabla.setHeaderRows(1);
    /**
     * Procesamiento de los datos para generar los registros de la entrada
     */

    Calendar calC = Calendar.getInstance();
    for (String dni : dnis) {
        Calendar iterador = Calendar.getInstance();
        iterador.setTime(fechaInicio);
        while (iterador.getTime().compareTo(fechaFin) <= 0) {
            Date fecha = iterador.getTime();
            //Descartar si es sabado o domingo
            System.out.println("Dni: " + dni + " Fecha: " + fecha.toString());
            Empleado empleado = ec.buscarPorDni(dni);
            boolean isFeriado = false;
            String feriado = "";
            //Para inicio de contrato
            if (empleado.getFechaInicioContrato().compareTo(fecha) <= 0) {
                System.out.println("OK");
            } else {
                iterador.add(Calendar.DATE, 1);
                continue;
            }
            /**
             * Generacion de permiso por onomastico
             */
            if (isOnosmatico(fecha, empleado)) {
                Calendar fechaPermisoOno = Calendar.getInstance();
                fechaPermisoOno.setTime(fecha);

                while (fc.buscarXDia(fechaPermisoOno.getTime()) != null) {
                    fechaPermisoOno.add(Calendar.DATE, 1);
                }
                while (!ReporteUtil.isDiaLaboral(fechaPermisoOno.getTime())) {
                    fechaPermisoOno.add(Calendar.DATE, 1);
                }
                if (ReporteUtil.isDiaLaboral(fechaPermisoOno.getTime())) {
                    //busca onomastico
                    if (aspc.buscarXDiaOnosmatico(dni, fechaPermisoOno.getTime()) != null) {
                        System.out.println("Hay cumpleaosd d_d");
                    } else {
                        System.out.println("Crear Cumple");
                        crearOnomastico(fechaPermisoOno.getTime(), empleado);
                    }
                }
            } else {
                System.out.println("No cumple");
            }

            if (!ReporteUtil.isDiaLaboral(fecha)) {
                iterador.add(Calendar.DATE, 1);
                continue;
            }
            if (fc.buscarXDia(fecha) != null) {
                isFeriado = true;
                feriado = fc.buscarXDia(fecha).getNombre();
            }
            //Marcaciones del dia a procesar
            List<Marcacion> marcaciones = mc.buscarXFecha(dni, fecha);
            String Asistencia = "";
            String Permiso = "";
            String Vacaciones = "";
            String marcacion = "";
            String marcacion2 = "";
            String condicion = "";
            String compensacion = "";
            Marcacion primeraMarcacion = new Marcacion();
            Marcacion ultimaMarcacion = new Marcacion();

            List<EmpleadoOpcionInfo> infoEmpleado = eoc.buscarTodos(Integer.parseInt(dni));
            if (!infoEmpleado.isEmpty()) {
                if (infoEmpleado.get(0).getSFieldValue5().equals("0")
                        || infoEmpleado.get(0).getSFieldValue5().equals("")
                        || infoEmpleado.get(0).getSFieldValue5().equals(" ")) {
                    condicion = "NORMAL";
                } else if (infoEmpleado.get(0).getSFieldValue5().equals("1")) {
                    condicion = "Exonerado";
                } else if (infoEmpleado.get(0).getSFieldValue5().equals("2")) {
                    condicion = "Designado";
                } else if (infoEmpleado.get(0).getSFieldValue5().equals("3")) {
                    condicion = "Otra sede";
                }
            } else {
                condicion = "Sin dato";
            }
            System.out.println("Condicion: " + condicion);
            //Datos de horario, jornada, empleado
            List<DetalleGrupoHorario> detallesGrupos = dc.buscarXEmpleado(empleado);
            if (condicion.equals("NORMAL")) {
                if (!marcaciones.isEmpty()) {
                    primeraMarcacion = marcaciones.get(0);
                    if (marcaciones.size() > 1) {
                        ultimaMarcacion = marcaciones.get(marcaciones.size() - 1);
                        marcacion2 = ultimaMarcacion.getHora().toString();
                    } else {
                        marcacion2 = "---";
                    }
                    //ultimaMarcacion = marcaciones.get(marcaciones.size()-1);
                    /**
                     *Codigo para el manejo de asignaciones de horario
                     */

                    if (!detallesGrupos.isEmpty()) {
                        DetalleGrupoHorario detalleGrupoEmpleado = detallesGrupos.get(0);

                        List<AsignacionHorario> asignaciones = ashc
                                .buscarXGrupo(detalleGrupoEmpleado.getGrupoHorario());
                        //List<AsignacionHorario> asignacionesHorario = ashc.bus
                        List<AsignacionHorario> asignacionesHorarios = ashc.buscarXEmpleadosXAll(dni, fecha);
                        //Declaramos la variable asighorario q usaremos
                        /**
                         * Vemos si tiene una asignacion horario en particular para asignar la jornada q le corresponde, sino la tiene se asigna la jornada por 
                         * defecto del grupo horario general
                         */
                        AsignacionHorario asignacionEmpleado;
                        if (!asignacionesHorarios.isEmpty()) {
                            asignacionEmpleado = asignacionesHorarios.get(0);
                        } else {
                            asignacionEmpleado = asignaciones.get(0);
                        }
                        //AsignacionHorario asignacionEmpleado = asignaciones.get(0);
                        Horario horarioEmpleado = asignacionEmpleado.getHorario();
                        Jornada jornadaEmpleado = horarioEmpleado.getJornada();

                        //Validacion de asistencia
                        if (ultimaMarcacion.getHora() != null) {
                            if (!isSelectedHoraM) {
                                marcacion2 = jornadaEmpleado.getTurnoHS().toString();
                            }
                            if (primeraMarcacion.getHora().compareTo(ultimaMarcacion.getHora()) < 0) {
                                if ((primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHE()) == 0
                                        || primeraMarcacion.getHora()
                                                .compareTo(jornadaEmpleado.getTurnoHE()) < 0)
                                        && (ultimaMarcacion.getHora()
                                                .compareTo(jornadaEmpleado.getTurnoHS()) == 0
                                                || ultimaMarcacion.getHora()
                                                        .compareTo(jornadaEmpleado.getTurnoHS()) > 0)) {
                                    Asistencia = " ";
                                    //marcacion2 = jornadaEmpleado.getTurnoHS().toString();
                                } else if (primeraMarcacion.getHora()
                                        .compareTo(jornadaEmpleado.getTardanzaHE()) < 0
                                        && primeraMarcacion.getHora()
                                                .compareTo(jornadaEmpleado.getTurnoHE()) > 0) {
                                    Asistencia = "TARDANZA";
                                    //marcacion2 = jornadaEmpleado.getTurnoHS().toString();
                                } else if (primeraMarcacion.getHora()
                                        .compareTo(jornadaEmpleado.getTardanzaHE()) > 0
                                        && ultimaMarcacion.getHora()
                                                .compareTo(jornadaEmpleado.getTurnoHS()) < 0) {
                                    Asistencia = "FALTA";
                                    //Cambio hasta tener directiva
                                    //Asistencia = "TARDANZA";
                                } else if (primeraMarcacion.getHora()
                                        .compareTo(jornadaEmpleado.getTardanzaHE()) < 0
                                        && ultimaMarcacion.getHora()
                                                .compareTo(jornadaEmpleado.getTurnoHS()) < 0) {
                                    System.out.println("Hora de salida jornada: "
                                            + jornadaEmpleado.getTurnoHS().toString());
                                    Asistencia = "FALTA";
                                    //Cambio hasta tener directiva
                                    //Asistencia = "TARDANZA";
                                } else if (primeraMarcacion.getHora()
                                        .compareTo(jornadaEmpleado.getTardanzaHE()) < 0
                                        && ultimaMarcacion.getHora()
                                                .compareTo(jornadaEmpleado.getTurnoHS()) > 0) {
                                    //Asistencia = "Falta";
                                    //Cambio hasta tener directiva
                                    Asistencia = "TARDANZA";
                                    //marcacion2 = jornadaEmpleado.getTurnoHS().toString();
                                } else if (primeraMarcacion.getHora()
                                        .compareTo(jornadaEmpleado.getTardanzaHE()) > 0
                                        && ultimaMarcacion.getHora()
                                                .compareTo(jornadaEmpleado.getTurnoHS()) > 0) {
                                    //Asistencia = "Falta";
                                    //Cambio hasta tener directiva
                                    Asistencia = "TARDANZA";
                                    //marcacion2 = jornadaEmpleado.getTurnoHS().toString();
                                }
                                //Para la compensacion
                                if (isSelectedComp) {
                                    if (ultimaMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHS()) > 0) {
                                        calC.setTime(ultimaMarcacion.getHora());
                                        int horaUM = calC.get(Calendar.HOUR_OF_DAY);
                                        int minUM = calC.get(Calendar.MINUTE);
                                        calC.setTime(jornadaEmpleado.getTurnoHS());
                                        int horaHS = calC.get(Calendar.HOUR_OF_DAY);
                                        int minHS = calC.get(Calendar.MINUTE);
                                        System.out.println("Horas: " + " " + horaUM + " " + minUM + " " + horaHS
                                                + " " + minHS);
                                        if (horaUM > horaHS) {
                                            if (minUM > minHS) {
                                                compensacion = "" + (horaUM - horaHS) + " H";
                                            } else {
                                                compensacion = (horaUM - (horaHS + 1)) + " H";
                                            }
                                        } else {
                                            compensacion = "0 H";
                                        }
                                    }
                                }
                            } else {
                                Asistencia = "FALTA";
                            }
                        } else {
                            Asistencia = "FALTA";
                        }
                        if (primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHS()) >= 0) {
                            marcacion2 = primeraMarcacion.getHora().toString();
                            marcacion = "---";
                        } else {
                            marcacion = primeraMarcacion.getHora().toString();
                        }

                    } else {
                        Asistencia = "No tiene grupo horario";
                    }
                } else {
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = "FALTA";
                }
            } else if (condicion.equals("Exonerado")) {
                if (!marcaciones.isEmpty()) {
                    primeraMarcacion = marcaciones.get(0);
                    ultimaMarcacion = marcaciones.get(marcaciones.size() - 1);
                    //marcacion = primeraMarcacion.getHora().toString();
                    //marcacion2 = ultimaMarcacion.getHora().toString();
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion.toUpperCase();
                } else {
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion.toUpperCase();
                }
            } else if (condicion.equals("Designado")) {
                if (!marcaciones.isEmpty()) {
                    primeraMarcacion = marcaciones.get(0);
                    ultimaMarcacion = marcaciones.get(marcaciones.size() - 1);
                    //marcacion = primeraMarcacion.getHora().toString();
                    //marcacion2 = ultimaMarcacion.getHora().toString();
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion.toUpperCase();
                } else {
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion.toUpperCase();
                }
            } else if (condicion.equals("Otra sede")) {
                if (!marcaciones.isEmpty()) {
                    primeraMarcacion = marcaciones.get(0);
                    ultimaMarcacion = marcaciones.get(marcaciones.size() - 1);
                    //marcacion = primeraMarcacion.getHora().toString();
                    //marcacion2 = ultimaMarcacion.getHora().toString();
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion.toUpperCase();
                } else {
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion.toUpperCase();
                }
            } else {
                marcacion = "---";
                marcacion2 = "---";
                Asistencia = "Condicin sin especificar".toUpperCase();
            }

            //Validacion de permiso
            //Procesar permisos con horas tbm si no encuentra permisos por fechas 
            AsignacionPermiso asignacionPermisoEmpleadoDia = aspc.buscarXDia(dni, fecha);
            Calendar horaESinCero = Calendar.getInstance();
            Calendar horaFSinCero = Calendar.getInstance();
            if (primeraMarcacion.getHora() != null) {
                horaESinCero.setTime(primeraMarcacion.getHora());
                horaESinCero.set(Calendar.SECOND, 0);
            }
            if (ultimaMarcacion.getHora() != null) {
                horaFSinCero.setTime(ultimaMarcacion.getHora());
                horaFSinCero.set(Calendar.SECOND, 0);
            }

            AsignacionPermiso asigPerEntrada = aspc.buscarOnlyHora(dni, horaESinCero.getTime(), fecha);
            AsignacionPermiso asigPerSalida = aspc.buscarOnlyHora(dni, horaFSinCero.getTime(), fecha);
            if (asignacionPermisoEmpleadoDia != null) {
                Permiso = asignacionPermisoEmpleadoDia.getPermiso().getDocumento().toUpperCase();
                Asistencia = asignacionPermisoEmpleadoDia.getPermiso().getTipoPermiso().getNombre()
                        .toUpperCase();
            } else if (asigPerEntrada != null) {
                Permiso = asigPerEntrada.getPermiso().getDocumento().toUpperCase();
                Asistencia = asigPerEntrada.getPermiso().getTipoPermiso().getNombre().toLowerCase();
            } else if (asigPerSalida != null) {
                Permiso = asigPerSalida.getPermiso().getDocumento().toUpperCase();
                Asistencia = asigPerSalida.getPermiso().getTipoPermiso().getNombre().toUpperCase();
            } else {
                Permiso = "";
            }
            //Validacion de Vacaciones
            Vacacion vacacionEmpleado = vc.buscarXDia(dni, fecha);
            if (vacacionEmpleado != null) {
                Vacaciones = ReporteUtil.obtenerFechaDiaMes(vacacionEmpleado.getFechaInicio()) + " al "
                        + ReporteUtil.obtenerFechaDiaMes(vacacionEmpleado.getFechaFin());
                Asistencia = "VACACIONES";
                Permiso = vacacionEmpleado.getDocumento().toUpperCase();
            } else {
                Vacaciones = "";
            }
            if (isFeriado) {
                Asistencia = feriado;
            }
            PdfPCell celdaNombre = new PdfPCell(new Phrase(empleado.getNroDocumento(), fontCelda));
            celdaNombre.setMinimumHeight(15f);
            if (tipo != "P") {
                //DNI
                celdaNombre.setHorizontalAlignment(1);
                tabla.addCell(celdaNombre);
                //Nombre
                String celda0 = empleado.getApellidoPaterno() + " " + empleado.getApellidoMaterno() + " "
                        + empleado.getNombre();
                celdaNombre.setPhrase(new Phrase(celda0, fontCelda));
                celdaNombre.setHorizontalAlignment(0);
                tabla.addCell(celdaNombre);
            }
            //Fecha
            String celdaA = ReporteUtil.obtenerFechaFormateada(fecha, "/");
            celdaNombre.setPhrase(new Phrase(celdaA, fontCelda));
            celdaNombre.setHorizontalAlignment(1);
            tabla.addCell(celdaNombre);
            //Hora Marcacion de entrada
            String celda = marcacion;
            celdaNombre.setPhrase(new Phrase(celda, fontCelda));
            celdaNombre.setHorizontalAlignment(1);
            tabla.addCell(celdaNombre);
            //Hora Marcacion de Salida
            String celdaM = marcacion2;
            celdaNombre.setPhrase(new Phrase(celdaM, fontCelda));
            celdaNombre.setHorizontalAlignment(1);
            tabla.addCell(celdaNombre);
            //Asistencia
            String celda1 = Asistencia;
            celdaNombre.setPhrase(new Phrase(celda1, fontCelda));
            celdaNombre.setHorizontalAlignment(1);
            tabla.addCell(celdaNombre);
            //Permiso
            String celda2 = Permiso;
            celdaNombre.setPhrase(new Phrase(celda2, fontCelda));
            celdaNombre.setHorizontalAlignment(1);
            tabla.addCell(celdaNombre);
            //Vacacion
            String celda3 = Vacaciones;
            celdaNombre.setPhrase(new Phrase(celda3, fontCelda));
            celdaNombre.setHorizontalAlignment(1);
            tabla.addCell(celdaNombre);
            //Compensacion
            if (isSelectedComp) {
                String celda4 = compensacion;
                celdaNombre.setPhrase(new Phrase(celda4, fontCelda));
                celdaNombre.setHorizontalAlignment(1);
                tabla.addCell(celdaNombre);
            }
            iterador.add(Calendar.DATE, 1);
        }
    }
    return tabla;
}

From source file:vistas.reportes.procesos.rptFaltas.java

public PdfPTable crearTabla(List<String> dnis, Date fechaInicio, Date fechaFin) throws DocumentException {
    /**/*  w  ww. jav  a  2  s. c o  m*/
     * Procesamiento para info para generar tablas
     */
    Calendar fechaInicioC = Calendar.getInstance();
    Calendar fechaFinC = Calendar.getInstance();
    fechaInicioC.setTime(fechaInicio);
    fechaFinC.setTime(fechaFin);

    int diaMesInicio, diaMesFin;
    diaMesInicio = fechaInicioC.get(Calendar.DAY_OF_MONTH);
    diaMesFin = fechaFinC.get(Calendar.DAY_OF_MONTH);

    // Dias contados desde un inicio y fin fecha
    ArrayList<Integer> listaInt = new ArrayList<>();
    for (int i = diaMesInicio; i <= diaMesFin; i++) {
        listaInt.add(i);
    }
    //Ordenamos arraylist
    int indice, menor, aux;
    for (int i = 0; i < listaInt.size(); i++) {
        menor = listaInt.get(i);
        indice = i;
        aux = 0;
        for (int j = i + 1; j < listaInt.size(); j++) {
            aux = listaInt.get(j);
            indice = aux < menor ? j : indice;
            menor = aux < menor ? aux : menor;
        }
        listaInt.set(indice, listaInt.get(i));
        listaInt.set(i, menor);
    }
    /**
     * Procesamiento para elaborar tabla con datos
     */
    int nroColumnas = 3;
    PdfPTable tabla = new PdfPTable(nroColumnas);
    tabla.setWidthPercentage(100);
    //Asignamos los tamaos a las columnas 
    //MOdifique para tomar en cuenta la nueva columna de dewscuento
    int[] widthColumna = new int[nroColumnas];

    widthColumna[0] = 1;
    widthColumna[1] = 5;
    widthColumna[2] = 1;
    //widthColumna[8]=1;

    tabla.setWidths(widthColumna);

    //Definimos celdas iniciales
    Font fontCabecera = new Font(Font.HELVETICA, 8, Font.BOLD);
    Font fontCelda = new Font(Font.HELVETICA, 7);
    //        HeaderFooter cabecera = new HeaderFooter(new Phrase("This is a header."), false);
    //        cabecera.
    PdfPCell h0 = new PdfPCell(new Phrase("DNI", fontCabecera));
    h0.setHorizontalAlignment(1);
    h0.setGrayFill(0.7f);
    h0.setColspan(1);
    tabla.addCell(h0);

    PdfPCell h1 = new PdfPCell(new Phrase("NOMBRE EMPLEADO", fontCabecera));
    h1.setHorizontalAlignment(1);
    h1.setGrayFill(0.7f);
    h1.setColspan(1);
    tabla.addCell(h1);

    PdfPCell h2 = new PdfPCell(new Phrase("FECHA", fontCabecera));
    h2.setHorizontalAlignment(1);
    h2.setGrayFill(0.7f);
    h2.setColspan(1);
    tabla.addCell(h2);

    //        PdfPCell h8 = new PdfPCell(new Phrase("COMPENSA",fontCabecera));
    //        h8.setHorizontalAlignment(1);
    //        h8.setGrayFill(0.7f);
    //        h8.setColspan(1);
    //        tabla.addCell(h8);
    //        
    tabla.setHeaderRows(1);
    /**
     * Procesamiento de los datos para generar los registros de la entrada
     */

    Calendar cal = Calendar.getInstance();
    Calendar calC = Calendar.getInstance();
    for (String dni : dnis) {
        //cal.setTime(fechaInicio);
        for (int i = 0; i < listaInt.size(); i++) {
            cal.setTime(fechaInicio);
            int diaMarcacion = cal.get(Calendar.DAY_OF_MONTH) + i;
            System.out.println("Iterador: " + i + " Dni: " + dni);
            cal.set(Calendar.DAY_OF_MONTH, diaMarcacion);
            //Descartar si es sabado o domingo
            if (!ReporteUtil.isDiaLaboral(cal.getTime())) {
                continue;
            }
            //Marcaciones del dia a procesar
            List<Marcacion> marcaciones = mc.buscarXFecha(dni, cal.getTime());
            String Asistencia = "";
            String Permiso = "";
            String Vacaciones = "";
            String marcacion = "";
            String marcacion2 = "";
            String condicion = "";
            String compensacion = "";
            Marcacion primeraMarcacion = new Marcacion();
            Marcacion ultimaMarcacion = new Marcacion();
            Empleado empleado = ec.buscarPorDni(dni);

            List<EmpleadoOpcionInfo> infoEmpleado = eoc.buscarTodos(Integer.parseInt(dni));
            if (!infoEmpleado.isEmpty()) {
                if (infoEmpleado.get(0).getSFieldValue5().equals("0")
                        || infoEmpleado.get(0).getSFieldValue5().equals("")
                        || infoEmpleado.get(0).getSFieldValue5().equals(" ")) {
                    condicion = "NORMAL";
                } else if (infoEmpleado.get(0).getSFieldValue5().equals("1")) {
                    condicion = "Exonerado";
                } else if (infoEmpleado.get(0).getSFieldValue5().equals("2")) {
                    condicion = "Designado";
                } else if (infoEmpleado.get(0).getSFieldValue5().equals("3")) {
                    condicion = "Otra sede";
                }
            } else {
                condicion = "Sin dato";
            }
            System.out.println("Condicion: " + condicion);
            //Datos de horario, jornada, empleado
            List<DetalleGrupoHorario> detallesGrupos = dc.buscarXEmpleado(empleado);
            if (condicion.equals("NORMAL")) {
                if (!marcaciones.isEmpty()) {
                    primeraMarcacion = marcaciones.get(0);
                    ultimaMarcacion = marcaciones.get(marcaciones.size() - 1);
                    marcacion = primeraMarcacion.getHora().toString();
                    marcacion2 = ultimaMarcacion.getHora().toString();

                    if (!detallesGrupos.isEmpty()) {
                        DetalleGrupoHorario detalleGrupoEmpleado = detallesGrupos.get(0);
                        List<AsignacionHorario> asignaciones = ashc
                                .buscarXGrupo(detalleGrupoEmpleado.getGrupoHorario());
                        AsignacionHorario asignacionEmpleado = asignaciones.get(0);
                        Horario horarioEmpleado = asignacionEmpleado.getHorario();
                        Jornada jornadaEmpleado = horarioEmpleado.getJornada();

                        //Validacion de asistencia
                        if (primeraMarcacion.getHora().compareTo(ultimaMarcacion.getHora()) < 0) {
                            if ((primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHE()) == 0
                                    || primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHE()) < 0)
                                    && (ultimaMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHS()) == 0
                                            || ultimaMarcacion.getHora()
                                                    .compareTo(jornadaEmpleado.getTurnoHS()) > 0)) {
                                Asistencia = "Asistencia Normal";
                                marcacion2 = jornadaEmpleado.getTurnoHS().toString();
                                continue;
                            } else if (primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTardanzaHE()) < 0
                                    && primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHE()) > 0) {
                                Asistencia = "Tardanza";
                                marcacion2 = jornadaEmpleado.getTurnoHS().toString();
                                continue;
                                //Marco falta en entrada y marco antes de tiempo salida
                            } else if (primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTardanzaHE()) > 0
                                    && ultimaMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHS()) < 0) {
                                Asistencia = "Falta";
                                continue;
                                //Marco tarde entrada y marco antes de tiempo salida
                            } else if (primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTardanzaHE()) < 0
                                    && ultimaMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHS()) < 0) {
                                Asistencia = "Falta";
                                continue;
                                //Marco tarde entrada y marco antes de tiempo salida??
                            } else if (primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTardanzaHE()) < 0
                                    && ultimaMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHS()) > 0) {
                                Asistencia = "Falta";
                                marcacion2 = jornadaEmpleado.getTurnoHS().toString();
                                continue;
                                //Marco falta en la entrada y marco antes de tiempo salida
                            } else if (primeraMarcacion.getHora().compareTo(jornadaEmpleado.getTardanzaHE()) > 0
                                    && ultimaMarcacion.getHora().compareTo(jornadaEmpleado.getTurnoHS()) > 0) {
                                Asistencia = "Falta";
                                marcacion2 = jornadaEmpleado.getTurnoHS().toString();
                                continue;
                            }
                        } else {
                            Asistencia = "Falta";

                        }
                    } else {
                        Asistencia = "No tiene grupo horario";
                        if (primeraMarcacion.getHora().compareTo(ultimaMarcacion.getHora()) < 0) {
                            continue;
                        }
                    }
                } else {
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = "Falta";
                }
            } else if (condicion.equals("Exonerado")) {
                if (!marcaciones.isEmpty()) {
                    primeraMarcacion = marcaciones.get(0);
                    ultimaMarcacion = marcaciones.get(marcaciones.size() - 1);
                    //marcacion = primeraMarcacion.getHora().toString();
                    //marcacion2 = ultimaMarcacion.getHora().toString();
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion;
                } else {
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion;
                }
                break;
            } else if (condicion.equals("Designado")) {
                if (!marcaciones.isEmpty()) {
                    primeraMarcacion = marcaciones.get(0);
                    ultimaMarcacion = marcaciones.get(marcaciones.size() - 1);
                    //marcacion = primeraMarcacion.getHora().toString();
                    //marcacion2 = ultimaMarcacion.getHora().toString();
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion;
                } else {
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion;
                }
                break;
            } else if (condicion.equals("Otra sede")) {
                if (!marcaciones.isEmpty()) {
                    primeraMarcacion = marcaciones.get(0);
                    ultimaMarcacion = marcaciones.get(marcaciones.size() - 1);
                    //marcacion = primeraMarcacion.getHora().toString();
                    //marcacion2 = ultimaMarcacion.getHora().toString();
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion;
                } else {
                    marcacion = "---";
                    marcacion2 = "---";
                    Asistencia = condicion;
                }
                break;
            } else {
                marcacion = "---";
                marcacion2 = "---";
                Asistencia = "Condicin sin especificar";
            }

            //Validacion de permiso
            //Procesar permisos con horas tbm si no encuentra permisos por fechas 
            AsignacionPermiso asignacionPermisoEmpleadoDia = aspc.buscarXDia(dni, cal.getTime());
            Calendar horaESinCero = Calendar.getInstance();
            Calendar horaFSinCero = Calendar.getInstance();
            if (primeraMarcacion.getHora() != null) {
                horaESinCero.setTime(primeraMarcacion.getHora());
                horaESinCero.set(Calendar.SECOND, 0);
            }
            if (ultimaMarcacion.getHora() != null) {
                horaFSinCero.setTime(ultimaMarcacion.getHora());
                horaFSinCero.set(Calendar.SECOND, 0);
            }

            AsignacionPermiso asigPerEntrada = aspc.buscarOnlyHora(dni, horaESinCero.getTime(), cal.getTime());
            AsignacionPermiso asigPerSalida = aspc.buscarOnlyHora(dni, horaFSinCero.getTime(), cal.getTime());
            if (asignacionPermisoEmpleadoDia != null) {
                Permiso = asignacionPermisoEmpleadoDia.getPermiso().getTipoPermiso().getNombre().toLowerCase();
                Asistencia = "Permiso";
                continue;
            } else if (asigPerEntrada != null) {
                Permiso = asigPerEntrada.getPermiso().getTipoPermiso().getNombre().toLowerCase();
                Asistencia = "Permiso";
                continue;
            } else if (asigPerSalida != null) {
                Permiso = asigPerSalida.getPermiso().getTipoPermiso().getNombre().toLowerCase();
                Asistencia = "Permiso";
                continue;
            } else {
                Permiso = "";
            }
            //Validacion de Vacaciones
            Vacacion vacacionEmpleado = vc.buscarXDia(dni, cal.getTime());
            if (vacacionEmpleado != null) {
                Vacaciones = ReporteUtil.obtenerFechaDiaMes(vacacionEmpleado.getFechaInicio()) + " al "
                        + ReporteUtil.obtenerFechaDiaMes(vacacionEmpleado.getFechaFin());
                Asistencia = "Vacaciones";
                continue;
            } else {
                Vacaciones = "";
            }
            //DNI
            PdfPCell celdaNombre = new PdfPCell(new Phrase(empleado.getNroDocumento(), fontCelda));
            celdaNombre.setHorizontalAlignment(1);
            tabla.addCell(celdaNombre);
            //Nombre
            String celda0 = empleado.getApellidoPaterno() + " " + empleado.getApellidoMaterno() + " "
                    + empleado.getNombre();
            celdaNombre.setPhrase(new Phrase(celda0, fontCelda));
            celdaNombre.setHorizontalAlignment(0);
            tabla.addCell(celdaNombre);
            //Fecha
            String celdaA = ReporteUtil.obtenerFechaFormateada(cal.getTime(), "/");
            celdaNombre.setPhrase(new Phrase(celdaA, fontCelda));
            celdaNombre.setHorizontalAlignment(1);
            tabla.addCell(celdaNombre);

        }
    }
    return tabla;
}

From source file:vistas.reportes.procesos.rptTardanzaTotal.java

public PdfPTable crearTabla(List<String> dnis, Date fechaInicio, Date fechaFin) throws DocumentException {
    /**/*from   ww w  .j  a  va2s . co m*/
     * Procesamiento para info para generar tablas
     */
    //List<RegistroAsistencia> registros = rg.buscarXEmpleadoXFecha1(dnis, fechaInicio, fechaFin);
    Calendar fechaInicioC = Calendar.getInstance();
    Calendar fechaFinC = Calendar.getInstance();
    fechaInicioC.setTime(fechaInicio);
    fechaFinC.setTime(fechaFin);

    // Dias contados desde un inicio y fin fecha
    ArrayList<Integer> listaDias = new ArrayList<>();

    while (fechaInicioC.getTime().compareTo(fechaFinC.getTime()) <= 0) {
        if (!ReporteUtil.isDiaLaboral(fechaInicioC.getTime())) {
            fechaInicioC.add(Calendar.DATE, 1);
            continue;
        }
        listaDias.add(fechaInicioC.get(Calendar.DATE));
        fechaInicioC.add(Calendar.DATE, 1);
    }
    System.out.println("Numero de dias a agregar: " + listaDias.size());
    for (Integer listaDia : listaDias) {
        System.out.println("Dia numero: " + listaDia);
    }
    /**
     * Procesamiento para elaborar tabla con datos
     */
    //agrege una columna mas (Descuento sin goce)
    int nroColumnas = listaDias.size() + 5;
    PdfPTable tabla = new PdfPTable(nroColumnas);
    tabla.setWidthPercentage(100);
    //Asignamos los tamaos a las columnas 
    //MOdifique para tomar en cuenta la nueva columna de dewscuento
    int[] widthColumna = new int[nroColumnas];
    for (int i = 0; i < nroColumnas; i++) {
        if (i == 0) {
            widthColumna[i] = 6;
        } else if (i == (nroColumnas - 1) || i == (nroColumnas - 2) || i == (nroColumnas - 3)
                || i == (nroColumnas - 4)) {
            widthColumna[i] = 2;
        } else {
            widthColumna[i] = 1;
        }
    }
    tabla.setWidths(widthColumna);
    //Definimos celdas iniciales
    Font fontCabecera = new Font(Font.TIMES_ROMAN, 10, Font.BOLD);
    Font fontCelda = new Font(Font.TIMES_ROMAN, 9);
    PdfPCell h1 = new PdfPCell(new Phrase("Nombre del empleado", fontCabecera));
    h1.setHorizontalAlignment(3);
    h1.setGrayFill(0.7f);
    h1.setRowspan(2);
    h1.setColspan(1);
    tabla.addCell(h1);

    PdfPCell h2 = new PdfPCell(new Phrase("Das Hbiles", fontCabecera));
    h2.setHorizontalAlignment(1);
    h2.setGrayFill(0.7f);
    h2.setColspan(nroColumnas - 5);
    tabla.addCell(h2);

    PdfPCell h3 = new PdfPCell(new Phrase("Minutos Tardanza", fontCabecera));
    h3.setHorizontalAlignment(3);
    h3.setGrayFill(0.7f);
    h3.setColspan(1);
    h3.setRowspan(2);
    tabla.addCell(h3);

    //Agregado de columna de descuento sin goce
    PdfPCell h4 = new PdfPCell(new Phrase("Faltas", fontCabecera));
    h4.setHorizontalAlignment(3);
    h4.setGrayFill(0.7f);
    h4.setColspan(1);
    h4.setRowspan(2);
    tabla.addCell(h4);

    PdfPCell h5 = new PdfPCell(new Phrase("Licencias S.G", fontCabecera));
    h5.setHorizontalAlignment(3);
    h5.setGrayFill(0.7f);
    h5.setColspan(1);
    h5.setRowspan(2);
    tabla.addCell(h5);

    PdfPCell h6 = new PdfPCell(new Phrase("Descuento Total", fontCabecera));
    h6.setHorizontalAlignment(3);
    h6.setGrayFill(0.7f);
    h6.setColspan(1);
    h6.setRowspan(2);
    tabla.addCell(h6);

    PdfPCell diaColumna = new PdfPCell();
    for (int i = 0; i < (nroColumnas - 5); i++) {
        String celda = (listaDias.get(i).toString());
        diaColumna.setPhrase(new Phrase(celda, fontCabecera));
        diaColumna.setHorizontalAlignment(1);
        tabla.addCell(diaColumna);
    }

    Calendar cal = Calendar.getInstance();
    List<ReporteAsistenciaBean> listaAsistencia = rac.analisisAsistencia(fechaInicio, fechaFin, dnis, false,
            false);
    List<Integer> conteoDias = new ArrayList<>();
    int minutosTarde = 0;
    int minutosDescuentoPermisos = 0;
    int diasDescuento = 0;
    boolean banderaNombre = true;

    PdfPCell celdaNombre = new PdfPCell();
    for (String dni : dnis) {
        List<ReporteAsistenciaBean> registrosDni = new ArrayList<>();
        for (ReporteAsistenciaBean registro : listaAsistencia) {
            if (dni.equals(registro.getDni())) {
                registrosDni.add(registro);
            }
        }

        for (ReporteAsistenciaBean registro : registrosDni) {
            if (banderaNombre) {
                if (dni.equals(registro.getDni())) {
                    celdaNombre.setPhrase(new Phrase(registro.getNombre(), fontCelda));
                    celdaNombre.setHorizontalAlignment(0);
                    tabla.addCell(celdaNombre);
                    banderaNombre = false;
                }
            }
            for (Integer dia : listaDias) {
                cal.setTime(registro.getFechaRegistro());
                if (cal.get(Calendar.DAY_OF_MONTH) == dia) {
                    if (!registro.getEstado().equals("FALTA")) {
                        if (registro.getMinTardanza() != null) {
                            int numero = registro.getMinTardanza();
                            String celda = "" + numero;
                            celdaNombre.setPhrase(new Phrase(celda, fontCelda));
                            celdaNombre.setHorizontalAlignment(1);
                            tabla.addCell(celdaNombre);
                            minutosTarde += registro.getMinTardanza();
                        }
                    } else if (registro.getEstado().equals("FALTA")) {
                        if (registro.getMinTardanza() != null) {
                            int numero = registro.getMinTardanza();
                            String celda = "" + numero;
                            celdaNombre.setPhrase(new Phrase(celda, fontCelda));
                            celdaNombre.setHorizontalAlignment(1);
                            tabla.addCell(celdaNombre);
                            diasDescuento += 1;
                        }
                    }

                    conteoDias.add(dia);
                    break;
                } else {
                    if (conteoDias.contains(dia)) {

                    } else {
                        String celda = "n.r";
                        celdaNombre.setPhrase(new Phrase(celda, fontCelda));
                        celdaNombre.setHorizontalAlignment(1);
                        tabla.addCell(celdaNombre);
                        conteoDias.add(dia);
                    }
                }
            }
        }

        //Minutos tarde
        String hora1 = "";
        if (minutosTarde < 60) {
            hora1 = minutosTarde + " min";
        } else if (minutosTarde >= 60 && minutosTarde < 480) {
            int resto = minutosTarde % 60;
            int totalH = (minutosTarde - resto) / 60;
            hora1 = totalH + " h " + resto + " min";
        } else if (minutosTarde >= 480) {
            int restoHoras = minutosTarde % 480;
            int totalD = (minutosTarde - restoHoras) / 480;
            int restoMinutos = restoHoras % 60;
            int totalH = (restoHoras - restoMinutos) / 60;
            hora1 = totalD + " d " + totalH + " h " + restoMinutos + " m";
        }
        celdaNombre.setPhrase(new Phrase(hora1, fontCelda));
        celdaNombre.setHorizontalAlignment(1);
        tabla.addCell(celdaNombre);
        //Dias con falta
        String hora2 = "";
        int minutosT = diasDescuento * 480;
        if (minutosT < 60) {
            hora2 = minutosT + " min";
        } else if (minutosT >= 60 && minutosT < 480) {
            int resto = minutosT % 60;
            int totalH = (minutosT - resto) / 60;
            hora2 = totalH + " h " + resto + " min";
        } else if (minutosT >= 480) {
            int restoHoras = minutosT % 480;
            int totalD = (minutosT - restoHoras) / 480;
            int restoMinutos = restoHoras % 60;
            int totalH = (restoHoras - restoMinutos) / 60;
            hora2 = totalD + " d " + totalH + " h " + restoMinutos + " m";
        }
        celdaNombre.setPhrase(new Phrase(hora2, fontCelda));
        celdaNombre.setHorizontalAlignment(1);
        tabla.addCell(celdaNombre);
        //Licencia sin goce
        minutosDescuentoPermisos = rac.minutosSinGocePorPermisos(dni, fechaInicio, fechaFin);

        String hora = "";
        if (minutosDescuentoPermisos < 60) {
            hora = minutosDescuentoPermisos + " min";
        } else if (minutosDescuentoPermisos >= 60 && minutosDescuentoPermisos < 480) {
            int resto = minutosDescuentoPermisos % 60;
            int totalH = (minutosDescuentoPermisos - resto) / 60;
            hora = totalH + " h " + resto + " min";
        } else if (minutosDescuentoPermisos >= 480) {
            int restoHoras = minutosDescuentoPermisos % 480;
            int totalD = (minutosDescuentoPermisos - restoHoras) / 480;
            int restoMinutos = restoHoras % 60;
            int totalH = (restoHoras - restoMinutos) / 60;
            hora = totalD + " d " + totalH + " h " + restoMinutos + " m";
        }
        celdaNombre.setPhrase(new Phrase(hora, fontCelda));
        celdaNombre.setHorizontalAlignment(1);
        tabla.addCell(celdaNombre);
        //Total
        String horaT = "";
        int tiempoTotal = minutosTarde + minutosT + minutosDescuentoPermisos;
        if (tiempoTotal < 60) {
            horaT = tiempoTotal + " min";
        } else if (tiempoTotal >= 60 && tiempoTotal < 480) {
            int resto = tiempoTotal % 60;
            int totalH = (tiempoTotal - resto) / 60;
            horaT = totalH + " h " + resto + " min";
        } else if (tiempoTotal >= 480) {
            int restoHoras = tiempoTotal % 480;
            int totalD = (tiempoTotal - restoHoras) / 480;
            int restoMinutos = restoHoras % 60;
            int totalH = (restoHoras - restoMinutos) / 60;
            horaT = totalD + " d " + totalH + " h " + restoMinutos + " m";
        }
        celdaNombre.setPhrase(new Phrase(horaT, fontCelda));
        celdaNombre.setHorizontalAlignment(1);
        tabla.addCell(celdaNombre);

        registrosDni.clear();
        banderaNombre = true;
        minutosTarde = 0;
        minutosDescuentoPermisos = 0;
        minutosT = 0;
        diasDescuento = 0;
    }
    return tabla;
}

From source file:webBoltOns.server.reportWriter.JRivetWriter.java

License:Open Source License

/**
 * <h2><code>buildDetilLine</code></h2>
 * /*from  ww w . ja  v  a2 s. c o m*/
 * <p>
 *  create and print a detail line on the report    
 * </p>
 * 
 * 
 * @param   String [] record - report record to print
 * 
 */
private void buildDetilLine(String[] record) throws DocumentException {
    newpage = isNewPage(++rowCount);
    PdfPCell cell;

    if (record != null) {
        for (int c = 0; c < reportColumns.length; c++) {
            ReportColumn column = (ReportColumn) reportColumns[c];
            String value = " ";

            if (record != null) {
                if (column.getLevelBreak() > 0)
                    value = column.getAccumulator().getPrintValue(newpage);
                else
                    value = record[c];
            }

            cell = new PdfPCell(
                    new Paragraph(value, FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL)));

            cell.setBorder(0);
            cell.setNoWrap(true);

            cell.setBackgroundColor(detailColor);

            if (column.getAlignment().equals(ReportColumn.LEFT))
                cell.setHorizontalAlignment(Cell.ALIGN_LEFT);
            else if (column.getAlignment().equals(ReportColumn.RIGHT))
                cell.setHorizontalAlignment(Cell.ALIGN_RIGHT);
            else
                cell.setHorizontalAlignment(Cell.ALIGN_CENTER);

            reportBody.addCell(cell);

        }
    }
}

From source file:webBoltOns.server.reportWriter.JRivetWriter.java

License:Open Source License

/**
 * <h2><code>buildReportTitles</code></h2>
 * //from w w  w  . j ava 2s  . c  o  m
 * <p>
 *  Create the report headings        
 * </p>
 * 
 * @param   DataSet reportTable - the report data object
 * 
 */
private void buildReportTitles(DataSet reportTable)
        throws DocumentException, BadElementException, MalformedURLException, IOException {

    Paragraph title = new Paragraph();

    title.add(Image.getInstance(dataAccess.getImagePath() + "reportLogo.gif"));
    title.add(new Chunk(
            new SimpleDateFormat("                           " + "hh:mm:ss - dd MMM yyyy").format(new Date()),
            FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL)));

    title.add(new Chunk("           " + reportTable.getStringField(ReportColumn.REPORT_TITLE),
            FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD)));

    HeaderFooter header = new HeaderFooter(title, false);
    header.setBorder(0);

    HeaderFooter footer = new HeaderFooter(
            new Phrase("page:", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL)), true);
    footer.setAlignment(HeaderFooter.ALIGN_CENTER);

    document.setHeader(header);
    document.setFooter(footer);

    reportColumns = reportTable.getTableVector(ReportColumn.REPORT_DETAILS).toArray();

    topA = new ReportAccumulator(this, -1, reportColumns.length);
    bottomA = topA;

    reportBody = new PdfPTable(reportColumns.length);
    reportBody.setTotalWidth(1.100f);
    reportBody.setHeaderRows(1);

    float cW[] = new float[reportColumns.length];

    for (int c = 0; c < reportColumns.length; c++) {
        ReportColumn column = (ReportColumn) reportColumns[c];
        if (column.getLevelBreak() > 0) {
            ReportAccumulator r = new ReportAccumulator(this, c, reportColumns.length);
            bottomA.setChildAccumulator(r);
            r.setParentAccumulator(bottomA);
            column.setAccumulator(r);
            bottomA = r;
        }

        PdfPCell hdr = new PdfPCell(new Paragraph(column.getDescription(),
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD)));

        hdr.setBorder(Rectangle.BOTTOM);
        if (column.getAlignment().equals(ReportColumn.LEFT))
            hdr.setHorizontalAlignment(Cell.ALIGN_LEFT);
        else if (column.getAlignment().equals(ReportColumn.RIGHT))
            hdr.setHorizontalAlignment(Cell.ALIGN_RIGHT);
        else
            hdr.setHorizontalAlignment(Cell.ALIGN_CENTER);

        reportBody.addCell(hdr);
        cW[c] = (float) column.getLength();
    }
    reportBody.setWidths(cW);
}

From source file:webBoltOns.server.reportWriter.JRivetWriter.java

License:Open Source License

/**
 * <h2><code>buildTotalLine</code></h2>
 * //from  w  ww . j a  v a 2  s .c o  m
 * <p>
 *  Create printed total lines        
 * </p>
 * 
 * @param   String[] record - A report total line
 * 
 */
private void buildTotalLine(String[] record) throws DocumentException {
    ++rowCount;
    PdfPCell cell;

    if (record != null) {
        for (int c = 0; c < reportColumns.length; c++) {
            ReportColumn column = (ReportColumn) reportColumns[c];
            String value = record[c];

            cell = new PdfPCell(
                    new Paragraph(value, FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL)));

            cell.setBorder(0);
            cell.setNoWrap(true);

            cell.setBackgroundColor(totalColor);

            if (column.getAlignment().equals(ReportColumn.LEFT))
                cell.setHorizontalAlignment(Cell.ALIGN_LEFT);
            else if (column.getAlignment().equals(ReportColumn.RIGHT))
                cell.setHorizontalAlignment(Cell.ALIGN_RIGHT);
            else
                cell.setHorizontalAlignment(Cell.ALIGN_CENTER);

            reportBody.addCell(cell);

        }
    }
}

From source file:za.co.equalpay.web.utils.PDFExportUtility.java

/**
 * Perform the standard PDF PreProcessing: <br>
 * Add Customer logo image and Phrase as header to the first page, <br>
 * Add Line Separator to the bottom of the Image <br>
 * and add the standard footer message to the PDF document<br>
 *
 * @throws MalformedURLException/* w w  w.  jav  a 2  s  . co  m*/
 * @throws IOException
 * @throws DocumentException
 */
public void preProcess() throws MalformedURLException, IOException, DocumentException {
    document.setMargins(50f, 50f, 10f, 20f);

    BaseFont bf_helv = BaseFont.createFont(BaseFont.HELVETICA, "Cp1252", false);
    // Font font = new Font(bf_helv, 8);

    ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext()
            .getContext();

    String fontPath = LogoPathFinder.getFontPath(servletContext, "Tahoma");
    BaseFont bf = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, true);
    Font tahoma = new Font(bf, 16, Font.BOLD);
    tahoma.setColor(Color.GRAY);

    Font fontBold = new Font(bf, 8, Font.BOLD);
    fontBold.setColor(Color.GRAY);

    Font f = new Font(bf, 8, Font.NORMAL);
    f.setColor(Color.GRAY);

    Font sf = new Font(bf, 6, Font.NORMAL);
    sf.setColor(Color.LIGHT_GRAY);

    // image.setIndentationLeft(360f);
    // PdfPCell imgCell = new PdfPCell(image, false);
    // imgCell.setHorizontalAlignment(PdfPCell.ALIGN_RIGHT);
    // imgCell.setBorder(0);
    //
    // PdfPCell emptyCell = new PdfPCell(new Phrase("TESTING...", tahoma));
    // emptyCell.setBorder(0);
    // PdfPTable footerTable = new PdfPTable(1);
    // footerTable.setWidthPercentage(100);
    //
    //
    // phrase = new Phrase(PDF_FOOTER_MESSAGE, f);
    //
    // PdfPCell cell = new PdfPCell(phrase);
    // cell.setBorder(0);
    // footerTable.addCell(cell);
    // table.setWidths(new int[] { 1, 2 });
    // table.addCell(emptyCell);
    // footerTable.addCell(emptyCell);
    // phrase.add(footerTable);
    // phrase.add(new Chunk(image, 475f, 0));
    // Phrase subPhrase = new Phrase();
    // subPhrase.add(new Phrase("\nwww.meddev.co.za\n", sf));
    // subPhrase.add(new Phrase(PDF_FOOTER_MESSAGE, f));
    // phrase.add(subPhrase);
    // phrase.add(new Chunk("www.meddev.co.za", f));
    // phrase.add(new Phrase(PDF_FOOTER_MESSAGE, f));
    // load document footer
    HeaderFooter footer = new HeaderFooter(new Phrase(PDF_FOOTER_MESSAGE, f), false);
    // HeaderFooter footer = new HeaderFooter(paragraph, false);
    // HeaderFooter footer = new HeaderFooter(phrase, false);

    footer.setAlignment(Element.ALIGN_LEFT);
    footer.setBorder(Rectangle.NO_BORDER);
    document.setFooter(footer);

    // document.open();
    //
    // ByteArrayOutputStream baos = new ByteArrayOutputStream();
    // PdfWriter writer = PdfWriter.getInstance(document, baos);
    //
    // writer.open();
    // PdfContentByte cb = writer.getDirectContent();
    // cb.addImage(image);
    // ColumnText columnText = new ColumnText(cb);
    // load the customer logo
    String logoPath = LogoPathFinder.getPath(servletContext, "meddev-logo2");

    Image image = Image.getInstance(logoPath);
    image.scaleToFit(149, 55);
    image.setIndentationLeft(360f);

    PdfPCell imageCell = new PdfPCell(image, false);
    imageCell.setHorizontalAlignment(PdfPCell.ALIGN_RIGHT);
    imageCell.setBorder(0);

    PdfPCell headerTextCell = new PdfPCell(new Phrase(header, tahoma));
    headerTextCell.setBorder(0);

    PdfPTable table = new PdfPTable(2);
    table.setWidthPercentage(100);
    table.setWidths(new int[] { 1, 2 });
    table.addCell(headerTextCell);
    table.addCell(imageCell);

    phrase = new Phrase();
    phrase.add(table);

    // load document header
    HeaderFooter header = new HeaderFooter(phrase, false);
    header.setAlignment(Element.ALIGN_CENTER);
    header.setBorder(Rectangle.NO_BORDER);

    document.setHeader(header);

    // create gray line separator
    // Chunk lineSeparator = new Chunk(new LineSeparator(1, 100, Color.GRAY,
    // Element.ALIGN_CENTER, -2));
    // document.add(lineSeparator);
    Font headerFont = new Font(bf_helv, 9);
    // write the header lines for this statement
    phrase = new Phrase(12, "\n", headerFont);
    phrase.add("\n\n");

    // open the pdf document for editing
    document.open();
    document.setPageSize(PageSize.A4);

    // Meddev Information Block
    table = new PdfPTable(4);
    table.setWidthPercentage(100);

    // table.setWidths(new int[] { 25, 25, 30, 20 });
    Phrase phrase1 = new Phrase();
    phrase1.add(new Phrase("MED DEV cc", fontBold));
    phrase1.add(new Phrase("\nUNIT 10, THE CORNER", f));
    phrase1.add(new Phrase("\nc/o Theuns & Hilde Ave", f));
    phrase1.add(new Phrase("\nHennopspark, 0157", f));
    phrase1.add(new Phrase("\nTel: +27 (0) 12 653 3063", f));
    phrase1.add(new Phrase("\nReg No: 2006/166603/23", f));
    phrase1.add(new Phrase("\n", f));

    Phrase phrase2 = new Phrase();
    phrase2.add(new Phrase("VAT No: ", fontBold));
    phrase2.add(new Phrase("4150231498", f));
    phrase2.add(new Phrase("\nImport/Export #: ", fontBold));
    phrase2.add(new Phrase("20544748", f));
    phrase2.add(new Phrase("\n", f));

    Phrase phrase3 = new Phrase();
    phrase3.add(new Phrase("QUOTE NO ", fontBold));
    phrase3.add(new Phrase("\nDATE ", fontBold));
    phrase3.add(new Phrase("\nREFERNCE ", fontBold));
    phrase3.add(new Phrase("\nSUPPLIER CODE ", fontBold));
    phrase3.add(new Phrase("\nEXPIRY DATE ", fontBold));

    Phrase phrase4 = new Phrase();
    //        phrase4.add(new Phrase(quotation.getQuotationNumber(), f));
    //        phrase4.add(new Phrase("\n" + DateFormatter.formatMonthDate(quotation.getQuotationDate()), f));
    //        phrase4.add(new Phrase("\n" + (quotation.getClient().getReference() == null ? "-" : quotation.getClient().getReference()), f));
    //        phrase4.add(new Phrase("\nMEDDEV1", f));
    //        phrase4.add(new Phrase("\n" + DateFormatter.formatMonthDate(quotation.calculateExpiryDate()), f));

    PdfPCell cell1 = new PdfPCell(phrase1);
    cell1.setBorder(0);
    PdfPCell cell2 = new PdfPCell(phrase2);
    cell2.setBorder(0);
    PdfPCell cell3 = new PdfPCell(phrase3);
    cell3.setBorder(0);
    PdfPCell cell4 = new PdfPCell(phrase4);
    cell4.setBorder(0);

    table.addCell(cell1);
    table.addCell(cell2);
    table.addCell(cell3);
    table.addCell(cell4);

    phrase.add(table);

    // create gray line separator
    Chunk lineSeparator = new Chunk(new LineSeparator(1, 100, Color.GRAY, Element.ALIGN_CENTER, -2));
    phrase.add(lineSeparator);

    // Customer Information Block
    table = new PdfPTable(3);
    table.setWidthPercentage(100);
    table.setWidths(new int[] { 5, 2, 3 });

    //        Phrase phrase11 = new Phrase();
    //        phrase11.add(new Phrase(quotation.getClient().getCompany().toUpperCase() + "(CLIENT)", fontBold));
    //        if (quotation.getClient().getVatRegNo() != null && quotation.getClient().getVatRegNo().trim().length() > 0) {
    //            phrase11.add(new Phrase("\nCustomer VAT No: ", fontBold));
    //            phrase11.add(new Phrase(quotation.getClient().getVatRegNo(), f));
    //        }
    //        if (quotation.getClient().getResAddress1() != null && quotation.getClient().getResAddress1().trim().length() > 0) {
    //            phrase11.add(new Phrase("\n" + quotation.getClient().getResAddress1(), f));
    //        }
    //        if (quotation.getClient().getResAddress2() != null && quotation.getClient().getResAddress2().trim().length() > 0) {
    //            phrase11.add(new Phrase("\n" + quotation.getClient().getResAddress2(), f));
    //        }
    //        if (quotation.getClient().getResCity() != null && quotation.getClient().getResCity().trim().length() > 0) {
    //            phrase11.add(new Phrase("\n" + quotation.getClient().getResCity(), f));
    //        }
    //        if (quotation.getClient().getPhone() != null && quotation.getClient().getPhone().trim().length() > 0) {
    //            phrase11.add(new Phrase("\nTel: " + quotation.getClient().getPhone(), f));
    //        }

    //PdfPCell cell11 = new PdfPCell(phrase11);
    //cell11.setBorder(0);

    phrase2 = new Phrase();
    phrase2.add(new Phrase("CURRENCY: ", fontBold));
    PdfPCell cell12 = new PdfPCell(phrase2);
    cell12.setBorder(0);

    phrase3 = new Phrase();
    //phrase3.add(new Phrase(quotation.getClient().getCurrencyCode(), f));
    PdfPCell cell13 = new PdfPCell(phrase3);
    cell13.setBorder(0);

    // table.addCell(cell11);
    table.addCell(cell12);
    table.addCell(cell13);

    phrase.add(table);

    // create gray line separator
    phrase.add("\n");
    document.add(phrase);

    String footerImagePath = LogoPathFinder.getPath(servletContext, "footer-image");

    Image footerImage = Image.getInstance(footerImagePath);
    footerImage.scaleToFit(90, 50);
    footerImage.setAbsolutePosition((PageSize.A4.getWidth() - (footerImage.getScaledWidth() + 40)),
            (PageSize.A4.getHeight() - (PageSize.A4.getHeight() - (footerImage.getScaledHeight() - 10))));

    document.add(footerImage);

}