File: /var/www/html/aventurasolar.sumar.com.py/app/Http/Controllers/MisionController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect;
use App\Models\Equipo;
use App\Models\Mision;
use App\Models\MisionMatricula;
use Session;
use DB;
class MisionController extends Controller{
public function index(){
return view('admin.misiones.index');
}
public function create(){
$equipos = Equipo::where('estado',1)->get();
return view('admin.misiones.create',["equipos"=>$equipos]);
}
public function store(Request $request){
$mision=new Mision;
$mision->titulo=$request->get('titulo');
$mision->descripcion=$request->get('descripcion');
$mision->puntos=$request->get('puntos');
$mision->puntos_extras=$request->get('puntos_extras');
$mision->fecha_limite=$request->get('fecha_limite');
if ($mision->save()){
foreach ($request->equipos as $equipo){
$matricula=new MisionMatricula;
$matricula->mision_id=$mision->id;
$matricula->equipo_id=$equipo;
$matricula->save();
}
Session::flash('success', '¡La mision se creo correctamente!');
}
return Redirect::to('admin/misiones');
}
public function show($id){
$mision=Mision::findOrFail($id);
$equipos=DB::table('mision_matriculas as ma')
->join('equipos as e','ma.equipo_id','e.id')
->join('misions as m','ma.mision_id','m.id')
->select('ma.*','e.nombre')
->where('m.id',$id)->get();
return view('admin.misiones.show',["mision"=>$mision,"equipos"=>$equipos]);
}
public function edit($id){
$mision=Mision::findOrFail($id);
$matriculados=DB::table('mision_matriculas as ma')
->join('equipos as e','ma.equipo_id','e.id')
->join('misions as m','ma.mision_id','m.id')
->select('e.id')
->where('m.id',$id)->get();
$equipos = Equipo::where('estado',1)->get();
return view('admin.misiones.edit',["mision"=>$mision,"equipos"=>$equipos,'matriculados'=>$matriculados]);
}
public function update(Request $request,$id){
$mision=Mision::findOrFail($id);
$mision->titulo=$request->get('titulo');
$mision->descripcion=$request->get('descripcion');
$mision->puntos=$request->get('puntos');
$mision->puntos_extras=$request->get('puntos_extras');
$mision->fecha_limite=$request->get('fecha_limite');
if ($mision->update()){
$matriculados=MisionMatricula::where('mision_id',$id)->get();
foreach ($matriculados as $value) {
$value->delete();
}
foreach ($request->equipos as $equipo){
$matricula=new MisionMatricula;
$matricula->mision_id=$mision->id;
$matricula->equipo_id=$equipo;
$matricula->save();
}
Session::flash('success', '¡La mision se editó correctamente!');
}
return Redirect::to('admin/misiones');
}
}