HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/8.0.30
System: Linux multiplicar 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64
User: root (0)
PHP: 8.0.30
Disabled: NONE
Upload Files
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');
	
	}

}