@Override
  public Reporte getReporteCliente(String identificacion, Calendar fechaInicio, Calendar fechaFin) {
    Reporte reporte = new Reporte();

    long diferenciaTicks = fechaFin.getTimeInMillis() - fechaInicio.getTimeInMillis();
    long diferenciaDias = diferenciaTicks / (1000 * 60 * 60 * 24);

    List<InformeDiario> lista = new ArrayList<>();

    for (int i = 0; i <= diferenciaDias; i++) {
      Calendar fecha = Calendar.getInstance();
      fecha.setTime(fechaInicio.getTime());
      int random1 = (int) (Math.random() * 10000);
      int random2 = (int) (Math.random() * 10000);
      fecha.add(Calendar.DAY_OF_YEAR, i);
      InformeDiario informeDiario = new InformeDiario(fecha, random1, random2, i * 1200, i * 1300);
      informeDiario.setFecha(fecha);
      lista.add(informeDiario);
    }

    reporte.setInformeDiarios(lista);

    reporte.setInformeMuebles(getReporteMuebles());

    return reporte;
  }
  private void createDateClienteModel() {
    dateClienteModel = new LineChartModel();
    LineChartSeries mueblesI = new LineChartSeries();
    LineChartSeries mueblesE = new LineChartSeries();

    mueblesI.setLabel("Muebles Interior");
    mueblesE.setLabel("Muebles Exterior");

    for (InformeDiario item : reporte.getInformeDiarios()) {
      mueblesI.set(sdf.format(item.getFecha().getTime()), item.getMueblesInterior());
      mueblesE.set(sdf.format(item.getFecha().getTime()), item.getMueblesExterior());
    }

    dateClienteModel.addSeries(mueblesI);
    dateClienteModel.addSeries(mueblesE);

    dateClienteModel.setTitle("Reporte Diario");
    dateClienteModel.setZoom(true);
    dateClienteModel.setAnimate(true);
    dateClienteModel.getAxis(AxisType.Y).setLabel("Muebles");
    dateClienteModel.getAxis(AxisType.Y).setMin(0);
    DateAxis axis = new DateAxis("Fechas");
    dateClienteModel.setLegendPosition("e");
    dateClienteModel.setShowPointLabels(true);
    axis.setTickAngle(-50);

    dateClienteModel.getAxes().put(AxisType.X, axis);
  }
  private BarChartModel initBarModel() {
    BarChartModel model = new BarChartModel();

    ChartSeries mueblesI = new ChartSeries();
    ChartSeries mueblesE = new ChartSeries();

    mueblesI.setLabel("Muebles Interior");
    mueblesE.setLabel("Muebles Exterior");

    for (InformeDiario item : reporte.getInformeDiarios()) {
      mueblesI.set(sdf.format(item.getFecha().getTime()), item.getMueblesInterior());
      mueblesE.set(sdf.format(item.getFecha().getTime()), item.getMueblesExterior());
    }

    model.addSeries(mueblesI);
    model.addSeries(mueblesE);

    return model;
  }
  private void createHorizontalVentasModel() {
    horizontalBarModel = new HorizontalBarChartModel();

    for (ReporteMueble item : reporte.getInformeMuebles()) {
      ChartSeries muebles = new ChartSeries();
      muebles.setLabel(item.getNombre());
      muebles.set("Tipos", item.getCantidad());
      horizontalBarModel.addSeries(muebles);
    }

    horizontalBarModel.setTitle("Ventas por Mueble");
    horizontalBarModel.setLegendPosition("e");
    horizontalBarModel.setZoom(true);
    horizontalBarModel.setAnimate(true);

    Axis xAxis = horizontalBarModel.getAxis(AxisType.X);
    xAxis.setLabel("Ventas");
    xAxis.setMin(0);

    Axis yAxis = horizontalBarModel.getAxis(AxisType.Y);
    //
  }