avance solo de la vista del formulario y validaciones del negocio
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Mail\VerificationEmail;
|
||||
use App\Models\Category;
|
||||
use App\Models\Shop;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -23,7 +24,10 @@ class TypeBusinessController extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('frontend.registro-comercio.views.business.index');
|
||||
|
||||
$categories = Category::all();
|
||||
|
||||
return view('frontend.registro-comercio.views.business.index', compact('categories'));
|
||||
|
||||
}
|
||||
|
||||
@@ -47,41 +51,45 @@ class TypeBusinessController extends Controller
|
||||
{
|
||||
// Validación de los campos de registro
|
||||
$validator = Validator::make($request->all(), [
|
||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:'.User::class],
|
||||
'name' => ['required'],
|
||||
'address' => ['required'],
|
||||
'categories_id' => ['required'],
|
||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:'.User::class, 'regex:/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.(com|do|net|com.do)$/'],
|
||||
'password' => ['required', 'confirmed', Password::defaults()],
|
||||
'terms' => ['required'], // Agrega esta línea para hacer el campo 'terms' requerido
|
||||
'g-recaptcha-response' => ['required', function ($attribute, $value, $fail) {
|
||||
$recaptcha = new Recaptcha(env('RECAPTCHA_SECRET_KEY'));
|
||||
$recaptcha->verify($value);
|
||||
}],
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
// Si la validación falla, puedes redirigir o devolver una respuesta con los errores
|
||||
return redirect()->back()->withErrors($validator)->withInput();
|
||||
}
|
||||
// if ($validator->fails()) {
|
||||
// // Si la validación falla, puedes redirigir o devolver una respuesta con los errores
|
||||
// return redirect()->back()->withErrors($validator)->withInput();
|
||||
// }
|
||||
|
||||
$confirmation_code = Str::random(25);
|
||||
// $confirmation_code = Str::random(25);
|
||||
|
||||
$user = new User();
|
||||
$user->email = $request->input('email');
|
||||
$user->password = Hash::make($request->input('password'));
|
||||
$user->user_type = 'seller';
|
||||
$user->confirmation_code = $confirmation_code;
|
||||
$user->save();
|
||||
// $user = new User();
|
||||
// $user->email = $request->input('email');
|
||||
// $user->password = Hash::make($request->input('password'));
|
||||
// $user->user_type = 'seller';
|
||||
// $user->confirmation_code = $confirmation_code;
|
||||
// $user->save();
|
||||
|
||||
|
||||
Mail::to($user->email)->send(new VerificationEmail($user));
|
||||
// Mail::to($user->email)->send(new VerificationEmail($user));
|
||||
|
||||
// Intentar iniciar sesión automáticamente
|
||||
if (Auth::attempt($request->only('email', 'password'))) {
|
||||
if (Auth::user()->email_verified_at) {
|
||||
// La cuenta está verificada, redirige a la página deseada
|
||||
return redirect()->route('shop.view.signup.complete');
|
||||
} else {
|
||||
// La cuenta no está verificada, redirige a la página de verificación de correo electrónico
|
||||
return redirect()->route('shop.view.email.verification');
|
||||
}
|
||||
}
|
||||
// // Intentar iniciar sesión automáticamente
|
||||
// if (Auth::attempt($request->only('email', 'password'))) {
|
||||
// if (Auth::user()->email_verified_at) {
|
||||
// // La cuenta está verificada, redirige a la página deseada
|
||||
// return redirect()->route('shop.view.signup.complete');
|
||||
// } else {
|
||||
// // La cuenta no está verificada, redirige a la página de verificación de correo electrónico
|
||||
// return redirect()->route('shop.view.email.verification');
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -196,10 +196,10 @@ a {
|
||||
a,
|
||||
a:hover,
|
||||
a:focus {
|
||||
text-decoration: none;
|
||||
/* text-decoration: none;
|
||||
display: inline-block;
|
||||
color: inherit;
|
||||
outline: none;
|
||||
outline: none; */
|
||||
}
|
||||
|
||||
textarea {
|
||||
|
||||
@@ -586,7 +586,7 @@
|
||||
font-weight: 700;
|
||||
color: #1c2437;
|
||||
font-family: "Roboto", sans-serif;
|
||||
text-transform: uppercase;
|
||||
/* text-transform: uppercase; */
|
||||
}
|
||||
.ugf-content form .form-group .form-control {
|
||||
height: 60px;
|
||||
|
||||
@@ -170,7 +170,7 @@ return [
|
||||
'minute' => 'minuto',
|
||||
'mobile' => 'móvil',
|
||||
'month' => 'mes',
|
||||
'name' => 'Nombre',
|
||||
'name' => 'nombre',
|
||||
'password' => 'contraseña',
|
||||
'password_confirmation' => 'confirmación de la contraseña',
|
||||
'phone' => 'teléfono',
|
||||
@@ -234,7 +234,8 @@ return [
|
||||
'nfc_amount' => 'Cantidad de comprobantes',
|
||||
'nfc_next' => 'Próximo NFC a emitir',
|
||||
'nfc_select' => 'Estado de NFC',
|
||||
'g-recaptcha-response' => 'reCAPTCHA'
|
||||
'g-recaptcha-response' => 'reCAPTCHA',
|
||||
'categories_id' => 'categoría'
|
||||
|
||||
],
|
||||
];
|
||||
@@ -218,6 +218,10 @@
|
||||
|
||||
<div class="container">
|
||||
<div class="form-row col-md-9">
|
||||
|
||||
<h5>Perfil de usuario</h5>
|
||||
<div class="border border-vertical mb-4"></div>
|
||||
|
||||
<div class="form-group mb-4">
|
||||
<label for="email" id="emailLabel">Correo Electrónico</label>
|
||||
<input type="email" name="email" id="email" placeholder="{{ __('Email') }}" class="form-control email @error('email') is-invalid @enderror" value="{{ old('email') }}">
|
||||
@@ -243,6 +247,58 @@
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<h5>Datos del negocio</h5>
|
||||
<div class="border border-vertical mb-4"></div>
|
||||
<!-- Aquí va el título "Datos de negocio" -->
|
||||
|
||||
<div class="form-group mb-4">
|
||||
<label for="categories_id" id="categoryLabel">Categoría del negocio</label>
|
||||
<select name="categories_id" class="form-control @error('categories_id') is-invalid @enderror" id="categories_id">
|
||||
<option value="" {{ old('categories_id') == '' ? 'selected' : '' }}>Seleccione una categoría</option>
|
||||
@foreach ($categories as $category)
|
||||
<option value="{{ $category->value }}" {{ old('categories_id', optional($category->value)) == $category->value ? 'selected' : '' }}>{{ $category->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@error('categories_id')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group mb-4">
|
||||
<label for="name" id="nameLabel">Nombre de la tienda</label>
|
||||
<input type="text" name="name" id="name" placeholder="Nombre" class="form-control name @error('name') is-invalid @enderror" value="{{ old('name') }}">
|
||||
|
||||
@error('name')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group mb-4">
|
||||
<label for="address" id="addressLabel">Dirección</label>
|
||||
<input type="text" name="address" id="address" placeholder="Dirección" class="form-control address @error('address') is-invalid @enderror" value="{{ old('address') }}">
|
||||
|
||||
@error('address')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group mb-4">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input @error('terms') is-invalid @enderror" type="checkbox" name="terms" id="terms" value="1" {{ old('terms') ? 'checked' : '' }}>
|
||||
<label>
|
||||
Estoy de acuerdo con la <a href="{{ route('terms') }}" target="_blank">Términos y Condiciones</a>, <a href="{{ route('returnpolicy') }}" target="_blank">Política de Devoluciones</a> & <a href="{{ route('privacypolicy') }}" target="_blank">Política de Privacidad</a>
|
||||
</label>
|
||||
</div>
|
||||
@if ($errors->has('terms'))
|
||||
|
||||
{{ $errors->first('terms') }}
|
||||
<p style="font-size: 80%;" class="text-danger">{{ $errors->first('terms') }}</p>
|
||||
|
||||
@endif
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group mb-4">
|
||||
|
||||
<div class="g-recaptcha" data-sitekey="{{ env('RECAPTCHA_SITE_KEY') }}"></div>
|
||||
@@ -273,7 +329,7 @@
|
||||
<div class="form-group mb-4">
|
||||
<label for="inputMail" id="phoneLabel">Teléfono</label>
|
||||
<input type="number" placeholder="Teléfono" class="form-control phone" required>
|
||||
<a id="emailLink" style="text-decoration: underline; margin-left: 250px;" href="#">Utilice el correo electrónico en su lugar</a>
|
||||
<a id="emailLink" style="text-decoration: underline;" href="#">Utilice el correo electrónico en su lugar</a>
|
||||
</div>
|
||||
|
||||
<div class="form-group mb-4">
|
||||
|
||||
Reference in New Issue
Block a user