Sindbad~EG File Manager

Current Path : /var/www/html/eddcfa.sumar.com.py_old/app/Http/Livewire/
Upload File :
Current File : /var/www/html/eddcfa.sumar.com.py_old/app/Http/Livewire/Evaluaciones.php

<?php

namespace App\Http\Livewire;

use Livewire\Component;
use App\Models\Evaluacion;
use App\Models\Competencia;
use App\Models\Interrogante;
use Livewire\WithPagination;

class Evaluaciones extends Component{

	use WithPagination;

	protected $queryString = ['buscar' => ['except' => '']];

    protected $paginationTheme = 'bootstrap';

	public $buscar='';

	public $eva_nombre, $eva_descripcion, $evaluacion_id;
    
    public $updateMode = false;

    public function render(){

    	$evaluaciones=Evaluacion::where('eva_nombre','LIKE',"%{$this->buscar}%")->where('eva_estado',1)->orderBy('id','DESC')->paginate(12);
        
        return view('livewire.evaluaciones.index',["evaluaciones" => $evaluaciones]);
    }

    private function resetInputFields(){ 
        $this->eva_nombre = '';
        $this->eva_descripcion = '';
        $this->emit('eva_descripcion','');
    }
 
    public function store()
    {
        $validatedDate = $this->validate([
            'eva_nombre' => 'required',
            'eva_descripcion' => 'required',
        ]);
 
        Evaluacion::create($validatedDate);
 
        $this->emit('alert', ['type' => 'success', 'message' => 'Evaluación de desempeño creada correctamente.']);
 
        $this->resetInputFields();
 
    }
 
    public function edit($id){
        $this->updateMode = true;
        $evaluacion = Evaluacion::where('id',$id)->first();
        $this->evaluacion_id = $id;
        $this->eva_nombre = $evaluacion->eva_nombre;
        $this->eva_descripcion = $evaluacion->eva_descripcion;
        $this->emit('eva_descripcion',$evaluacion->eva_descripcion);
    }
 
    public function cancel(){
        $this->updateMode = false;
        $this->resetInputFields();
    }
 
    public function update(){
        $validatedDate = $this->validate([
            'eva_nombre' => 'required',
            'eva_descripcion' => 'required',
        ]);
 
        if ($this->evaluacion_id) {
            $evaluacion = Evaluacion::find($this->evaluacion_id);
            $evaluacion->update([
                'eva_nombre' => $this->eva_nombre,
                'eva_descripcion' => $this->eva_descripcion,
            ]);
            $this->updateMode = false;
            $this->emit('alert', ['type' => 'info', 'message' => 'Evaluación de desempeño actualizada correctamente.']);
            $this->resetInputFields();
        }
    }
 
    public function delete($id){
        if($id){
            $evaluacion = Evaluacion::find($id);
            $evaluacion->update([
                'eva_estado' => 0,
            ]);
            $this->emit('alert', ['type' => 'error', 'message' => '¡Evaluación de desempeño eliminada correctamente.!']);
        }
    }

    public function duplicate($id){
        //se obtiene valores del formulario actual
        $evaluacion = Evaluacion::find($id);
        //se vuelcan los datos hacia un nuevo formulario
        $netevaluacion=new Evaluacion;
            $netevaluacion->eva_nombre = "copy_".$evaluacion->eva_nombre;
            $netevaluacion->eva_descripcion = $evaluacion->eva_descripcion;
        $netevaluacion->save();
        //se obtine competencias del formulario clonado
        $competencias=Competencia::where('evaluacion_id',$id)->where('com_estado',1)->get();
        //se recorre las competencias para guardarlos nuevamente con la evalucion clonada
        foreach($competencias as $com){
            //se crea la competencia nueva con realcion al nuevo formulario
            $newcompetencia=new Competencia;
                $newcompetencia->com_nom = $com->com_nom;
                $newcompetencia->evaluacion_id = $netevaluacion->id;
            $newcompetencia->save();
            //se obtiene los interrogantes asociados a la competencia clonada
            $interrogantes=Interrogante::where('competencia_id',$com->id)->where('int_estado',1)->get();
            //se recorre interrogantes para clonarlos con la nueva comptencia
            foreach($interrogantes as $int){
                //se graba las interrogantes nuevamente para asociarlas a la competencia clonada
                $netinterrogante=new Interrogante;
                    $netinterrogante->int_nom = $int->int_nom;
                    $netinterrogante->int_tipo = $int->int_tipo;
                    $netinterrogante->int_ubicacion = $int->int_ubicacion;
                    $netinterrogante->competencia_id = $newcompetencia->id;
                    $netinterrogante->int_nr = $int->int_nr; 
                    $netinterrogante->int_inicio = $int->int_inicio;
                    $netinterrogante->int_fin = $int->int_fin;
                    $netinterrogante->int_opcion1 = $int->int_opcion1;
                    $netinterrogante->int_opcion1_punto = $int->int_opcion1_punto;
                    $netinterrogante->int_opcion2 = $int->int_opcion2;
                    $netinterrogante->int_opcion2_punto = $int->int_opcion2_punto;
                    $netinterrogante->int_opcion3 = $int->int_opcion3;
                    $netinterrogante->int_opcion3_punto = $int->int_opcion3_punto;
                    $netinterrogante->int_opcion4 = $int->int_opcion4;
                    $netinterrogante->int_opcion4_punto = $int->int_opcion4_punto;
                    $netinterrogante->int_opcion5 = $int->int_opcion5;
                    $netinterrogante->int_opcion5_punto = $int->int_opcion5_punto;
                    $netinterrogante->int_opcion6 = $int->int_opcion6;
                    $netinterrogante->int_opcion6_punto = $int->int_opcion6_punto;
                    $netinterrogante->int_opcion7 = $int->int_opcion7;
                    $netinterrogante->int_opcion7_punto = $int->int_opcion7_punto;
                    $netinterrogante->int_opcion8 = $int->int_opcion8;
                    $netinterrogante->int_opcion8_punto = $int->int_opcion8_punto;
                    $netinterrogante->int_opcion9 = $int->int_opcion9;
                    $netinterrogante->int_opcion9_punto = $int->int_opcion9_punto;
                    $netinterrogante->int_opcion10 = $int->int_opcion10;
                    $netinterrogante->int_opcion10_punto = $int->int_opcion10_punto;
                    $netinterrogante->frecuencia = $int->frecuencia;
                    $netinterrogante->producto = $int->producto;
                    $netinterrogante->indicador = $int->indicador;
                $netinterrogante->save();
            }
        }
        $this->emit('alert', ['type' => 'success', 'message' => '¡Formulario clonado correctamente.!']);
    }
}

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