Sindbad~EG File Manager
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use App\Models\Puntos;
use App\Models\Mision;
use App\Models\Equipo;
use App\Models\Comentariomisionequipo;
use Livewire\WithPagination;
use Carbon\Carbon;
use Auth;
use DB;
class Listadopuntos extends Component{
use WithPagination;
protected $queryString = ['buscar' => ['except' => '']];
protected $paginationTheme = 'bootstrap';
public $buscar='',$fecha_inicio,$fecha_fin;
public $equipo_id,$mision_id,$puntos,$puntosextras,$puntos_id,$comentario_id,$comentario;
public $updateMode = false;
public function render(){
$equipos = Equipo::where('estado',1)->get();
$misiones = Mision::where('estado',1)->whereYear('fecha_limite','>=',Carbon::now())->get();
if($this->fecha_inicio && $this->fecha_fin){
$puntoscol=DB::table('puntos as p')
->join('misions as m','p.mision_id','m.id')
->join('equipos as e','p.equipo_id','e.id')
->select('p.*','m.titulo','e.nombre')
->whereDate('m.fecha_limite','>=',Carbon::parse($this->fecha_inicio)->toDateString())
->whereDate('m.fecha_limite','<=',Carbon::parse($this->fecha_fin)->toDateString())
->where('e.nombre','LIKE',"%{$this->buscar}%")->orderBy('p.id','desc')->paginate(12);
}else{
$puntoscol=DB::table('puntos as p')
->join('misions as m','p.mision_id','m.id')
->join('equipos as e','p.equipo_id','e.id')
->select('p.*','m.titulo','e.nombre')
->where('e.nombre','LIKE',"%{$this->buscar}%")
->orwhere('m.titulo','LIKE',"%{$this->buscar}%")
->orwhere('m.puntos','LIKE',"%{$this->buscar}%")->orderBy('p.id','desc')->paginate(12);
}
return view('livewire.listadopuntos.index',["puntoscol" => $puntoscol,"equipos" => $equipos,"misiones" => $misiones]);
}
private function resetInputFields(){
$this->equipo_id = '';
$this->mision_id = '';
$this->puntos = '';
$this->puntosextras = '';
$this->puntos_id = '';
$this->comentario = '';
$this->comentario_id = '';
}
public function store()
{
$validatedDate = $this->validate([
'equipo_id' => 'required',
'mision_id' => 'required',
'puntos' => 'required',
'puntosextras' => 'required',
]);
Puntos::create([
'equipo_id' => $this->equipo_id,
'mision_id' => $this->mision_id,
'puntos' => $this->puntos,
'puntos_extras' => $this->puntosextras,
]);
$equipo=Equipo::findOrFail($this->equipo_id);
$equipo->puntos+=$this->puntos;
$equipo->puntos_extras+=$this->puntosextras;
$equipo->update();
$this->emit('alert', ['type' => 'success', 'message' => 'Puntos agregados correctamente.']);
$this->resetInputFields();
}
public function edit($id)
{
$this->updateMode = true;
$punto = Puntos::find($id);
$this->puntos_id = $id;
$this->equipo_id = $punto->equipo_id;
$this->mision_id = $punto->mision_id;
$this->puntos = $punto->puntos;
$this->puntosextras = $punto->puntos_extras;
}
public function cancel()
{
$this->updateMode = false;
$this->resetInputFields();
}
public function update()
{
$validatedDate = $this->validate([
'equipo_id' => 'required',
'mision_id' => 'required',
'puntos' => 'required',
'puntosextras' => 'required',
]);
if ($this->puntos_id) {
$punto = Puntos::find($this->puntos_id);
$equipo=Equipo::findOrFail($this->equipo_id);
$equipo->puntos-=$punto->puntos;
$equipo->puntos_extras-=$punto->puntos_extras;
$equipo->update();
$punto->update([
'equipo_id' => $this->equipo_id,
'mision_id' => $this->mision_id,
'puntos' => $this->puntos,
'puntos_extras' => $this->puntosextras,
]);
$equipo=Equipo::findOrFail($this->equipo_id);
$equipo->puntos+=$this->puntos;
$equipo->puntos_extras+=$this->puntosextras;
$equipo->update();
$this->updateMode = false;
$this->emit('alert', ['type' => 'info', 'message' => 'Puntos actualizada correctamente.']);
$this->resetInputFields();
}
}
public function delete($id){
if($id){
$punto = Puntos::find($id);
$equipo=Equipo::findOrFail($punto->equipo_id);
$equipo->puntos-=$punto->puntos;
$equipo->puntos_extras-=$punto->puntos_extras;
$equipo->update();
$comentarios=Comentariomisionequipo::where('punto_id',$punto->id)->get();
foreach($comentarios as $comentario){
$comentario->delete();
}
$punto->delete();
$this->emit('alert', ['type' => 'error', 'message' => '¡Puntos eliminados correctamente.!']);
}
}
public function editcomentario($id){
$comentario = Comentariomisionequipo::find($id);
$this->comentario = $comentario->comentario;
$this->comentario_id = $id;
}
public function updatecomentario($id){
$validatedDate = $this->validate([
'comentario' => 'required',
]);
if($this->comentario_id){
$comentario = Comentariomisionequipo::find($this->comentario_id);
$comentario->comentario = $this->comentario;
$comentario->usuario_id = Auth::user()->id;
$comentario->punto_id = $id;
$comentario->update();
}else{
$comentario = new Comentariomisionequipo;
$comentario->comentario = $this->comentario;
$comentario->usuario_id = Auth::user()->id;
$comentario->punto_id = $id;
$comentario->save();
}
$this->emit('alert', ['type' => 'info', 'message' => 'Comentario guardado correctamente.']);
$this->resetInputFields();
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists