You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
2.5 KiB

<?php
namespace App\Http\Controllers\Administracion;
use App\Models\User;
use App\Models\Grupos;
use App\Models\UsersGrupos;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class GruposTrabajoController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
return view('grupos/grupos',['users'=>User::select('id','name')->where('activo',1)->where('eliminado',0)->get()]);
}
function nuevo_grupo(Request $request){
Grupos::create($request->grupos);
return "Exito";
}
function agregar_users_grupo(Request $request){
$grupo= collect($request->all())->except('_token','fk_id_users');
$usuariosActual = User::where('fk_id_grupos',$grupo)->pluck('id')->toArray();
$usuariosNuevo= collect($request->all())->except('_token','fk_id_grupos')->toArray();
$nuevosintegrantes = array_diff($usuariosNuevo['fk_id_users'] , $usuariosActual);
$sacarintegrantes = array_diff( $usuariosActual,$usuariosNuevo['fk_id_users'] );
//INSERTAR USUARIOS AL GRUPO Y ACTUALIZA USUARIO
if(!empty($nuevosintegrantes)){
foreach($nuevosintegrantes as $dato ){
UsersGrupos::create(['fk_id_users' => $dato,
'fk_id_grupos'=>$grupo['fk_id_grupos'],
'activo'=>1]);
User::where('id',$dato )->update([
'fk_id_grupos' => $grupo['fk_id_grupos']]);
}
}
//SACA USUARIOS DEL GRUPO Y ACTUALIZA USUARIO A 0
if(!empty($sacarintegrantes)){
echo("sacar Integrantes");
foreach($sacarintegrantes as $dato ){
UsersGrupos::where('fk_id_users',$dato )->update([
'activo'=>0,
'eliminado'=>1]);
User::where('id',$dato )->update([
'fk_id_grupos' => 0 ]);
}
}
return "Exito";
}
public function eliminar_grupo(Request $request){
Grupos::where('id',$request->id )->update([
'activo'=>0,
'eliminado'=>1]);
User::where('fk_id_grupos',$request->id)->update([
'fk_id_grupos' => 0 ]);
}
public function vaciar_users_grupo(Request $request){
User::where('fk_id_grupos',$request->fk_id_grupos)->update([
'fk_id_grupos' => 0 ]);
}
}