View file test.4imas.ru/public/order_view.php

File size: 4.08Kb
<?php
// =========================
// public/order_view.php
// Просмотр деталей одного заказа
// =========================

require_once __DIR__ . '/../config/bootstrap.php';
require_once __DIR__ . '/../config/auth.php';
require_once __DIR__ . '/../config/functions.php';

// Только авторизованные пользователи
require_login();

// Получаем ID заказа из GET
$order_id = intval($_GET['id'] ?? 0);
if (!$order_id) {
    redirect(BASE_URL . 'orders.php');
}

// Получаем заказ
$stmt = $pdo->prepare("SELECT * FROM orders WHERE id = :id AND user_id = :user_id");
$stmt->execute([
    'id' => $order_id,
    'user_id' => $_SESSION['user_id']
]);
$order = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$order) {
    redirect(BASE_URL . 'orders.php');
}

// Получаем элементы заказа
$stmtItems = $pdo->prepare("SELECT o.*, p.filename, f.name AS format_name 
                            FROM order_items o
                            JOIN photos p ON o.photo_id = p.id
                            JOIN formats f ON o.format_id = f.id
                            WHERE o.order_id = :order_id");
$stmtItems->execute(['order_id' => $order_id]);
$items = $stmtItems->fetchAll(PDO::FETCH_ASSOC);

// Подключаем header
include __DIR__ . '/../includes/header.php';
?>

<div class="container py-5">
    <h2 class="mb-4 fw-bold text-center animate__animated animate__fadeInDown">Заказ #<?= e($order['id']) ?></h2>

    <div class="card shadow-sm border-0 animate__animated animate__fadeInUp">
        <div class="card-body">
            <div class="mb-3 d-flex justify-content-between align-items-center">
                <div>
                    <strong>Дата:</strong> <?= date('d.m.Y H:i', strtotime($order['created_at'])) ?><br>
                    <strong>Статус:</strong> <span class="badge bg-<?= order_status_badge($order['status']) ?>"><?= e($order['status']) ?></span>
                </div>
                <a href="<?= BASE_URL ?>orders.php" class="btn btn-outline-secondary btn-sm">Назад к заказам</a>
            </div>

            <h5 class="mb-3">Элементы заказа:</h5>
            <div class="table-responsive">
                <table class="table table-hover align-middle">
                    <thead class="table-light">
                        <tr>
                            <th>Фото</th>
                            <th>Формат</th>
                            <th>Кол-во</th>
                            <th>Цена</th>
                            <th>Итого</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($items as $item): ?>
                        <tr>
                            <td><img src="<?= BASE_URL ?>uploads/photos/<?= e($item['filename']) ?>" alt="Photo" width="60" class="rounded"></td>
                            <td><?= e($item['format_name']) ?></td>
                            <td><?= e($item['quantity']) ?></td>
                            <td><?= number_format($item['price'], 2) ?> ₽</td>
                            <td><?= number_format($item['price'] * $item['quantity'], 2) ?> ₽</td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>

            <div class="mt-3 d-flex justify-content-between">
                <strong>Итоговая сумма:</strong>
                <span><?= number_format($order['total'], 2) ?> ₽</span>
            </div>

            <div class="mt-3">
                <strong>Данные доставки:</strong><br>
                <strong>ФИО:</strong> <?= e($order['fullname']) ?><br>
                <strong>Телефон:</strong> <?= e($order['phone']) ?><br>
                <strong>Адрес:</strong> <?= e($order['address']) ?>
            </div>
        </div>
    </div>
</div>

<?php
include __DIR__ . '/../includes/footer.php';
?>