Beispiel #1
0
 public static function getOrigin($kind, $id, $org_id)
 {
     if ($kind == 0) {
         $origin = DB::table('processes')->join('subprocesses', 'subprocesses.process_id', '=', 'processes.id')->join('risk_subprocess', 'risk_subprocess.subprocess_id', '=', 'subprocesses.id')->where('risk_subprocess.id', '=', $id)->select('processes.name')->first();
     } else {
         if ($kind == 1) {
             $origin = DB::table('subprocesses')->join('risk_subprocess', 'risk_subprocess.subprocess_id', '=', 'subprocesses.id')->where('risk_subprocess.id', '=', $id)->select('subprocesses.name')->first();
         } else {
             if ($kind == 2) {
                 $origin = \Ermtool\Organization::find($org_id);
             } else {
                 if ($kind == 3) {
                     $origin = DB::table('controls')->join('control_risk_subprocess', 'control_risk_subprocess.control_id', '=', 'controls.id')->where('control_risk_subprocess.id', '=', $id)->select('controls.name')->first();
                 } else {
                     if ($kind == 4) {
                         $origin = DB::table('controls')->join('control_objective_risk', 'control_objective_risk.control_id', '=', 'controls.id')->where('control_objective_risk.id', '=', $id)->select('controls.name')->first();
                     } else {
                         if ($kind == 5) {
                             $origin = DB::table('audit_programs')->join('audit_audit_plan_audit_program', 'audit_audit_plan_audit_program.audit_program_id', '=', 'audit_programs.id')->where('audit_audit_plan_audit_program.id', '=', $id)->select('audit_programs.name')->first();
                         } else {
                             if ($kind == 6) {
                                 $origin = DB::table('audits')->join('audit_audit_plan', 'audit_audit_plan.audit_id', '=', 'audits.id')->join('audit_plans', 'audit_plans.id', '=', 'audit_audit_plan.audit_plan_id')->where('audit_audit_plan.id', '=', $id)->select(DB::raw('CONCAT(audit_plans.name, " - ", audits.name) AS name'))->first();
                             }
                         }
                     }
                 }
             }
         }
     }
     return $origin->name;
 }
Beispiel #2
0
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         //hacemos variable id como variable global
         global $id1;
         $id1 = $id;
         DB::transaction(function () {
             $organization = \Ermtool\Organization::find($GLOBALS['id1']);
             $fecha_creacion = $organization->created_at;
             $fecha_exp = NULL;
             //vemos si tiene organización padre
             if ($_POST['organization_id'] != "") {
                 $organizacion_padre = $_POST['organization_id'];
             } else {
                 $organizacion_padre = NULL;
             }
             if ($_POST['mision'] != "") {
                 $mision = $_POST['mision'];
             } else {
                 $mision = NULL;
             }
             if ($_POST['vision'] != "") {
                 $vision = $_POST['vision'];
             } else {
                 $vision = NULL;
             }
             if ($_POST['target_client'] != "") {
                 $target_client = $_POST['target_client'];
             } else {
                 $target_client = NULL;
             }
             $organization->name = $_POST['name'];
             $organization->description = $_POST['description'];
             $organization->expiration_date = $_POST['expiration_date'];
             $organization->shared_services = $_POST['shared_services'];
             $organization->organization_id = $organizacion_padre;
             $organization->mision = $mision;
             $organization->vision = $vision;
             $organization->target_client = $target_client;
             $organization->save();
             if (Session::get('languaje') == 'en') {
                 Session::flash('message', 'Organization update successfully');
             } else {
                 Session::flash('message', 'Organización actualizada correctamente');
             }
         });
         return Redirect::to('/organization');
     }
 }
Beispiel #3
0
 public function getStakeholders($org)
 {
     $results = array();
     $stakeholders = \Ermtool\Organization::find($org)->stakeholders;
     $i = 0;
     foreach ($stakeholders as $stake) {
         $results[$i] = ['rut' => $stake['id'], 'fullname' => $stake['name'] . ' ' . $stake['surnames']];
         $i += 1;
     }
     return json_encode($results);
 }
