示例#1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     if (Auth::guest()) {
         return view('login');
     } else {
         \Ermtool\Cause::create(['name' => $request['name'], 'description' => $request['description']]);
         if (Session::get('languaje') == 'en') {
             Session::flash('message', 'Cause successfully created');
         } else {
             Session::flash('message', 'Causa agregada correctamente');
         }
         return Redirect::to('/causas');
     }
 }
示例#2
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;
         //creamos una transacción para cumplir con atomicidad
         DB::transaction(function () {
             $riesgo = \Ermtool\Risk::find($GLOBALS['id1']);
             //vemos si se agrego alguna causa nueva
             if (isset($_POST['causa_nueva'])) {
                 $new_causa = \Ermtool\Cause::create(['name' => $_POST['causa']]);
                 //guardamos en cause_risk
                 DB::table('cause_risk')->insert(['risk_id' => $riesgo->id, 'cause_id' => $new_causa->id]);
             } else {
                 if (isset($_POST['cause_id'])) {
                     foreach ($_POST['cause_id'] as $cause_id) {
                         //primero buscamos si es que existe previamente
                         $cause = DB::table('cause_risk')->where('cause_id', '=', $cause_id)->where('risk_id', '=', $riesgo->id)->first();
                         if (!$cause) {
                             DB::table('cause_risk')->insert(['risk_id' => $riesgo->id, 'cause_id' => $cause_id]);
                         }
                     }
                 }
             }
             //vemos si se agrego algún efecto nuevo
             if (isset($_POST['efecto_nuevo'])) {
                 $new_effect = \Ermtool\Effect::create(['name' => $_POST['efecto']]);
                 //guardamos en cause_risk
                 DB::table('effect_risk')->insert(['risk_id' => $riesgo->id, 'effect_id' => $new_effect->id]);
             } else {
                 if (isset($_POST['effect_id'])) {
                     foreach ($_POST['effect_id'] as $effect_id) {
                         //primero buscamos si es que existe previamente
                         $effect = DB::table('effect_risk')->where('effect_id', '=', $effect_id)->where('risk_id', '=', $riesgo->id)->first();
                         if (!$effect) {
                             //insertamos cada causa en cause_risk
                             DB::table('effect_risk')->insert(['risk_id' => $riesgo->id, 'effect_id' => $effect_id]);
                         }
                     }
                 }
             }
             //ahora recorreremos todas las causas y efectos de este riesgo, para saber si es que no se borró alguna
             $causas = DB::table('cause_risk')->where('risk_id', '=', $riesgo->id)->select('cause_id')->get();
             foreach ($causas as $cause) {
                 $cont = 0;
                 //si se mantiene en cero, nunca habrán sido iguales, por lo que significa que se habria borrado
                 //ahora recorremos todas las causas que se agregaron para comparar
                 foreach ($_POST['cause_id'] as $cause_add) {
                     if ($cause_add == $cause->cause_id) {
                         $cont += 1;
                     }
                 }
                 if ($cont == 0) {
                     DB::table('cause_risk')->where('risk_id', '=', $riesgo->id)->where('cause_id', '=', $cause->cause_id)->delete();
                 }
             }
             //lo mismo ahora para efectos
             $efectos = DB::table('effect_risk')->where('risk_id', '=', $riesgo->id)->select('effect_id')->get();
             foreach ($efectos as $effect) {
                 $cont = 0;
                 //si se mantiene en cero, nunca habrán sido iguales, por lo que significa que se habria borrado
                 //ahora recorremos todas las causas que se agregaron para comparar
                 foreach ($_POST['effect_id'] as $effect_add) {
                     if ($effect_add == $effect->effect_id) {
                         $cont += 1;
                     }
                 }
                 if ($cont == 0) {
                     DB::table('effect_risk')->where('risk_id', '=', $riesgo->id)->where('effect_id', '=', $effect->effect_id)->delete();
                 }
             }
             if (!isset($_POST['stakeholder_id']) || $_POST['stakeholder_id'] == "") {
                 $stake = NULL;
             } else {
                 $stake = $_POST['stakeholder_id'];
             }
             if ($riesgo->type == 0) {
                 //primero eliminamos relaciones previas
                 DB::table('risk_subprocess')->where('risk_id', '=', $riesgo->id)->delete();
                 //agregamos en tabla risk_subprocess
                 foreach ($_POST['subprocess_id'] as $subprocess_id) {
                     $subprocess = \Ermtool\Subprocess::find($subprocess_id);
                     $subprocess->risks()->attach($riesgo);
                 }
             } else {
                 if ($riesgo->type == 1) {
                     //primero eliminamos relaciones previas
                     DB::table('objective_risk')->where('risk_id', '=', $riesgo->id)->delete();
                     //agregamos en tabla objective_risk
                     foreach ($_POST['objective_id'] as $objective_id) {
                         $objective = \Ermtool\Objective::find($objective_id);
                         $objective->risks()->attach($riesgo);
                     }
                 }
             }
             //eliminamos salto de linea del final de cada una de las textarea (en este caso solo descripción)
             $riesgo->name = $_POST['name'];
             $riesgo->description = $_POST['description'];
             $riesgo->expiration_date = $_POST['expiration_date'];
             $riesgo->type2 = 1;
             $riesgo->risk_category_id = $_POST['risk_category_id'];
             $riesgo->expected_loss = $_POST['expected_loss'];
             $riesgo->stakeholder_id = $stake;
             $riesgo->save();
             if (Session::get('languaje') == 'en') {
                 Session::flash('message', 'Risk successfully updated');
             } else {
                 Session::flash('message', 'Riesgo actualizado correctamente');
             }
         });
         return Redirect::to('riesgos.index2?organization_id=' . $_POST['org_id']);
     }
 }
