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'] ?? ''; $selected_day = $_GET['dia'] ?? ''; $search_query = $_GET['q'] ?? ''; if (!empty($selected_day)) { $selectedDayObject = DateTime::createFromFormat('Y-m-d', $selected_day); if (!$selectedDayObject || $selectedDayObject->format('Y-m-d') !== $selected_day) { $selected_day = ''; } else { $selected_month = ''; $selected_year = ''; } } $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 = 'COMPLETADO ✅'"; $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($selected_day)) { $sql .= " AND DATE(p.fecha_completado) = ?"; $params[] = $selected_day; } else { if (!empty($selected_month)) { $sql .= " AND MONTH(p.fecha_completado) = ?"; $params[] = $selected_month; } if (!empty($selected_year)) { $sql .= " AND YEAR(p.fecha_completado) = ?"; $params[] = $selected_year; } } $sql .= " ORDER BY COALESCE(p.fecha_completado, p.created_at) DESC"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $pedidos = $stmt->fetchAll(); $pedidos_count = count($pedidos); $selected_day_label = ''; if (!empty($selected_day)) { try { $selected_day_label = (new DateTime($selected_day))->format('d/m/Y'); } catch (Exception $e) { $selected_day_label = $selected_day; } } $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' ]; ?>
Limpiar
Los filtros de día, mes y año usan la columna Fecha Completado. Si eliges un día, ese filtro tiene prioridad.
Total completados: pedido con fecha completada el . pedido según el filtro aplicado.
ID Cliente Celular Agencia Producto Monto Total Monto Debe Nro. Operación Clave Banco Recojo Cliente (Día y Hora) Estado Asesor Fecha Creación Fecha Completado Voucher Restante Verificación de Pago OBSERVACION Acciones
No hay pedidos completados que coincidan con el filtro.
> format('d/m/Y H:i:s')); } catch (Exception $e) { // Fallback for invalid date formats, which is the likely issue echo htmlspecialchars($pedido['fecha_completado']); } } else { echo 'N/A'; } ?> Ver No disponible N/A Editar Eliminar