Beispiel #4
0
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         global $id1;
         $id1 = $id;
         DB::transaction(function () {
             $subproceso = \Ermtool\Subprocess::find($GLOBALS['id1']);
             //vemos si tiene subproceso padre
             if ($_POST['subprocess_id'] != "") {
                 $subprocess_id = $_POST['subprocess_id'];
             } else {
                 $subprocess_id = NULL;
             }
             $subproceso->name = $_POST['name'];
             $subproceso->description = $_POST['description'];
             $subproceso->expiration_date = $_POST['expiration_date'];
             $subproceso->process_id = $_POST['process_id'];
             $subproceso->subprocess_id = $subprocess_id;
             //deberemos quitar las relaciones, y luego agregar las nuevas para este subproceso
             //primero eliminaremos todas las relaciones de organizaciones con subprocesos donde el subproceso sea el que se está editando
             $org_sub = DB::table('organization_subprocess')->where('subprocess_id', $GLOBALS['id1'])->lists('organization_id');
             foreach ($org_sub as $organization_id) {
                 $subproceso->organizations()->detach($organization_id);
             }
             //ahora agregamos las relaciones con las nuevas organizaciones
             foreach ($_POST['organization_id'] as $organization_id) {
                 $organization = \Ermtool\Organization::find($organization_id);
                 //agregamos la relación (para agregar en atributos)
                 $organization->subprocesses()->attach($GLOBALS['id1']);
             }
             $subproceso->save();
             if (Session::get('languaje') == 'en') {
                 Session::flash('message', 'Subprocess successfully updated');
             } else {
                 Session::flash('message', 'Subproceso actualizado correctamente');
             }
         });
         return Redirect::to('/subprocesos');
     }
 }
