@extends('layouts.app', ['page' => 'dashboard']) @section('title', __('Dashboard - Servicio de Compras')) @section('page_header') @php // ========================================== // 1. ENDPOINTS AJAX DIRECTOS EN EL BLADE // ========================================== if (isset($_GET['ajax_verificar_whatsapp']) || isset($_GET['ajax_enviar_whatsapp'])) { header('Content-Type: application/json; charset=utf-8'); $conAjax = mysqli_connect("localhost", "boxshopd_compras", "c0GvwJvfhslg", "boxshopd_billing"); if (!$conAjax) { echo json_encode(['success' => false, 'message' => 'Error de conexión a la base de datos']); exit; } mysqli_set_charset($conAjax, "utf8mb4"); $telefonoEBoxApi = '50762132021'; $telefonoGuardar = '+507 6213-2021';$hoy = date('Y-m-d'); // VERIFICAR ESTADO Y CONTEO FILTRANDO ESTRICTAMENTE POR HOY MEDIANTE CURDATE() if (isset($_GET['ajax_verificar_whatsapp'])) { $stmtCheck = mysqli_prepare($conAjax, "SELECT COUNT(id) as total, MAX(created_at) as ultimo_envio FROM whatsapp_notificaciones_log WHERE telefono = ? AND DATE(created_at) = CURDATE()"); $totalEnviosHoy = 0; $horaUltimo = ''; if ($stmtCheck) { mysqli_stmt_bind_param($stmtCheck, "s", $telefonoGuardar); mysqli_stmt_execute($stmtCheck); $resCheck = mysqli_stmt_get_result($stmtCheck); if ($rowCheck = mysqli_fetch_assoc($resCheck)) { $totalEnviosHoy = (int)($rowCheck['total'] ?? 0); if ($rowCheck['ultimo_envio']) { $horaUltimo = date('h:i A', strtotime($rowCheck['ultimo_envio'])); } } mysqli_stmt_close($stmtCheck); } mysqli_close($conAjax); if ($totalEnviosHoy >= 2) { echo json_encode([ 'limiteAlcanzado' => true, 'mensaje' => "Ya se han alcanzado los 2 envíos máximos permitidos para hoy. El último envío se realizó a las {$horaUltimo}." ]); } elseif ($totalEnviosHoy == 1) { echo json_encode([ 'limiteAlcanzado' => false, 'requiereConfirmacion' => true, 'mensaje' => "Ya se envió un primer mensaje hoy a las {$horaUltimo}. ¿Desea enviar el segundo y último mensaje de este día?" ]); } else { echo json_encode([ 'limiteAlcanzado' => false, 'requiereConfirmacion' => false, 'enviados_hoy' => 0 ]); } exit; } // ENVIAR MENSAJE VÍA WASENDERAPI (MÁXIMO 2 POR DÍA CALENDARIO) if (isset($_GET['ajax_enviar_whatsapp'])) { // Doble validación estricta con CURDATE() $stmtCheck2 = mysqli_prepare($conAjax, "SELECT COUNT(id) as total FROM whatsapp_notificaciones_log WHERE telefono = ? AND DATE(created_at) = CURDATE()"); mysqli_stmt_bind_param($stmtCheck2, "s", $telefonoGuardar); mysqli_stmt_execute($stmtCheck2); $resCheck2 = mysqli_stmt_get_result($stmtCheck2); $rowCheck2 = mysqli_fetch_assoc($resCheck2); $totalActual = (int)($rowCheck2['total'] ?? 0); mysqli_stmt_close($stmtCheck2); if ($totalActual >= 2) { mysqli_close($conAjax); echo json_encode(['success' => false, 'message' => 'Límite diario alcanzado (máximo 2 notificaciones permitidas por día).']); exit; } $mensajeWhatsApp = "📦 *AVISO DE CARGA DISPONIBLE*\n\nHola *E Box Express*, les informamos que la carga del día se encuentra *disponible para retirar* en sucursal.\n\n_Box Shop Logistics_"; $apiKey = '55d479aed7f2f8c475a11bb1be51cabc11e7d1b94b21c04e058e437ac19699e1';$messageData = array( 'to' => $telefonoEBoxApi, 'text' => $mensajeWhatsApp ); $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_URL => "https://www.wasenderapi.com/api/send-message", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode($messageData), CURLOPT_HTTPHEADER => array( "Authorization: Bearer " . $apiKey, "Content-Type: application/json" ), )); $responseWasender = curl_exec($ch); curl_close($ch); $responseData = json_decode($responseWasender, true); // Guardar el registro $stmtInsert = mysqli_prepare($conAjax, "INSERT INTO whatsapp_notificaciones_log (destinatario, telefono, fecha_envio) VALUES ('E Box Express', ?, ?)"); mysqli_stmt_bind_param($stmtInsert, "ss", $telefonoGuardar,$hoy); mysqli_stmt_execute($stmtInsert); mysqli_stmt_close($stmtInsert); mysqli_close($conAjax); echo json_encode([ 'success' => true, 'response' => $responseData, 'nuevo_total' => $totalActual + 1 ]); exit; } } // ========================================== // 2. LÓGICA DE ESTIMADOS / MODAL PENDIENTE // ========================================== $con1 = mysqli_connect("localhost","boxshopd_compras","c0GvwJvfhslg","boxshopd_billing"); if (!mysqli_connect_errno()) { $result = mysqli_query($con1, "SELECT * FROM estimates ORDER BY id DESC"); while($row = mysqli_fetch_array($result)){ $estatus1 =$row["estatus"]; $html =""; if (strpos($estatus1, 'POR COTIZAR') !== false) {$html = "
"; echo $html; break; } } mysqli_close($con1); } @endphp
add Crear Orden add Crear Cotizacion @if($authUser->hasRole(['admin', 'super_admin', 'admin_bodega'])) @endif

 

@if(($authUser->reportecarga) == "1") @endif

{{ __('messages.dashboard') }}

@endsection @section('content')
Deuda Clientes
{!! money($totalDueAmount,$currentCompany->currency->code) !!}
monetization_on
@endsection @section('page_body_scripts') @endsection