public function submit_delete_modelo_familia_activo()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         // Verifico si el usuario es un Webmaster
         if ($data["user"]->idrol == 1) {
             $data["modelo_equipo_info"] = ModeloActivo::find(Input::get('modelo_id'));
             $data["accesorios_info"] = Accesorio::getAccesorioByModelo($data["modelo_equipo_info"]->idmodelo_equipo)->get();
             $data["consumibles_info"] = Consumible::getConsumibleByModelo($data["modelo_equipo_info"]->idmodelo_equipo)->get();
             $data["componentes_info"] = Componente::getComponenteByModelo($data["modelo_equipo_info"]->idmodelo_equipo)->get();
             $data["activos_info"] = Activo::searchActivosByModelo($data["modelo_equipo_info"]->idmodelo_equipo)->get();
             $count_accesorios = count($data["accesorios_info"]);
             $count_componentes = count($data["componentes_info"]);
             $count_consumibles = count($data["consumibles_info"]);
             $count_activos = count($data["activos_info"]);
             if ($count_accesorios > 0) {
                 Session::flash('error', 'Se tienen accesorios activos. Operación no realizada.');
                 $url = "familia_activos/edit_modelo_familia_activo" . "/" . $data["modelo_equipo_info"]->idmodelo_equipo;
                 return Redirect::to($url);
             } else {
                 if ($count_componentes > 0) {
                     Session::flash('error', 'Se tienen componentes activos. Operación no realizada.');
                     $url = "familia_activos/edit_modelo_familia_activo" . "/" . $data["modelo_equipo_info"]->idmodelo_equipo;
                     return Redirect::to($url);
                 } else {
                     if ($count_consumibles > 0) {
                         Session::flash('error', 'Se tienen consumibles activos. Operación no realizada.');
                         $url = "familia_activos/edit_modelo_familia_activo" . "/" . $data["modelo_equipo_info"]->idmodelo_equipo;
                         return Redirect::to($url);
                     } else {
                         if ($count_activos > 0) {
                             Session::flash('error', 'Se tienen equipos activos. Operación no realizada.');
                             $url = "familia_activos/edit_modelo_familia_activo" . "/" . $data["modelo_equipo_info"]->idmodelo_equipo;
                             return Redirect::to($url);
                         } else {
                             $data["modelo_equipo_info"]->delete();
                             Session::flash('error', 'Se eliminó el modelo con éxito.');
                             $url = "familia_activos/edit_familia_activo" . "/" . Input::get('familia_activo_id');
                             return Redirect::to($url);
                         }
                     }
                 }
             }
         } else {
             return View::make('error/error', $data);
         }
     } else {
         return View::make('error/error', $data);
     }
 }
 public function submit_create_reporte_calibracion()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         // Verifico si el usuario es un Webmaster
         if ($data["user"]->idrol == 1 || $data["user"]->idrol == 2 || $data["user"]->idrol == 3 || $data["user"]->idrol == 4) {
             // Validate the info, create rules for the inputs
             $attributes = array();
             $messages = array();
             $rules = array();
             $array_activos = Input::get('details_activos');
             $array_posiciones = Input::get('details_posiciones');
             // Run the validation rules on the inputs from the form
             $validator = Validator::make(Input::all(), $rules, $messages, $attributes);
             // If the validator fails, redirect back to the form
             if ($validator->fails()) {
                 return Redirect::to('reportes_calibracion/create_reporte')->withErrors($validator)->withInput(Input::all());
             } else {
                 $array_activos_no_registrados = [];
                 $array_idactivos = Input::get('details_activos');
                 $cantidad_activos = count($array_idactivos);
                 if ($cantidad_activos > 0) {
                     for ($i = 0; $i < $cantidad_activos; $i++) {
                         $idactivo = $array_idactivos[$i];
                         //se realiza una primera validacion de que se estan subierno por lo menos un archivo.
                         $existeArchivos = 0;
                         for ($j = 0; $j < 10; $j++) {
                             if (Input::hasFile('input-file-' . $idactivo . '-' . $j)) {
                                 $existeArchivos = 1;
                                 break;
                             }
                         }
                         if ($existeArchivos == 1 && Input::get('fecha_calibracion-' . $idactivo) != null && Input::get('fecha_proximo-' . $idactivo) != null) {
                             //como ya existe se crea de una vez el reporte de calibracion
                             $reporte_calibracion = new ReporteCalibracion();
                             $reporte_calibracion->codigo_abreviatura = "RC";
                             $reporte_calibracion->codigo_correlativo = $this->getCorrelativeReportNumber();
                             $reporte_calibracion->codigo_anho = date('y');
                             $reporte_calibracion->idactivo = $idactivo;
                             $reporte_calibracion->fecha_calibracion = date("Y-m-d", strtotime(Input::get('fecha_calibracion-' . $idactivo)));
                             $reporte_calibracion->fecha_proxima_calibracion = date("Y-m-d", strtotime(Input::get('fecha_proximo-' . $idactivo)));
                             $reporte_calibracion->idestado = 27;
                             $reporte_calibracion->save();
                             for ($j = 0; $j < 10; $j++) {
                                 if (Input::hasFile('input-file-' . $idactivo . '-' . $j)) {
                                     $archivo = Input::file('input-file-' . $idactivo . '-' . $j);
                                     $rutaDestino = 'uploads/documentos/riesgos/Reportes de Calibracion/' . $reporte_calibracion->codigo_abreviatura . $reporte_calibracion->codigo_correlativo . $reporte_calibracion->codigo_anho . '/';
                                     $nombreArchivo = $archivo->getClientOriginalName();
                                     $nombreArchivoEncriptado = Str::random(27) . '.' . pathinfo($nombreArchivo, PATHINFO_EXTENSION);
                                     $uploadSuccess = $archivo->move($rutaDestino, $nombreArchivoEncriptado);
                                     $detalle_reporte_calibracion = new DetalleReporteCalibracion();
                                     $detalle_reporte_calibracion->nombre = $nombreArchivo;
                                     $detalle_reporte_calibracion->nombre_archivo = $nombreArchivo;
                                     $detalle_reporte_calibracion->nombre_archivo_encriptado = $nombreArchivoEncriptado;
                                     $detalle_reporte_calibracion->url = $rutaDestino;
                                     $detalle_reporte_calibracion->idreporte_calibracion = $reporte_calibracion->id;
                                     $detalle_reporte_calibracion->save();
                                 }
                             }
                         } else {
                             array_push($array_activos_no_registrados, $idactivo);
                         }
                     }
                     $cantidad = count($array_activos_no_registrados);
                     if ($cantidad != $cantidad_activos) {
                         if ($cantidad == 0) {
                             $string = "Se han registrado los reportes de calibracion.<br>";
                             Session::flash('message', $string);
                             return Redirect::to('reportes_calibracion/list_reportes_calibracion');
                         }
                         $string = "Se han registrado los reportes de calibracion con excepción de los siguientes equipos:<br>";
                         for ($i = 0; $i < $cantidad; $i++) {
                             $activo = Activo::searchActivosById($array_activos_no_registrados[$i])->get()[0];
                             $familia_activo = FamiliaActivo::find($activo->idfamilia_activo)->get()[0];
                             $modelo_activo = ModeloActivo::find($activo->modelo)->get()[0];
                             $string_line = $i + 1 . ':<pre> Equipo: ' . $familia_activo->nombre_equipo . ' Modelo: ' . $modelo_activo->nombre . ' Cód. Patrimonial: ' . $activo->codigo_patrimonial . '</pre><br>';
                             $string = $string . $string_line;
                         }
                     } else {
                         Session::flash('error', 'Para registrar un reporte de calibración a un equipo debe:<br> Adjuntar por lo menos 1 documento.<br>Llenar los campos Fecha de Calibración y Fecha Próxima de Calibración');
                         return Redirect::to('reportes_calibracion/create_reporte');
                     }
                     Session::flash('message', $string);
                     return Redirect::to('reportes_calibracion/list_reportes_calibracion');
                 } else {
                     Session::flash('error', 'Ingrese uno o más equipos médicos');
                     return Redirect::to('reportes_calibracion/create_reporte');
                 }
             }
         } else {
             return View::make('error/error', $data);
         }
     } else {
         return View::make('error/error', $data);
     }
 }
 public function export_pdf()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         // Verifico si el usuario es un Webmaster
         if ($data["user"]->idrol == 1 || $data["user"]->idrol == 2 || $data["user"]->idrol == 3 || $data["user"]->idrol == 4 || $data["user"]->idrol == 5 || $data["user"]->idrol == 6 || $data["user"]->idrol == 7 || $data["user"]->idrol == 8 || $data["user"]->idrol == 9 || $data["user"]->idrol == 10 || $data["user"]->idrol == 11 || $data["user"]->idrol == 12) {
             $idot_vmetrologica = Input::get('idot_vmetrologica');
             $data["ot_vm"] = OrdenesTrabajoVerifMetrologica::find($idot_vmetrologica);
             if ($data["ot_vm"] == null) {
                 $url = "verif_metrologica/create_ot_verif_metrologica" . "/" . $idot_vmetrologica;
                 return Redirect::to($url);
             }
             $data["usuarioSolicitante"] = User::find($data["ot_vm"]->id_usuariosolicitante);
             $data["usuarioElaborador"] = User::find($data["ot_vm"]->id_usuarioelaborador);
             $data["servicio"] = Servicio::find($data["ot_vm"]->idservicio);
             $data["ejecutor"] = $data["ot_vm"]->nombre_ejecutor;
             $data["ubicacion"] = UbicacionFisica::find($data["ot_vm"]->idubicacion_fisica);
             $data["numero_ficha"] = $data["ot_vm"]->numero_ficha;
             $data["activo"] = Activo::find($data["ot_vm"]->idactivo);
             $data["modelo"] = ModeloActivo::find($data["activo"]->idmodelo_equipo);
             $data["familia"] = FamiliaActivo::find($data["modelo"]->idfamilia_activo);
             $data["marca"] = Marca::find($data["familia"]->idmarca);
             $data["fecha_programacion"] = $data["ot_vm"]->fecha_programacion;
             $data["fecha_conformidad"] = $data["ot_vm"]->fecha_conformidad;
             $data["estado_inicial"] = Estado::find($data["ot_vm"]->idestado_inicial);
             $data["estado_final"] = Estado::find($data["ot_vm"]->idestado_final);
             $data["estado_ot"] = Estado::find($data["ot_vm"]->idestado_ot);
             $data["documento"] = Documento::searchDocumentoByIdOtVerifMetrologica($idot_vmetrologica)->get();
             if (count($data["documento"]) != 0) {
                 $data["documento"] = $data["documento"][0];
             }
             $data["personal_data"] = PersonalOtVerifMetrologica::getPersonalXOt($idot_vmetrologica)->get();
             $html = View::make('ot/verifMetrologica/otVerifMetrologicaExport', $data);
             return PDF::load($html, "A4", "portrait")->show();
         } else {
             return View::make('error/error', $data);
         }
     } else {
         return View::make('error/error', $data);
     }
 }
 public function submit_create_tarea_ajax()
 {
     // If there was an error, respond with 404 status
     if (!Request::ajax() || !Auth::check()) {
         return Response::json(array('success' => false), 200);
     }
     $data["user"] = Session::get('user');
     if ($data["user"]->idrol == 1 || $data["user"]->idrol == 2 || $data["user"]->idrol == 3 || $data["user"]->idrol == 4) {
         $tarea = new TareaOtPreventivo();
         $tarea->nombre = Input::get('nombre_tarea');
         $activo = Activo::find(Input::get('idactivo'));
         $modelo_equipo = ModeloActivo::find($activo->idmodelo_equipo);
         $idfamilia = $modelo_equipo->idfamilia_activo;
         $tarea->idfamilia_activo = $idfamilia;
         $tarea->creador = $data["user"]->id;
         $tarea->save();
         $otPreventivoxtarea = new OrdenesTrabajoPreventivoxTarea();
         $otPreventivoxtarea->idestado_realizado = 23;
         $otPreventivoxtarea->idot_preventivo = Input::get('idot_preventivo');
         $otPreventivoxtarea->idtareas_ot_preventivo = $tarea->idtareas_ot_preventivo;
         $otPreventivoxtarea->save();
         return Response::json(array('success' => true, 'tarea' => $tarea, 'otPreventivoxtarea' => $otPreventivoxtarea), 200);
     } else {
         return Response::json(array('success' => false), 200);
     }
 }
 public function submit_program_ot_inspec_equipos()
 {
     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);
         }
         $list_activos = [];
         //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_inicio = date('Y-m-d H:i:s', strtotime($array_detalle[3] . " " . $array_detalle[4]));
                 $fecha_fin = date('Y-m-d H:i:s', strtotime($array_detalle[3] . " " . $array_detalle[5]));
                 $idservicio = $array_detalle[0];
                 $servicio = Servicio::find($idservicio);
                 $ot = new OrdenesTrabajoInspeccionEquipo();
                 $abreviatura = "PIE";
                 // Algoritmo para añadir numeros correlativos
                 $string = $this->getCorrelativeReportNumber();
                 $ot->fecha_inicio = $fecha_inicio;
                 $ot->fecha_fin = $fecha_fin;
                 $ot->idservicio = $idservicio;
                 $ot->idestado = 9;
                 $ot->id_ingeniero = $array_detalle[6];
                 $ot->ot_tipo_abreviatura = $abreviatura;
                 $ot->ot_correlativo = $string;
                 $ot->save();
                 $list_activos = Activo::getActivosByServicioId($idservicio)->get();
                 if ($list_activos->isEmpty() == false) {
                     foreach ($list_activos as $activo) {
                         $modelo = ModeloActivo::find($activo->idmodelo_equipo);
                         $idfamilia_activo = $modelo->idfamilia_activo;
                         $otInspeccionxActivo = new OrdenesTrabajoInspeccionEquipoxActivo();
                         $otInspeccionxActivo->idot_inspec_equipo = $ot->idot_inspec_equipo;
                         $otInspeccionxActivo->idactivo = $activo->idactivo;
                         $otInspeccionxActivo->save();
                         //asignamos las tareas de ese activo de esa inspeccion
                         $tareas = TareasOtInspeccionEquipo::getTareasByFamiliaActivo($idfamilia_activo)->get();
                         foreach ($tareas as $tarea) {
                             $otInspeccionxActivoxTarea = new TareasOtInspeccionEquipoxActivo();
                             $otInspeccionxActivoxTarea->idot_inspec_equiposxactivo = $otInspeccionxActivo->idot_inspec_equiposxactivo;
                             $otInspeccionxActivoxTarea->idtareas_inspec_equipo = $tarea->idtareas_inspec_equipo;
                             $otInspeccionxActivoxTarea->idestado_realizado = 23;
                             // Estado de tarea no realizada
                             $otInspeccionxActivoxTarea->save();
                         }
                     }
                 }
             }
         } else {
             $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, 'list' => $list_activos), 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);
     }
 }