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();
}
}