Пример #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;
 }
Пример #2
0
 public function enviar(Request $request)
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         if (isset($_GET['aplicar'])) {
             //$tipo = Request::input('destinatarios');
             if ($request['destinatarios'] == 0) {
                 //seleccionamos lista de stakeholders
                 $dest = \Ermtool\Stakeholder::select('id', DB::raw('CONCAT(name, " ", surnames) AS full_name'))->orderBy('name')->lists('full_name', 'id');
             } else {
                 if ($request['destinatarios'] == 1) {
                     $dest = \Ermtool\Organization::lists('name', 'id');
                 } else {
                     if ($request['destinatarios'] == 2) {
                         $dest = \Ermtool\Role::lists('name', 'id');
                     }
                 }
             }
             $encuesta = \Ermtool\Poll::find($request['encuesta']);
             //obtenemos preguntas
             $preguntas = DB::table('questions')->where('poll_id', '=', $encuesta['id'])->get();
             $answers = array();
             //almacenaremos aquí respuestas posibles para las preguntas
             $i = 0;
             //contador de respuestas
             foreach ($preguntas as $pregunta) {
                 if ($pregunta->answers_type != 0) {
                     $posible_answers = DB::table('posible_answers')->where('question_id', $pregunta->id)->get();
                     foreach ($posible_answers as $posible_answer) {
                         $answers[$i] = array('id' => $posible_answer->id, 'respuesta' => $posible_answer->answer, 'question_id' => $posible_answer->question_id);
                         $i += 1;
                     }
                 }
             }
             if (Session::get('languaje') == 'en') {
                 return view('en.identificacion_eventos_riesgos.enviarencuesta2', ['tipo' => $request['destinatarios'], 'dest' => $dest, 'encuesta' => $encuesta, 'preguntas' => $preguntas, 'respuestas' => $answers, 'mensaje' => $this->mensaje($encuesta['id'])]);
             } else {
                 return view('identificacion_eventos_riesgos.enviarencuesta2', ['tipo' => $request['destinatarios'], 'dest' => $dest, 'encuesta' => $encuesta, 'preguntas' => $preguntas, 'respuestas' => $answers, 'mensaje' => $this->mensaje($encuesta['id'])]);
             }
         } else {
             if (isset($_GET['volver'])) {
                 $polls = \Ermtool\Poll::lists('name', 'id');
                 if (Session::get('languaje') == 'en') {
                     return view('en.identificacion_eventos_riesgos.enviarencuesta', ['polls' => $polls]);
                 } else {
                     return view('identificacion_eventos_riesgos.enviarencuesta', ['polls' => $polls]);
                 }
             } else {
                 $polls = \Ermtool\Poll::lists('name', 'id');
                 if (Session::get('languaje') == 'en') {
                     return view('en.identificacion_eventos_riesgos.enviarencuesta', ['polls' => $polls]);
                 } else {
                     return view('identificacion_eventos_riesgos.enviarencuesta', ['polls' => $polls]);
                 }
             }
         }
     }
 }
Пример #3
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');
     }
 }
Пример #4
0
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function edit($id)
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         $org = \Ermtool\Organization::where('id', $_GET['org'])->value('name');
         $org_id = \Ermtool\Organization::where('id', $_GET['org'])->value('id');
         //obtenemos stakeholders de la misma organización
         $stakes = DB::table('stakeholders')->join('organization_stakeholder', 'organization_stakeholder.stakeholder_id', '=', 'stakeholders.id')->where('organization_stakeholder.organization_id', '=', $_GET['org'])->select('stakeholders.id', DB::raw('CONCAT(name, " ", surnames) AS full_name'))->orderBy('name')->lists('full_name', 'id');
         $action_plan = \Ermtool\Action_plan::find($id);
         //obtenemos todos los issues y el issue del plan de acción
         $issue = DB::table('issues')->where('id', '=', $action_plan->issue_id)->select('id', 'name')->first();
         $issues = \Ermtool\Issue::lists('name', 'id');
         if (Session::get('languaje') == 'en') {
             return view('en.planes_accion.edit', ['org' => $org, 'org_id' => $org_id, 'action_plan' => $action_plan, 'stakeholders' => $stakes, 'action_plan' => $action_plan, 'issues' => $issues, 'issue' => $issue]);
         } else {
             return view('planes_accion.edit', ['org' => $org, 'org_id' => $org_id, 'action_plan' => $action_plan, 'stakeholders' => $stakes, 'action_plan' => $action_plan, 'issues' => $issues, 'issue' => $issue]);
         }
     }
 }
