File: /var/www/html/xfacil.desafio.com.py/app/Http/Livewire/Interrogantes.php
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use App\Models\Competencia;
use App\Models\Interrogante;
use Livewire\WithPagination;
class Interrogantes extends Component{
use WithPagination;
protected $queryString = ['buscar' => ['except' => '']];
protected $paginationTheme = 'bootstrap';
public $buscar='';
public $int_nom,$int_tipo,$interrogante_id,$competencia_id,$ubicacion,$int_nr,$int_inicio,$int_fin,$int_opcion1,$int_opcion1_punto,$int_opcion2,$int_opcion2_punto,$int_opcion3,$int_opcion3_punto,$int_opcion4,$int_opcion4_punto,$int_opcion5,$int_opcion5_punto,$int_opcion6,$int_opcion6_punto,$int_opcion7,$int_opcion7_punto,$int_opcion8,$int_opcion8_punto,$int_opcion9,$int_opcion9_punto,$int_opcion10,$int_opcion10_punto;
public $updateMode = 0;
public function render(){
$competencia = Competencia::where('id',$this->competencia_id)->first();
$interrogantes=Interrogante::where('int_nom','LIKE',"%{$this->buscar}%")->where('competencia_id',$competencia->id)->where('int_estado',1)->orderBy('int_ubicacion','asc')->paginate(12);
return view('livewire.formularios.competencias.interrogantes.index',["competencia" => $competencia,"interrogantes" => $interrogantes]);
}
private function resetInputFields(){
$this->emit('int_nom', '');
$this->int_tipo = '';
$this->int_nr = Null;
$this->int_inicio = Null;
$this->int_fin = Null;
$this->int_opcion1 = '';
$this->int_opcion1_punto = Null;
$this->int_opcion2 = '';
$this->int_opcion2_punto = Null;
$this->int_opcion3 = '';
$this->int_opcion3_punto = Null;
$this->int_opcion4 = '';
$this->int_opcion4_punto = Null;
$this->int_opcion5 = '';
$this->int_opcion5_punto = Null;
$this->int_opcion6 = '';
$this->int_opcion6_punto = Null;
$this->int_opcion7 = '';
$this->int_opcion7_punto = Null;
$this->int_opcion8 = '';
$this->int_opcion8_punto = Null;
$this->int_opcion9 = '';
$this->int_opcion9_punto = Null;
$this->int_opcion10 = '';
$this->int_opcion10_punto = Null;
}
public function store(){
$validatedDate = $this->validate([
'int_nom' => 'required',
'int_tipo' => 'required',
'competencia_id' => 'required',
]);
$ultimainterrogante = Interrogante::where('competencia_id',$this->competencia_id)->orderBy('id','desc')->first();
if( $ultimainterrogante == NULL ) {
$this->ubicacion = 1;
}else{
$this->ubicacion=$ultimainterrogante->int_ubicacion+1;
}
Interrogante::create([
'int_nom' => $this->int_nom,
'int_tipo' => $this->int_tipo,
'int_ubicacion' => $this->ubicacion,
'competencia_id' => $this->competencia_id,
'int_nr' => $this->int_nr,
'int_inicio' => $this->int_inicio,
'int_fin' => $this->int_fin,
'int_opcion1' => $this->int_opcion1,
'int_opcion1_punto' => $this->int_opcion1_punto,
'int_opcion2' => $this->int_opcion2,
'int_opcion2_punto' => $this->int_opcion2_punto,
'int_opcion3' => $this->int_opcion3,
'int_opcion3_punto' => $this->int_opcion3_punto,
'int_opcion4' => $this->int_opcion4,
'int_opcion4_punto' => $this->int_opcion4_punto,
'int_opcion5' => $this->int_opcion5,
'int_opcion5_punto' => $this->int_opcion5_punto,
'int_opcion6' => $this->int_opcion6,
'int_opcion6_punto' => $this->int_opcion6_punto,
'int_opcion7' => $this->int_opcion7,
'int_opcion7_punto' => $this->int_opcion7_punto,
'int_opcion8' => $this->int_opcion8,
'int_opcion8_punto' => $this->int_opcion8_punto,
'int_opcion9' => $this->int_opcion9,
'int_opcion9_punto' => $this->int_opcion9_punto,
'int_opcion10' => $this->int_opcion10,
'int_opcion10_punto' => $this->int_opcion10_punto,
]);
$this->emit('alert', ['type' => 'success', 'message' => 'Interrogante creada correctamente.']);
$this->resetInputFields();
}
public function edit($id)
{
$this->updateMode = 1;
$interrogante = Interrogante::where('id',$id)->first();
$this->interrogante_id = $id;
$this->emit('int_nom', $interrogante->int_nom);
$this->int_tipo = $interrogante->int_tipo;
$this->int_nr = $interrogante->int_nr;
$this->int_inicio = $interrogante->int_inicio;
$this->int_fin = $interrogante->int_fin;
$this->int_opcion1 = $interrogante->int_opcion1;
$this->int_opcion1_punto = $interrogante->int_opcion1_punto;
$this->int_opcion2 = $interrogante->int_opcion2;
$this->int_opcion2_punto = $interrogante->int_opcion2_punto;
$this->int_opcion3 = $interrogante->int_opcion3;
$this->int_opcion3_punto = $interrogante->int_opcion3_punto;
$this->int_opcion4 = $interrogante->int_opcion4;
$this->int_opcion4_punto = $interrogante->int_opcion4_punto;
$this->int_opcion5 = $interrogante->int_opcion5;
$this->int_opcion5_punto = $interrogante->int_opcion5_punto;
$this->int_opcion6 = $interrogante->int_opcion6;
$this->int_opcion6_punto = $interrogante->int_opcion6_punto;
$this->int_opcion7 = $interrogante->int_opcion7;
$this->int_opcion7_punto = $interrogante->int_opcion7_punto;
$this->int_opcion8 = $interrogante->int_opcion8;
$this->int_opcion8_punto = $interrogante->int_opcion8_punto;
$this->int_opcion9 = $interrogante->int_opcion9;
$this->int_opcion9_punto = $interrogante->int_opcion9_punto;
$this->int_opcion10 = $interrogante->int_opcion10;
$this->int_opcion10_punto = $interrogante->int_opcion10_punto;
}
public function subir($posicion){
$prox_posicion=intval($posicion)-1;
$acceso_posicion=Interrogante::where('competencia_id',$this->competencia_id)->where('int_ubicacion',$posicion)->first();
$acceso_prox_posicion=Interrogante::where('competencia_id',$this->competencia_id)->where('int_ubicacion',$prox_posicion)->first();
$id=$acceso_posicion->id;
$interrogante = Interrogante::find($id);
$interrogante->update([
'int_ubicacion' => $prox_posicion,
]);
$id=$acceso_prox_posicion->id;
$interrogante = Interrogante::find($id);
$interrogante->update([
'int_ubicacion' => $posicion,
]);
}
public function bajar($posicion){
$prox_posicion=intval($posicion)+1;
$acceso_posicion=Interrogante::where('competencia_id',$this->competencia_id)->where('int_ubicacion',$posicion)->first();
$acceso_prox_posicion=Interrogante::where('competencia_id',$this->competencia_id)->where('int_ubicacion',$prox_posicion)->first();
$id=$acceso_posicion->id;
$interrogante = Interrogante::find($id);
$interrogante->update([
'int_ubicacion' => $prox_posicion,
]);
$id=$acceso_prox_posicion->id;
$interrogante = Interrogante::find($id);
$interrogante->update([
'int_ubicacion' => $posicion,
]);
}
public function cancel()
{
$this->updateMode = false;
$this->resetInputFields();
}
public function update()
{
$validatedDate = $this->validate([
'int_nom' => 'required',
'int_tipo' => 'required',
'interrogante_id' => 'required',
]);
if ($this->interrogante_id) {
$interrogante = Interrogante::find($this->interrogante_id);
$interrogante->update([
'int_nom' => $this->int_nom,
'int_tipo' => $this->int_tipo,
'int_nr' => $this->int_nr,
'int_inicio' => $this->int_inicio,
'int_fin' => $this->int_fin,
'int_opcion1' => $this->int_opcion1,
'int_opcion1_punto' => $this->int_opcion1_punto,
'int_opcion2' => $this->int_opcion2,
'int_opcion2_punto' => $this->int_opcion2_punto,
'int_opcion3' => $this->int_opcion3,
'int_opcion3_punto' => $this->int_opcion3_punto,
'int_opcion4' => $this->int_opcion4,
'int_opcion4_punto' => $this->int_opcion4_punto,
'int_opcion5' => $this->int_opcion5,
'int_opcion5_punto' => $this->int_opcion5_punto,
'int_opcion6' => $this->int_opcion6,
'int_opcion6_punto' => $this->int_opcion6_punto,
'int_opcion7' => $this->int_opcion7,
'int_opcion7_punto' => $this->int_opcion7_punto,
'int_opcion8' => $this->int_opcion8,
'int_opcion8_punto' => $this->int_opcion8_punto,
'int_opcion9' => $this->int_opcion9,
'int_opcion9_punto' => $this->int_opcion9_punto,
'int_opcion10' => $this->int_opcion10,
'int_opcion10_punto' => $this->int_opcion10_punto,
]);
$this->updateMode = 0;
$this->emit('alert', ['type' => 'info', 'message' => 'interrogante actualizada correctamente.']);
$this->resetInputFields();
}
}
public function delete($id)
{
if($id){
$interrogante = Interrogante::find($id);
$interrogante->update([
'int_estado' => 0,
]);
$this->emit('alert', ['type' => 'error', 'message' => '¡Interrogante eliminada correctamente.!']);
}
}
}