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 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); } }