Sindbad~EG File Manager
<?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