Sindbad~EG File Manager

Current Path : /proc/self/root/var/www/html/eva.sumar.com.py/app/Http/Livewire/
Upload File :
Current File : //proc/self/root/var/www/html/eva.sumar.com.py/app/Http/Livewire/Usuarios.php

<?php

namespace App\Http\Livewire;

use Livewire\Component;
use App\Models\User;
use App\Models\Grupo;
use App\Models\Matricula;
use Livewire\WithPagination;
use Illuminate\Support\Facades\Hash;
use Livewire\WithFileUploads;
use App\File;
use Maatwebsite\Excel\Facades\Excel;
use App\Imports\UsersImport;
use Auth;
use DB;

class Usuarios extends Component{

    use WithPagination;
    use WithFileUploads;

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

    protected $paginationTheme = 'bootstrap';

	public $buscar='';

	public $usuario_id,$name,$email,$password,$ci,$fileusuarios,$grupo_id;

    public function render(){

        $usuarios=User::where('name','LIKE',"%{$this->buscar}%")->paginate(50);

        $grupos=Grupo::where('estado',1)->get();

        $matriculas=DB::table('matriculas as ma')
            ->join('grupos as gr','ma.grupo_id','gr.id')
            ->select('ma.usuario_id','gr.grupo')->get();

        return view('livewire.usuarios.index',[
            "usuarios"=>$usuarios,
            "grupos"=>$grupos,
            "matriculas"=>$matriculas
        ]);
    }

    private function resetInputFields(){
        $this->name = '';
        $this->email = '';
        $this->password = '';
        $this->ci = '';
        $this->grupo_id = '';
        $this->usuario_id = '';
    }

    public function cancel(){
        $this->resetInputFields();
    }

    public function store(){

        $validatedDate = $this->validate([
            'fileusuarios' => 'required',
        ],
        [
            'fileusuarios.required' => 'Seleccione un archivo',
        ]);

        Excel::import(new UsersImport, $this->fileusuarios);

        $this->emit('alert', ['type' => 'info', 'message' => 'Usuarios importados correctamente.']);

        $this->resetInputFields();


    }
    
    public function storesimple(){

        $validatedDate = $this->validate([
                'name' => 'required',
                'email' => 'required',
                'ci' => 'required',
                'grupo_id' => 'required',
            ],
            [
                'name.required' => 'El campo Nombre y Apellido es requerido',
                'email.required' => 'El campo email es requerido',
                'ci.required' => 'El campo C.I. Nº es requerido',
                'grupo_id.required' => 'El campo grupo es requerido',
            ]
        );
 
        
        $usuario = new User;
            $usuario->name = $this->name;
            $usuario->email = $this->email;
            $usuario->password = Hash::make($this->password);
            $usuario->ci = $this->ci;
        if($usuario->save()){
            Matricula::create([
                'grupo_id' => $this->grupo_id,
                'usuario_id' =>  $usuario->id,
            ]);
        }

        $this->emit('alert', ['type' => 'success', 'message' => 'Usuario creado correctamente.']);
        $this->resetInputFields();
    }

    public function edit($id){
        $usuario = User::where('id',$id)->first();
        $this->usuario_id = $id;
        $this->name = $usuario->name;
        $this->email = $usuario->email;
        $this->ci = $usuario->ci;
        if($matricula=Matricula::where('usuario_id',$this->usuario_id)->first()){
            $this->grupo_id=$matricula->grupo_id;
        }
    }

    public function update(){

        $validatedDate = $this->validate([
                'name' => 'required',
                'email' => 'required',
                'ci' => 'required',
                'grupo_id' => 'required',
            ],
            [
                'name.required' => 'El campo Nombre y Apellido es requerido',
                'email.required' => 'El campo email es requerido',
                'ci.required' => 'El campo C.I. Nº es requerido',
                'grupo_id.required' => 'El campo grupo es requerido',
            ]
        );
 
        if ($this->usuario_id) {
            $usuario = User::find($this->usuario_id);
            if($this->password){
                $usuario->update([
                    'name' => $this->name,
                    'email' => $this->email,
                    'password' => Hash::make($this->password),
                    'ci' => $this->ci,
                ]);
            }else{
                $usuario->update([
                    'name' => $this->name,
                    'email' => $this->email,
                    'ci' => $this->ci,
                ]);
            }

            if($matricula=Matricula::where('usuario_id',$this->usuario_id)->first()){
                $matricula->grupo_id=$this->grupo_id;
                $matricula->update();
            }else{
                Matricula::create([
                    'grupo_id' => $this->grupo_id,
                    'usuario_id' =>  $this->usuario_id,
                ]);
            }

            $this->emit('alert', ['type' => 'info', 'message' => 'usuario actualizado correctamente.']);
            $this->emit('cerrarmodal');
            $this->resetInputFields();
 
        }
    }

    public function delete($id){
        if($id){
            $usuario = User::find($id);
            if ($usuario->estado == 1) {
                $usuario->update([
                    'estado' => 0,
                ]);
                $this->emit('alert', ['type' => 'error', 'message' => '¡Usuario bloqueado correctamente.!']);
            }else{
                $usuario->update([
                    'estado' => 1,
                ]); 
                $this->emit('alert', ['type' => 'success', 'message' => '¡Usuario activado correctamente.!']);
            }
        }
    }
}

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