Пример #1
0
 public function indexGraficos($value)
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         //ACTUALIZACIÓN 24-08: Nuevo gráfico de pruebas de auditorías, por lo tanto debemos seleccionar el plan que se desea ver
         $planes_auditoria = \Ermtool\Audit_plan::where('status', 0)->lists('name', 'id');
         $planes_ejec = 0;
         //planes en ejecución
         $planes_abiertos = 0;
         //planes con al menos una prueba abierta
         $planes_cerrados = 0;
         //plan sin pruebas abiertas ni en ejecución, pero si cerradas
         $audit_plans = array();
         //obtenemos todas las auditorías y pruebas de auditoría con su estado de ejecución
         $planes = \Ermtool\Audit_plan::all(['id', 'name', 'status', 'description']);
         $i = 0;
         //contador de planes
         foreach ($planes as $audit_plan) {
             $audits = array();
             $audit_programs = array();
             $audit_tests = array();
             //obtenemos auditorías
             $auditorias = DB::table('audit_audit_plan')->join('audits', 'audits.id', '=', 'audit_audit_plan.audit_id')->where('audit_audit_plan.audit_plan_id', '=', $audit_plan->id)->select('audit_audit_plan.id', 'audits.name')->get();
             $j = 0;
             //contador de auditorias por plan
             foreach ($auditorias as $audit) {
                 $ejecucion = 0;
                 $abiertas = 0;
                 $cerradas = 0;
                 $audits[$j] = $audit->name;
                 $j += 1;
                 //obtenemos programas
                 $programs = DB::table('audit_audit_plan_audit_program')->join('audit_programs', 'audit_programs.id', '=', 'audit_audit_plan_audit_program.audit_program_id')->where('audit_audit_plan_audit_program.audit_audit_plan_id', '=', $audit->id)->select('audit_audit_plan_audit_program.id', 'audit_programs.name')->get();
                 $k = 0;
                 //contador de programas
                 foreach ($programs as $program) {
                     $audit_programs[$k] = $program->name;
                     $k += 1;
                     //obtenemos pruebas
                     $tests = DB::table('audit_tests')->where('audit_audit_plan_audit_program_id', '=', $program->id)->select('name', 'status')->get();
                     //vemos si hay alguna prueba en ejecución, si es así el plan estará en ejecución
                     $l = 0;
                     //contador de pruebas
                     //estados de las pruebas
                     foreach ($tests as $test) {
                         $audit_tests[$l] = $test->name;
                         $l += 1;
                         if ($test->status == 0) {
                             $abiertas += 1;
                         } else {
                             if ($test->status == 1) {
                                 $ejecucion += 1;
                             } else {
                                 if ($test->status == 2) {
                                     $cerradas += 1;
                                 }
                             }
                         }
                     }
                 }
             }
             $audit_plans[$i] = ['name' => $audit_plan->name, 'description' => $audit_plan->description, 'audits' => $audits, 'status' => $audit_plan->status, 'programs' => $audit_programs, 'tests' => $audit_tests, 'ejecucion' => $ejecucion, 'abiertas' => $abiertas, 'cerradas' => $cerradas];
             $i += 1;
             if ($audit_plan->status == 1) {
                 $planes_cerrados += 1;
             } else {
                 if ($ejecucion > 0) {
                     $planes_ejec += 1;
                 } else {
                     if ($abiertas > 0) {
                         $planes_abiertos += 1;
                     } else {
                         if ($cerradas > 0) {
                             $planes_cerrados += 1;
                         }
                     }
                 }
             }
         }
         if (strstr($_SERVER["REQUEST_URI"], 'genexcelgraficos')) {
             $i = 0;
             foreach ($audit_plans as $plan) {
                 //damos formato a auditorías, programas y pruebas
                 $audits = "";
                 $last = end($plan['audits']);
                 //guardamos final para no agregarle coma
                 foreach ($plan['audits'] as $audit) {
                     if ($audit != $last) {
                         $audits .= $audit . ', ';
                     } else {
                         $audits .= $audit;
                     }
                 }
                 $programs = "";
                 $last = end($plan['programs']);
                 //guardamos final para no agregarle coma
                 foreach ($plan['programs'] as $program) {
                     if ($program != $last) {
                         $programs .= $program . ', ';
                     } else {
                         $programs .= $program;
                     }
                 }
                 $tests = "";
                 $last = end($plan['tests']);
                 //guardamos final para no agregarle coma
                 foreach ($plan['tests'] as $test) {
                     if ($test != $last) {
                         $tests .= $test . ', ';
                     } else {
                         $tests .= $test;
                     }
                 }
                 if ($value == 5) {
                     if ($plan['abiertas'] > 0 && $plan['ejecucion'] == 0 && $plan['status'] == 0) {
                         if (Session::get('languaje') == 'en') {
                             $res[$i] = ['Name' => $plan['name'], 'Description' => $plan['description'], 'Audits' => $audits, 'Programs' => $programs, 'Tests' => $tests];
                         } else {
                             $res[$i] = ['Nombre' => $plan['name'], 'Descripción' => $plan['description'], 'Auditorías' => $audits, 'Programas' => $programs, 'Pruebas' => $tests];
                         }
                         $i += 1;
                     }
                 } else {
                     if ($value == 6) {
                         if ($plan['ejecucion'] > 0 && $plan['status'] == 0) {
                             if (Session::get('languaje') == 'en') {
                                 $res[$i] = ['Name' => $plan['name'], 'Description' => $plan['description'], 'Audits' => $audits, 'Programs' => $programs, 'Tests' => $tests];
                             } else {
                                 $res[$i] = ['Nombre' => $plan['name'], 'Descripción' => $plan['description'], 'Auditorías' => $audits, 'Programas' => $programs, 'Pruebas' => $tests];
                             }
                             $i += 1;
                         }
                     } else {
                         if ($value == 7) {
                             if ($plan['status'] == 1) {
                                 if (Session::get('languaje') == 'en') {
                                     $res[$i] = ['Name' => $plan['name'], 'Description' => $plan['description'], 'Audits' => $audits, 'Programs' => $programs, 'Tests' => $tests];
                                 } else {
                                     $res[$i] = ['Nombre' => $plan['name'], 'Descripción' => $plan['description'], 'Auditorías' => $audits, 'Programas' => $programs, 'Pruebas' => $tests];
                                 }
                                 $i += 1;
                             }
                         }
                     }
                 }
             }
             return $res;
         } else {
             if (Session::get('languaje') == 'en') {
                 return view('en.reportes.auditorias_graficos', ['audit_plans' => $audit_plans, 'planes_ejec' => $planes_ejec, 'planes_abiertos' => $planes_abiertos, 'planes_cerrados' => $planes_cerrados, 'planes_auditoria' => $planes_auditoria]);
             } else {
                 return view('reportes.auditorias_graficos', ['audit_plans' => $audit_plans, 'planes_ejec' => $planes_ejec, 'planes_abiertos' => $planes_abiertos, 'planes_cerrados' => $planes_cerrados, 'planes_auditoria' => $planes_auditoria]);
             }
         }
     }
 }