HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/8.0.30
System: Linux multiplicar 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64
User: root (0)
PHP: 8.0.30
Disabled: NONE
Upload Files
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.!']);
        }
    }
}