Update ShowPromociones.php
This commit is contained in:
@@ -27,6 +27,7 @@ use Jantinnerezo\LivewireAlert\LivewireAlert;
|
|||||||
use Intervention\Image\ImageManagerStatic as Img;
|
use Intervention\Image\ImageManagerStatic as Img;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use Twilio\Rest\Client;
|
use Twilio\Rest\Client;
|
||||||
@@ -217,235 +218,229 @@ class ShowPromociones extends Component
|
|||||||
public $n = [];
|
public $n = [];
|
||||||
public $f = [];
|
public $f = [];
|
||||||
public $r = 0;
|
public $r = 0;
|
||||||
|
|
||||||
public function pagar()
|
public function pagar()
|
||||||
{
|
{
|
||||||
$this->validate();
|
$maxIntentos = 3; // cantidad de veces que se intentará
|
||||||
|
$intento = 0;
|
||||||
|
|
||||||
if ($this->cantidad_comprarPromo == 0) {
|
while ($intento < $maxIntentos) {
|
||||||
$this->alert('error', 'La cantidad debe ser mayor a 0', [
|
DB::beginTransaction();
|
||||||
'position' => 'top'
|
|
||||||
]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (auth()->user()->saldo->valor < $this->precioAhora * $this->cantidad_comprarPromo) {
|
try {
|
||||||
$this->alert('error', 'Saldo insuficiente', [
|
$intento++;
|
||||||
'position' => 'top'
|
|
||||||
]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$usuario_existe = User::firstWhere('email', $this->email_comprarPromo)->id ?? null;
|
$this->validate();
|
||||||
|
|
||||||
if (is_null($usuario_existe)) {
|
if ($this->cantidad_comprarPromo == 0) {
|
||||||
$usuario = new User;
|
$this->alert('error', 'La cantidad debe ser mayor a 0', ['position' => 'top']);
|
||||||
$usuario->name = $this->nombre_comprarPromo;
|
DB::rollBack();
|
||||||
$usuario->email = $this->email_comprarPromo;
|
return;
|
||||||
$usuario->password = '123';
|
|
||||||
$usuario->celular = $this->celular_comprarPromo;
|
|
||||||
$usuario->save();
|
|
||||||
|
|
||||||
$usuario_id = $usuario->id;
|
|
||||||
} else {
|
|
||||||
$usuario_id = $usuario_existe;
|
|
||||||
}
|
|
||||||
|
|
||||||
$historial = new Historiale();
|
|
||||||
$historial->fecha_inicio = $this->fechaHoy;
|
|
||||||
$historial->fecha_final = $this->fechaFinal;
|
|
||||||
$historial->valor = $this->precioAhora * $this->cantidad_comprarPromo;
|
|
||||||
$historial->tipo_pago = 'manual';
|
|
||||||
$historial->estado = 'pendiente';
|
|
||||||
$historial->vendedor_id = Auth()->user()->id;
|
|
||||||
$historial->promocion_id = $this->consulta->id;
|
|
||||||
$historial->cliente_id = $usuario_id;
|
|
||||||
$historial->cantidad = $this->cantidad_comprarPromo;
|
|
||||||
$historial->nombre_cliente = $this->nombre_comprarPromo;
|
|
||||||
$historial->utilidad = $this->utilidad * $this->cantidad_comprarPromo;
|
|
||||||
$historial->save();
|
|
||||||
|
|
||||||
$utilidad_total = (int) $this->utilidad * (int) $this->cantidad_comprarPromo;
|
|
||||||
|
|
||||||
$this->historial = $historial;
|
|
||||||
|
|
||||||
for ($p = 0; $p < (int) $this->cantidad_comprarPromo; $p++) {
|
|
||||||
//dd($this->cantidad_comprarPromo);
|
|
||||||
$this->n = [];
|
|
||||||
$this->f = [];
|
|
||||||
$this->r = 0;
|
|
||||||
|
|
||||||
foreach ($this->consulta->tarifas as $tarifa) {
|
|
||||||
$this->r = $this->r + $tarifa->pantallas;
|
|
||||||
$pantallas_tarifa = $tarifa->pantallas;
|
|
||||||
$servicio_id = $tarifa->servicio_id;
|
|
||||||
$pantalla_servicio = $tarifa->servicio->pantallas;
|
|
||||||
$pantalla_servicio_completa = $tarifa->servicio->completa;
|
|
||||||
$faltante = $pantalla_servicio - $pantallas_tarifa;
|
|
||||||
|
|
||||||
//dd($tarifa);
|
|
||||||
if ($pantalla_servicio_completa == $pantallas_tarifa) {
|
|
||||||
|
|
||||||
$this->fecha_final_1 = $today = Carbon::now()->addDays($tarifa->dias - 20);
|
|
||||||
$this->fecha_final_2 = $today = Carbon::now()->addDays($tarifa->dias + 20);
|
|
||||||
|
|
||||||
$baseQuery = Cuentas::select('*')->where('servicio_id', $servicio_id)
|
|
||||||
->whereDate('inicio', '>=', $this->fecha)
|
|
||||||
->whereDate('vencimiento', '>=', $this->fecha_final_1)
|
|
||||||
->whereDate('vencimiento', '<=', $this->fecha_final_2)
|
|
||||||
->Orderby('inicio', 'ASC')->with('historiales')
|
|
||||||
->withCount('historiales')
|
|
||||||
->where('estado', 'pendiente');
|
|
||||||
|
|
||||||
$cuenta = Cuentas::fromSub($baseQuery, 'alias')
|
|
||||||
->where('historiales_count', '=', 0)
|
|
||||||
->orderBy('inicio', 'ASC')
|
|
||||||
->first();
|
|
||||||
} else {
|
|
||||||
$baseQuery = Cuentas::select('*')->where('servicio_id', $servicio_id)
|
|
||||||
->whereDate('inicio', '>=', $this->fecha)
|
|
||||||
->Orderby('inicio', 'ASC')
|
|
||||||
->with('historiales')
|
|
||||||
->withCount('historiales')
|
|
||||||
->where('estado', 'activo');
|
|
||||||
|
|
||||||
$cuenta = Cuentas::fromSub($baseQuery, 'alias')
|
|
||||||
->where('historiales_count', '<=', (int) $faltante)
|
|
||||||
->orderBy('inicio', 'ASC')
|
|
||||||
->first();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (auth()->user()->saldo->valor < $this->precioAhora * $this->cantidad_comprarPromo) {
|
||||||
|
$this->alert('error', 'Saldo insuficiente', ['position' => 'top']);
|
||||||
|
DB::rollBack();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// === Crear o buscar usuario ===
|
||||||
|
$usuario_existe = User::firstWhere('email', $this->email_comprarPromo)->id ?? null;
|
||||||
|
|
||||||
if (!is_null($cuenta)) {
|
if (is_null($usuario_existe)) {
|
||||||
//$perfil = $cuenta->historiales_count;
|
$usuario = new User;
|
||||||
$perfil = Historial_cuenta::where('cuenta_id', $cuenta->id)->max('perfil') ?? 0;
|
$usuario->name = $this->nombre_comprarPromo;
|
||||||
for ($y = 0; $y < (int) $pantallas_tarifa; $y++) {
|
$usuario->email = $this->email_comprarPromo;
|
||||||
|
$usuario->password = bcrypt('123'); // ✅ importante: encriptar
|
||||||
|
$usuario->celular = $this->celular_comprarPromo;
|
||||||
|
$usuario->save();
|
||||||
|
|
||||||
$historial_cuenta = new Historial_cuenta();
|
$usuario_id = $usuario->id;
|
||||||
$historial_cuenta->historial_id = $historial->id;
|
} else {
|
||||||
$historial_cuenta->cuenta_id = $cuenta->id;
|
$usuario_id = $usuario_existe;
|
||||||
$historial_cuenta->perfil = (int) $perfil + (int) $y + 1;
|
}
|
||||||
$historial_cuenta->save();
|
|
||||||
if (!empty($historial_cuenta->id)) {
|
// === Historial ===
|
||||||
array_push($this->n, $historial_cuenta->id);
|
$historial = new Historiale();
|
||||||
|
$historial->fecha_inicio = $this->fechaHoy;
|
||||||
|
$historial->fecha_final = $this->fechaFinal;
|
||||||
|
$historial->valor = $this->precioAhora * $this->cantidad_comprarPromo;
|
||||||
|
$historial->tipo_pago = 'manual';
|
||||||
|
$historial->estado = 'pendiente';
|
||||||
|
$historial->vendedor_id = Auth()->user()->id;
|
||||||
|
$historial->promocion_id = $this->consulta->id;
|
||||||
|
$historial->cliente_id = $usuario_id;
|
||||||
|
$historial->cantidad = $this->cantidad_comprarPromo;
|
||||||
|
$historial->nombre_cliente = $this->nombre_comprarPromo;
|
||||||
|
$historial->utilidad = $this->utilidad * $this->cantidad_comprarPromo;
|
||||||
|
$historial->save();
|
||||||
|
|
||||||
|
$utilidad_total = (int) $this->utilidad * (int) $this->cantidad_comprarPromo;
|
||||||
|
$this->historial = $historial;
|
||||||
|
|
||||||
|
// === Asignar cuentas ===
|
||||||
|
$this->n = [];
|
||||||
|
$this->f = [];
|
||||||
|
|
||||||
|
for ($p = 0; $p < (int) $this->cantidad_comprarPromo; $p++) {
|
||||||
|
foreach ($this->consulta->tarifas as $tarifa) {
|
||||||
|
$pantallas_tarifa = $tarifa->pantallas;
|
||||||
|
$servicio_id = $tarifa->servicio_id;
|
||||||
|
$pantalla_servicio = $tarifa->servicio->pantallas;
|
||||||
|
$pantalla_servicio_completa = $tarifa->servicio->completa;
|
||||||
|
$faltante = $pantalla_servicio - $pantallas_tarifa;
|
||||||
|
|
||||||
|
if ($pantalla_servicio_completa == $pantallas_tarifa) {
|
||||||
|
$this->fecha_final_1 = Carbon::now()->addDays($tarifa->dias - 20);
|
||||||
|
$this->fecha_final_2 = Carbon::now()->addDays($tarifa->dias + 20);
|
||||||
|
|
||||||
|
$baseQuery = Cuentas::where('servicio_id', $servicio_id)
|
||||||
|
->whereDate('inicio', '>=', $this->fecha)
|
||||||
|
->whereDate('vencimiento', '>=', $this->fecha_final_1)
|
||||||
|
->whereDate('vencimiento', '<=', $this->fecha_final_2)
|
||||||
|
->orderBy('inicio', 'ASC')
|
||||||
|
->withCount('historiales')
|
||||||
|
->where('estado', 'pendiente');
|
||||||
|
|
||||||
|
$cuenta = Cuentas::fromSub($baseQuery, 'alias')
|
||||||
|
->where('historiales_count', '=', 0)
|
||||||
|
->first();
|
||||||
|
} else {
|
||||||
|
$baseQuery = Cuentas::where('servicio_id', $servicio_id)
|
||||||
|
->whereDate('inicio', '>=', $this->fecha)
|
||||||
|
->orderBy('inicio', 'ASC')
|
||||||
|
->withCount('historiales')
|
||||||
|
->where('estado', 'activo');
|
||||||
|
|
||||||
|
$cuenta = Cuentas::fromSub($baseQuery, 'alias')
|
||||||
|
->where('historiales_count', '<=', (int) $faltante)
|
||||||
|
->first();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($cuenta) {
|
||||||
|
$perfil = Historial_cuenta::where('cuenta_id', $cuenta->id)->max('perfil') ?? 0;
|
||||||
|
for ($y = 0; $y < (int) $pantallas_tarifa; $y++) {
|
||||||
|
$historial_cuenta = new Historial_cuenta();
|
||||||
|
$historial_cuenta->historial_id = $historial->id;
|
||||||
|
$historial_cuenta->cuenta_id = $cuenta->id;
|
||||||
|
$historial_cuenta->perfil = (int) $perfil + (int) $y + 1;
|
||||||
|
$historial_cuenta->save();
|
||||||
|
|
||||||
|
if ($historial_cuenta->id) {
|
||||||
|
$this->n[] = $historial_cuenta->id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this->f[] = $servicio_id;
|
||||||
|
$this->alert('warning', 'No hay cuentas disponibles de ' . $tarifa->servicio->nombre, ['position' => 'top']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
array_push($this->f, $servicio_id);
|
|
||||||
$this->alert('warning', 'No hay cuentas disponibles de ' . $tarifa->servicio->nombre, [
|
|
||||||
'position' => 'top'
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
$cuenta = null;
|
|
||||||
$this->modalComprarPromo = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (count($this->f) > 0) {
|
|
||||||
$resultados = Servicio::whereIn('id', $this->f)->get();
|
|
||||||
// $eliminar = Historial_cuenta::whereIn('id', $n)->delete();
|
|
||||||
$message = '';
|
|
||||||
|
|
||||||
if ($resultados->count() > 0) {
|
// === Validación de disponibilidad ===
|
||||||
$nombresServicios = $resultados->pluck('nombre')->toArray();
|
if (count($this->f) > 0) {
|
||||||
$message = implode(', ', $nombresServicios);
|
DB::rollBack(); // no se descuenta saldo
|
||||||
|
$resultados = Servicio::whereIn('id', $this->f)->get();
|
||||||
|
|
||||||
$this->alert('warning', 'No hay disponibilidad de ' . $message . ' en este momento.', [
|
if ($resultados->count() > 0) {
|
||||||
'position' => 'center',
|
$nombresServicios = $resultados->pluck('nombre')->toArray();
|
||||||
'timer' => '60000',
|
$message = implode(', ', $nombresServicios);
|
||||||
'toast' => false,
|
|
||||||
'text' => '¿Te gustaría realizar la compra ahora y recibir tu pedido tan pronto como haya disponibilidad?.',
|
|
||||||
'allowOutsideClick' => false,
|
|
||||||
'allowEscapeKey' => false,
|
|
||||||
'showConfirmButton' => true,
|
|
||||||
'showCancelButton' => false,
|
|
||||||
'showDenyButton' => true,
|
|
||||||
'onConfirmed' => 'confirmarCompra',
|
|
||||||
'onDenied' => 'denegarCompra',
|
|
||||||
// 'cancelButtonText' => 'No, abandonar.',
|
|
||||||
'denyButtonText' => 'No, abandonar.',
|
|
||||||
'confirmButtonText' => 'Sí, comprar.',
|
|
||||||
'customClass' => [
|
|
||||||
'confirmButton' => 'bg-green-500',
|
|
||||||
'denyButton' => 'bg-red-500',
|
|
||||||
'cancelButton' => 'bg-gray-500',
|
|
||||||
]
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$descuento = Saldo::where('usuario_id', Auth::user()->id)->first();
|
|
||||||
$saldo_anterior = $descuento->valor;
|
|
||||||
$nuevo_saldo = $saldo_anterior - ($this->precioAhora * $this->cantidad_comprarPromo);
|
|
||||||
$cobro = $descuento->update(['valor' => $nuevo_saldo]);
|
|
||||||
|
|
||||||
if ($cobro) {
|
$this->alert('warning', 'No hay disponibilidad de ' . $message . ' en este momento.', [
|
||||||
$historial->update(['estado' => 'activo']);
|
'position' => 'center',
|
||||||
|
'timer' => '60000',
|
||||||
|
'toast' => false,
|
||||||
|
'text' => '¿Te gustaría realizar la compra ahora y recibir tu pedido tan pronto como haya disponibilidad?.',
|
||||||
|
'allowOutsideClick' => false,
|
||||||
|
'allowEscapeKey' => false,
|
||||||
|
'showConfirmButton' => true,
|
||||||
|
'showCancelButton' => false,
|
||||||
|
'showDenyButton' => true,
|
||||||
|
'onConfirmed' => 'confirmarCompra',
|
||||||
|
'onDenied' => 'denegarCompra',
|
||||||
|
'denyButtonText' => 'No, abandonar.',
|
||||||
|
'confirmButtonText' => 'Sí, comprar.',
|
||||||
|
'customClass' => [
|
||||||
|
'confirmButton' => 'bg-green-500',
|
||||||
|
'denyButton' => 'bg-red-500',
|
||||||
|
'cancelButton' => 'bg-gray-500',
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$logsGeneral = new Log_general();
|
// === Cobro de saldo ===
|
||||||
$logsGeneral->user_id = Auth::user()->id;
|
$descuento = Saldo::where('usuario_id', Auth::user()->id)->first();
|
||||||
$logsGeneral->detalle = 'El usuario ' . Auth::user()->name . ' - ' . Auth::user()->email . ' ha comprado la promocion ' . $this->consulta->nombre . ' - ' . $this->consulta->descripcion . ' cantidad de ' . $this->historial->cantidad . ' por un valor de $' . $this->historial->valor . ', Saldo anterior: $' . $saldo_anterior . ', Nuevo saldo disponible: $' . $nuevo_saldo;
|
$saldo_anterior = $descuento->valor;
|
||||||
$logsGeneral->tipo = 'compra';
|
$nuevo_saldo = $saldo_anterior - ($this->precioAhora * $this->cantidad_comprarPromo);
|
||||||
$logsGeneral->historial_id = $historial->id;
|
|
||||||
$logsGeneral->save();
|
|
||||||
|
|
||||||
// Si el campo subvendedor tiene id entonces la utilidad va a su subvendedor padre
|
if ($descuento->update(['valor' => $nuevo_saldo])) {
|
||||||
if (Auth::user()->subvendedor_id) {
|
$historial->update(['estado' => 'activo']);
|
||||||
if ($utilidad_total > 0) {
|
|
||||||
|
// Registrar logs
|
||||||
|
$logsGeneral = new Log_general();
|
||||||
|
$logsGeneral->user_id = Auth::user()->id;
|
||||||
|
$logsGeneral->detalle = 'El usuario ' . Auth::user()->name . ' - ' . Auth::user()->email .
|
||||||
|
' ha comprado la promoción ' . $this->consulta->nombre . ' - ' . $this->consulta->descripcion .
|
||||||
|
' cantidad de ' . $this->historial->cantidad .
|
||||||
|
' por un valor de $' . $this->historial->valor .
|
||||||
|
', Saldo anterior: $' . $saldo_anterior .
|
||||||
|
', Nuevo saldo disponible: $' . $nuevo_saldo;
|
||||||
|
$logsGeneral->tipo = 'compra';
|
||||||
|
$logsGeneral->historial_id = $historial->id;
|
||||||
|
$logsGeneral->save();
|
||||||
|
|
||||||
|
// utilidad para el padre
|
||||||
|
if (Auth::user()->subvendedor_id && $utilidad_total > 0) {
|
||||||
$subvendedorPadre = User::with('saldo')->find(Auth::user()->subvendedor_id);
|
$subvendedorPadre = User::with('saldo')->find(Auth::user()->subvendedor_id);
|
||||||
|
|
||||||
if ($subvendedorPadre && $subvendedorPadre->saldo) {
|
if ($subvendedorPadre && $subvendedorPadre->saldo) {
|
||||||
// Sumar la utilidad al saldo actual
|
|
||||||
$nuevoSaldo = $subvendedorPadre->saldo->valor + $utilidad_total;
|
$nuevoSaldo = $subvendedorPadre->saldo->valor + $utilidad_total;
|
||||||
|
$subvendedorPadre->saldo->update(['valor' => $nuevoSaldo]);
|
||||||
|
|
||||||
// Actualizar el saldo
|
|
||||||
$subvendedorPadre->saldo->update([
|
|
||||||
'valor' => $nuevoSaldo
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Registrar en el log la utilidad generada
|
|
||||||
$logsGeneral = new Log_general();
|
$logsGeneral = new Log_general();
|
||||||
$logsGeneral->user_id = Auth::user()->id;
|
$logsGeneral->user_id = Auth::user()->id;
|
||||||
$logsGeneral->detalle = 'El usuario ' . Auth::user()->name . ' - ' . Auth::user()->email .
|
$logsGeneral->detalle = 'Compra generó utilidad de $' . $utilidad_total .
|
||||||
' ha comprado la promocion ' . $this->consulta->nombre . ' - ' . $this->consulta->descripcion .
|
' al usuario padre ' . $subvendedorPadre->name . ' - ' . $subvendedorPadre->email;
|
||||||
' cantidad de ' . $this->historial->cantidad .
|
|
||||||
' por un valor de $' . $this->historial->valor .
|
|
||||||
', Saldo anterior: $' . $saldo_anterior .
|
|
||||||
', Nuevo saldo disponible: $' . $nuevo_saldo .
|
|
||||||
'. Esta compra generó una utilidad de $' . $utilidad_total .
|
|
||||||
' al usuario padre ' . $subvendedorPadre->name . ' - ' . $subvendedorPadre->email . '.';
|
|
||||||
$logsGeneral->historial_id = $historial->id;
|
$logsGeneral->historial_id = $historial->id;
|
||||||
$logsGeneral->tipo = 'compra';
|
$logsGeneral->tipo = 'compra';
|
||||||
$logsGeneral->save();
|
$logsGeneral->save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->modalComprarPromo = false;
|
||||||
|
$this->credenciales($historial);
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
|
break; // ✅ salir del while (ya se completó la compra)
|
||||||
} else {
|
} else {
|
||||||
// Log sin utilidad al padre
|
Historial_cuenta::whereIn('id', $this->n)->delete();
|
||||||
$logsGeneral = new Log_general();
|
DB::rollBack();
|
||||||
$logsGeneral->user_id = Auth::user()->id;
|
$this->alert('warning', 'Error en el cobro, comuníquese con soporte!', ['position' => 'top']);
|
||||||
$logsGeneral->detalle = 'El usuario ' . Auth::user()->name . ' - ' . Auth::user()->email .
|
return;
|
||||||
' ha comprado la promocion ' . $this->consulta->nombre . ' - ' . $this->consulta->descripcion .
|
}
|
||||||
' cantidad de ' . $this->historial->cantidad .
|
} catch (QueryException $e) {
|
||||||
' por un valor de $' . $this->historial->valor .
|
DB::rollBack();
|
||||||
', Saldo anterior: $' . $saldo_anterior .
|
|
||||||
', Nuevo saldo disponible: $' . $nuevo_saldo;
|
if ($e->getCode() == '23505') {
|
||||||
$logsGeneral->historial_id = $historial->id;
|
if ($intento >= $maxIntentos) {
|
||||||
$logsGeneral->tipo = 'compra';
|
$this->alert('warning', 'Otra persona tomó la cuenta al mismo tiempo. Intenta nuevamente.', ['position' => 'top']);
|
||||||
$logsGeneral->save();
|
return;
|
||||||
|
}
|
||||||
|
usleep(200000); // 200ms y reintentar
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->alert('error', 'Error inesperado en la compra: ' . $e->getMessage(), ['position' => 'top']);
|
||||||
$this->modalComprarPromo = false;
|
return;
|
||||||
$this->credenciales($historial);
|
} catch (\Throwable $e) {
|
||||||
} else {
|
DB::rollBack();
|
||||||
$eliminar = Historial_cuenta::whereIn('id', $this->n)->delete();
|
$this->alert('error', 'Error inesperado: ' . $e->getMessage(), ['position' => 'top']);
|
||||||
|
return;
|
||||||
$this->alert('warning', 'Error en el cobro, comuniquese con soporte!', [
|
|
||||||
'position' => 'top'
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function confirmarCompra()
|
public function confirmarCompra()
|
||||||
{
|
{
|
||||||
$descuento = Saldo::where('usuario_id', Auth::user()->id)->first();
|
$descuento = Saldo::where('usuario_id', Auth::user()->id)->first();
|
||||||
|
|||||||
Reference in New Issue
Block a user