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