Copy tarifas and promos on user registration
When a new user registers with a referral code, their tarifas and promos are now copied from the referring user. Also refactored Usuario_promo and Usuario_tarifa models to use fillable attributes and improved method formatting. Added Swiper CSS/JS to app layout.
This commit is contained in:
@@ -6,6 +6,8 @@ use App\Http\Controllers\Controller;
|
|||||||
use App\Models\Role;
|
use App\Models\Role;
|
||||||
use App\Models\Saldo;
|
use App\Models\Saldo;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Models\Usuario_promo;
|
||||||
|
use App\Models\Usuario_tarifa;
|
||||||
use App\Providers\RouteServiceProvider;
|
use App\Providers\RouteServiceProvider;
|
||||||
use Illuminate\Auth\Events\Registered;
|
use Illuminate\Auth\Events\Registered;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -42,7 +44,6 @@ class RegisteredUserController extends Controller
|
|||||||
'password.confirmed' => 'La confirmación de la contraseña no coincide.',
|
'password.confirmed' => 'La confirmación de la contraseña no coincide.',
|
||||||
'password.min' => 'La contraseña debe tener al menos 8 caracteres.',
|
'password.min' => 'La contraseña debe tener al menos 8 caracteres.',
|
||||||
'referral_code.required' => 'El código de referido es obligatorio.',
|
'referral_code.required' => 'El código de referido es obligatorio.',
|
||||||
|
|
||||||
'password.confirmed' => 'Las contraseñas no coinciden.',
|
'password.confirmed' => 'Las contraseñas no coinciden.',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -54,15 +55,12 @@ class RegisteredUserController extends Controller
|
|||||||
// Determinar el rol del nuevo usuario
|
// Determinar el rol del nuevo usuario
|
||||||
if ($referralUser) {
|
if ($referralUser) {
|
||||||
if ($referralUser->rol->nombre === 'super') {
|
if ($referralUser->rol->nombre === 'super') {
|
||||||
// Si el referido es "super", asignar "cliente"
|
|
||||||
$rolCliente = Role::where('nombre', 'cliente')->first();
|
$rolCliente = Role::where('nombre', 'cliente')->first();
|
||||||
$rol_id = $rolCliente ? $rolCliente->id : null;
|
$rol_id = $rolCliente ? $rolCliente->id : null;
|
||||||
} else {
|
} else {
|
||||||
// Si no es super, tomar el mismo rol del referido
|
|
||||||
$rol_id = $referralUser->rol_id;
|
$rol_id = $referralUser->rol_id;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Si no tiene referral_code, asignar rol por defecto (cliente)
|
|
||||||
$rolCliente = Role::where('nombre', 'cliente')->first();
|
$rolCliente = Role::where('nombre', 'cliente')->first();
|
||||||
$rol_id = $rolCliente ? $rolCliente->id : null;
|
$rol_id = $rolCliente ? $rolCliente->id : null;
|
||||||
}
|
}
|
||||||
@@ -75,6 +73,32 @@ class RegisteredUserController extends Controller
|
|||||||
'parent_id' => $referralUser ? $referralUser->id : null,
|
'parent_id' => $referralUser ? $referralUser->id : null,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
if ($referralUser) {
|
||||||
|
// Tarifas
|
||||||
|
$tarifas = $referralUser->usuario_tarifas;
|
||||||
|
foreach ($tarifas as $tarifa) {
|
||||||
|
Usuario_tarifa::create([
|
||||||
|
'usuario_id' => $user->id,
|
||||||
|
'tarifa_id' => $tarifa->tarifa_id,
|
||||||
|
'precio' => $tarifa->precio,
|
||||||
|
'visible' => $tarifa->visible,
|
||||||
|
'utilidad' => $tarifa->utilidad,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Promos
|
||||||
|
$promos = $referralUser->usuario_promos;
|
||||||
|
foreach ($promos as $promo) {
|
||||||
|
Usuario_promo::create([
|
||||||
|
'usuario_id' => $user->id,
|
||||||
|
'promocion_id' => $promo->promocion_id,
|
||||||
|
'precio' => $promo->precio,
|
||||||
|
'visible' => $promo->visible,
|
||||||
|
'utilidad' => $promo->utilidad,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Saldo::create([
|
Saldo::create([
|
||||||
'usuario_id' => $user->id,
|
'usuario_id' => $user->id,
|
||||||
'valor' => 0,
|
'valor' => 0,
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ class Usuario_promo extends Model
|
|||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
protected $hidden = [
|
protected $fillable = [
|
||||||
'usuario_id',
|
'usuario_id',
|
||||||
'promocion_id',
|
'promocion_id',
|
||||||
'precio',
|
'precio',
|
||||||
@@ -17,12 +17,12 @@ class Usuario_promo extends Model
|
|||||||
'visible',
|
'visible',
|
||||||
];
|
];
|
||||||
|
|
||||||
public function usuario()
|
public function usuario()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(User::class, 'usuario_id');
|
return $this->belongsTo(User::class, 'usuario_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function promocion()
|
public function promocion()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Promociones::class, 'promocion_id');
|
return $this->belongsTo(Promociones::class, 'promocion_id');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,11 +16,13 @@ class Usuario_tarifa extends Model
|
|||||||
'visible',
|
'visible',
|
||||||
];
|
];
|
||||||
|
|
||||||
public function usuario(){
|
public function usuario()
|
||||||
return $this ->belongsTo(User::class,'usuario_id');
|
{
|
||||||
|
return $this->belongsTo(User::class, 'usuario_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function tarifa(){
|
public function tarifa()
|
||||||
return $this ->belongsTo(Tarifas::class,'tarifa_id');
|
{
|
||||||
|
return $this->belongsTo(Tarifas::class, 'tarifa_id');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins">
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins">
|
||||||
<link rel="stylesheet" type="text/css" href="/css/estilos.css" media="screen" />
|
<link rel="stylesheet" type="text/css" href="/css/estilos.css" media="screen" />
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@12/swiper-bundle.min.css" />
|
||||||
<!-- Scripts -->
|
<!-- Scripts -->
|
||||||
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
||||||
<script src="https://cdn.tailwindcss.com"></script>
|
<script src="https://cdn.tailwindcss.com"></script>
|
||||||
@@ -35,6 +36,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@12/swiper-bundle.min.js"></script>
|
||||||
<script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
<script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
@livewireScripts
|
@livewireScripts
|
||||||
<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user