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/Listadomonedas.php
<?php

namespace App\Http\Livewire;

use Livewire\Component;
use App\Models\Monedaparticipante;
use App\Models\User;
use App\Models\Desafioindividual;
use Livewire\WithPagination;
use DB;

class Listadomonedas extends Component{

	use WithPagination;

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

    protected $paginationTheme = 'bootstrap';

	public $buscar='';

	public $monedas_id,$monedas,$estado,$desafio_id,$usuario_id,$comentario_id,$comentario;
    
    public $updateMode = false;

    public function render(){

    	$usuarios=User::where('estado',1)->orderBy('name','asc')->get();
    	$desafios=Desafioindividual::where('estado',1)->get();

    	$monedass=DB::table('monedaparticipantes as m')
    		->join('desafioindividuals as d','m.desafio_id','d.id')
    		->join('users as u','m.usuario_id','u.id')
    		->select('m.*','d.titulo','u.name')
    		->where('u.name','LIKE',"%{$this->buscar}%")->paginate(12);

        return view('livewire.listadomonedas.index',["monedass"=>$monedass,"usuarios"=>$usuarios,"desafios"=>$desafios]);
    }

    private function resetInputFields(){
    	$this->monedas='';
    	$this->desafio_id='';
    	$this->usuario_id='';
        $this->comentario = '';
    }
 
    public function store()
    {
        $validatedDate = $this->validate([
        	'monedas'=>'required',
	    	'desafio_id'=>'required',
	    	'usuario_id'=>'required',
        ]);
 
        Monedaparticipante::create([
        	'monedas'=>$this->monedas,
	    	'desafio_id'=>$this->desafio_id,
	    	'usuario_id'=>$this->usuario_id,
        ]);
 
        $this->emit('alert', ['type' => 'success', 'message' => 'Monedas agregadas correctamente.']);
 
        $this->resetInputFields();
 
    }
 
    public function edit($id)
    {
        $this->updateMode = true;
        $punto = Monedaparticipante::find($id);
        $this->monedas=$punto->monedas;
    	$this->desafio_id=$punto->desafio_id;
    	$this->usuario_id=$punto->usuario_id;
    }
 
    public function cancel()
    {
        $this->updateMode = false;
        $this->resetInputFields();
    }
 
    public function update()
    {
        $validatedDate = $this->validate([
        	'monedas'=>'required',
	    	'desafio_id'=>'required',
	    	'usuario_id'=>'required',
        ]);
 
        if ($this->monedas_id) {

        	$punto = Monedaparticipante::find($this->monedas_id);

            $punto->update([
                'monedas'=>$this->monedas,
		    	'desafio_id'=>$this->desafio_id,
		    	'usuario_id'=>$this->usuario_id,
            ]);

            $this->updateMode = false;
            $this->emit('alert', ['type' => 'info', 'message' => 'Monedas actualizadas correctamente.']);
            $this->resetInputFields();
 
        }
    }
 
    public function delete($id)
    {
        if($id){

        	$punto=Monedaparticipante::find($id);   	
            $punto->delete();

            $this->emit('alert', ['type' => 'error', 'message' => '¡Monedas eliminadas correctamente.!']);
        }
    }

    public function editcomentario($id)
    {
        $punto = Monedaparticipante::find($id);
        
        $this->comentario = $punto->comentario;
        $this->comentario_id = $punto->id;
    }

    public function updatecomentario(){

        $validatedDate = $this->validate([
            'comentario' => 'required',
        ]);

        $punto = Monedaparticipante::find($this->comentario_id);

        $punto->comentario = $this->comentario;

        $punto->update();

        $this->emit('alert', ['type' => 'info', 'message' => 'Comentario guardado correctamente.']);
        $this->resetInputFields();

    }
}