public function objetivosPlan($plan_id) { if (strpos($_SERVER['REQUEST_URI'], "verbloqueados")) { $objetivos = \Ermtool\Objective::where('strategic_plan_id', $plan_id)->where('status', 1)->get(); } else { $objetivos = \Ermtool\Objective::where('strategic_plan_id', $plan_id)->where('status', 0)->get(); } //seleccionamos todos los datos del plan para mostrarlo $datos_plan = \Ermtool\Strategic_plan::find($plan_id); $nombre_organizacion = \Ermtool\Organization::name($datos_plan->organization_id); $i = 0; //para saber si hay objetivos $objectives = array(); //almacenará los objetivos con el formato correcto de sus atributos foreach ($objetivos as $objetivo) { //damos formato a fecha expiración if ($objetivo['expiration_date'] == NULL or $objetivo['expiration_date'] == "0000-00-00") { $fecha_exp = NULL; } else { $expiration_date = new DateTime($objetivo['expiration_date']); $fecha_exp = date_format($expiration_date, 'd-m-Y'); } //damos formato a fecha creación if ($objetivo['created_at'] != NULL) { $fecha_creacion = date_format($objetivo['created_at'], "d-m-Y"); } else { $fecha_creacion = NULL; } //damos formato a fecha de actualización if ($objetivo['updated_at'] != NULL) { $fecha_act = date_format($objetivo['updated_at'], "d-m-Y"); } else { $fecha_act = NULL; } //damos formato a categoría de objetivo if ($objetivo['objective_category_id'] == NULL) { $categoria = NULL; } else { $categoria = \Ermtool\Objective_category::where('id', $objetivo['objective_category_id'])->value('name'); } if ($objetivo['perspective'] == NULL) { $perspective = NULL; } else { $perspective = $objetivo['perspective']; } $objectives[$i] = array('id' => $objetivo['id'], 'nombre' => $objetivo['name'], 'descripcion' => $objetivo['description'], 'fecha_creacion' => $fecha_creacion, 'fecha_act' => $fecha_act, 'fecha_exp' => $fecha_exp, 'categoria' => $categoria, 'estado' => $objetivo['status'], 'perspective' => $perspective); $i += 1; } if (Session::get('languaje') == 'en') { return view('en.datos_maestros.objetivos.index', ['objetivos' => $objectives, 'nombre_organizacion' => $nombre_organizacion, 'datos_plan' => $datos_plan, 'probador' => $i, 'strategic_plan_id' => $plan_id]); } else { return view('datos_maestros.objetivos.index', ['objetivos' => $objectives, 'nombre_organizacion' => $nombre_organizacion, 'datos_plan' => $datos_plan, 'probador' => $i, 'strategic_plan_id' => $plan_id]); } }
/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { //print_r($_GET); switch ($_GET['kind']) { case 1: //archivos de controles if ($_GET['control_type'] == 0) { $controls = \Ermtool\Control::getProcessesControls($_GET['organization_id']); } else { if ($_GET['control_type'] == 1) { $controls = \Ermtool\Control::getBussinessControls($_GET['organization_id']); } } $i = 0; $org_name = \Ermtool\Organization::name($_GET['organization_id']); //recorremos los controles para ver cuales tienen archivos $controls2 = array(); foreach ($controls as $control) { $files = Storage::files('controles/' . $control->id); //vemos si existe la carpeta (si existe es porque tiene archivos) if ($files != NULL) { //obtenemos los riesgos asociados a este control $risks = \Ermtool\Risk::getRisksFromControl($control->id, $_GET['control_type']); $controls2[$i] = ['name' => $control->name, 'description' => $control->description, 'risks' => $risks, 'files' => $files]; $i += 1; } } if (Session::get('languaje') == 'en') { return view('en.documentos.show', ['elements' => $controls2, 'kind' => $_GET['kind'], 'control_type' => $_GET['control_type'], 'org_name' => $org_name]); } else { return view('documentos.show', ['elements' => $controls2, 'kind' => $_GET['kind'], 'control_type' => $_GET['control_type'], 'org_name' => $org_name]); } break; case 2: //hallazgos //$files = Storage::files('evidencias_hallazgos'); //obtenemos id de los issues que son del tipo "kind_issue" switch ($_GET['kind_issue']) { case 0: //obtenemos issues de proceso $processes = \Ermtool\Process::getProcessFromIssues($_GET['organization_id']); $process_issues = array(); //se guardaran los procesos que tienen issues que además tienen documentos $i = 0; foreach ($processes as $process) { //obtenemos issues del proceso $issues = \Ermtool\Issue::getProcessIssues($process->id); $issues2 = array(); //array donde se guardaran los issues que tienen documentos //recorremos los issues para ver por cada uno si posee archivos $j = 0; foreach ($issues as $issue) { $files = Storage::files('evidencias_hallazgos/' . $issue->id); //vemos si existe la carpeta (si existe es porque tiene archivos) if ($files != NULL) { $issues2[$j] = ['name' => $issue->name, 'description' => $issue->description, 'classification' => $issue->classification, 'recommendations' => $issue->recommendations, 'files' => $files]; $j += 1; } //else //{ // echo 'el issue ' . $issue->id . ' no tiene evidencia<br>'; //} } //ahora guardamos solo aquellos procesos que tienen documentos asociados if (!empty($issues2)) { $process_issues[$i] = ['name' => $process->name, 'description' => $process->description, 'issues' => $issues2]; $i += 1; } } if (Session::get('languaje') == 'en') { return view('en.documentos.show', ['elements' => $process_issues, 'kind2' => $_GET['kind_issue']]); } else { return view('documentos.show', ['elements' => $process_issues, 'kind2' => $_GET['kind_issue']]); } break; case 1: //issues de subprocesos $subprocesses = \Ermtool\Subprocess::getSubprocessFromIssues($_GET['organization_id']); $subprocess_issues = array(); //se guardaran los subprocesos que tienen issues que además tienen documentos $i = 0; foreach ($subprocesses as $subprocess) { //obtenemos issues del proceso $issues = \Ermtool\Issue::getSubprocessIssuesBySubprocess($subprocess->id); $issues2 = array(); //array donde se guardaran los issues que tienen documentos //recorremos los issues para ver por cada uno si posee archivos $j = 0; foreach ($issues as $issue) { $files = Storage::files('evidencias_hallazgos/' . $issue->id); //vemos si existe la carpeta (si existe es porque tiene archivos) if ($files != NULL) { $issues2[$j] = ['name' => $issue->name, 'description' => $issue->description, 'classification' => $issue->classification, 'recommendations' => $issue->recommendations, 'files' => $files]; $j += 1; } } //ahora guardamos solo aquellos subprocesos que tienen documentos asociados if (!empty($issues2)) { $subprocess_issues[$i] = ['name' => $subprocess->name, 'description' => $subprocess->description, 'issues' => $issues2, 'process' => $subprocess->process_name]; $i += 1; } } if (Session::get('languaje') == 'en') { return view('en.documentos.show', ['elements' => $subprocess_issues, 'kind2' => $_GET['kind_issue']]); } else { return view('documentos.show', ['elements' => $subprocess_issues, 'kind2' => $_GET['kind_issue']]); } break; case 2: //issues de organización $issues = \Ermtool\Organization::find($_GET['organization_id'])->issues; $org_name = \Ermtool\Organization::name($_GET['organization_id']); $org_description = \Ermtool\Organization::description($_GET['organization_id']); $issues2 = array(); //array donde se guardaran los issues que tienen documentos //recorremos los issues para ver por cada uno si posee archivos $j = 0; foreach ($issues as $issue) { $files = Storage::files('evidencias_hallazgos/' . $issue->id); //vemos si existe la carpeta (si existe es porque tiene archivos) if ($files != NULL) { $issues2[$j] = ['name' => $issue['name'], 'description' => $issue['description'], 'classification' => $issue['classification'], 'recommendations' => $issue['recommendations'], 'files' => $files]; $j += 1; } } if (Session::get('languaje') == 'en') { return view('en.documentos.show', ['issues' => $issues2, 'org_name' => $org_name, 'org_description' => $org_description, 'kind2' => $_GET['kind_issue']]); } else { return view('documentos.show', ['issues' => $issues2, 'org_name' => $org_name, 'org_description' => $org_description, 'kind2' => $_GET['kind_issue']]); } break; case 3: //issues de control de proceso $controls = \Ermtool\Control::getProcessesControlsFromIssues($_GET['organization_id']); $controls_issues = array(); //se guardaran los controles que tienen issues que además tienen documentos $i = 0; foreach ($controls as $control) { //obtenemos issues del control $issues = \Ermtool\Issue::getControlIssues($control->id); $issues2 = array(); //array donde se guardaran los issues que tienen documentos //recorremos los issues para ver por cada uno si posee archivos $j = 0; foreach ($issues as $issue) { $files = Storage::files('evidencias_hallazgos/' . $issue->id); //vemos si existe la carpeta (si existe es porque tiene archivos) if ($files != NULL) { $issues2[$j] = ['name' => $issue->name, 'description' => $issue->description, 'classification' => $issue->classification, 'recommendations' => $issue->recommendations, 'files' => $files]; $j += 1; } } //ahora guardamos solo aquellos controles que tienen documentos asociados if (!empty($issues2)) { $control_issues[$i] = ['name' => $control->name, 'description' => $control->description, 'issues' => $issues2]; $i += 1; } } if (Session::get('languaje') == 'en') { return view('en.documentos.show', ['elements' => $control_issues, 'kind2' => $_GET['kind_issue']]); } else { return view('documentos.show', ['elements' => $control_issues, 'kind2' => $_GET['kind_issue']]); } break; case 4: //issues de control de entidad $controls = \Ermtool\Control::getObjectivesControlsFromIssues($_GET['organization_id']); $control_issues = array(); //se guardaran los controles que tienen issues que además tienen documentos $i = 0; foreach ($controls as $control) { //obtenemos issues del control $issues = \Ermtool\Issue::getControlIssues($control->id); $issues2 = array(); //array donde se guardaran los issues que tienen documentos //recorremos los issues para ver por cada uno si posee archivos $j = 0; foreach ($issues as $issue) { $files = Storage::files('evidencias_hallazgos/' . $issue->id); //vemos si existe la carpeta (si existe es porque tiene archivos) if ($files != NULL) { $issues2[$j] = ['name' => $issue->name, 'description' => $issue->description, 'classification' => $issue->classification, 'recommendations' => $issue->recommendations, 'files' => $files]; $j += 1; } } //ahora guardamos solo aquellos controles que tienen documentos asociados if (!empty($issues2)) { $control_issues[$i] = ['name' => $control->name, 'description' => $control->description, 'issues' => $issues2]; $i += 1; } } if (Session::get('languaje') == 'en') { return view('en.documentos.show', ['elements' => $control_issues, 'kind2' => $_GET['kind_issue']]); } else { return view('documentos.show', ['elements' => $control_issues, 'kind2' => $_GET['kind_issue']]); } break; case 5: //issues de programas de auditoría //(audit_audit_plan_audit_program) $audit_programs = \Ermtool\Audit_program::getProgramsFromIssues($_GET['organization_id']); $audit_program_issues = array(); //se guardaran los programas que tienen issues que además tienen documentos $i = 0; foreach ($audit_programs as $audit_program) { //obtenemos issues del programa $issues = \Ermtool\Issue::getAuditProgramIssues($audit_program->id); $issues2 = array(); //array donde se guardaran los issues que tienen documentos //recorremos los issues para ver por cada uno si posee archivos $j = 0; foreach ($issues as $issue) { $files = Storage::files('evidencias_hallazgos/' . $issue->id); //vemos si existe la carpeta (si existe es porque tiene archivos) if ($files != NULL) { $issues2[$j] = ['name' => $issue->name, 'description' => $issue->description, 'classification' => $issue->classification, 'recommendations' => $issue->recommendations, 'files' => $files]; $j += 1; } } //ahora guardamos solo aquellos controles que tienen documentos asociados if (!empty($issues2)) { $audit_program_issues[$i] = ['name' => $audit_program->name, 'description' => $audit_program->description, 'issues' => $issues2]; $i += 1; } } if (Session::get('languaje') == 'en') { return view('en.documentos.show', ['elements' => $audit_program_issues, 'kind2' => $_GET['kind_issue']]); } else { return view('documentos.show', ['elements' => $audit_program_issues, 'kind2' => $_GET['kind_issue']]); } break; case 6: //issues de auditoría //(audit_audit_plan) $audits = \Ermtool\Audit::getAuditsFromIssues($_GET['organization_id']); $audit_issues = array(); //se guardaran las auditorías que tienen issues que además tienen documentos $i = 0; foreach ($audits as $audit) { //obtenemos issues de la auditoría $issues = \Ermtool\Issue::getAuditIssues($audit->id); $issues2 = array(); //array donde se guardaran los issues que tienen documentos //recorremos los issues para ver por cada uno si posee archivos $j = 0; foreach ($issues as $issue) { $files = Storage::files('evidencias_hallazgos/' . $issue->id); //vemos si existe la carpeta (si existe es porque tiene archivos) if ($files != NULL) { $issues2[$j] = ['name' => $issue->name, 'description' => $issue->description, 'classification' => $issue->classification, 'recommendations' => $issue->recommendations, 'files' => $files]; $j += 1; } } //ahora guardamos solo aquellos controles que tienen documentos asociados if (!empty($issues2)) { $audit_issues[$i] = ['audit_plan' => $audit->audit_plan, 'name' => $audit->name, 'description' => $audit->description, 'issues' => $issues2]; $i += 1; } } if (Session::get('languaje') == 'en') { return view('en.documentos.show', ['elements' => $audit_issues, 'kind2' => $_GET['kind_issue']]); } else { return view('documentos.show', ['elements' => $audit_issues, 'kind2' => $_GET['kind_issue']]); } break; default: # code... break; } break; case 3: //notas $notes = \Ermtool\Note::getNotes($_GET['organization_id'], $_GET['audit_plan_id']); $i = 0; //recorremos las notas para ver cuales tienen archivos $notes2 = array(); foreach ($notes as $note) { //obtenemos posibles respuestas $answers = \Ermtool\Note::find($note->id)->notes_answers; $j = 0; $answers2 = array(); foreach ($answers as $ans) { $files1 = Storage::files('evidencias_resp_notas/' . $ans->id); if ($files1 != NULL) { //seteamos fecha $created_at = date_format($ans['created_at'], 'd-m-Y'); $answers2[$j] = ['answer' => $ans['answer'], 'created_at' => $created_at, 'files' => $files1]; $j += 1; } } $files = Storage::files('evidencias_notas/' . $note->id); //vemos si existe la carpeta (si existe es porque tiene archivos) if ($files != NULL) { $notes2[$j] = ['name' => $note->name, 'description' => $note->description, 'files' => $files, 'answers' => $answers2]; $i += 1; } //puede ser que la respuesta tenga archivos } if (Session::get('languaje') == 'en') { return view('en.documentos.show', ['elements' => $notes2, 'kind' => $_GET['kind']]); } else { return view('documentos.show', ['elements' => $notes2, 'kind' => $_GET['kind']]); } break; case 4: //programas $programs = \Ermtool\Audit_program::getPrograms($_GET['organization_id'], $_GET['audit_plan_id']); $plan = \Ermtool\Audit_plan::name($_GET['audit_plan_id']); $i = 0; //recorremos los programas para ver cuales tienen archivos $programs2 = array(); foreach ($programs as $program) { $files = Storage::files('programas_auditoria/' . $program->id); //vemos si existe la carpeta (si existe es porque tiene archivos) if ($files != NULL) { $programs2[$i] = ['audit' => $program->audit, 'name' => $program->name, 'description' => $program->description, 'files' => $files]; $i += 1; } } if (Session::get('languaje') == 'en') { return view('en.documentos.show', ['elements' => $programs2, 'kind' => $_GET['kind'], 'audit_plan' => $plan]); } else { return view('documentos.show', ['elements' => $programs2, 'kind' => $_GET['kind'], 'audit_plan' => $plan]); } break; case 5: //pruebas $tests = \Ermtool\Audit_test::getTests($_GET['organization_id'], $_GET['audit_plan_id']); $plan = \Ermtool\Audit_plan::name($_GET['audit_plan_id']); $i = 0; //recorremos los programas para ver cuales tienen archivos $tests2 = array(); foreach ($tests as $test) { $files = Storage::files('pruebas_auditoria/' . $test->id); //vemos si existe la carpeta (si existe es porque tiene archivos) if ($files != NULL) { $tests2[$i] = ['audit' => $test->audit, 'program' => $test->program, 'name' => $test->name, 'description' => $test->description, 'files' => $files]; $i += 1; } } if (Session::get('languaje') == 'en') { return view('en.documentos.show', ['elements' => $tests2, 'kind' => $_GET['kind'], 'audit_plan' => $plan]); } else { return view('documentos.show', ['elements' => $tests2, 'kind' => $_GET['kind'], 'audit_plan' => $plan]); } break; default: break; } }
/** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function kpiEdit($id) { if (Auth::guest()) { return view('login'); } else { $obj_selected = array(); $kpi = \Ermtool\kpi::find($id); //obtenemos todos los objetivos de la organización $objectives = \Ermtool\Objective::where('organization_id', '=', $_GET['org_id'])->where('status', 0)->lists('name', 'id'); $org_selected = \Ermtool\Organization::name($_GET['org_id']); $stakeholders = \Ermtool\Stakeholder::where('status', 0)->select('id', DB::raw('CONCAT(name, " ", surnames) AS full_name'))->orderBy('name')->lists('full_name', 'id'); //obtenemos los objetivos relacionados al kpi $objs = DB::table('kpi_objective')->where('kpi_id', '=', $kpi->id)->select('objective_id')->get(); $i = 0; foreach ($objs as $obj) { $obj_selected[$i] = $obj->objective_id; $i += 1; } if (Session::get('languaje') == 'en') { return view('en.gestion_estrategica.editkpi', ['objectives' => $objectives, 'org_selected' => $org_selected, 'org_id' => $_GET['org_id'], 'stakeholders' => $stakeholders, 'obj_selected' => $obj_selected, 'kpi' => $kpi]); } else { return view('gestion_estrategica.editkpi', ['objectives' => $objectives, 'org_selected' => $org_selected, 'org_id' => $_GET['org_id'], 'stakeholders' => $stakeholders, 'obj_selected' => $obj_selected, 'kpi' => $kpi]); } } }