public function download_documento($idDocumento = null)
 {
     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) {
             $documento = DetalleReporteCalibracion::find($idDocumento);
             $rutaDestino = $documento->url . $documento->nombre_archivo_encriptado;
             $headers = array('Content-Type', mime_content_type($rutaDestino));
             return Response::download($rutaDestino, basename($documento->nombre_archivo), $headers);
         } else {
             return View::make('error/error', $data);
         }
     } else {
         return View::make('error/error', $data);
     }
 }
 public function submit_create_activo()
 {
     if (Auth::check()) {
         $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) {
             $attributes = array('servicio_clinico' => 'Servicio Clínico', 'ubicacion_fisica' => 'Ubicación Física', 'grupo' => 'Grupo', 'marca' => 'Marca', 'nombre_equipo' => 'Nombre del Equipo', 'modelo' => 'Modelo', 'numero_serie' => 'Número de Serie', 'proveedor' => 'Proveedor', 'codigo_compra' => 'Código de Compra', 'codigo_patrimonial' => 'Código Patrimonial', 'fecha_adquisicion' => 'Fecha de Adquisición', 'garantia' => 'Garantía', 'idreporte_instalacion' => 'Código de Reporte de Instalación', 'costo' => 'Precio de Compra', 'fecha_calibracion' => 'Fecha de Calibración', 'fecha_proximo' => 'Próxima Fecha de Calibración', 'input-file-0' => 'Certificado de Calibración');
             $messages = array();
             $rules = array('servicio_clinico' => 'required', 'ubicacion_fisica' => 'required', 'grupo' => 'required', 'marca' => 'required', 'nombre_equipo' => 'required', 'modelo' => 'required', 'numero_serie' => 'required|alpha_dash', 'proveedor' => 'required', 'codigo_compra' => 'required|numeric', 'codigo_patrimonial' => 'required|digits:12|unique:activos,codigo_patrimonial', 'fecha_adquisicion' => 'required', 'garantia' => 'required|numeric', 'idreporte_instalacion' => 'required', 'costo' => 'required|numeric', 'fecha_calibracion' => 'required', 'fecha_proximo' => 'required', 'input-file-0' => 'required');
             $validator = Validator::make(Input::all(), $rules, $messages, $attributes);
             if ($validator->fails()) {
                 return Redirect::to('equipos/create_equipo')->withErrors($validator)->withInput(Input::all());
             } else {
                 $activo = new Activo();
                 $activo->codigo_patrimonial = Input::get('codigo_patrimonial');
                 $activo->numero_serie = Input::get('numero_serie');
                 $activo->anho_adquisicion = date('Y-m-d', strtotime(Input::get('fecha_adquisicion')));
                 $activo->garantia = Input::get('garantia');
                 $activo->fecha_garantia_fin = Carbon\Carbon::createFromFormat('Y-m-d', $activo->anho_adquisicion)->addMonths($activo->garantia);
                 $activo->codigo_compra = Input::get('codigo_compra');
                 $activo->idgrupo = Input::get('grupo');
                 $activo->idmodelo_equipo = Input::get('modelo');
                 $activo->idservicio = Input::get('servicio_clinico');
                 $activo->idproveedor = Input::get('proveedor');
                 $activo->idreporte_instalacion = Input::get('idreporte_instalacion');
                 $activo->idestado = 3;
                 $activo->idubicacion_fisica = Input::get('ubicacion_fisica');
                 $activo->costo = Input::get('costo');
                 $activo->save();
                 /* Registrar reporte de calibracion */
                 $reporte_calibracion = new ReporteCalibracion();
                 $reporte_controller = new ReportesCalibracionController();
                 $reporte_calibracion->codigo_abreviatura = "RC";
                 $reporte_calibracion->codigo_correlativo = $reporte_controller->getCorrelativeReportNumber();
                 $reporte_calibracion->codigo_anho = date('y');
                 $reporte_calibracion->idactivo = $activo->idactivo;
                 $reporte_calibracion->fecha_calibracion = date("Y-m-d", strtotime(Input::get('fecha_calibracion')));
                 $reporte_calibracion->fecha_proxima_calibracion = date("Y-m-d", strtotime(Input::get('fecha_proximo')));
                 $reporte_calibracion->idestado = 27;
                 $reporte_calibracion->save();
                 if (Input::hasFile('input-file-0')) {
                     $archivo = Input::file('input-file-0');
                     $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();
                 }
                 return Redirect::to('equipos/list_equipos')->with('message', 'Se registró correctamente el activo.');
             }
         } else {
             return View::make('error/error', $data);
         }
     } else {
         return View::make('error/error', $data);
     }
 }