public function getControlsFromPerspective($org, $perspective) { $controls = \Ermtool\Control::getControlsFromPerspective($org, $perspective); return json_encode($controls); }
public function storeTest(Request $request) { if (Auth::guest()) { return view('login'); } else { //print_r($_POST); global $req; $req = $request; DB::transaction(function () { $fecha = date('Y-m-d H:i:s'); if (isset($_POST['description'])) { $description = $_POST['description']; } else { $description = NULL; } //si es que se ingreso tipo if (isset($_POST['type'])) { $type = $_POST['type']; } else { $type = NULL; } //si es que se ingreso stakeholder if (isset($_POST['stakeholder_id'])) { $stakeholder = $_POST['stakeholder_id']; } else { $stakeholder = NULL; } //si es que se ingreso HH if (isset($_POST['hh'])) { $hh = $_POST['hh']; } else { $hh = NULL; } //ACTUALIZACIÓN 07-12-16: La prueba ya no puede ser de riesgo; estará orientada a proceso o entidad; si es de proceso se podrá se dejará abierto si se seleccionan los controles o los subprocesos o sólo el proceso. A nivel de entidad se seleccionará sólo la perspectiva o se especificarán los controles a nivel de entidad if (isset($_POST['process_id'])) { $process_id = $_POST['process_id']; } else { $process_id = NULL; } //primero insertamos prueba $test_id = DB::table('audit_tests')->insertGetId(['audit_audit_plan_audit_program_id' => $_POST['audit_audit_plan_audit_program_id'], 'name' => $_POST['name'], 'description' => $description, 'type' => $type, 'status' => 0, 'results' => 2, 'created_at' => $fecha, 'updated_at' => $fecha, 'hh_plan' => $hh, 'stakeholder_id' => $stakeholder, 'process_id' => $process_id]); if ($_POST['type1'] == 1) { //vemos si se especificaron los controles if (isset($_POST['control_id'])) { foreach ($_POST['control_id'] as $c) { //primero verificamos que no se encuentre vacío (ya que está enviando el último valor vacío) if ($c != NULL && $c != '') { //almacenamos controles en audit_test_control DB::table('audit_test_control')->insert(['audit_test_id' => $test_id, 'control_id' => $c]); } } } else { if ($_POST['subprocess_id']) { foreach ($_POST['subprocess_id'] as $s) { DB::table('audit_test_subprocess')->insert(['audit_test_id' => $test_id, 'subprocess_id' => $s]); } } } } else { if ($_POST['type1'] == 2) { //vemos si se especificaron los controles $cont = 0; if (isset($_POST['control_id'])) { foreach ($_POST['control_id'] as $c) { //primero verificamos que no se encuentre vacío (ya que está enviando el último valor vacío) if ($c != NULL && $c != '') { $cont += 1; //almacenamos controles en audit_test_control DB::table('audit_test_control')->insert(['audit_test_id' => $test_id, 'control_id' => $c]); } } } if ($cont == 0) { //obtenemos organización $org = \Ermtool\Organization::getOrgByAuditPlan($_POST['audit_plans']); //obtenemos todos los controles de los objetivos asociados a la org y la perspectiva $controls = \Ermtool\Control::getControlsFromPerspective($org->id, $_POST['perspective']); foreach ($controls as $c) { //almacenamos controles en audit_test_control DB::table('audit_test_control')->insert(['audit_test_id' => $test_id, 'control_id' => $c->id]); } } } } /* //vemos si el tipo de prueba es de control, de proceso o de riesgo if ($_POST['type2'] == 1) //es de control { if (isset($_POST['control_id_test_1'])) { $test_id = DB::table('audit_tests') ->insertGetId([ 'audit_audit_plan_audit_program_id' => $_POST['audit_audit_plan_audit_program_id'], 'name' => $_POST['name'], 'description' => $description, 'type' => $type, 'status' => 0, 'results' => 2, 'created_at' => $fecha, 'updated_at' => $fecha, 'hh' => $hh, 'stakeholder_id' => $stakeholder, 'control_id' => $_POST['control_id_test_1'] ]); } } else if ($_POST['type2'] == 2) //es de riesgo { if (isset($_POST['risk_id_test_1'])) { $test_id = DB::table('audit_tests') ->insertGetId([ 'audit_audit_plan_audit_program_id' => $_POST['audit_audit_plan_audit_program_id'], 'name' => $_POST['name'], 'description' => $description, 'type' => $type, 'status' => 0, 'results' => 2, 'created_at' => $fecha, 'updated_at' => $fecha, 'hh' => $hh, 'stakeholder_id' => $stakeholder, 'risk_id' => $_POST['risk_id_test_1'], ]); } } else if ($_POST['type2'] == 3) //es de proceso { if (isset($_POST['subprocess_id_test_1'])) { $test_id = DB::table('audit_tests') ->insertGetId([ 'audit_audit_plan_audit_program_id' => $_POST['audit_audit_plan_audit_program_id'], 'name' => $_POST['name'], 'description' => $description, 'type' => $type, 'status' => 0, 'results' => 2, 'created_at' => $fecha, 'updated_at' => $fecha, 'hh' => $hh, 'stakeholder_id' => $stakeholder, 'subprocess_id' => $_POST['subprocess_id_test_1'], ]); } } */ if ($GLOBALS['req']->file('file_test') != NULL) { foreach ($GLOBALS['req']->file('file_test') as $file) { if ($file != NULL) { upload_file($file, 'pruebas_auditoria', $test_id); } } } if (Session::get('languaje') == 'en') { Session::flash('message', 'Audit test successfully created'); } else { Session::flash('message', 'Prueba de auditoría creada correctamente'); } }); return Redirect::to('/programas_auditoria.show.' . $_POST['audit_audit_plan_audit_program_id']); } }