示例#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 {
         global $id1;
         $id1 = $id;
         DB::transaction(function () {
             $riesgo = \Ermtool\Risk::find($GLOBALS['id1']);
             //vemos si se agrego alguna causa nueva
             if (isset($_POST['causa_nueva'])) {
                 $new_causa = \Ermtool\Cause::create(['name' => $_POST['causa_nueva']]);
                 //guardamos en cause_risk
                 DB::table('cause_risk')->insert(['risk_id' => $riesgo->id, 'cause_id' => $new_causa->id]);
             } else {
                 if (isset($_POST['cause_id'])) {
                     foreach ($_POST['cause_id'] as $cause_id) {
                         //primero buscamos si es que existe previamente
                         $cause = DB::table('cause_risk')->where('cause_id', '=', $cause_id)->where('risk_id', '=', $riesgo->id)->first();
                         if (!$cause) {
                             DB::table('cause_risk')->insert(['risk_id' => $riesgo->id, 'cause_id' => $cause_id]);
                         }
                     }
                 }
             }
             //vemos si se agrego algún efecto nuevo
             if (isset($_POST['efecto_nuevo'])) {
                 $new_effect = \Ermtool\Effect::create(['name' => $_POST['efecto_nuevo']]);
                 //guardamos en cause_risk
                 DB::table('effect_risk')->insert(['risk_id' => $riesgo->id, 'effect_id' => $new_effect->id]);
             } else {
                 if (isset($_POST['effect_id'])) {
                     foreach ($_POST['effect_id'] as $effect_id) {
                         //primero buscamos si es que existe previamente
                         $effect = DB::table('effect_risk')->where('effect_id', '=', $effect_id)->where('risk_id', '=', $riesgo->id)->first();
                         if (!$effect) {
                             //insertamos cada causa en cause_risk
                             DB::table('effect_risk')->insert(['risk_id' => $riesgo->id, 'effect_id' => $effect_id]);
                         }
                     }
                 }
             }
             //ahora recorreremos todas las causas y efectos de este riesgo, para saber si es que no se borró alguna
             $causas = DB::table('cause_risk')->where('risk_id', '=', $riesgo->id)->select('cause_id')->get();
             foreach ($causas as $cause) {
                 $cont = 0;
                 //si se mantiene en cero, nunca habrán sido iguales, por lo que significa que se habria borrado
                 //ahora recorremos todas las causas que se agregaron para comparar
                 foreach ($_POST['cause_id'] as $cause_add) {
                     if ($cause_add == $cause->cause_id) {
                         $cont += 1;
                     }
                 }
                 if ($cont == 0) {
                     DB::table('cause_risk')->where('risk_id', '=', $riesgo->id)->where('cause_id', '=', $cause->cause_id)->delete();
                 }
             }
             //lo mismo ahora para efectos
             $efectos = DB::table('effect_risk')->where('risk_id', '=', $riesgo->id)->select('effect_id')->get();
             foreach ($efectos as $effect) {
                 $cont = 0;
                 //si se mantiene en cero, nunca habrán sido iguales, por lo que significa que se habria borrado
                 //ahora recorremos todas las causas que se agregaron para comparar
                 foreach ($_POST['effect_id'] as $effect_add) {
                     if ($effect_add == $effect->effect_id) {
                         $cont += 1;
                     }
                 }
                 if ($cont == 0) {
                     DB::table('effect_risk')->where('risk_id', '=', $riesgo->id)->where('effect_id', '=', $effect->effect_id)->delete();
                 }
             }
             $riesgo->name = $_POST['name'];
             $riesgo->description = $_POST['description'];
             $riesgo->expiration_date = $_POST['expiration_date'];
             $riesgo->risk_category_id = $_POST['risk_category_id'];
             $riesgo->save();
             if (Session::get('languaje') == 'en') {
                 Session::flash('message', 'Template risk successfully updated');
             } else {
                 Session::flash('message', 'Riesgo tipo actualizado correctamente');
             }
         });
         return Redirect::to('/riskstype');
     }
 }