Пример #5
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);
 }
Пример #6
0
 public function hallazgos($id)
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         //datos de evaluación de control
         $evaluation = \Ermtool\Control_evaluation::find($id);
         $issues = array();
         $issues1 = \Ermtool\Issue::getIssueByControlEvaluation($id);
         $control_name = \Ermtool\Control::name($evaluation->control_id);
         $iss = new IssuesController();
         //print_r($_POST);
         $i = 0;
         foreach ($issues1 as $issue) {
             if ($issue['plan_description'] != NULL) {
                 $temp = $iss->formatearIssue($issue['id'], $issue['name'], $issue['classification'], $issue['recommendations'], $issue['plan_description'], $issue['plan_status'], $issue['plan_final_date']);
             } else {
                 $temp = $iss->formatearIssue($issue['id'], $issue['name'], $issue['classification'], $issue['recommendations'], NULL, NULL, NULL);
             }
             $issues[$i] = ['id' => $temp['id'], 'name' => $temp['name'], 'classification' => $temp['classification'], 'recommendations' => $temp['recommendations'], 'plan' => $temp['plan'], 'status' => $temp['status'], 'status_origin' => $temp['status_origin'], 'final_date' => $temp['final_date'], 'evidence' => $issue['evidences']];
             $i += 1;
         }
         $org_id = \Ermtool\Organization::getOrganizationIdFromControl($evaluation->control_id);
         if (Session::get('languaje') == 'en') {
             switch ($evaluation->kind) {
                 case 0:
                     $kind = 'Design test';
                     break;
                 case 1:
                     $kind = 'Operational effectiveness test';
                     break;
                 case 2:
                     $kind = 'Sustantive test';
                     break;
                 case 3:
                     $kind = 'Compliance test';
                     break;
                 default:
                     # code...
                     break;
             }
             return view('en.hallazgos.index3', ['issues' => $issues, 'evaluation' => $evaluation, 'org_id' => $org_id, 'kind' => $kind]);
         } else {
             switch ($evaluation->kind) {
                 case 0:
                     $kind = 'Prueba de diseño';
                     break;
                 case 1:
                     $kind = 'Prueba de efectividad operativa';
                     break;
                 case 2:
                     $kind = 'Prueba sustantiva';
                     break;
                 case 3:
                     $kind = 'Prueba de cumplimiento';
                     break;
                 default:
                     # code...
                     break;
             }
             return view('hallazgos.index3', ['issues' => $issues, 'evaluation' => $evaluation, 'control_name' => $control_name, 'org_id' => $org_id, 'kind' => $kind]);
         }
     }
 }
Пример #7
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');
     }
 }
Пример #8
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;
     }
 }
Пример #9
0
 public function generarReporteIssues()
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         //volvemos a obtener lista de organizaciones
         $organizations = \Ermtool\Organization::lists('name', 'id');
         //obtenemos nombre de organización
         $org = \Ermtool\Organization::where('id', $_GET['organization_id'])->value('name');
         $org_id = $_GET['organization_id'];
         $issues = array();
         $issues = $this->getIssues($_GET['kind'], $_GET['organization_id'], 2);
         //print_r($_POST);
         if (Session::get('languaje') == 'en') {
             return view('en.reportes.hallazgos', ['issues' => $issues, 'kind' => $_GET['kind'], 'organizations' => $organizations, 'org' => $org, 'org_id' => $org_id]);
         } else {
             return view('reportes.hallazgos', ['issues' => $issues, 'kind' => $_GET['kind'], 'organizations' => $organizations, 'org' => $org, 'org_id' => $org_id]);
         }
     }
 }
