Sindbad~EG File Manager
<?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