Arreglada logica para crear y para modificar barrios

This commit is contained in:
Alejandro Tasistro 2025-08-13 01:45:17 -03:00
parent cdbd1504b6
commit 6fe4295577
2 changed files with 63 additions and 61 deletions

View file

@ -190,98 +190,100 @@ class ComisionesController
} }
public static function modificarGrupoDeCompra(Request $request, $grupo_de_compra_id) { public static function modificarGrupoDeCompra(Request $request, $grupo_de_compra_id) {
$request->validate([ $valid = $request->validate([
'nombre' => ['nullable','string','regex:/^([a-z]| )+$/i'], 'nombre' => ['nullable','string','regex:/^([a-z]| )+$/i'],
'region' => ['nullable','string','regex:/^([a-z]| |\d)+$/i'], 'region' => ['nullable','string','regex:/^([a-z]| |\d)+$/i'],
'passBarrio' => 'nullable|string|alpha_num', 'passBarrio' => ['nullable','string','alpha_num','min:3'],
'passAdmin' => 'nullable|string|alpha_num', 'passAdmin' => ['nullable','string','alpha_num','min:3'],
'passOllas' => 'nullable|string|alpha_num', 'passOllas' => ['nullable','string','alpha_num','min:3'],
]); ]);
$grupoDeCompra = GrupoDeCompra::find($grupo_de_compra_id); $grupoDeCompra = GrupoDeCompra::find($grupo_de_compra_id);
if ($request["nombre"]) { foreach (array_keys($valid) as $key) {
switch ($key) {
case 'nombre':
$users = User::where([ $users = User::where([
'grupo_de_compra_id' => $grupoDeCompra->id, 'grupo_de_compra_id' => $grupoDeCompra->id,
])->get(); ])->first();
foreach ($users as $user) { foreach ($users as $user) {
$user->name = str_replace($grupoDeCompra->nombre, $request['nombre'], $user->name); $user->name = str_replace($grupoDeCompra->nombre, $valid['nombre'], $user->name);
$user->save(); $user->save();
} }
$grupoDeCompra->nombre = $request['nombre']; $grupoDeCompra->nombre = $valid['nombre'];
$grupoDeCompra->save(); $grupoDeCompra->save();
} break;
case 'region':
if ($request["region"]) { $grupoDeCompra->region = $valid['region'];
$grupoDeCompra->region = $request['region'];
$grupoDeCompra->save(); $grupoDeCompra->save();
} break;
case 'passBarrio':
if ($request["passBario"]) {
$user = User::where([ $user = User::where([
'grupo_de_compra_id' => $grupoDeCompra->id, 'grupo_de_compra_id' => $grupoDeCompra->id,
'role_id' => UserRole::where(['nombre' => 'barrio'])->first()->id, 'role_id' => UserRole::where(['nombre' => 'barrio'])->first()->id,
]); ])->first();
$user->password = Hash::make($request['passBario']); $user->password = Hash::make($valid['passBarrio']);
$user->save(); $user->save();
} break;
case 'passAdmin':
if ($request["passAdmin"]) {
$user = User::where([ $user = User::where([
'grupo_de_compra_id' => $grupoDeCompra->id, 'grupo_de_compra_id' => $grupoDeCompra->id,
'role_id' => UserRole::where(['nombre' => 'admin_barrio'])->first()->id, 'role_id' => UserRole::where(['nombre' => 'admin_barrio'])->first()->id,
]); ])->first();
$user->password = Hash::make($request['passAdmin']); $user->password = Hash::make($valid['passAdmin']);
$user->save(); $user->save();
} break;
case 'passOllas':
if ($request["passOllas"]) {
$user = User::where([ $user = User::where([
'grupo_de_compra_id' => $grupoDeCompra->id, 'grupo_de_compra_id' => $grupoDeCompra->id,
'role_id' => UserRole::where(['nombre' => 'ollas'])->first()->id, 'role_id' => UserRole::where(['nombre' => 'ollas'])->first()->id,
]); ])->first();
$user->password = Hash::make($request['passOllas']); $user->password = Hash::make($valid['passOllas']);
$user->save(); $user->save();
break;
default:
break;
}
} }
return response()->noContent(); return response()->noContent();
} }
public static function crearGrupoDeCompra(Request $request) { public static function crearGrupoDeCompra(Request $request) {
$request->validate([ $valid = $request->validate([
'nombre' => ['required','string','regex:/^([a-z]| )+$/i'], 'nombre' => ['required','string','regex:/^([a-z]| )+$/i'],
'region' => ['required','string','regex:/^([a-z]| |\d)+$/i'], 'region' => ['required','string','regex:/^([a-z]| |\d)+$/i'],
'passBarrio' => 'required|string|alpha_num|min:3', 'passBarrio' => ['required','string','alpha_num','min:3'],
'passAdmin' => 'required|string|alpha_num|min:3', 'passAdmin' => ['required','string','alpha_num','min:3'],
'passOllas' => 'required|string|alpha_num|min:3', 'passOllas' => ['required','string','alpha_num','min:3'],
]); ]);
if (GrupoDeCompra::where(["nombre" => $valid["nombre"]])->get()->count())
if (GrupoDeCompra::where(["nombre" => $request["nombre"]])->get()->count()) throw new HttpException(400, "Ya existe un barrio con este nombre.");
throw new HttpException(400, "Ya existe un pedido con este nombre");
$gdc = GrupoDeCompra::create([ $gdc = GrupoDeCompra::create([
'nombre' => $request['nombre'], 'nombre' => $valid['nombre'],
'region' => $request['region'], 'region' => $valid['region'],
'saldo' => 0, 'saldo' => 0,
]); ]);
User::create([ User::create([
'grupo_de_compra_id' => $gdc->id, 'grupo_de_compra_id' => $gdc->id,
'name' => $request['nombre'], 'name' => $valid['nombre'],
'password' => Hash::make($request['passBario']), 'password' => Hash::make($valid['passBarrio']),
'role_id' => UserRole::where('nombre','barrio')->first()->id, 'role_id' => UserRole::where('nombre','barrio')->first()->id,
]); ]);
User::create([ User::create([
'grupo_de_compra_id' => $gdc->id, 'grupo_de_compra_id' => $gdc->id,
'name' => $request['nombre'] . '_admin', 'name' => $valid['nombre'] . '_admin',
'password' => Hash::make($request['passAdmin']), 'password' => Hash::make($valid['passAdmin']),
'role_id' => UserRole::where('nombre','admin_barrio')->first()->id, 'role_id' => UserRole::where('nombre','admin_barrio')->first()->id,
]); ]);
User::create([ User::create([
'grupo_de_compra_id' => $gdc->id, 'grupo_de_compra_id' => $gdc->id,
'name' => $request['nombre'] . '_ollas', 'name' => $valid['nombre'] . '_ollas',
'password' => Hash::make($request['passOllas']), 'password' => Hash::make($valid['passOllas']),
'role_id' => UserRole::where('nombre','ollas')->first()->id, 'role_id' => UserRole::where('nombre','ollas')->first()->id,
]); ]);

View file

@ -16,7 +16,7 @@ class User extends Authenticatable
* @var array * @var array
*/ */
protected $fillable = [ protected $fillable = [
'name', 'email', 'password', 'role_id', 'grupo_de_compra_id', 'name', 'email', 'password', 'role_id',
]; ];
/** /**