Sindbad~EG File Manager
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use App\Models\User;
use App\Models\Equipo;
use App\Models\Matricula;
use App\Models\Matriculaindividual;
use Livewire\WithPagination;
use Illuminate\Support\Facades\Hash;
use Livewire\WithFileUploads;
use App\File;
use Maatwebsite\Excel\Facades\Excel;
use App\Imports\UsersImport;
use Carbon\Carbon;
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,$fileusuarios,$equipo_id,$desafio_id=[];
public function render(){
$usuarios=User::where('name','LIKE',"%{$this->buscar}%")->paginate(20);
$equipos=Equipo::where('estado',1)->get();
$desafios=DB::table('desafioindividuals')
->whereDate('fecha_limite','>=',Carbon::today()->toDateString())
->where('estado',1)->get();
return view('livewire.usuarios.index',[
"usuarios"=>$usuarios,
"equipos"=>$equipos,
"desafios"=>$desafios
]);
}
private function resetInputFields(){
$this->name = '';
$this->email = '';
$this->password = '';
$this->equipo_id = '';
$this->usuario_id = '';
$this->desafio_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',
'password' => 'required',
'equipo_id' => 'required',
'desafio_id' => 'required',
],[
'name.required' => 'El campo Nombre y Apellido no puede estar vacio',
'email.required' => 'El campo Email no puede estar vacio',
'password.required' => 'El campo Contraseña no puede estar vacio',
'equipo_id.required' => 'El campo Equipo no puede estar vacio',
'desafio_id.required' => 'El campo Desafios no puede estar vacio',
]);
$usuario = new User;
$usuario->name = $this->name;
$usuario->email = $this->email;
$usuario->password = Hash::make($this->password);
if($usuario->save()){
$matricula = new Matricula();
$matricula->equipo_id = $this->equipo_id;
$matricula->usuario_id = $usuario->id;
$matricula->save();
foreach($this->desafio_id as $desafio){
$matriculaindividual=new Matriculaindividual;
$matriculaindividual->desafio_id=$desafio;
$matriculaindividual->usuario_id=$usuario->id;
$matriculaindividual->save();
}
}
$this->emit('alert', ['type' => 'info', 'message' => 'Usuario creado correctamente.']);
$this->resetInputFields();
}
public function edit($id){
$this->resetInputFields();
$usuario = User::find($id);
$this->usuario_id = $id;
$this->name = $usuario->name;
$this->email = $usuario->email;
if($matricula=Matricula::where('usuario_id',$this->usuario_id)->first()){
$this->equipo_id=$matricula->equipo_id;
}
if($matriculaindividual=Matriculaindividual::where('usuario_id',$this->usuario_id)->get()){
foreach($matriculaindividual as $individual){
$this->desafio_id[]=$individual->desafio_id;
}
}
}
public function update(){
$validatedDate = $this->validate([
'name' => 'required',
'email' => 'required',
'equipo_id' => 'required',
'desafio_id' => 'required',
],
[
'name.required' => 'El campo Nombre y Apellido es requerido',
'email.required' => 'El campo email es requerido',
'equipo_id.required' => 'El campo grupo es requerido',
'desafio_id.required' => 'El campo Desafios no puede estar vacio',
]
);
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),
]);
}else{
$usuario->update([
'name' => $this->name,
'email' => $this->email,
]);
}
if($matricula=Matricula::where('usuario_id',$this->usuario_id)->first()){
$matricula->equipo_id=$this->equipo_id;
$matricula->update();
}else{
Matricula::create([
'equipo_id' => $this->equipo_id,
'usuario_id' => $this->usuario_id,
]);
}
if($matriculaindividual=Matriculaindividual::where('usuario_id',$this->usuario_id)->get()){
foreach($matriculaindividual as $individual){
$individual->delete();
}
}
foreach($this->desafio_id as $desafio){
$matriculaindividual=new Matriculaindividual;
$matriculaindividual->desafio_id=$desafio;
$matriculaindividual->usuario_id=$this->usuario_id;
$matriculaindividual->save();
}
$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