File: /var/www/html/xfacil.desafio.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 Auth;
use DB;
use Maatwebsite\Excel\Facades\Excel;
use App\Exports\RefelxionesExport;
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){
$formularios = 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{
$formularios = DB::table('cursos as cu')
->join('formularios as fo','fo.curso_id','cu.id')
->select('fo.*','cu.titulo')
->where('fo.for_tipo','curso')
->where('fo.for_nom','LIKE','%'.$this->search.'%')->where('cu.estado',1)->where('fo.for_estado',1)->orderBy('fo.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')
->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',["formularios"=>$formularios,"usuarios"=>$usuarios,"respuesta"=>$respuesta]);
}
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($id){
return Excel::download(new RefelxionesExport($id), 'Reflecciones.xlsx');
}
}