Sindbad~EG File Manager

Current Path : /var/www/html/eva.sumar.com.py/app/Http/Livewire/
Upload File :
Current File : /var/www/html/eva.sumar.com.py/app/Http/Livewire/Reflexiones.php

<?php

namespace App\Http\Livewire;

use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Formulario;
use App\Models\Competencia;
use App\Models\Curso;
use App\Models\User;
use App\Models\Puntaje;
use App\Models\Respuesta;
use Auth;
use DB;

use Maatwebsite\Excel\Facades\Excel;
use App\Exports\RefelxionesExport;
use App\Exports\ReflexionesExport;


class Reflexiones extends Component {

    use WithPagination;

    protected $paginationTheme = 'bootstrap';

    protected $queryString = ['search' => ['except' => ''],'usuario' => ['except' => '']];

    public $search='',$usuario='';

    public $formulario_id,$formulario,$competencias,$nota,$feedback,$usuario_id,$estado,$encuesta;

    public $updateMode = 0;

    public function render(){ 

        if($this->encuesta == 1){
            $cursos = DB::table('formularios as fo')
                ->select('fo.*')
                ->where('fo.for_tipo','encuesta')
                ->where('fo.for_nom','LIKE','%'.$this->search.'%')->where('fo.for_estado',1)->orderBy('fo.id','desc')->paginate(20); 
        
        }else{ 
            $cursos = DB::table('respuestas as re')
                ->join('interrogantes as in','re.interrogante_id','in.id')
                ->join('competencias as co','in.competencia_id','co.id')
                ->join('formularios as fo','co.formulario_id','fo.id')
                ->join('cursos as cu','fo.curso_id','cu.id')
                ->select('cu.id','cu.titulo')
                ->where('cu.titulo','LIKE','%'.$this->search.'%')
                ->where('cu.estado',1)
                ->groupBy('cu.id', 'cu.titulo')
                ->orderBy('cu.id','desc')
                ->paginate(20);
        
        }
        
        $usuarios=DB::table('respuestas as re')
            ->join('users as us','re.usuario_id','us.id')
            ->join('interrogantes as in','re.interrogante_id','in.id')
            ->join('competencias as co','in.competencia_id','co.id')
            ->join('formularios as fo','co.formulario_id','fo.id')
            ->select('fo.id as formulario_id','us.name','us.id as usuario_id')->distinct()
            ->where('us.name','LIKE','%'.$this->usuario.'%')
            ->where('fo.id',$this->formulario_id)->paginate(20);

        $respuesta=DB::table('puntajes as pu')
            ->join('users as us','pu.usuario_id','us.id')
            ->join('formularios as fo','pu.formulario_id','fo.id')
            ->select('pu.*')
            ->where('fo.id',$this->formulario_id)->get(); 

        return view('livewire.reflexiones',[
            "cursos"=>$cursos,
            "usuarios"=>$usuarios,
            "respuesta"=>$respuesta
        ]);
    }

    public function delete($id){
        $respuestas=DB::table('respuestas as re')
            ->join('users as us','re.usuario_id','us.id')
            ->join('interrogantes as in','re.interrogante_id','in.id')
            ->join('competencias as co','in.competencia_id','co.id')
            ->join('formularios as fo','co.formulario_id','fo.id')
            ->select('re.id')->where('us.id',$id)
            ->where('fo.id',$this->formulario_id)->get();
        $puntajes=DB::table('puntajes as pu')
            ->join('users as us','pu.usuario_id','us.id')
            ->join('formularios as fo','pu.formulario_id','fo.id')
            ->select('pu.*')->where('us.id',$id)
            ->where('fo.id',$this->formulario_id)->get();
        foreach($respuestas as $res){
            $respuesta=Respuesta::find($res->id);
            $respuesta->delete();
        }
        foreach($puntajes as $pun){
            $puntaje=Puntaje::find($pun->id);
            $puntaje->delete();
        }

        $this->emit('alert', ['type' => 'error', 'message' => 'Reflexiones eliminadas correctamente!']);
    }

    public function volver() {
        $this->updateMode = 0;
    }

    public function volver2() {
        $this->updateMode = 1;
    }

    public function respuestas($id){
        $this->updateMode = 1;
        $this->formulario_id=$id;
    }

    public function respuesta($usuario_id,$estado){
        $this->updateMode = 2;
        $this->estado=$estado;

        $this->usuario_id=$usuario_id;
        $this->formulario=Formulario::find($this->formulario_id);
        $this->competencias=Competencia::where('formulario_id',$this->formulario_id)->get();
        
    }

    public function store_feedback(){

        $validatedDate = $this->validate([
            'nota' => 'required',
            'feedback' => 'required'
        ],
        [
            'nota.required' => 'El campo nota es requerido',
            'feedback.required' => 'El campo feedback es requerido',
        ]);

        Puntaje::create([
            'nota' => $this->nota,
            'feedback' => $this->feedback,
            'formulario_id' => $this->formulario_id,
            'usuario_id' => $this->usuario_id,
        ]);

        $this->updateMode = 1;
        $this->emit('alert', ['type' => 'success', 'message' => 'Feedback agregado correctamente!']);
    }

    public function reflexiones($curso_id){
        $curso = Curso::find($curso_id);
        return Excel::download(new RefelxionesExport($curso_id), $curso->titulo.'.xlsx');
    }

    public function reflexionesformulario($id){
        return Excel::download(new ReflexionesExport($id), 'Reflexiones.xlsx');
    }

}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists