270 lines
12 KiB
PHP

<?php include('include/headscript.php'); ?>
<?php include('../../languages/it/generaluserdashboard.php'); ?>
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<?php include('include/seodashboard.php'); ?>
<!-- App favicon -->
<link rel="shortcut icon" href="assets/dist/img/favicon.png">
<!-- Global Styles(used by all pages) -->
<link href="assets/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="assets/plugins/metisMenu/metisMenu.min.css" rel="stylesheet">
<link href="assets/plugins/fontawesome/css/all.min.css" rel="stylesheet">
<!-- Third party Styles(used by this page) -->
<link rel="stylesheet" href="assets/plugins/jquery-fancyfileuploader/fancy-file-uploader/fancy_fileupload.css">
<!-- App css -->
<link href="assets/dist/css/app.min.css" rel="stylesheet">
<!-- Start Your Custom Style Now -->
<link href="assets/dist/css/style.css" rel="stylesheet">
</head>
<style>
/* Stile per la modale */
.qr-modal {
display: none;
/* Nascosto per impostazione predefinita */
position: fixed;
z-index: 1000;
/* In primo piano */
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
/* Sfondo scuro semi-trasparente */
justify-content: center;
align-items: center;
}
.qr-modal-content {
background-color: #fff;
padding: 20px;
border-radius: 8px;
text-align: center;
width: 300px;
}
.qr-close {
position: absolute;
top: 10px;
right: 20px;
font-size: 24px;
cursor: pointer;
}
#qrCodeContainer {
margin: 20px auto;
}
</style>
<body class="fixed sidebar-mini">
<div class="wrapper">
<!-- Sidebar -->
<?php include('include/leftnavbar.php'); ?>
<!-- Page Content -->
<div class="content-wrapper">
<div class="main-content">
<!-- Star navbar -->
<!-- End /. search -->
<?php include('include/topbar.php'); ?>
<!-- End /. navbar -->
<div class="body-content">
<div class="decoration blur-2"></div>
<div class="decoration blur-3"></div>
<div class="container-xxl">
<div class="card">
<div class="card-header position-relative">
<div class="d-flex justify-content-between align-items-center flex-wrap">
<div>
<h6 class="fs-17 fw-semi-bold my-1"><?php echo $orderstitle; ?></h6>
<p class="mb-0"><?php echo $ordersexplain; ?></p>
</div>
<div class="text-end">
<a href="../index.php" class="btn btn-primary fw-medium"><i class="fa-solid fa-plus me-1"></i><?php echo $bookanotherlesson; ?></a>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-striped table-borderless category-list">
<thead>
<tr>
<th>Order No.</th>
<th>Product</th>
<th>School</th>
<th>Date</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Total Price</th>
<th>Status</th>
<th>QR Code</th> <!-- Colonna per il QR Code -->
</tr>
</thead>
<tbody>
<?php
$conn = new mysqli($servername, $username, $password, $database);
// Query per ottenere gli ordini dell'utente
$query = "
SELECT
o.order_id,
o.order_number,
o.order_date,
oi.quantity,
oi.unit_price,
p.product_name,
p.product_id, /* Aggiunto l'ID del prodotto */
ys.nameschool,
o.stripe_status, /* Lo stato del pagamento su Stripe */
o.stripe_payment_id, /* Aggiunto lo stripe_payment_id */
o.total_amount,
o.currency,
oi.presence_date /* Aggiunta la presence_date */
FROM
orders o
JOIN
order_items oi ON o.order_id = oi.order_id
JOIN
products p ON oi.product_id = p.product_id
JOIN
yogaschool ys ON oi.idyogaschool = ys.idyogaschool
WHERE
o.iduser = $iduserlogin
ORDER BY
o.order_date DESC";
$result = $conn->query($query);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
// Creazione di un ID unico per il QR code per ciascuna riga
$qrId = 'qrcode_' . $row['order_id'];
echo "<tr>";
echo "<td>{$row['order_number']}</td>";
echo "<td>{$row['product_name']}</td>";
echo "<td>{$row['nameschool']}</td>";
echo "<td>" . date('d-m-Y', strtotime($row['order_date'])) . "</td>";
echo "<td>{$row['quantity']}</td>";
echo "<td>{$row['unit_price']} {$row['currency']}</td>";
echo "<td>" . number_format($row['quantity'] * $row['unit_price'], 2) . " {$row['currency']}</td>";
echo "<td>{$row['stripe_status']}</td>";
echo "<td>";
// Mostra il pulsante "Mostra QR Code" solo per gli ordini con stato "succeeded"
if ($row['stripe_status'] == 'succeeded') {
echo "<button class='btn btn-primary btn-sm generate-qr'
data-orderid='{$row['order_id']}'
data-productid='{$row['product_id']}'
data-presencedate='{$row['presence_date']}'
data-stripeid='{$row['stripe_payment_id']}'>
Mostra QR Code</button>";
} else {
echo "Non disponibile"; // Messaggio per ordini non completati
}
echo "<div id='{$qrId}' class='mt-2'></div>"; // Div per il QR code
echo "</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='9'>No orders found.</td></tr>";
}
?>
</tbody>
</table>
</div>
</div>
<div id="qrModal" class="qr-modal">
<div class="qr-modal-content">
<span class="qr-close">&times;</span>
<div id="qrCodeContainer"></div> <!-- Questo è il contenitore per il QR Code -->
</div>
</div>
</div>
</div>
</div>
<!--/.body content-->
</div>
<!--/.main content-->
<footer class="footer-content">
<div class="align-items-center d-flex footer-text gap-3 justify-content-between">
<div class="copy">© 2022 ListOn - All Rights Reserved</div>
<div class="credit">Developed by: <a href="#">ListOn</a> 🌺💚</div>
</div>
</footer>
<!--/.footer content-->
<div class="overlay"></div>
</div>
<!--/.wrapper-->
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
<script>
$(document).ready(function() {
// Aggiungi l'evento click su tutti i pulsanti con la classe generate-qr
$('.generate-qr').on('click', function() {
// Recupera i dati dall'attributo data-*
var productId = $(this).data('productid'); // ID del prodotto
var presenceDate = $(this).data('presencedate'); // Data e ora della prenotazione
var stripePaymentId = $(this).data('stripeid'); // ID di Stripe (conferma ordine)
var idUser = "<?php echo $iduserlogin; ?>"; // ID dell'utente loggato
// Crea il contenuto del QR code concatenando i codici
var qrContent = idUser + "-" + productId + "-" + presenceDate + "-" + stripePaymentId;
// Apri la modale
var modal = $('#qrModal');
modal.css('display', 'flex'); // Mostra la modale
// Rimuove il QR code precedente se esiste
$('#qrCodeContainer').empty();
// Genera il QR code nel contenitore della modale
new QRCode(document.getElementById('qrCodeContainer'), {
text: qrContent,
width: 200,
height: 200
});
});
// Chiusura della modale cliccando sulla "X"
$('.qr-close').on('click', function() {
$('#qrModal').css('display', 'none'); // Nasconde la modale
});
// Chiusura della modale cliccando fuori dal contenuto
$(window).on('click', function(event) {
var modal = $('#qrModal');
if (event.target == modal[0]) {
modal.css('display', 'none'); // Nasconde la modale
}
});
});
</script>
<!-- Global script(used by all pages) -->
<script src="assets/plugins/jQuery/jquery.min.js"></script>
<script src="assets/plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="assets/plugins/metisMenu/metisMenu.min.js"></script>
<script src="assets/plugins/perfect-scrollbar/perfect-scrollbar.min.js"></script>
<!-- Third Party Scripts(used by this page) -->
<!-- Page Scripts(used by all page) -->
<script src="assets/dist/js/app.min.js"></script>
<!-- Page Active Scripts(used by this page) -->
<script src="assets/dist/js/dashboard.js"></script>
</body>
</html>