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/Frontcurso.php

<?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