Пример #10
0
 public function evaluacionManual()
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         //obtenemos organizaciones
         $organizations = \Ermtool\Organization::where('status', 0)->lists('name', 'id');
         if (Session::get('languaje') == 'en') {
             return view('en.evaluacion.evaluacion_manual', ['organizations' => $organizations]);
         } else {
             return view('evaluacion.evaluacion_manual', ['organizations' => $organizations]);
         }
     }
 }
Пример #11
0
 public function getPlanes($org)
 {
     return json_encode(\Ermtool\Organization::find($org)->audit_plans);
 }
Пример #12
0
 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]);
     }
 }
 public function generarMatriz($value, $org)
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         $i = 0;
         //contador de controles/subprocesos o controles/objetivos
         $datos = array();
         if (!strstr($_SERVER["REQUEST_URI"], 'genexcel')) {
             $value = $_GET['kind'];
             $org = $_GET['organization_id'];
         }
         //obtenemos controles
         $controls = DB::table('controls')->select('controls.*')->get();
         foreach ($controls as $control) {
             $risk_obj = NULL;
             $risk_sub = NULL;
             // -- seteamos datos --//
             if (Session::get('languaje') == 'en') {
                 if ($control->type === NULL) {
                     $type = "Not defined";
                 } else {
                     //Seteamos type. 0=Manual, 1=Semi-automático, 2=Automático
                     switch ($control->type) {
                         case 0:
                             $type = "Manual";
                             break;
                         case 1:
                             $type = "Semi-automatic";
                             break;
                         case 2:
                             $type = "Automatic";
                     }
                 }
                 if ($control->periodicity === NULL) {
                     $periodicity = "Not defined";
                 } else {
                     //Seteamos periodicity. 0=Diario, 1=Semanal, 2=Mensual, 3=Semestral, 4=Anual
                     switch ($control->periodicity) {
                         case 0:
                             $periodicity = "Daily";
                             break;
                         case 1:
                             $periodicity = "Weekly";
                             break;
                         case 2:
                             $periodicity = "Monthly";
                             break;
                         case 3:
                             $periodicity = "Biannual";
                             break;
                         case 4:
                             $periodicity = "Annual";
                             break;
                         case 5:
                             $periodicity = "Each time it occurs";
                             break;
                     }
                 }
                 if ($control->purpose === NULL) {
                     $purpose = "Not defined";
                 } else {
                     //Seteamos purpose. 0=Preventivo, 1=Detectivo, 2=Correctivo
                     switch ($control->purpose) {
                         case 0:
                             $purpose = "Preventive";
                         case 1:
                             $purpose = "Detective";
                         case 2:
                             $purpose = "Corrective";
                     }
                 }
                 if ($control->expected_cost === NULL) {
                     $expected_cost = "Not defined";
                 } else {
                     $expected_cost = $control->expected_cost;
                 }
                 if ($control->evidence === NULL || $control->evidence == "") {
                     $evidence = "Without evidence";
                 } else {
                     $evidence = $control->evidence;
                 }
                 //Seteamos responsable del control
                 $stakeholder = \Ermtool\Stakeholder::find($control->stakeholder_id);
                 if ($stakeholder) {
                     $stakeholder2 = $stakeholder['name'] . ' ' . $stakeholder['surnames'];
                 } else {
                     $stakeholder2 = "Not assigned";
                 }
             } else {
                 if ($control->type === NULL) {
                     $type = "No definido";
                 } else {
                     //Seteamos type. 0=Manual, 1=Semi-automático, 2=Automático
                     switch ($control->type) {
                         case 0:
                             $type = "Manual";
                             break;
                         case 1:
                             $type = "Semi-automático";
                             break;
                         case 2:
                             $type = "Autom&aacute;tico";
                     }
                 }
                 if ($control->periodicity === NULL) {
                     $periodicity = "No definido";
                 } else {
                     //Seteamos periodicity. 0=Diario, 1=Semanal, 2=Mensual, 3=Semestral, 4=Anual
                     switch ($control->periodicity) {
                         case 0:
                             $periodicity = "Diario";
                             break;
                         case 1:
                             $periodicity = "Semanal";
                             break;
                         case 2:
                             $periodicity = "Mensual";
                             break;
                         case 3:
                             $periodicity = "Semestral";
                             break;
                         case 4:
                             $periodicity = "Anual";
                             break;
                         case 5:
                             $periodicity = "Cada vez que ocurra";
                             break;
                     }
                 }
                 if ($control->purpose === NULL) {
                     $purpose = "No definido";
                 } else {
                     //Seteamos purpose. 0=Preventivo, 1=Detectivo, 2=Correctivo
                     switch ($control->purpose) {
                         case 0:
                             $purpose = "Preventivo";
                         case 1:
                             $purpose = "Detectivo";
                         case 2:
                             $purpose = "Correctivo";
                     }
                 }
                 if ($control->expected_cost === NULL) {
                     $expected_cost = "No definido";
                 } else {
                     $expected_cost = $control->expected_cost;
                 }
                 if ($control->evidence === NULL || $control->evidence == "") {
                     $evidence = "Sin evidencia";
                 } else {
                     $evidence = $control->evidence;
                 }
                 //Seteamos responsable del control
                 $stakeholder = \Ermtool\Stakeholder::find($control->stakeholder_id);
                 if ($stakeholder) {
                     $stakeholder2 = $stakeholder['name'] . ' ' . $stakeholder['surnames'];
                 } else {
                     $stakeholder2 = "No asignado";
                 }
             }
             /* IMPORTANTE!!!
                    Los nombres de las variables serán guardados en español para mostrarlos
                    en el archivo excel que será exportado
                */
             //obtenemos riesgo - objetivo - organización o riesgo - subproceso - organización para cada control
             if ($value == 0) {
                 $risk_subprocess = DB::table('control_risk_subprocess')->join('controls', 'controls.id', '=', 'control_risk_subprocess.control_id')->join('risk_subprocess', 'risk_subprocess.id', '=', 'control_risk_subprocess.risk_subprocess_id')->join('subprocesses', 'subprocesses.id', '=', 'risk_subprocess.subprocess_id')->join('risks', 'risks.id', '=', 'risk_subprocess.risk_id')->join('organization_subprocess', 'organization_subprocess.subprocess_id', '=', 'subprocesses.id')->join('organizations', 'organizations.id', '=', 'organization_subprocess.organization_id')->where('controls.id', '=', $control->id)->where('organizations.id', '=', $org)->select('subprocesses.name as subprocess_name', 'risks.name as risk_name')->get();
                 if ($risk_subprocess != NULL) {
                     $last = end($risk_subprocess);
                     //seteamos cada riesgo, subproceso y organización
                     foreach ($risk_subprocess as $sub_risk) {
                         if ($sub_risk != $last) {
                             if (!strstr($_SERVER["REQUEST_URI"], 'genexcel')) {
                                 $risk_sub .= $sub_risk->risk_name . ' / ' . $sub_risk->subprocess_name . ', &nbsp;';
                             } else {
                                 $risk_sub .= $sub_risk->risk_name . ' / ' . $sub_risk->subprocess_name . ', ';
                             }
                         } else {
                             $risk_sub .= $sub_risk->risk_name . ' / ' . $sub_risk->subprocess_name;
                         }
                     }
                     if (Session::get('languaje') == 'en') {
                         $datos[$i] = ['Control' => $control->name, 'Description' => $control->description, 'Responsable' => $stakeholder2, 'Kind' => $type, 'Periodicity' => $periodicity, 'Purpose' => $purpose, 'Expected_cost' => $expected_cost, 'Evidence' => $evidence, 'Risk_Subprocess' => $risk_sub];
                     } else {
                         $datos[$i] = ['Control' => $control->name, 'Descripción' => $control->description, 'Responsable' => $stakeholder2, 'Tipo' => $type, 'Periodicidad' => $periodicity, 'Propósito' => $purpose, 'Costo_control' => $expected_cost, 'Evidencia' => $evidence, 'Riesgo_Subproceso' => $risk_sub];
                     }
                     $i += 1;
                 }
             } else {
                 if ($value == 1) {
                     //obtenemos riesgos, objetivos y organización
                     $objective_risk = DB::table('control_objective_risk')->join('controls', 'controls.id', '=', 'control_objective_risk.control_id')->join('objective_risk', 'objective_risk.id', '=', 'control_objective_risk.objective_risk_id')->join('objectives', 'objectives.id', '=', 'objective_risk.objective_id')->join('risks', 'risks.id', '=', 'objective_risk.risk_id')->join('organizations', 'organizations.id', '=', 'objectives.organization_id')->where('controls.id', '=', $control->id)->where('organizations.id', '=', $org)->select('objectives.name as objective_name', 'risks.name as risk_name')->get();
                     if ($objective_risk != NULL) {
                         $last = end($objective_risk);
                         //seteamos cada riesgo, objetivo y organización
                         foreach ($objective_risk as $obj_risk) {
                             if ($obj_risk != $last) {
                                 if (!strstr($_SERVER["REQUEST_URI"], 'genexcel')) {
                                     $risk_obj .= $obj_risk->risk_name . ' / ' . $obj_risk->objective_name . ', &nbsp;';
                                 } else {
                                     $risk_obj .= $obj_risk->risk_name . ' / ' . $obj_risk->objective_name . ', ';
                                 }
                             } else {
                                 $risk_obj .= $obj_risk->risk_name . ' / ' . $obj_risk->objective_name;
                             }
                         }
                         if (Session::get('languaje') == 'en') {
                             $datos[$i] = ['Control' => $control->name, 'Description' => $control->description, 'Responsable' => $stakeholder2, 'Kind' => $type, 'Periodicity' => $periodicity, 'Purpose' => $purpose, 'Expected_cost' => $expected_cost, 'Evidence' => $evidence, 'Risk_Objective' => $risk_obj];
                         } else {
                             $datos[$i] = ['Control' => $control->name, 'Descripción' => $control->description, 'Responsable' => $stakeholder2, 'Tipo' => $type, 'Periodicidad' => $periodicity, 'Propósito' => $purpose, 'Costo_control' => $expected_cost, 'Evidencia' => $evidence, 'Riesgo_Objetivo' => $risk_obj];
                         }
                         $i += 1;
                     }
                 }
             }
         }
         if (strstr($_SERVER["REQUEST_URI"], 'genexcel')) {
             return $datos;
         } else {
             $organizations = \Ermtool\Organization::where('status', 0)->lists('name', 'id');
             if (Session::get('languaje') == 'en') {
                 return view('en.reportes.matrices', ['datos' => $datos, 'value' => $value, 'organizations' => $organizations, 'org_selected' => $org]);
             } else {
                 return view('reportes.matrices', ['datos' => $datos, 'value' => $value, 'organizations' => $organizations, 'org_selected' => $org]);
             }
         }
     }
 }
Пример #14
0
 /**
  * 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]);
         }
     }
 }
Пример #15
0
 public function generarMatriz($value, $org)
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         $organizations = \Ermtool\Organization::where('status', 0)->lists('name', 'id');
         if (!strstr($_SERVER["REQUEST_URI"], 'genexcel')) {
             $value = $_GET['kind'];
             $org = $_GET['organization_id'];
         }
         $i = 0;
         //contador de controles/subprocesos o controles/objetivos
         $datos = array();
         if (Session::get('languaje') == 'en') {
             $proba_string = ['Very low', 'Low', 'Medium', 'High', 'Very high'];
             $impact_string = ['Very low', 'Low', 'Medium', 'High', 'Very high'];
         } else {
             $proba_string = ['Muy poco probable', 'Poco probable', 'Intermedio', 'Probable', 'Muy probable'];
             $impact_string = ['Muy poco impacto', 'Poco impacto', 'Intermedio', 'Alto impacto', 'Muy alto impacto'];
         }
         if ($value == 0) {
             //---------- OBS: EXISTE PROBLEMA SI ES QUE EL RIESGO NO CONTIENE CAUSA Y EFECTO --------//
             $risks = DB::table('risk_subprocess')->join('subprocesses', 'subprocesses.id', '=', 'risk_subprocess.subprocess_id')->join('organization_subprocess', 'organization_subprocess.subprocess_id', '=', 'subprocesses.id')->join('processes', 'subprocesses.process_id', '=', 'processes.id')->join('risks', 'risks.id', '=', 'risk_subprocess.risk_id')->join('risk_categories', 'risk_categories.id', '=', 'risks.risk_category_id')->where('risks.type2', '=', 1)->where('organization_subprocess.organization_id', '=', $org)->select('risks.*', 'subprocesses.name as subprocess_name', 'processes.name as process_name', 'risk_categories.name as risk_category_name', 'risk_subprocess.id as risk_subprocess_id')->get();
         } else {
             if ($value == 1) {
                 $risks = DB::table('objective_risk')->join('objectives', 'objectives.id', '=', 'objective_risk.objective_id')->join('risks', 'risks.id', '=', 'objective_risk.risk_id')->join('risk_categories', 'risk_categories.id', '=', 'risks.risk_category_id')->join('organizations', 'organizations.id', '=', 'objectives.organization_id')->where('risks.type2', '=', 1)->where('objectives.organization_id', '=', $org)->select('risks.*', 'objectives.name as objective_name', 'organizations.name as organization_name', 'risk_categories.name as risk_category_name', 'objective_risk.id as objective_risk_id')->get();
             }
         }
         foreach ($risks as $risk) {
             $controles = NULL;
             $causas = NULL;
             $efectos = NULL;
             if (Session::get('languaje') == 'en') {
                 $probabilidad = "No evaluation";
                 $impacto = "No evaluation";
                 $score = "No evaluation";
             } else {
                 $probabilidad = "No tiene evaluación";
                 $impacto = "No tiene evaluación";
                 $score = "No tiene evaluación";
             }
             // -- seteamos datos --//
             //seteamos causa y efecto
             //obtenemos causas
             $causes = DB::table('cause_risk')->join('causes', 'causes.id', '=', 'cause_risk.cause_id')->where('risk_id', '=', $risk->id)->select('causes.name')->get();
             if ($causes) {
                 $last = end($causes);
                 //guardamos final para no agregarle coma
                 foreach ($causes as $cause) {
                     if ($cause != $last) {
                         $causas .= $cause->name . ', ';
                     } else {
                         $causas .= $cause->name;
                     }
                 }
             } else {
                 //se realizarán acá los textos (y no en la vista) para el caso en que se esté exportando a excel
                 if (Session::get('languaje') == 'en') {
                     $causas = "No defined cause";
                 } else {
                     $causas = "No tiene causas definidas";
                 }
             }
             //obtenemos efectos
             $effects = DB::table('effect_risk')->join('effects', 'effects.id', '=', 'effect_risk.effect_id')->where('risk_id', '=', $risk->id)->select('effects.name')->get();
             if ($effects) {
                 $last = end($effects);
                 //guardamos final para no agregarle coma
                 foreach ($effects as $effect) {
                     if ($effect != $last) {
                         $efectos .= $effect->name . ', ';
                     } else {
                         $efectos .= $effect->name;
                     }
                 }
             } else {
                 if (Session::get('languaje') == 'en') {
                     $efectos = "No defined effects";
                 } else {
                     $efectos = "No tiene efectos definidos";
                 }
             }
             if ($value == 0) {
                 //primero obtenemos maxima fecha de evaluacion para el riesgo
                 $fecha = DB::table('evaluation_risk')->join('evaluations', 'evaluations.id', '=', 'evaluation_risk.evaluation_id')->where('evaluation_risk.risk_subprocess_id', '=', $risk->risk_subprocess_id)->max('evaluations.updated_at');
                 //obtenemos proba, impacto y score
                 $eval_risk = DB::table('evaluation_risk')->join('evaluations', 'evaluations.id', '=', 'evaluation_risk.evaluation_id')->where('evaluation_risk.risk_subprocess_id', '=', $risk->risk_subprocess_id)->where('evaluations.updated_at', '=', $fecha)->select('evaluation_risk.avg_probability', 'evaluation_risk.avg_impact')->get();
                 foreach ($eval_risk as $eval) {
                     if ($eval->avg_probability != NULL and $eval->avg_impact != NULL) {
                         $impacto = $eval->avg_impact . ' (' . $impact_string[$eval->avg_impact - 1] . ')';
                         $probabilidad = $eval->avg_probability . ' (' . $proba_string[$eval->avg_probability - 1] . ')';
                         $score = $impacto * $probabilidad;
                     }
                 }
                 //obtenemos controles
                 $controls = DB::table('controls')->join('control_risk_subprocess', 'control_risk_subprocess.control_id', '=', 'controls.id')->join('risk_subprocess', 'risk_subprocess.id', '=', 'control_risk_subprocess.risk_subprocess_id')->join('risks', 'risks.id', '=', 'risk_subprocess.risk_id')->where('risks.id', '=', $risk->id)->select('controls.name')->get();
             } else {
                 if ($value == 1) {
                     //primero obtenemos maxima fecha de evaluacion para el riesgo
                     $fecha = DB::table('evaluation_risk')->join('evaluations', 'evaluations.id', '=', 'evaluation_risk.evaluation_id')->where('evaluation_risk.objective_risk_id', '=', $risk->objective_risk_id)->max('evaluations.updated_at');
                     //obtenemos proba, impacto y score
                     $eval_risk = DB::table('evaluation_risk')->join('evaluations', 'evaluations.id', '=', 'evaluation_risk.evaluation_id')->where('evaluation_risk.objective_risk_id', '=', $risk->objective_risk_id)->where('evaluations.updated_at', '=', $fecha)->select('evaluation_risk.avg_probability', 'evaluation_risk.avg_impact')->get();
                     foreach ($eval_risk as $eval) {
                         $impacto = $eval->avg_impact;
                         $probabilidad = $eval->avg_probability;
                         $score = $impacto * $probabilidad;
                     }
                     //obtenemos controles
                     $controls = DB::table('controls')->join('control_objective_risk', 'control_objective_risk.control_id', '=', 'controls.id')->join('objective_risk', 'objective_risk.id', '=', 'control_objective_risk.objective_risk_id')->join('risks', 'risks.id', '=', 'objective_risk.risk_id')->where('risks.id', '=', $risk->id)->select('controls.name')->get();
                 }
             }
             //seteamos controles
             if ($controls == NULL) {
                 if (Session::get('languaje') == 'en') {
                     $controles = "No controls specified";
                 } else {
                     $controles = "No se han especificado controles";
                 }
             } else {
                 $last = end($controls);
                 //guardamos final para no agregarle coma
                 foreach ($controls as $control) {
                     if ($control != $last) {
                         $controles .= $control->name . ', ';
                     } else {
                         $controles .= $control->name;
                     }
                 }
             }
             /* IMPORTANTE!!!
                    Los nombres de las variables serán guardados en español para mostrarlos
                    en el archivo excel que será exportado
                */
             //damos formato a fecha de creación (se verifica si no es NULL en caso de algún error en la creación)
             if ($risk->created_at == NULL or $risk->created_at == "0000-00-00" or $risk->created_at == "") {
                 if (Session::get('languaje') == 'en') {
                     $fecha_creacion = "Failed to register creation date";
                 } else {
                     $fecha_creacion = "Error al registrar fecha de creaci&oacute;n";
                 }
             } else {
                 //primero sacamos la hora
                 $fecha_temp1 = explode(' ', $risk->created_at);
                 //sacamos solo fecha y ordenamos
                 $fecha_temp2 = explode('-', $fecha_temp1[0]);
                 //ponemos fecha
                 $fecha_creacion = $fecha_temp2[2] . '-' . $fecha_temp2[1] . '-' . $fecha_temp2[0] . ' a las ' . $fecha_temp1[1];
             }
             //damos formato a fecha expiración
             if ($risk->expiration_date == NULL or $risk->expiration_date == "0000-00-00") {
                 if (Session::get('languaje') == 'en') {
                     $expiration_date = "None";
                 } else {
                     $expiration_date = "Ninguna";
                 }
             } else {
                 //sacamos solo fecha y ordenamos
                 $fecha_temp1 = explode('-', $risk->expiration_date);
                 $expiration_date = $fecha_temp1[2] . '-' . $fecha_temp1[1] . '-' . $fecha_temp1[0];
             }
             if ($risk->expected_loss == 0 || $risk->expected_loss == NULL) {
                 if (Session::get('languaje') == 'en') {
                     $expected_loss = "Not assigned expected loss";
                 } else {
                     $expected_loss = "No se ha asignado p&eacute;rdida esperada";
                 }
             } else {
                 $expected_loss = $risk->expected_loss;
             }
             //Seteamos datos
             if ($value == 0) {
                 if (Session::get('languaje') == 'en') {
                     $datos[$i] = ['Process' => $risk->process_name, 'Subprocess' => $risk->subprocess_name, 'Risk' => $risk->name, 'Description' => $risk->description, 'Category' => $risk->risk_category_name, 'Causes' => $causas, 'Effects' => $efectos, 'Expected_loss' => $expected_loss, 'Probability' => $probabilidad, 'Impact' => $impacto, 'Score' => $score, 'Identification_date' => $fecha_creacion, 'Expiration_date' => $expiration_date, 'Controls' => $controles];
                 } else {
                     $datos[$i] = ['Proceso' => $risk->process_name, 'Subproceso' => $risk->subprocess_name, 'Riesgo' => $risk->name, 'Descripción' => $risk->description, 'Categoría' => $risk->risk_category_name, 'Causas' => $causas, 'Efectos' => $efectos, 'Pérdida_esperada' => $expected_loss, 'Probabilidad' => $probabilidad, 'Impacto' => $impacto, 'Score' => $score, 'Fecha_identificación' => $fecha_creacion, 'Fecha_expiración' => $expiration_date, 'Controles' => $controles];
                 }
                 $i += 1;
             } else {
                 if ($value == 1) {
                     if (Session::get('languaje') == 'en') {
                         $datos[$i] = ['Organization' => $risk->organization_name, 'Objective' => $risk->objective_name, 'Risk' => $risk->name, 'Description' => $risk->description, 'Category' => $risk->risk_category_name, 'Causes' => $causas, 'Effects' => $efectos, 'Expected_loss' => $risk->expected_loss, 'Probability' => $probabilidad, 'Impact' => $impacto, 'Score' => $score, 'Identification_date' => $fecha_creacion, 'Expiration_date' => $expiration_date, 'Controls' => $controles];
                     } else {
                         $datos[$i] = ['Organización' => $risk->organization_name, 'Objetivo' => $risk->objective_name, 'Riesgo' => $risk->name, 'Descripción' => $risk->description, 'Categoría' => $risk->risk_category_name, 'Causas' => $causas, 'Efectos' => $efectos, 'Pérdida_esperada' => $risk->expected_loss, 'Probabilidad' => $probabilidad, 'Impacto' => $impacto, 'Score' => $score, 'Fecha_identificación' => $fecha_creacion, 'Fecha_expiración' => $expiration_date, 'Controles' => $controles];
                     }
                     $i += 1;
                 }
             }
         }
         if (strstr($_SERVER["REQUEST_URI"], 'genexcel')) {
             return $datos;
         } else {
             if (Session::get('languaje') == 'en') {
                 return view('en.reportes.matriz_riesgos', ['datos' => $datos, 'value' => $value, 'organizations' => $organizations, 'org_selected' => $org]);
             } else {
                 return view('reportes.matriz_riesgos', ['datos' => $datos, 'value' => $value, 'organizations' => $organizations, 'org_selected' => $org]);
             }
             //return json_encode($datos);
         }
     }
 }