コード例 #1
0
ファイル: ControlesController.php プロジェクト: pipehs/erm
 public function getControlsFromPerspective($org, $perspective)
 {
     $controls = \Ermtool\Control::getControlsFromPerspective($org, $perspective);
     return json_encode($controls);
 }
コード例 #2
0
ファイル: AuditoriasController.php プロジェクト: pipehs/erm
 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']);
     }
 }