Sindbad~EG File Manager

Current Path : /var/www/html/xfacil.desafio.com.py/app/Http/Livewire/
Upload File :
Current File : /var/www/html/xfacil.desafio.com.py/app/Http/Livewire/Asignaciones.php

<?php

namespace App\Http\Livewire;

use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Matricula;
use App\Models\User;
use App\Models\Equipo;
use DB;
use Image, file;
use Livewire\WithFileUploads;
use Illuminate\Support\Facades\Hash;

class Asignaciones extends Component{

	use WithPagination;

    use WithFileUploads;

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

    protected $paginationTheme = 'bootstrap';

	public $buscar='';

	public $equipo_id,$usuario,$rango,$matricula_id,$equipo_id2,$foto,$fotoactual,$password,$password_confirmation;

	public $updateMode = false;

    public function render(){

    	$matriculas=DB::table('matriculas as m')
	    	->join('users as u','m.usuario_id','u.id')
	    	->join('equipos as e','m.equipo_id','e.id')
	    	->select('m.*','u.name','e.nombre')
	    	->where('m.equipo_id',$this->equipo_id)
	    	->where('e.nombre','LIKE',"%{$this->buscar}%")->paginate(50);

	    $equipos = Equipo::where('estado',1)->get();
        
        return view('livewire.asignaciones',["matriculas" => $matriculas,"equipos" => $equipos]);
    }

    public function delete($id)
    {
        if($id){
            
            $matricula = Matricula::find($id);

            $matricula->delete();
            
            $this->emit('alert', ['type' => 'error', 'message' => '¡La matriculación se elimino correctamente.!']);

        }
    }

    private function resetInputFields(){
        $this->usuario = '';
        $this->equipo_id2 = '';
        $this->rango = '';
        $this->matricula_id = ''; 
        $this->foto = ''; 
        $this->fotoactual = ''; 
        $this->password = ''; 
        $this->password_confirmation = ''; 
    }

    public function edit($id)
    {
        $this->updateMode = true;
        $matri = Matricula::where('id',$id)->first();
        $usuario = User::where('id',$matri->usuario_id)->first();
        $this->usuario = $usuario->name;
        $this->equipo_id2 = $matri->equipo_id;
        $this->rango = $matri->rango;
        $this->matricula_id = $matri->id;
        $this->fotoactual=$usuario->foto;
        
    }
 
    public function cancel()
    {
        $this->updateMode = false;
        $this->resetInputFields();
 
 
    }
 
    public function update(){
        $validatedDate = $this->validate(
            [
                'rango' => 'required',
                'equipo_id2' => 'required',
            ],
            [
                'rango.required' => 'El campo Rango es requerido',
                'equipo_id2.required' => 'El campo Equipo es requerido',
            ]
        );

        
        if ($this->matricula_id) {

            if($file = $this->foto) {
                $control=0;
                $nombre = rand().".".$file->getClientOriginalExtension();
                while ($control == 0) {
                    if (is_file( public_path() . '/images/perfil/' . $nombre )) {
                        $nombre = rand() . $nombre;
                    }else{
                        Image::make($this->foto)
                            ->heighten(1000)
                            ->save(public_path() . '/images/perfil/' . $nombre);
                        $control=1;
                    }
                }
                $matri = Matricula::where('id',$this->matricula_id)->first();

                $user=User::findOrFail($matri->usuario_id);
                    
                    $user->foto=$nombre;

                $user->update();
            }

            $matricula = Matricula::find($this->matricula_id);
            $matricula->update([
                'rango' => $this->rango,
                'equipo_id' => $this->equipo_id2,
            ]);
            $this->updateMode = false;
            $this->emit('alert', ['type' => 'success', 'message' => 'Sus datos se guardaron correctamente.']);
            $this->emit('cerrarmodal');
            $this->resetInputFields();
 
        }
    }

    public function updatepass(){

        $validatedDate = $this->validate([
            'password' => 'min:8 required_with:password_confirmation|same:password_confirmation',
            'password_confirmation'=> 'required|min:8',
        ],
        [

            'password.required' => 'El campo contraseña no puede estar vacio',

            'password_confirmation.required' => 'El campo confirmar contraseña no puede estar vacio',      
        ]);

        $matri = Matricula::where('id',$this->matricula_id)->first();

        $user=User::findOrFail($matri->usuario_id);

        $user->update([
            'password' => Hash::make($this->password),
        ]);

        $this->emit('alert', ['type' => 'success', 'message' => 'La contraseña se actualizo correctamente.']);
        $this->emit('cerrarmodal');

        $this->resetInputFields();

    }
}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists