Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Reportes; import dataBaseOperations.OperacionesBD; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Date; import interfazGrafica.Operaciones; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.logging.Level; import java.util.logging.Logger; import org.jfree.chart.ChartPanel; import org.jfree.data.category.DefaultCategoryDataset; import net.sf.jasperreports.view.*; import net.sf.jasperreports.engine.*; /** * * @author Juan Suaza */ public class Reporte { final int PERSONAL = 1; final int APORTE_SEDE = 2; final int CANTIDAD_VEHICULOS = 3; final int COTIZACIONES_SEDE = 4; final int COTIZACIONES_EMPRESA = 5; final int VEHICULOS_AGREGADOS = 6; final int ORDENES_EMPRESA = 7; final int ORDENES_SEDE = 8; final int VENTAS_EMPRESA = 9; final int VENTAS_SEDE = 10; int reporte; public Reporte() { reporte = 0; } /* Nombre: generarReportePersonal @param: ninguno Objetivo: Obtener la informacion de la base de datos, relacionada con la cantidad de empleados por sede y mostrarla en un grafico Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReportePersonal() { //Consulta SQL de la cantidad de trabajadores que hay en cada sede String consultaSQL = "SELECT DISTINCT sedes.nombre_sede, COUNT(id_sede) FROM usuarios NATURAL JOIN sedes GROUP BY sedes.nombre_sede;"; String[] nombresSedes; int[] cantidadEmpleados; int filas = 0; //Obtencion de la consulta ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = PERSONAL; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); //Cuenta cuantas filas hay en la consulta try { while (tabla.next()) { filas++; } } catch (SQLException ex) { ex.printStackTrace(); } //Inicializacion de los arrays nombresSedes = new String[filas]; cantidadEmpleados = new int[filas]; //Consulta nuevamente tabla = new OperacionesBD().consultas(consultaSQL); filas = 0; //Llenado de los arreglos try { while (tabla.next()) { nombresSedes[filas] = tabla.getString(1); cantidadEmpleados[filas] = tabla.getInt(2); filas++; } } catch (SQLException ex) { ex.printStackTrace(); } //Inicializacion del buffer donde se guardan la informacion //para usarse en el grafico DefaultCategoryDataset data = new DefaultCategoryDataset(); //Llenado de la informacion de las sedes que tienen empleados for (int i = 0; i < nombresSedes.length; i++) { data.setValue((double) cantidadEmpleados[i], "Empleados por sede", nombresSedes[i]); } //Consulta de las sedes que no tienen empleados consultaSQL = "SELECT nombre_sede FROM sedes EXCEPT SELECT DISTINCT sedes.nombre_sede FROM usuarios NATURAL JOIN sedes;"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Empleados por sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } //Construccion del panel con el grafico a partir de la informacion ChartPanel panel = new BarChart().reporteEmpleados(data); return panel; } /* Nombre: generarReporteAportePorSede @param: ninguno Objetivo: Obtener la cantidad de dinero que ha recaudado cada sede por ventas de vehiculos Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteAportePorSede() { String consultaSQL = "SELECT nombre_sede, SUM(valor_vehiculo) FROM ventas_vehiculos NATURAL JOIN vehiculos NATURAL JOIN sedes GROUP BY nombre_sede;"; String[] nombreSedes; float[] valorVentas; int filas = 0; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = APORTE_SEDE; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { filas++; } } catch (SQLException ex) { ex.printStackTrace(); } nombreSedes = new String[filas]; valorVentas = new float[filas]; tabla = new OperacionesBD().consultas(consultaSQL); filas = 0; try { while (tabla.next()) { nombreSedes[filas] = tabla.getString(1); valorVentas[filas] = tabla.getFloat(2); filas++; } } catch (SQLException ex) { ex.printStackTrace(); } DefaultCategoryDataset data = new DefaultCategoryDataset(); for (int i = 0; i < nombreSedes.length; i++) { data.setValue((double) valorVentas[i], "Aporte por sede", nombreSedes[i]); } consultaSQL = "SELECT nombre_sede FROM sedes EXCEPT SELECT nombre_sede FROM ventas_vehiculos NATURAL JOIN vehiculos NATURAL JOIN sedes GROUP BY nombre_sede;"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Aporte por sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteAportesVentas(data); return panel; } /* Nombre: generarReporteCantidadVehiculos @param: ninguno Objetivo: Obtener la cantidad de vehiculos que posee cada sede Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteCantidadVehiculos() { String consultaSQL = "SELECT nombre_sede, COUNT(id_sede) FROM vehiculos NATURAL JOIN sedes WHERE cantidad_disponible_vehiculo = 1 GROUP BY nombre_sede;"; String[] nombreSedes; int[] cantidadVehiculos; int filas = 0; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = CANTIDAD_VEHICULOS; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { filas++; } } catch (SQLException ex) { ex.printStackTrace(); } nombreSedes = new String[filas]; cantidadVehiculos = new int[filas]; tabla = new OperacionesBD().consultas(consultaSQL); filas = 0; try { while (tabla.next()) { nombreSedes[filas] = tabla.getString(1); cantidadVehiculos[filas] = tabla.getInt(2); filas++; } } catch (SQLException ex) { ex.printStackTrace(); } DefaultCategoryDataset data = new DefaultCategoryDataset(); for (int i = 0; i < nombreSedes.length; i++) { data.setValue((double) cantidadVehiculos[i], "Cantidad de vehiculos/sede", nombreSedes[i]); } consultaSQL = "SELECT nombre_sede FROM sedes EXCEPT SELECT nombre_sede FROM vehiculos NATURAL JOIN sedes;"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Cantidad de vehiculos/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteCantidadVehiculosPorSede(data); return panel; } /* Nombre: generarReporteCotizacionesSede @param: Date, String Objetivo: Obtener la cantidad de cotizaciones que ha hehco cada empleado en la sede Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteCotizacionesSede(Date fechaInicio, String codigoSede) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Operaciones oper = new Operaciones(); Date fechaFinal = oper.aumentarFecha(fechaInicio); String fechaI = sdf.format(fechaInicio); String fechaF = sdf.format(fechaFinal); System.out.println(fechaI); System.out.println(fechaF); String consultaSQL = "SELECT usuarios.nombre_usuario, COUNT(usuarios.id_usuario) FROM cotizaciones_realizadas NATURAL JOIN usuarios WHERE id_sede = " + codigoSede + "AND fecha_cotizacion BETWEEN '" + fechaI + "' AND '" + fechaF + "' GROUP BY usuarios.nombre_usuario;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = COTIZACIONES_SEDE; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Cantidad de cotizaciones/vendedor", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT usuarios.nombre_usuario FROM usuarios WHERE tipo_usuario LIKE 'Vendedor' AND id_sede = " + codigoSede + "EXCEPT SELECT usuarios.nombre_usuario FROM cotizaciones_realizadas NATURAL JOIN usuarios WHERE id_sede = " + codigoSede + " AND fecha_cotizacion BETWEEN '" + fechaI + "' AND '" + fechaF + "';"; ChartPanel panel = new BarChart().reporteCantidadCotizacionesSede(data); return panel; } /* Nombre: generarReporteCotizacionesSedeAll @param: int Objetivo: Obtener la cantidad de cotizaciones que han hecho los vendedores de una sede Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteCotizacionesSedeAll(String codigoSede) { String consultaSQL = "SELECT usuarios.nombre_usuario, COUNT(usuarios.id_usuario) FROM cotizaciones_realizadas NATURAL JOIN usuarios WHERE id_sede = " + codigoSede + " GROUP BY usuarios.nombre_usuario;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = COTIZACIONES_SEDE; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Cantidad de cotizaciones/vendedor", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT usuarios.nombre_usuario FROM usuarios WHERE tipo_usuario LIKE 'Vendedor' AND id_sede = " + codigoSede + "EXCEPT SELECT usuarios.nombre_usuario FROM cotizaciones_realizadas NATURAL JOIN usuarios WHERE id_sede = " + codigoSede + ";"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Cantidad de cotizaciones/vendedor", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteCantidadCotizacionesSede(data); return panel; } /* Nombre: generarReporteCotizacionesEmpresa @param: Date Objetivo: Obtener la cantidad de cotizaciones que se han hecho en las sedes a partir de determinada fecha Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteCotizacionesEmpresa(Date fechaInicio) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Operaciones oper = new Operaciones(); Date fechaFinal = oper.aumentarFecha(fechaInicio); String fechaI = sdf.format(fechaInicio); String fechaF = sdf.format(fechaFinal); // System.out.println(fechaI); //System.out.println(fechaF); String consultaSQL = "SELECT sedes.nombre_sede,COUNT(sedes.nombre_sede) FROM cotizaciones_realizadas NATURAL JOIN usuarios NATURAL JOIN sedes WHERE fecha_cotizacion BETWEEN '" + fechaI + "' AND '" + fechaF + "' GROUP BY sedes.nombre_sede;"; //System.out.println(consultaSQL); ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = COTIZACIONES_EMPRESA; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Cantidad de cotizaciones/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT sedes.nombre_sede FROM sedes EXCEPT SELECT sedes.nombre_sede FROM cotizaciones_realizadas NATURAL JOIN usuarios NATURAL JOIN sedes WHERE fecha_cotizacion BETWEEN '" + fechaI + "' AND '" + fechaF + "';"; try { while (tabla.next()) { data.setValue(0.0, "Cantidad de cotizaciones/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteCantidadCotizacionesEmpresa(data); return panel; } /* Nombre: generarReporteCotizacionesEmpresaAll @param: ninguno Objetivo: Obtener la cantidad de cotizaciones que se han hecho en las sedes Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteCotizacionesEmpresaAll() { String consultaSQL = "SELECT sedes.nombre_sede,COUNT(sedes.nombre_sede) FROM cotizaciones_realizadas NATURAL JOIN usuarios NATURAL JOIN sedes GROUP BY sedes.nombre_sede;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = COTIZACIONES_EMPRESA; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Cantidad de cotizaciones/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT sedes.nombre_sede FROM sedes EXCEPT SELECT sedes.nombre_sede FROM cotizaciones_realizadas NATURAL JOIN usuarios NATURAL JOIN sedes;"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Cantidad de cotizaciones/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteCantidadCotizacionesEmpresa(data); return panel; } /* Nombre: generarReporteVehiculosAgregadosSemanal @param: Date Objetivo: Obtener la cantidad de vehiculos que se han agregado al inventario en una semana Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteVehiculosAgregadosSemanal(Date fechaInicial) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Operaciones oper = new Operaciones(); Date fechaFinal = oper.aumentarFecha(fechaInicial); String fechaI = sdf.format(fechaInicial); String fechaF = sdf.format(fechaFinal); String consultaSQL = "SELECT sedes.nombre_sede, COUNT(sedes.nombre_sede) FROM vehiculos NATURAL JOIN sedes WHERE fecha_adicion_vehiculo BETWEEN '" + fechaI + "' AND '" + fechaF + "' GROUP BY sedes.nombre_sede;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = VEHICULOS_AGREGADOS; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Cantidad de vehiculo aadidos/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT nombre_sede FROM sedes EXCEPT SELECT sedes.nombre_sede FROM vehiculos NATURAL JOIN sedes WHERE fecha_adicion_vehiculo BETWEEN '" + fechaI + "' AND '" + fechaF + "' GROUP BY sedes.nombre_sede;"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Cantidad de vehiculo aadidos/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteVehiculosAgregados(data); return panel; } /* Nombre: generarReporteVehiculosAgregados @param: ninguno Objetivo: Obtener la cantidad de vehiculos que se han agregado al inventario Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteVehiculosAgregados() { String consultaSQL = "SELECT sedes.nombre_sede, COUNT(sedes.nombre_sede) FROM vehiculos NATURAL JOIN sedes GROUP BY sedes.nombre_sede;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = VEHICULOS_AGREGADOS; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Cantidad de vehiculo aadidos/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT nombre_sede FROM sedes EXCEPT SELECT sedes.nombre_sede FROM vehiculos NATURAL JOIN sedes GROUP BY sedes.nombre_sede;"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Cantidad de vehiculo aadidos/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteVehiculosAgregados(data); return panel; } /* Nombre: generarReporteOrdenesSemanalEmpresa @param: Date Objetivo: Obtener la cantidad de ordenes de trabajo que se han hehco en una semana en la empresa Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteOrdenesSemanalEmpresa(Date fechaInicial) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Operaciones oper = new Operaciones(); Date fechaFinal = oper.aumentarFecha(fechaInicial); String fechaI = sdf.format(fechaInicial); String fechaF = sdf.format(fechaFinal); String consultaSQL = "SELECT sedes.nombre_sede, COUNT(sedes.nombre_sede) FROM ordenes_emitidas NATURAL JOIN usuarios NATURAL JOIN sedes WHERE fecha_emision BETWEEN '" + fechaI + "' AND '" + fechaF + "' GROUP BY sedes.nombre_sede;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = ORDENES_EMPRESA; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Ordenes generadas/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT nombre_sede FROM sedes EXCEPT SELECT sedes.nombre_sede FROM ordenes_emitidas NATURAL JOIN usuarios NATURAL JOIN sedes " + "WHERE fecha_emision BETWEEN '" + fechaI + "' AND '" + fechaF + "';"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Ordenes generadas/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteOrdenesEmpresa(data); return panel; } /* Nombre: generarReporteOrdenesEmpresa @param: Nninguno Objetivo: Obtener la cantidad de ordenes de trabajo que se han hecho en la empresa Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteOrdenesEmpresa() { String consultaSQL = "SELECT sedes.nombre_sede, COUNT(sedes.nombre_sede) FROM ordenes_emitidas NATURAL JOIN usuarios NATURAL JOIN sedes GROUP BY sedes.nombre_sede;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = ORDENES_EMPRESA; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Ordenes generadas/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT nombre_sede FROM sedes EXCEPT SELECT sedes.nombre_sede FROM ordenes_emitidas NATURAL JOIN usuarios NATURAL JOIN sedes;"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Ordenes generadas/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteOrdenesEmpresa(data); return panel; } /* Nombre: generarReporteOrdenesSemanalSede @param: Nninguno Objetivo: Obtener la cantidad de ordenes de trabajo que se han hehco en una semana en una sede Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteOrdenesSemanalSede(Date fechaInicial, String id_sede) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Operaciones oper = new Operaciones(); Date fechaFinal = oper.aumentarFecha(fechaInicial); String fechaI = sdf.format(fechaInicial); String fechaF = sdf.format(fechaFinal); String consultaSQL = "SELECT usuarios.nombre_usuario, COUNT(usuarios.nombre_usuario) FROM ordenes_emitidas NATURAL JOIN usuarios WHERE fecha_emision BETWEEN '" + fechaI + "' AND '" + fechaF + "' AND usuarios.id_sede = " + id_sede + " GROUP BY usuarios.nombre_usuario;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = ORDENES_SEDE; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Ordenes generadas/vendedor", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT nombre_usuario FROM usuarios WHERE id_sede = " + id_sede + " EXCEPT SELECT usuarios.nombre_usuario FROM ordenes_emitidas NATURAL JOIN usuarios " + "WHERE fecha_emision BETWEEN '" + fechaI + "' AND '" + fechaF + "' AND usuarios.id_sede = " + id_sede + " GROUP BY usuarios.nombre_usuario;"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Ordenes generadas/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteOrdenesEmpresa(data); return panel; } /* Nombre: generarReporteOrdenesSede @param: String Objetivo: Obtener la cantidad de ordenes de trabajo que se han hecho en una sede de la empresa Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteOrdenesSede(String id_sede) { String consultaSQL = "SELECT usuarios.nombre_usuario, COUNT(usuarios.nombre_usuario) FROM ordenes_emitidas NATURAL JOIN usuarios WHERE usuarios.id_sede = " + id_sede + " GROUP BY usuarios.nombre_usuario;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = ORDENES_SEDE; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Ordenes generadas/jefe", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT usuarios.nombre_usuario FROM usuarios WHERE id_sede = " + id_sede + " EXCEPT SELECT usuarios.nombre_usuario FROM ordenes_emitidas NATURAL JOIN usuarios WHERE usuarios.id_sede = " + id_sede + ";"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Ordenes generadas/jefe", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteOrdenesSede(data); return panel; } /* Nombre: generarReporteVentasEmpresa @param: String Objetivo: Obtener la cantidad de ordenes de trabajo que se han hecho en una sede de la empresa Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteVentasEmpresa() { String consultaSQL = "SELECT sedes.nombre_sede, COUNT(sedes.nombre_sede) FROM ventas_vehiculos NATURAL JOIN usuarios NATURAL JOIN sedes GROUP BY sedes.nombre_sede;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = VENTAS_EMPRESA; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Ventas/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT nombre_sede FROM sedes EXCEPT SELECT sedes.nombre_sede FROM ventas_vehiculos NATURAL JOIN usuarios NATURAL JOIN sedes;"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Ventas/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteVentasEmpresa(data); return panel; } /* Nombre: generarReporteVentasSemanalEmpresa @param: String Objetivo: Obtener la cantidad de ordenes de trabajo que se han hecho en una sede de la empresa Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteVentasSemanalEmpresa(Date fechaInicial) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Operaciones oper = new Operaciones(); Date fechaFinal = oper.aumentarFecha(fechaInicial); String fechaI = sdf.format(fechaInicial); String fechaF = sdf.format(fechaFinal); String consultaSQL = "SELECT sedes.nombre_sede, COUNT(sedes.nombre_sede) FROM ventas_vehiculos NATURAL JOIN usuarios NATURAL JOIN sedes " + "WHERE fecha_venta BETWEEN '" + fechaI + "' AND '" + fechaF + "' GROUP BY sedes.nombre_sede;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = VENTAS_EMPRESA; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Ventas/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT nombre_sede FROM sedes EXCEPT SELECT sedes.nombre_sede FROM ventas_vehiculos NATURAL JOIN usuarios NATURAL JOIN sedes " + "WHERE fecha_venta BETWEEN '" + fechaI + "' AND '" + fechaF + "';"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Ventas/sede", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteVentasEmpresa(data); return panel; } /* Nombre: generarReporteVentasEmpresa @param: String Objetivo: Obtener la cantidad de ordenes de trabajo que se han hecho en una sede de la empresa Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteVentasSede(String id_sede) { String consultaSQL = "SELECT usuarios.nombre_usuario, COUNT(usuarios.nombre_usuario) FROM ventas_vehiculos NATURAL JOIN usuarios WHERE usuarios.id_sede = " + id_sede + " GROUP BY usuarios.nombre_usuario;"; ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = VENTAS_SEDE; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Ventas/usuario", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT usuarios.nombre_usuario FROM usuarios WHERE id_sede = " + id_sede + " EXCEPT SELECT usuarios.nombre_usuario FROM ventas_vehiculos NATURAL JOIN usuarios WHERE" + " id_sede = " + id_sede + ";"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Ventas/usuario", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteVentasSede(data); return panel; } /* Nombre: generarReporteVentasSemanalEmpresa @param: String Objetivo: Obtener la cantidad de ordenes de trabajo que se han hecho en una sede de la empresa Autor: Juan David Suaza Cruz 1427841 */ public ChartPanel generarReporteVentasSemanalSede(Date fechaInicial, String id_sede) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Operaciones oper = new Operaciones(); Date fechaFinal = oper.aumentarFecha(fechaInicial); String fechaI = sdf.format(fechaInicial); String fechaF = sdf.format(fechaFinal); String consultaSQL = "SELECT usuarios.nombre_usuario, COUNT(usuarios.nombre_usuario) FROM ventas_vehiculos NATURAL JOIN usuarios " + "WHERE usuarios.id_sede = " + id_sede + " AND fecha_venta BETWEEN '" + fechaI + "' AND '" + fechaF + "' GROUP BY usuarios.nombre_usuario;"; //System.out.println(consultaSQL); ResultSet tabla = new OperacionesBD().consultas(consultaSQL); reporte = VENTAS_SEDE; generarReporte(tabla); tabla = new OperacionesBD().consultas(consultaSQL); DefaultCategoryDataset data = new DefaultCategoryDataset(); try { while (tabla.next()) { data.setValue(tabla.getInt(2), "Ventas/usuario", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } consultaSQL = "SELECT usuarios.nombre_usuario FROM usuarios WHERE id_sede = " + id_sede + " EXCEPT SELECT usuarios.nombre_usuario FROM ventas_vehiculos NATURAL JOIN usuarios " + "WHERE fecha_venta BETWEEN '" + fechaI + "' AND '" + fechaF + "' AND usuarios.id_sede = " + id_sede + ";"; tabla = new OperacionesBD().consultas(consultaSQL); try { while (tabla.next()) { data.setValue(0.0, "Ventas/usuario", tabla.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); } ChartPanel panel = new BarChart().reporteVentasSede(data); return panel; } public void generarReporte(ResultSet datos) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss"); Timestamp timeS = new Timestamp(System.currentTimeMillis()); String currentTime = sdf.format(timeS); if (reporte == PERSONAL) { try { JasperReport jasperReport = JasperCompileManager.compileReport( "C:\\Users\\Familia Suaza\\Documents\\NetBeansProjects\\Desarrollo\\DesarrolloI\\src\\Reportes\\reporteCantidadEmpleados.jrxml"); JRResultSetDataSource jasperReports = new JRResultSetDataSource(datos); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jasperReports); //JasperViewer.viewReport(jasperPrint); String filename = null; filename = "reportePersonal" + currentTime + ".pdf"; //Report saved in specified path JasperExportManager.exportReportToPdfFile(jasperPrint, filename); } catch (JRException ex) { ex.printStackTrace(); } } else if (reporte == APORTE_SEDE) { try { JasperReport jasperReport = JasperCompileManager.compileReport( "C:\\Users\\Familia Suaza\\Documents\\NetBeansProjects\\Desarrollo\\DesarrolloI\\src\\Reportes\\reporteAporte.jrxml"); JRResultSetDataSource jasperReports = new JRResultSetDataSource(datos); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jasperReports); //JasperViewer.viewReport(jasperPrint); String filename = null; filename = "reporteAporteSede" + currentTime + ".pdf"; //Report saved in specified path JasperExportManager.exportReportToPdfFile(jasperPrint, filename); } catch (JRException ex) { ex.printStackTrace(); } } else if (reporte == CANTIDAD_VEHICULOS) { try { JasperReport jasperReport = JasperCompileManager.compileReport( "C:\\Users\\Familia Suaza\\Documents\\NetBeansProjects\\Desarrollo\\DesarrolloI\\src\\Reportes\\reporteCantidadVehiculos.jrxml"); JRResultSetDataSource jasperReports = new JRResultSetDataSource(datos); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jasperReports); //JasperViewer.viewReport(jasperPrint); String filename = null; filename = "reporteCantidadVehiculos" + currentTime + ".pdf"; //Report saved in specified path JasperExportManager.exportReportToPdfFile(jasperPrint, filename); } catch (JRException ex) { ex.printStackTrace(); } } else if (reporte == COTIZACIONES_SEDE) { try { JasperReport jasperReport = JasperCompileManager.compileReport( "C:\\Users\\Familia Suaza\\Documents\\NetBeansProjects\\Desarrollo\\DesarrolloI\\src\\Reportes\\reporteCotizacionesSede.jrxml"); JRResultSetDataSource jasperReports = new JRResultSetDataSource(datos); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jasperReports); //JasperViewer.viewReport(jasperPrint); String filename = null; filename = "reporteCotizacionesSede" + currentTime + ".pdf"; //Report saved in specified path JasperExportManager.exportReportToPdfFile(jasperPrint, filename); } catch (JRException ex) { ex.printStackTrace(); } } else if (reporte == COTIZACIONES_EMPRESA) { try { JasperReport jasperReport = JasperCompileManager.compileReport( "C:\\Users\\Familia Suaza\\Documents\\NetBeansProjects\\Desarrollo\\DesarrolloI\\src\\Reportes\\reporteCotizacionesEmpresa.jrxml"); JRResultSetDataSource jasperReports = new JRResultSetDataSource(datos); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jasperReports); //JasperViewer.viewReport(jasperPrint); String filename = null; filename = "reporteCotizacionesEmpresa" + currentTime + ".pdf"; //Report saved in specified path JasperExportManager.exportReportToPdfFile(jasperPrint, filename); } catch (JRException ex) { ex.printStackTrace(); } } else if (reporte == VEHICULOS_AGREGADOS) { try { JasperReport jasperReport = JasperCompileManager.compileReport( "C:\\Users\\Familia Suaza\\Documents\\NetBeansProjects\\Desarrollo\\DesarrolloI\\src\\Reportes\\reporteVehiculosAgregados.jrxml"); JRResultSetDataSource jasperReports = new JRResultSetDataSource(datos); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jasperReports); //JasperViewer.viewReport(jasperPrint); String filename = null; filename = "reporteVehiculosAgregados" + currentTime + ".pdf"; //Report saved in specified path JasperExportManager.exportReportToPdfFile(jasperPrint, filename); } catch (JRException ex) { ex.printStackTrace(); } } else if (reporte == ORDENES_EMPRESA) { try { JasperReport jasperReport = JasperCompileManager.compileReport( "C:\\Users\\Familia Suaza\\Documents\\NetBeansProjects\\Desarrollo\\DesarrolloI\\src\\Reportes\\reporteOrdenesEmpresa.jrxml"); JRResultSetDataSource jasperReports = new JRResultSetDataSource(datos); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jasperReports); //JasperViewer.viewReport(jasperPrint); String filename = null; filename = "reporteOrdenesEmpresa" + currentTime + ".pdf"; //Report saved in specified path JasperExportManager.exportReportToPdfFile(jasperPrint, filename); } catch (JRException ex) { ex.printStackTrace(); } } else if (reporte == ORDENES_SEDE) { try { JasperReport jasperReport = JasperCompileManager.compileReport( "C:\\Users\\Familia Suaza\\Documents\\NetBeansProjects\\Desarrollo\\DesarrolloI\\src\\Reportes\\reporteOrdenesSede.jrxml"); JRResultSetDataSource jasperReports = new JRResultSetDataSource(datos); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jasperReports); //JasperViewer.viewReport(jasperPrint); String filename = null; filename = "reporteOrdenesSede" + currentTime + ".pdf"; //Report saved in specified path JasperExportManager.exportReportToPdfFile(jasperPrint, filename); } catch (JRException ex) { ex.printStackTrace(); } } else if (reporte == VENTAS_EMPRESA) { try { JasperReport jasperReport = JasperCompileManager.compileReport( "C:\\Users\\Familia Suaza\\Documents\\NetBeansProjects\\Desarrollo\\DesarrolloI\\src\\Reportes\\reporteVentasEmpresa.jrxml"); JRResultSetDataSource jasperReports = new JRResultSetDataSource(datos); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jasperReports); //JasperViewer.viewReport(jasperPrint); String filename = null; filename = "reporteVentasEmpresa" + currentTime + ".pdf"; //Report saved in specified path JasperExportManager.exportReportToPdfFile(jasperPrint, filename); } catch (JRException ex) { ex.printStackTrace(); } } else if (reporte == VENTAS_SEDE) { try { JasperReport jasperReport = JasperCompileManager.compileReport( "C:\\Users\\Familia Suaza\\Documents\\NetBeansProjects\\Desarrollo\\DesarrolloI\\src\\Reportes\\reporteVentasSede.jrxml"); JRResultSetDataSource jasperReports = new JRResultSetDataSource(datos); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jasperReports); //JasperViewer.viewReport(jasperPrint); String filename = null; filename = "reporteVentasSede" + currentTime + ".pdf"; //Report saved in specified path JasperExportManager.exportReportToPdfFile(jasperPrint, filename); } catch (JRException ex) { ex.printStackTrace(); } } } }