/**
  * The method that is actually run.
  */
 public function perform()
 {
     try {
         //Si el arreglo de usuarios no es vacio
         if (isset(self::$usuarios)) {
             $grafica = new Grafica_usuario();
             $excel = new SimpleExcel('csv');
             $excel->writer->setDelimiter(",");
             /**
              * Filtro de Reporte Default Semanal
              */
             $fecha["esta_semana"] = date('Y-m-d h:i:s');
             foreach (self::$usuarios as $usuario) {
                 $subordinados = Subordinados::andrea_ACL($usuario["uuid_usuario"]);
                 $uuid_subordinados = !empty($subordinados) ? implode(", ", array_map(function ($subordinados) {
                     return "'" . $subordinados . "'";
                 }, $subordinados)) : "";
                 echo "ID JOB: " . $usuario["id_job"] . "." . PHP_EOL;
                 if ($usuario["id_job"] == 6) {
                     echo "Ejecutando Reporte de Oportunidades." . PHP_EOL;
                     /**
                      * REPORTE PUNTAJE DE OPORTUNIDAD
                      */
                     $puntaje_oportunidad = $grafica->listar_oportunidades_por_puntaje($fecha, $subordinados);
                     if (!empty($puntaje_oportunidad)) {
                         $headers = array("Usuario", "Nombre Oportunidad", "Puntaje");
                         /**
                          * Armar contenido/valores del CSV
                          */
                         $j = 0;
                         foreach ($puntaje_oportunidad as $puntaje) {
                             $contentarray[$j][] = $grafica->limpiar_cadena_texto($puntaje["usuario_asignado"]);
                             $contentarray[$j][] = $grafica->limpiar_cadena_texto($puntaje["nombre"]);
                             $contentarray[$j][] = $puntaje["percentagerank"] . "%";
                             $j++;
                         }
                         $csv = array_merge(array($headers), $contentarray);
                         /**
                          * GENERAR ARCHIVO CSV
                          */
                         $excel->writer->setData($csv);
                         $excel->writer->saveFile('reporte-puntaje-oportunidades-semana-' . date('W'), '/var/www/clientes/crm_corcione/public/uploads/reportes/reporte-puntaje-oportunidades-semana-' . date('W') . '.csv');
                         $filename = '/var/www/clientes/crm_corcione/public/uploads/reportes/reporte-puntaje-oportunidades-semana-' . date('W') . '.csv';
                         $mail = new PHPMailer();
                         $mail->setFrom('*****@*****.**', 'Corcione');
                         $mail->addAddress($usuario["email"], $usuario["nombre_completo"]);
                         $mail->addAttachment($filename);
                         $mail->isHTML(true);
                         $mail->Subject = 'Reporte de Puntaje de Oportunidades - Corcione CRM';
                         $mail->Body = 'Adjunto reporte';
                         if (!$mail->send()) {
                             echo 'Message could not be sent. Mailer Error: ' . $mail->ErrorInfo . PHP_EOL;
                         } else {
                             echo 'Message has been sent \\n' . PHP_EOL;
                         }
                         if (file_exists($filename)) {
                             unlink($filename);
                         }
                     }
                 } else {
                     if ($usuario["id_job"] == 4) {
                         /**
                          * REPORTE DE ACTIVIDAD SEMANAL
                          */
                         $actividades = $grafica->usuarios_actividades($fecha, $subordinados);
                         if (!empty($actividades)) {
                             /**
                              * Armar Headers
                              */
                             $headers = array_keys($actividades[0]);
                             $headers = array_map(function ($headers) {
                                 $key = ucwords(str_replace("_", " ", $headers));
                                 $key = str_replace(" De ", " de ", $key);
                                 $key = str_replace(" Al ", " al ", $key);
                                 $key = str_replace(" Con ", " con ", $key);
                                 $key = str_replace(" La ", " la ", $key);
                                 $key = str_replace(" En ", " en ", $key);
                                 return $key;
                             }, $headers);
                             $contentarray = array();
                             /**
                              * Armar contenido/valores del CSV
                              */
                             $j = 0;
                             foreach ($actividades as $actividad) {
                                 foreach ($actividad as $key => $descripcion) {
                                     $contentarray[$j][] = $descripcion;
                                 }
                                 $j++;
                             }
                             $csv = array_merge(array($headers), $contentarray);
                             /**
                              * GENERAR ARCHIVO CSV
                              */
                             $excel->writer->setData($csv);
                             $excel->writer->saveFile('reporte-actividades-semana-' . date('W'), '/var/www/clientes/crm_corcione/public/uploads/reportes/reporte-actividades-semana-' . date('W') . '.csv');
                             $filename = '/var/www/clientes/crm_corcione/public/uploads/reportes/reporte-actividades-semana-' . date('W') . '.csv';
                             $mail = new PHPMailer();
                             $mail->setFrom('*****@*****.**', 'Corcione');
                             $mail->addAddress($usuario["email"], $usuario["nombre_completo"]);
                             $mail->addAttachment($filename);
                             $mail->isHTML(true);
                             $mail->Subject = 'Reporte de Actividad Semanal - Corcione CRM';
                             $mail->Body = 'Adjunto reporte';
                             if (!$mail->send()) {
                                 echo 'Message could not be sent. Mailer Error: ' . $mail->ErrorInfo . PHP_EOL;
                             } else {
                                 echo 'Message has been sent \\n' . PHP_EOL;
                             }
                             if (file_exists($filename)) {
                                 unlink($filename);
                             }
                         }
                     } else {
                         if ($usuario["id_job"] == 5) {
                             /**
                              * REPORTE DE CLIENT SCORE
                              */
                             $client_scores = $grafica->clienteScoreUsuario(date('Y-m-d h:i:s'), $uuid_subordinados);
                             if (!empty($client_scores)) {
                                 /**
                                  * Armar Headers
                                  */
                                 $headers = array("Usuario", "Clientes de Semana", "Clientes de Mes", "Clientes de Año", "Todos los Clientes");
                                 $contentarray = array();
                                 /**
                                  * Armar contenido/valores del CSV
                                  */
                                 $j = 0;
                                 foreach ($client_scores as $score) {
                                     //foreach($scores AS $key => $score){
                                     $contentarray[$j][] = $score["usuario_asignado"];
                                     $contentarray[$j][] = $score["score_semana"];
                                     $contentarray[$j][] = $score["score_mes"];
                                     $contentarray[$j][] = $score["score_year"];
                                     $contentarray[$j][] = $score["score_todo"];
                                     //}
                                     $j++;
                                 }
                                 $csv = array_merge(array($headers), $contentarray);
                                 /**
                                  * GENERAR ARCHIVO CSV
                                  */
                                 $excel->writer->setData($csv);
                                 $excel->writer->saveFile('reporte-clientscore-semana-' . date('W'), '/var/www/clientes/crm_corcione/public/uploads/reportes/reporte-clientscore-semana-' . date('W') . '.csv');
                                 $filename = '/var/www/clientes/crm_corcione/public/uploads/reportes/reporte-clientscore-semana-' . date('W') . '.csv';
                                 $mail = new PHPMailer();
                                 $mail->setFrom('*****@*****.**', 'Corcione');
                                 $mail->addAddress($usuario["email"], $usuario["nombre_completo"]);
                                 $mail->addAttachment($filename);
                                 $mail->isHTML(true);
                                 $mail->Subject = 'Reporte de Client Score - Corcione CRM';
                                 $mail->Body = 'Adjunto reporte';
                                 if (!$mail->send()) {
                                     echo 'Message could not be sent. Mailer Error: ' . $mail->ErrorInfo . PHP_EOL;
                                 } else {
                                     echo 'Message has been sent \\n' . PHP_EOL;
                                 }
                                 if (file_exists($filename)) {
                                     unlink($filename);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     } catch (\Exception $e) {
         echo $e->getMessage() . PHP_EOL;
     }
 }
 public function ajax_tabla_agentes()
 {
     if ($this->input->is_ajax_request()) {
         $fecha = $this->input->post('fecha', true);
         $fecha_opciones = date_options($fecha);
         $key = key($fecha_opciones);
         $fecha_actual = $fecha_opciones[$key][0];
         $actual = array($key => $fecha_actual);
         $usuario_categoria = CRM_Controller::$categoria_usuario_key;
         $subordinados = array();
         if ($usuario_categoria != 'admin') {
             //$subordinados = CRM_Controller::seleccionar_subordinados();
             $subordinados = $this->andrea_ACL('dashboard');
         }
         $agentes = Grafica_usuario::usuarios_actividades($actual, $subordinados);
         $json = json_encode($agentes);
         echo $json;
         exit;
     }
 }