diff --git a/app/Http/Livewire/Chat/PublicChat.php b/app/Http/Livewire/Chat/PublicChat.php index 3298b4c..3ebafda 100755 --- a/app/Http/Livewire/Chat/PublicChat.php +++ b/app/Http/Livewire/Chat/PublicChat.php @@ -852,6 +852,7 @@ class PublicChat extends Component 'nombre_cliente' => $user->name, ]); Historial_cuenta::create(['historial_id' => $historial->id, 'cuenta_id' => $cuenta->id]); + $cuenta->update(['estado' => 'ocupado']); $saldo->update(['valor' => $nuevoSaldo]); }); @@ -1019,22 +1020,21 @@ class PublicChat extends Component return; } - $historial = Historiale::create([ - 'fecha_inicio' => now(), - 'fecha_final' => now()->addDays(30), - 'valor' => $precio, - 'utilidad' => $utilidad, - 'tipo_pago' => 'saldo', - 'estado' => 'entregado', - 'vendedor_id' => $this->userId, - 'promocion_id' => $promoId, - 'cliente_id' => $this->userId, - 'nombre_cliente' => $user->name, - ]); - $nuevoSaldo = $saldo->valor - $precio; - DB::transaction(function () use ($historial, $cuenta, $saldo, $nuevoSaldo) { + DB::transaction(function () use ($promo, $user, $saldo, $cuenta, $precio, $utilidad, $promoId, $nuevoSaldo) { + $historial = Historiale::create([ + 'fecha_inicio' => now(), + 'fecha_final' => now()->addDays(30), + 'valor' => $precio, + 'utilidad' => $utilidad, + 'tipo_pago' => 'saldo', + 'estado' => 'entregado', + 'vendedor_id' => $this->userId, + 'promocion_id' => $promoId, + 'cliente_id' => $this->userId, + 'nombre_cliente' => $user->name, + ]); Historial_cuenta::create(['historial_id' => $historial->id, 'cuenta_id' => $cuenta->id]); $cuenta->update(['estado' => 'ocupado']); $saldo->update(['valor' => $nuevoSaldo]); @@ -1171,7 +1171,7 @@ class PublicChat extends Component return; } - $this->flujoData = ['monto' => $monto]; + $this->flujoData = array_merge($this->flujoData, ['monto' => $monto]); $nombresPrevios = $this->userId ? \App\Models\SolicitudRecarga::nombresPrevios($this->userId) : []; diff --git a/app/Jobs/ValidarPagoTelegramJob.php b/app/Jobs/ValidarPagoTelegramJob.php index 1308efb..ed61db6 100644 --- a/app/Jobs/ValidarPagoTelegramJob.php +++ b/app/Jobs/ValidarPagoTelegramJob.php @@ -3,7 +3,6 @@ namespace App\Jobs; use App\Models\SolicitudRecarga; -use App\Models\User; use App\Services\PagoValidadorService; use App\Services\TelegramBotService; use Illuminate\Bus\Queueable; diff --git a/app/Services/TelegramBotService.php b/app/Services/TelegramBotService.php index 1ae55eb..4cc6063 100755 --- a/app/Services/TelegramBotService.php +++ b/app/Services/TelegramBotService.php @@ -309,22 +309,30 @@ class TelegramBotService public function autoAplicarRecarga(string $chatId, array $state, SolicitudRecarga $solicitud, int $monto): void { - $usuarioId = $state['user_id']; - $user = User::with('saldo')->find($usuarioId); + $usuarioId = $state['user_id']; + $user = User::with('saldo')->find($usuarioId); + + if (! $user) { + Log::warning("[TelegramBot] autoAplicarRecarga: usuario {$usuarioId} no encontrado."); + $this->send($chatId, "⚠️ Error al aplicar la recarga. Por favor contacta a un asesor."); + return; + } + $saldo = $user->saldo ?? Saldo::create(['usuario_id' => $usuarioId, 'valor' => 0]); $nuevoSaldo = $saldo->valor + $monto; - $saldo->update(['valor' => $nuevoSaldo]); - \App\Models\recarga::create([ - 'usuario_id' => $usuarioId, - 'saldo_id' => $saldo->id, - 'monto' => $monto, - 'valor_recarga'=> $monto, - 'status' => 'Confirmado', - 'reference' => 'breb-bot-' . $solicitud->id, - ]); - - $solicitud->confirmar(); + DB::transaction(function () use ($saldo, $nuevoSaldo, $usuarioId, $monto, $solicitud) { + $saldo->update(['valor' => $nuevoSaldo]); + \App\Models\recarga::create([ + 'usuario_id' => $usuarioId, + 'saldo_id' => $saldo->id, + 'monto' => $monto, + 'valor_recarga' => $monto, + 'status' => 'Confirmado', + 'reference' => 'breb-bot-' . $solicitud->id, + ]); + $solicitud->confirmar(); + }); $pp = $state['data']['pending_purchase'] ?? null; unset($state['data']['pago_pendiente'], $state['data']['solicitud_recarga_id'], $state['data']['pending_purchase']); diff --git a/resources/views/livewire/chat/public-chat.blade.php b/resources/views/livewire/chat/public-chat.blade.php index 756b2f2..5212e14 100755 --- a/resources/views/livewire/chat/public-chat.blade.php +++ b/resources/views/livewire/chat/public-chat.blade.php @@ -447,21 +447,19 @@ navigator.clipboard.writeText(val).then(() => { this.copiado = id; setTimeout(() => this.copiado = null, 2000); }); }, copiarTodo() { - let email = $refs.cred_email ? $refs.cred_email.innerText : ''; - let pass = $refs.cred_pass ? $refs.cred_pass.innerText : ''; let parts = [ - 'Servicio: {{ addslashes($payload['servicio'] ?? '') }}', - email ? 'Email: ' + email : '', - pass ? 'Password: ' + pass : '', - '{{ !empty($payload['perfil']) ? 'Perfil: ' . addslashes($payload['perfil']) : '' }}', - '{{ !empty($payload['vence']) ? 'Vence: ' . $payload['vence'] : '' }}' + 'Servicio: ' + ($refs.cred_servicio?.innerText ?? ''), + $refs.cred_email ? 'Email: ' + $refs.cred_email.innerText : '', + $refs.cred_pass ? 'Password: ' + $refs.cred_pass.innerText : '', + $refs.cred_perfil ? 'Perfil: ' + $refs.cred_perfil.innerText : '', + $refs.cred_vence ? 'Vence: ' + $refs.cred_vence.innerText : '', ].filter(Boolean); navigator.clipboard.writeText(parts.join('\n')).then(() => { this.copiado = 'todo'; setTimeout(() => this.copiado = null, 2000); }); } }"> {{-- Encabezado servicio --}}
-

{{ $payload['servicio'] ?? 'Credenciales' }}

+

{{ $payload['servicio'] ?? 'Credenciales' }}

✅ Compra exitosa
{{-- Mensaje de gracias --}} @@ -501,11 +499,11 @@ @if (!empty($payload['perfil']))

Perfil

-

{{ $payload['perfil'] }}

+

{{ $payload['perfil'] }}

@endif @if (!empty($payload['vence'])) -

📅 Vence: {{ $payload['vence'] }}

+

📅 Vence: {{ $payload['vence'] }}

@endif {{-- Botón Copiar todo --}}