Sindbad~EG File Manager
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use App\Models\Curso;
use App\Models\Importanciacurso;
use App\Models\Alcancecurso;
use App\Models\Objetivocurso;
use App\Models\Tutorcurso;
use App\Models\Recursocurso;
use App\Models\Reflexioncurso;
use App\Models\Formulario;
use App\Models\Podcastcurso;
use App\Models\Capsulacurso;
use App\Models\Certificadocurso;
use App\Models\Emoticon;
use App\Models\Apunte;
use App\Models\Puntaje;
use Auth;
use DB;
class Frontcurso extends Component{
public $curso_id,$importancia,$alcance,$objetivo,$capsula,$tutor,$recurso,$apuntes,
$reflexion,$podcast,$apunte,$apunteid,$respuestas,$feed,$capsula_id,$emocion='',
$certificado;
public $viewimportancia,$viewalcance,$viewobjetivo,$viewcapsula,$viewtutor,$viewrecurso,$viewapuntes,
$viewreflexion,$viewpodcast,$viewcertificado;
public function mount(){
$this->alcance();
$this->objetivo();
$this->capsula();
$this->tutor();
$this->recurso();
$this->reflexion();
$this->podcast();
$this->certificado();
$this->importancia();
}
public function render(){
$curso = Curso::find($this->curso_id);
$capsulas = Capsulacurso::where('curso_id',$this->curso_id)->get();
$apuntess = Apunte::where('curso_id',$this->curso_id)->where('usuario_id',Auth::user()->id)->get();
return view('livewire.frontcurso',["curso"=>$curso,"capsulas"=>$capsulas,"apuntess"=>$apuntess]);
}
private function resetInputFields(){
$this->viewimportancia = '';
$this->viewalcance = '';
$this->viewobjetivo = '';
$this->viewcapsula = '';
$this->viewtutor = '';
$this->viewrecurso = '';
$this->viewapuntes = '';
$this->viewreflexion = '';
$this->viewpodcast = '';
$this->viewcertificado = '';
}
public function importancia(){
$this->resetInputFields();
$this->viewimportancia=true;
$importancia=Importanciacurso::where('curso_id',$this->curso_id)->first();
if($importancia){
$this->importancia = $importancia->importancia;
}else{
$this->importancia='No se registran datos';
}
}
public function alcance(){
$this->resetInputFields();
$this->viewalcance=true;
$alcance=Alcancecurso::where('curso_id',$this->curso_id)->first();
if($alcance){
$this->alcance = $alcance->alcance;
}else{
$this->alcance='No se registran datos';
}
}
public function objetivo(){
$this->resetInputFields();
$this->viewobjetivo=true;
$objetivo=Objetivocurso::where('curso_id',$this->curso_id)->first();
if($objetivo){
$this->objetivo = $objetivo->objetivo;
}else{
$this->objetivo='No se registran datos';
}
}
public function capsula(){
$this->resetInputFields();
$this->viewcapsula=true;
$capsula=Capsulacurso::where('curso_id',$this->curso_id)->first();
if($capsula){
$this->capsula = $capsula->capsula;
}else{
$this->capsula='No se registran datos';
}
$this->emit('apunte', $this->apunte);
}
public function tutor(){
$this->resetInputFields();
$this->viewtutor=true;
$tutor=Tutorcurso::where('curso_id',$this->curso_id)->first();
if($tutor){
$this->tutor = $tutor->tutor;
}else{
$this->tutor='No se registran datos';
}
}
public function recurso(){
$this->resetInputFields();
$this->viewrecurso=true;
$recurso=Recursocurso::where('curso_id',$this->curso_id)->first();
if($recurso){
$this->recurso = $recurso->recurso;
}else{
$this->recurso='No se registran datos';
}
}
public function apuntes(){
$this->resetInputFields();
$this->viewapuntes=true;
$this->apuntes = "apuntes";
$this->emit('apunte', $this->apunte);
}
public function reflexion(){
$this->resetInputFields();
$this->viewreflexion=true;
$reflexion = Formulario::where('for_estado',1)->where('curso_id',$this->curso_id)->get();
$this->respuestas = 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')
->where('fo.curso_id',$this->curso_id)
->where('re.usuario_id',Auth::user()->id)
->select('fo.id')->get();
$this->feed=Puntaje::where('usuario_id',Auth::user()->id)->get();
$this->reflexion = $reflexion;
}
public function podcast(){
$this->resetInputFields();
$this->viewpodcast=true;
$podcast=Podcastcurso::where('curso_id',$this->curso_id)->first();
if($podcast){
$this->podcast = $podcast->podcast;
}else{
$this->podcast='No se registran datos';
}
}
public function certificado(){
$this->resetInputFields();
$this->viewcertificado=true;
//Captura de curso
$curso = Curso::find($this->curso_id);
//porcentaje para aprobar el curso
$porcentaje=$curso->porcentaje;
//Cantidad de reflexiones
$reflexion = Formulario::where('for_estado',1)->where('curso_id',$this->curso_id)->count();
//Puntaje obtenido en cada reflexion
$puntajes=0;
$reflexiones = Formulario::where('for_estado',1)->where('curso_id',$this->curso_id)->get();
foreach($reflexiones as $refle){
if($puntaje=Puntaje::where('usuario_id', Auth::user()->id)->where('formulario_id',$refle->id)->first()){
$puntajes+=$puntaje->nota;
}
}
//porcentaje de los puntos con respecto a la cantidad de reflexiones
$porcentaje=(($reflexion*100)*$puntajes)/100;
//Mostrar certificado si se alcanza el porcentaje adecuado
$certificado=Certificadocurso::where('curso_id',$this->curso_id)->first();
if($certificado && $porcentaje >= $curso->porcentaje){
$this->certificado = $certificado->certificado;
}else{
$this->certificado='Certificado no disponible';
}
}
public function addemocion($capsula_id,$emocion,$estado){
if($emociondelete = Emoticon::where('usuario_id', Auth::user()->id)->where('capsula_id',$capsula_id)->first()){
$emociondelete->delete();
}
if($estado != $emocion){
Emoticon::create([
'usuario_id' => Auth::user()->id,
'capsula_id' => $capsula_id,
'emocion' => $emocion,
'curso_id' => $this->curso_id,
]);
}
}
public function guardarnota(){
$validatedDate = $this->validate([
'apunte' => 'required',
],
[
'apunte.required' => 'El campo apunte es requerido',
]);
Apunte::create([
'usuario_id' => Auth::user()->id,
'apunte' => $this->apunte,
'curso_id' => $this->curso_id,
]);
session()->flash('success', 'Apunte agregado correctamente!');
$this->emit('apunte', '');
}
public function editapunte($id){
$apunte2=Apunte::find($id);
$this->apunteid = $id;
$this->emit('apunte', $apunte2->apunte);
}
public function updatenota($id){
$apunte2=Apunte::find($id);
$apunte2->update([
'apunte' => $this->apunte,
]);
$this->apunteid = '';
$this->emit('apunte', '');
}
public function deleteapunte($id){
$apunte2=Apunte::find($id);
$apunte2->delete();
}
public function envioid($id){
$this->capsula_id=$id;
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists