function armarArrayJS($array, $mili = FALSE)
{
    $arrayJS = "[";
    $primero = TRUE;
    foreach ($array as $key => $value) {
        if ($primero) {
            $arrayJS .= "[";
            $primero = FALSE;
        } else {
            $arrayJS .= ", [";
        }
        $arrayJS .= fechaAMilisegundo($key) . ", " . ($mili ? $value : horaAMilisegundo($value));
        $arrayJS .= "]";
    }
    $arrayJS .= "]";
    return $arrayJS;
}
 function generar()
 {
     //Valido datos del post.
     $this->form_validation->set_rules('persona', 'Personal', 'required');
     $this->form_validation->set_rules('fechaDesde', 'Fecha Desde', 'required|callback__chequear_fecha');
     $this->form_validation->set_rules('fechaHasta', 'Fecha Hasta', 'required|callback__chequear_fecha');
     $this->form_validation->set_rules('lineas', 'Lineas a Mostrar ', 'required');
     if ($this->form_validation->run()) {
         //Recupero datos de post.
         $idPersonal = $this->input->post('persona');
         $fechaDesde = $this->input->post('fechaDesde');
         $fechaHasta = $this->input->post('fechaHasta');
         $lineas = $this->input->post('lineas');
         //Busco en la BBDD las marcas para esas fechas.
         $marcas = $this->Marcas_Model->obtener($idPersonal, $fechaDesde, $fechaHasta);
         //Busco última fecha cargada.
         $data['ultimaActualizacion'] = $this->Marcas_Model->get_ultima_actualizacion();
         $minMax = array();
         foreach ($marcas as $marca) {
             $minMax[$marca['fecha']][] = $marca['hora'];
         }
         $min = array();
         $max = array();
         foreach ($minMax as $fecha => $horas) {
             $min[$fecha] = min($horas);
             $max[$fecha] = max($horas);
         }
         $data['objetosSerie'] = array();
         $horarios = array();
         switch ($lineas) {
             case "entrada":
                 $marcas = $min;
                 $horarios = $this->Horarios_Personal_Model->get_horarios_entrada($idPersonal);
                 break;
             case "salida":
                 $marcas = $max;
                 $horarios = $this->Horarios_Personal_Model->get_horarios_salida($idPersonal);
                 break;
         }
         $json = array();
         foreach ($marcas as $fecha => $hora) {
             $json[$fecha] = horaAMilisegundo($hora) - horaAMilisegundo($horarios[date('w', strtotime($fecha))]);
         }
         $array = array($fechaDesde => "00:00", $fechaHasta => "00:00");
         $data['objetosSerie'][] = armarObjetoSerie(ucfirst($lineas), $json, TRUE);
         $data['objetosSerie'][] = armarObjetoSerie("Referencia", $array);
         $data['nombre'] = $this->Personal_Model->obtener($idPersonal);
         $data['nombre'] = $data['nombre']['nombreApellido'];
         $data['idPersonal'] = $idPersonal;
         $data['fechaDesde'] = $fechaDesde;
         $data['fechaHasta'] = $fechaHasta;
         //Cargo las vistas.
         $this->load->view('template/head');
         $this->load->view('template/menu', $this->menu);
         $this->load->view('reportes-entrada-salida/reportes_puntualidad/reporte_view', $data);
         $this->load->view('template/footer');
     } else {
         $this->seleccion();
     }
 }