Beispiel #5
0
 /**
  * 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;
     }
 }
Beispiel #6
0
 public function getPlanes($org)
 {
     return json_encode(\Ermtool\Organization::find($org)->audit_plans);
 }
Beispiel #7
0
 public function index2()
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         $organizations = \Ermtool\Organization::where('status', 0)->lists('name', 'id');
         $org = \Ermtool\Organization::find($_GET['organization_id']);
         $riesgos = array();
         $relacionados = array();
         $i = 0;
         //contador de riesgos
         $riesgos_temp1 = DB::table('risks')->join('risk_subprocess', 'risk_subprocess.risk_id', '=', 'risks.id')->join('organization_subprocess', 'organization_subprocess.subprocess_id', '=', 'risk_subprocess.subprocess_id')->where('organization_subprocess.organization_id', '=', $_GET['organization_id'])->where('risks.type2', '=', 1)->groupBy('risks.id')->select('risks.*')->get();
         //Selecciona todos los riesgos ya identificados de la org seleccionada
         $riesgos_temp2 = DB::table('risks')->join('objective_risk', 'objective_risk.risk_id', '=', 'risks.id')->join('objectives', 'objectives.id', '=', 'objective_risk.objective_id')->where('objectives.organization_id', '=', $_GET['organization_id'])->where('risks.type2', '=', 1)->groupBy('risks.id')->select('risks.*')->get();
         $riesgos2 = array_merge($riesgos_temp1, $riesgos_temp2);
         //juntamos todos los riesgos de la org.
         $j = 0;
         //contador de subprocesos u objetivos relacionados
         foreach ($riesgos2 as $riesgo) {
             //damos formato a tipo de riesgo
             if ($riesgo->type == 0) {
                 $tipo = 0;
                 //primero obtenemos subprocesos relacionados
                 //$subprocesses = \Ermtool\Risk::find($riesgo['id'])->subprocesses;
                 $subprocesses = DB::table('subprocesses')->join('risk_subprocess', 'risk_subprocess.subprocess_id', '=', 'subprocesses.id')->join('organization_subprocess', 'organization_subprocess.subprocess_id', '=', 'subprocesses.id')->where('risk_subprocess.risk_id', '=', $riesgo->id)->where('organization_subprocess.organization_id', '=', $_GET['organization_id'])->select('subprocesses.name', 'subprocesses.id')->get();
                 foreach ($subprocesses as $subprocess) {
                     //agregamos org_name ya que este estará identificado si el riesgo es de negocio
                     $relacionados[$j] = array('risk_id' => $riesgo->id, 'id' => $subprocess->id, 'nombre' => $subprocess->name);
                     $j += 1;
                 }
             } else {
                 if ($riesgo->type == 1) {
                     $tipo = 1;
                     //primero obtenemos objetivos relacionados
                     //$objectives = \Ermtool\Risk::find($riesgo['id'])->objectives;
                     $objectives = DB::table('objectives')->join('objective_risk', 'objective_risk.objective_id', '=', 'objectives.id')->where('objective_risk.risk_id', '=', $riesgo->id)->where('objectives.organization_id', '=', $_GET['organization_id'])->select('objectives.name', 'objectives.id')->get();
                     foreach ($objectives as $objective) {
                         //obtenemos organización
                         //$org = \Ermtool\Organization::where('id',$objective['organization_id'])->value('name');
                         $relacionados[$j] = array('risk_id' => $riesgo->id, 'id' => $objective->id, 'nombre' => $objective->name);
                         $j += 1;
                     }
                 }
             }
             //damos formato a fecha de creación (se verifica si no es NULL en caso de algún error en la creación)
             if ($riesgo->created_at == NULL or $riesgo->created_at == "0000-00-00" or $riesgo->created_at == "") {
                 $fecha_creacion = NULL;
             } else {
                 $fecha_creacion = new DateTime($riesgo->created_at);
                 $fecha_creacion = date_format($fecha_creacion, "d-m-Y");
             }
             //damos formato a fecha expiración
             if ($riesgo->expiration_date == NULL or $riesgo->expiration_date == "0000-00-00") {
                 $fecha_exp = NULL;
             } else {
                 $expiration_date = new DateTime($riesgo->expiration_date);
                 $fecha_exp = date_format($expiration_date, 'd-m-Y');
             }
             //damos formato a fecha de actualización
             if ($riesgo->updated_at != NULL) {
                 $fecha_act = new DateTime($riesgo->updated_at);
                 $fecha_act = date_format($fecha_act, "d-m-Y");
             }
             //obtenemos nombre de categoría
             $categoria = \Ermtool\Risk_category::where('id', $riesgo->risk_category_id)->value('name');
             //obtenemos causas si es que tiene
             $causes = DB::table('cause_risk')->join('causes', 'causes.id', '=', 'cause_risk.cause_id')->where('cause_risk.risk_id', '=', $riesgo->id)->select('causes.name')->get();
             if ($causes) {
                 $causas = array();
                 $k = 0;
                 foreach ($causes as $cause) {
                     $causas[$j] = $cause->name;
                     $k += 1;
                 }
             } else {
                 $causas = NULL;
             }
             $stakeholder = DB::table('stakeholders')->where('id', $riesgo->stakeholder_id)->select('name', 'surnames')->first();
             if (!$stakeholder) {
                 if (Session::get('languaje') == 'en') {
                     $stakeholder = (object) array('name' => 'No', 'surnames' => 'specified');
                 } else {
                     $stakeholder = (object) array('name' => 'No', 'surnames' => 'especificado');
                 }
             }
             //obtenemos efectos si es que existen
             $effects = DB::table('effect_risk')->join('effects', 'effects.id', '=', 'effect_risk.effect_id')->where('effect_risk.risk_id', '=', $riesgo->id)->select('effects.name')->get();
             if ($effects) {
                 $efectos = array();
                 $k = 0;
                 foreach ($effects as $effect) {
                     $efectos[$j] = $effect->name;
                     $k += 1;
                 }
             } else {
                 $efectos = NULL;
             }
             $riesgos[$i] = array('id' => $riesgo->id, 'nombre' => $riesgo->name, 'descripcion' => $riesgo->description, 'tipo' => $tipo, 'fecha_creacion' => $fecha_creacion, 'stakeholder' => $stakeholder->name . ' ' . $stakeholder->surnames, 'fecha_exp' => $fecha_exp, 'categoria' => $categoria, 'causas' => $causas, 'efectos' => $efectos);
             $i += 1;
         }
         if (Session::get('languaje') == 'en') {
             return view('en.riesgos.index', ['riesgos' => $riesgos, 'relacionados' => $relacionados, 'organizations' => $organizations, 'org_selected' => $org->name, 'org_id' => $org->id]);
         } else {
             return view('riesgos.index', ['riesgos' => $riesgos, 'relacionados' => $relacionados, 'organizations' => $organizations, 'org_selected' => $org->name, 'org_id' => $org->id]);
         }
         //return json_encode(['riesgos'=>$riesgos,'relacionados'=>$relacionados]);
         //print_r($relacionados);
     }
 }