prepare($years_query); $years_stmt->execute([$user_id]); } else { $years_stmt = $pdo->query($years_query); } $years = $years_stmt->fetchAll(PDO::FETCH_COLUMN); // Filter logic $selected_month = $_GET['mes'] ?? ''; $selected_year = $_GET['año'] ?? ''; $search_query = $_GET['q'] ?? ''; $period = $_GET['period'] ?? ''; $date_condition = ''; $label_period = ''; if (!empty($period)) { switch ($period) { case 'today': $date_condition = "DATE(p.created_at) = CURDATE()"; $label_period = "Hoy"; break; case 'yesterday': $date_condition = "DATE(p.created_at) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)"; $label_period = "Ayer"; break; case '7': $date_condition = "DATE(p.created_at) >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)"; $label_period = "Últimos 7 días"; break; case '15': $date_condition = "DATE(p.created_at) >= DATE_SUB(CURDATE(), INTERVAL 15 DAY)"; $label_period = "Últimos 15 días"; break; case 'month': $date_condition = "MONTH(p.created_at) = MONTH(CURDATE()) AND YEAR(p.created_at) = YEAR(CURDATE())"; $label_period = "Este Mes"; break; } } $sql = "SELECT p.*, u.nombre_asesor as asesor_nombre FROM pedidos p LEFT JOIN users u ON p.asesor_id = u.id WHERE p.estado IN ('RUTA_CONTRAENTREGA', 'PENDIENTE', 'NO CONTESTO, VOLVER A LLAMAR', 'NO CONTESTO, DEVOLVER LLAMADA', 'CANCELADO', 'REPROGRAMADO', 'ENTREGA EXITOSA', 'RETORNADO')"; $params = []; if ($user_role === 'Asesor') { $sql .= " AND p.asesor_id = ?"; $params[] = $user_id; } if (!empty($search_query)) { $sql .= " AND (p.nombre_completo LIKE ? OR p.dni_cliente LIKE ? OR p.celular LIKE ?)"; $params[] = "%$search_query%"; $params[] = "%$search_query%"; $params[] = "%$search_query%"; } if (!empty($date_condition)) { $sql .= " AND $date_condition"; } else { if (!empty($selected_month)) { $sql .= " AND MONTH(p.created_at) = ?"; $params[] = $selected_month; } if (!empty($selected_year)) { $sql .= " AND YEAR(p.created_at) = ?"; $params[] = $selected_year; } } $sql .= " ORDER BY p.created_at DESC"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $pedidos = $stmt->fetchAll(); // Obtener el template de WhatsApp para contraentrega $stmt_template = db()->prepare('SELECT valor FROM configuracion WHERE clave = ?'); $stmt_template->execute(['whatsapp_template_contraentrega']); $whatsapp_template = $stmt_template->fetchColumn(); if ($whatsapp_template === false) { // Fallback to a default message if not set in DB $whatsapp_template = 'Hola, te escribo para confirmar que tu pedido ya llegó a destino. El monto que debes es {monto} y la dirección de entrega será {direccion}.'; } $months = [ 1 => 'Enero', 2 => 'Febrero', 3 => 'Marzo', 4 => 'Abril', 5 => 'Mayo', 6 => 'Junio', 7 => 'Julio', 8 => 'Agosto', 9 => 'Septiembre', 10 => 'Octubre', 11 => 'Noviembre', 12 => 'Diciembre' ]; function splitProvinciaDistrito($value) { $value = trim((string)($value ?? '')); if ($value === '') { return ['N/A', 'N/A']; } $parts = preg_split('/\s*(?:\/|\||,|-)\s*/', $value, 2); $provincia = trim($parts[0] ?? ''); $distrito = trim($parts[1] ?? ''); return [ $provincia !== '' ? $provincia : 'N/A', $distrito !== '' ? $distrito : 'N/A', ]; } ?>
Limpiar $search_query, ], static function ($value) { return $value !== '' && $value !== null; }); $excelUrl = 'download_ruta_contraentrega.php' . (!empty($excelParams) ? '?' . http_build_query($excelParams) : ''); ?> Descargar Excel (Mañana)

No hay pedidos que coincidan con el filtro.

ID Seguimiento Paquete Estado Cliente Celular Dirección Referencia Departamento Provincia Distrito Coordenadas Producto Dedicatoria / Obs. Cant. Total Debe F. Entrega Asesor F. Creación Acciones
'; echo ''; echo ''; } else { echo 'N/A'; } ?> Editar Eliminar