Add .gitignore and project files

This commit is contained in:
kirill.khorkov
2025-12-16 01:28:06 +03:00
parent 0541b0c020
commit 3f257120fa
140 changed files with 13360 additions and 0 deletions

208
print_order.php Normal file
View File

@@ -0,0 +1,208 @@
<?php
// print_order.php
session_start();
require_once 'config/database.php';
// Проверка прав администратора
if (!isset($_SESSION['isAdmin']) || $_SESSION['isAdmin'] !== true) {
die('Доступ запрещен');
}
$orderId = $_GET['id'] ?? 0;
$db = Database::getInstance()->getConnection();
try {
$orderStmt = $db->prepare("
SELECT o.*, u.email, u.full_name
FROM orders o
LEFT JOIN users u ON o.user_id = u.user_id
WHERE o.order_id = ?
");
$orderStmt->execute([$orderId]);
$order = $orderStmt->fetch();
if (!$order) {
die('Заказ не найден');
}
$itemsStmt = $db->prepare("
SELECT * FROM order_items
WHERE order_id = ?
");
$itemsStmt->execute([$orderId]);
$order_items = $itemsStmt->fetchAll();
} catch (PDOException $e) {
die('Ошибка базы данных: ' . $e->getMessage());
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Печать заказа #<?= $order['order_number'] ?></title>
<style>
@media print {
.no-print { display: none !important; }
}
body {
font-family: Arial, sans-serif;
margin: 20px;
color: #000;
}
.header {
text-align: center;
margin-bottom: 30px;
}
.company-name {
font-size: 24px;
font-weight: bold;
margin-bottom: 5px;
}
.order-info {
margin-bottom: 30px;
}
.order-details {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-bottom: 30px;
}
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
th, td {
border: 1px solid #000;
padding: 8px;
text-align: left;
}
th {
background: #f0f0f0;
}
.total-row {
font-weight: bold;
}
.footer {
margin-top: 50px;
text-align: center;
font-size: 12px;
color: #666;
}
.print-button {
margin: 20px;
padding: 10px 20px;
background: #453227;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
</style>
</head>
<body>
<button onclick="window.print()" class="print-button no-print">
<i class="fas fa-print"></i> Печать
</button>
<div class="header">
<div class="company-name">AETERNA</div>
<div>г. Москва, ул. Примерная, д. 123</div>
<div>Телефон: +7(912)999-12-23 | Email: aeterna@mail.ru</div>
<div>ИНН: 1234567890 | ОГРН: 1234567890123</div>
</div>
<div class="order-info">
<h2>Заказ #<?= htmlspecialchars($order['order_number']) ?></h2>
<p>Дата: <?= date('d.m.Y H:i', strtotime($order['created_at'])) ?></p>
<p>Статус: <?= $order['status'] ?></p>
</div>
<div class="order-details">
<div>
<h3>Информация о клиенте</h3>
<p><strong>ФИО:</strong> <?= htmlspecialchars($order['customer_name']) ?></p>
<p><strong>Email:</strong> <?= htmlspecialchars($order['customer_email']) ?></p>
<p><strong>Телефон:</strong> <?= htmlspecialchars($order['customer_phone']) ?></p>
</div>
<div>
<h3>Информация о доставке</h3>
<p><strong>Адрес:</strong> <?= nl2br(htmlspecialchars($order['delivery_address'])) ?></p>
<p><strong>Способ доставки:</strong> <?= $order['delivery_method'] == 'courier' ? 'Курьер' : 'Самовывоз' ?></p>
<p><strong>Способ оплаты:</strong> <?= $order['payment_method'] == 'card' ? 'Карта' : 'Наличные' ?></p>
</div>
</div>
<h3>Состав заказа</h3>
<table>
<thead>
<tr>
<th>№</th>
<th>Товар</th>
<th>Кол-во</th>
<th>Цена</th>
<th>Сумма</th>
</tr>
</thead>
<tbody>
<?php $counter = 1; ?>
<?php foreach ($order_items as $item): ?>
<tr>
<td><?= $counter++ ?></td>
<td><?= htmlspecialchars($item['product_name']) ?></td>
<td><?= $item['quantity'] ?></td>
<td><?= number_format($item['unit_price'], 0, '', ' ') ?> ₽</td>
<td><?= number_format($item['total_price'], 0, '', ' ') ?> ₽</td>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot>
<tr class="total-row">
<td colspan="4" style="text-align: right;">Сумма товаров:</td>
<td><?= number_format($order['total_amount'], 0, '', ' ') ?> ₽</td>
</tr>
<?php if ($order['discount_amount'] > 0): ?>
<tr class="total-row">
<td colspan="4" style="text-align: right;">Скидка:</td>
<td>-<?= number_format($order['discount_amount'], 0, '', ' ') ?> ₽</td>
</tr>
<?php endif; ?>
<?php if ($order['delivery_cost'] > 0): ?>
<tr class="total-row">
<td colspan="4" style="text-align: right;">Доставка:</td>
<td><?= number_format($order['delivery_cost'], 0, '', ' ') ?> ₽</td>
</tr>
<?php endif; ?>
<tr class="total-row">
<td colspan="4" style="text-align: right; font-size: 16px;">Итого к оплате:</td>
<td style="font-size: 16px;"><?= number_format($order['final_amount'], 0, '', ' ') ?> ₽</td>
</tr>
</tfoot>
</table>
<?php if ($order['notes']): ?>
<div style="margin-top: 30px;">
<h3>Примечания</h3>
<p><?= nl2br(htmlspecialchars($order['notes'])) ?></p>
</div>
<?php endif; ?>
<div class="footer">
<p>Заказ создан в системе AETERNA</p>
<p>Дата печати: <?= date('d.m.Y H:i') ?></p>
</div>
<script>
// Автоматическая печать при загрузке
window.onload = function() {
setTimeout(function() {
window.print();
}, 500);
};
</script>
</body>
</html>