Sindbad~EG File Manager
<?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, $eva_informe, $eva_autoevaluacion;
public $updateMode = false;
public function render(){
$evaluaciones=Evaluacion::where('eva_nombre','LIKE',"%{$this->buscar}%")->where('eva_estado',1)->paginate(12);
return view('livewire.evaluaciones.index',["evaluaciones" => $evaluaciones]);
}
private function resetInputFields(){
$this->eva_nombre = '';
$this->eva_descripcion = '';
$this->eva_informe = '';
$this->eva_autoevaluacion = '';
}
public function clonar($evaluacion_id){
$evaluacion = Evaluacion::find($evaluacion_id);
$eva=new Evaluacion;
$eva->eva_nombre = $evaluacion->eva_nombre."_copia";
$eva->eva_descripcion = $evaluacion->eva_descripcion;
$eva->eva_informe = $evaluacion->eva_informe;
$eva->eva_autoevaluacion = $evaluacion->eva_autoevaluacion;
if($eva->save()){
$competencias=Competencia::where('evaluacion_id',$evaluacion_id)->where('com_estado',1)->get();
foreach($competencias as $com){
$newcompetencia=new Competencia;
$newcompetencia->com_nom = $com->com_nom;
$newcompetencia->evaluacion_id = $eva->id;
if($newcompetencia->save()){
$interrogantes=Interrogante::where('competencia_id',$com->id)->where('int_estado',1)->orderBy('int_ubicacion','asc')->get();
foreach($interrogantes as $int){
$inte = new Interrogante;
$inte->int_nom = $int->int_nom;
$inte->int_tipo = $int->int_tipo;
$inte->int_ubicacion = $int->int_ubicacion;
$inte->int_grafico = $int->int_grafico;
$inte->competencia_id = $newcompetencia->id;
$inte->int_nr = $int->int_nr;
$inte->int_inicio = $int->int_inicio;
$inte->int_fin = $int->int_fin;
$inte->int_opcion1 = $int->int_opcion1;
if($int->int_grafico == 1){
$inte->int_opcion1_punto = $int->int_opcion1_punto;
}else{
$inte->int_opcion1_punto = $int->int_opcion1;
}
$inte->int_opcion2 = $int->int_opcion2;
if($int->int_grafico == 1){
$inte->int_opcion2_punto = $int->int_opcion2_punto;
}else{
$inte->int_opcion2_punto = $int->int_opcion2;
}
$inte->int_opcion3 = $int->int_opcion3;
if($int->int_grafico == 1){
$inte->int_opcion3_punto = $int->int_opcion3_punto;
}else{
$inte->int_opcion3_punto = $int->int_opcion3;
}
$inte->int_opcion4 = $int->int_opcion4;
if($int->int_grafico == 1){
$inte->int_opcion4_punto = $int->int_opcion4_punto;
}else{
$inte->int_opcion4_punto = $int->int_opcion4;
}
$inte->int_opcion5 = $int->int_opcion5;
if($int->int_grafico == 1){
$inte->int_opcion5_punto = $int->int_opcion5_punto;
}else{
$inte->int_opcion5_punto = $int->int_opcion5;
}
$inte->int_opcion6 = $int->int_opcion6;
if($int->int_grafico == 1){
$inte->int_opcion6_punto = $int->int_opcion6_punto;
}else{
$inte->int_opcion6_punto = $int->int_opcion6;
}
$inte->int_opcion7 = $int->int_opcion7;
if($int->int_grafico == 1){
$inte->int_opcion7_punto = $int->int_opcion7_punto;
}else{
$inte->int_opcion7_punto = $int->int_opcion7;
}
$inte->int_opcion8 = $int->int_opcion8;
if($int->int_grafico == 1){
$inte->int_opcion8_punto = $int->int_opcion8_punto;
}else{
$inte->int_opcion8_punto = $int->int_opcion8;
}
$inte->int_opcion9 = $int->int_opcion9;
if($int->int_grafico == 1){
$inte->int_opcion9_punto = $int->int_opcion9_punto;
}else{
$inte->int_opcion9_punto = $int->int_opcion9;
}
$inte->int_opcion10 = $int->int_opcion10;
if($int->int_grafico == 1){
$inte->int_opcion10_punto = $int->int_opcion10_punto;
}else{
$inte->int_opcion10_punto = $int->int_opcion10;
}
$inte->save();
}
}
}
}
$this->emit('alert', ['type' => 'success', 'message' => 'Clonación hecha correctamente.']);
}
public function store()
{
$validatedDate = $this->validate([
'eva_nombre' => 'required',
'eva_descripcion' => 'required',
'eva_informe' => 'required',
'eva_autoevaluacion' => '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->eva_informe = $evaluacion->eva_informe;
$this->eva_autoevaluacion = $evaluacion->eva_autoevaluacion;
}
public function cancel()
{
$this->updateMode = false;
$this->resetInputFields();
}
public function update()
{
$validatedDate = $this->validate([
'eva_nombre' => 'required',
'eva_descripcion' => 'required',
'eva_informe' => 'required',
'eva_autoevaluacion' => 'required',
]);
if ($this->evaluacion_id) {
$evaluacion = Evaluacion::find($this->evaluacion_id);
$evaluacion->update([
'eva_nombre' => $this->eva_nombre,
'eva_descripcion' => $this->eva_descripcion,
'eva_informe' => $this->eva_informe,
'eva_autoevaluacion' => $this->eva_autoevaluacion,
]);
$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.!']);
}
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists