public function submit_program_ot_mant_preventivo()
 {
     if (!Request::ajax() || !Auth::check()) {
         return Response::json(array('success' => false), 200);
     }
     $id = Auth::id();
     $data["inside_url"] = Config::get('app.inside_url');
     $data["user"] = Session::get('user');
     if ($data["user"]->idrol == 1 || $data["user"]->idrol == 2 || $data["user"]->idrol == 3 || $data["user"]->idrol == 4) {
         // Check if the current user is the "System Admin"
         $array_detalles = Input::get('matrix_detalle');
         $row_size = count($array_detalles);
         if ($row_size == 0) {
             $message = "No se cargaron todas las OTM con éxito.";
             $type_message = "bg-danger";
             return Response::json(array('success' => true, 'url' => $data["inside_url"], 'message' => $message, 'type_message' => $type_message), 200);
         }
         //Agregar Detalle
         if ($row_size > 0) {
             $message = "Se crearon las OTM con éxito";
             $type_message = "bg-success";
             for ($i = 0; $i < $row_size; $i++) {
                 $array_detalle = $array_detalles[$i];
                 $fecha = date('Y-m-d H:i:s', strtotime($array_detalle[4] . " " . $array_detalle[5]));
                 $cod_pat = $array_detalle[0];
                 $activo = Activo::searchActivosByCodigoPatrimonial($cod_pat)->get();
                 $activo = $activo[0];
                 $idactivo = $activo->idactivo;
                 $ot = new OrdenesTrabajoPreventivo();
                 $abreviatura = "MP";
                 // Algoritmo para añadir numeros correlativos
                 $string = $this->getCorrelativeReportNumber();
                 //Get Año Actual
                 $ts_abreviatura = "TS";
                 $ot->fecha_programacion = $fecha;
                 $ot->idservicio = $activo->idservicio;
                 $ot->idestado_ot = 9;
                 $ot->idubicacion_fisica = $activo->idubicacion_fisica;
                 $ot->id_usuarioelaborador = $data["user"]->id;
                 $ot->id_usuariosolicitante = $array_detalle[6];
                 $ot->idactivo = $activo->idactivo;
                 $ot->ot_tipo_abreviatura = $abreviatura;
                 $ot->ot_correlativo = $string;
                 $ot->ot_activo_abreviatura = $ts_abreviatura;
                 $ot->save();
                 //añadir las tareas
                 $modelo_equipo = ModeloActivo::find($activo->idmodelo_equipo);
                 $tareas = TareaOtPreventivo::getTareasByFamiliaActivo($modelo_equipo->idfamilia_activo)->get();
                 foreach ($tareas as $tarea) {
                     $otPreventivoxtarea = new OrdenesTrabajoPreventivoxTarea();
                     $otPreventivoxtarea->idot_preventivo = $ot->idot_preventivo;
                     $otPreventivoxtarea->idtareas_ot_preventivo = $tarea->idtareas_ot_preventivo;
                     $otPreventivoxtarea->idestado_realizado = 23;
                     // Estado de tarea no realizada
                     $otPreventivoxtarea->save();
                 }
             }
         } else {
             $message = "No se cargaron todas las OTM con éxito.";
             $type_message = "bg-danger";
             return Response::json(array('success' => true, 'ot' => $ot, 'url' => $data["inside_url"], 'message' => $message, 'type_message' => $type_message), 200);
         }
         return Response::json(array('success' => true, 'url' => $data["inside_url"], 'message' => $message, 'type_message' => $type_message), 200);
     } else {
         return Response::json(array('success' => false), 200);
     }
 }