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

namespace App\Http\Livewire;

use Livewire\Component;
use App\Models\Puntos;
use App\Models\Matricula;
use App\Models\Mision;
use App\Models\Equipo;
use Livewire\WithPagination;
use Carbon\Carbon;
use Auth; 
use DB;

class Puntajes extends Component{

	use WithPagination;

    protected $paginationTheme = 'bootstrap';

	public $fecha_inicio,$fecha_fin;

	public function mount(){
		$this->fecha_inicio=Carbon::now()->format('Y')."-01-01";
		$this->fecha_fin=Carbon::now()->format('Y-m-d');
	}

    public function render(){
		$total=0;
		$totallogrados=0;
    	$matricula=Matricula::where('usuario_id',Auth::user()->id)->first();

    	$totalpuntos=DB::table('mision_matriculas as mm')
    		->join('misions as m','mm.mision_id','m.id')
    		->where('m.estado',1)
    		->where('mm.equipo_id',$matricula->equipo_id)->sum('m.puntos');

    	$totalpuntosextras=DB::table('mision_matriculas as mm')
    		->join('misions as m','mm.mision_id','m.id')
    		->where('m.estado',1)
    		->where('mm.equipo_id',$matricula->equipo_id)->sum('m.puntos_extras');

    	$total=$totalpuntos+$totalpuntosextras;

    	$totalpuntoslogrados=DB::table('puntos as p')
    		->join('misions as m','p.mision_id','m.id')
    		->where('m.estado',1)
    		->where('p.equipo_id',$matricula->equipo_id)->sum('p.puntos');

    	$totalpuntosextraslogrados=DB::table('puntos as p')
    		->join('misions as m','p.mision_id','m.id')
    		->where('m.estado',1)
    		->where('p.equipo_id',$matricula->equipo_id)->sum('p.puntos_extras');

    	$totallogrados=$totalpuntoslogrados+$totalpuntosextraslogrados;

		if($this->fecha_inicio && $this->fecha_fin){
            $misiones=DB::table('mision_matriculas as mm')
                ->join('misions as m','mm.mision_id','m.id')
                ->select('m.*')
                ->whereDate('m.fecha_limite','>=',Carbon::parse($this->fecha_inicio)->toDateString())
                ->whereDate('m.fecha_limite','<=',Carbon::parse($this->fecha_fin)->toDateString())
                ->where('m.estado',1)
                ->where('mm.equipo_id',$matricula->equipo_id)->orderBy('m.id','desc')->paginate(10);
        }else{
            $misiones=DB::table('mision_matriculas as mm')
                ->join('misions as m','mm.mision_id','m.id')
                ->select('m.*')
                ->where('m.estado',1)
                ->where('mm.equipo_id',$matricula->equipo_id)->orderBy('m.id','desc')->paginate(10);
        }

        return view('livewire.puntajes',[
			'misiones'=>$misiones,
			'totalpuntos'=>$total,
			'totalpuntoslogrados'=>$totallogrados
		]);
    }
}