œ_#ÁÕ§TE NAŒ“KeÉ:”(åŽÖJÞùY’‚ñùž7; «]Û ý`8g“¯B© jdÖÖ¸ðzœ¸¦4Ç3Kó^(ÍÖ¼ Õ€pvìwšõB4df$Èü^0˜…åÌC$#2FŽÑ§±¦ÛZ/÷š&m£ñzÒÖ ’.Î]!Î;ƒ(Õ–¢d/—#Kª+tZyuÏB>NÛÖ†(¸ŒSà'³„Y˜´-_•¦¼´˜OlNK§¶ÒàŠˆTHµƒeTPå·fïM’…þuÏÍüp6دªE£åü‡ZØ'CKF#â«;‹eyO Qp„†l"ö1èíÙP ÏŒúl! BÝ2ñª•_VÁÉ÷3eu`–F¸ìI--ö<¿žë¯4õ캿¢)34Å{wMÉ2ÆÖFŸ¥`e9Ú¶¸P‡.”FÔï rY ‚²ÈTB,{ÛœéJ}«àQ4¹0Rû4D‚B§S‘ dO•v¾„™Sן¯3FeŸ™«+ÓâwH dÕÛÌì·P4ë&¥#rÜÉ Ù¦ê†ý·xòqk¯2,¹§™E\ék‚×Sá”ÚºÙ⺷ö£6…à ʾ qSá³Å|;àû}4Ÿ($â¹VY~óÍ!èÜÒŒËX½Ù1j‚VíÍŸš³+œ]«½g{_{/vµ½\¢¶vÉWKÿ:ñám½ ¥ S²x‘t ŽšÝÙÿÀÇ^ný PK IW™k‚½÷ á _rels/.relsUT dìd dìd dìd’ÏNÃ0‡ï{ŠÈ÷ÕÝ@¡¥» ¤Ý*`%îÑ&QâÁöö‚J£ì°cœŸ¿|¶²ÙÆA½rL½wVE Šñ¶w†çúay * 9Kƒw¬áÈ ¶ÕbóÄIîI]’Ê—4t"á1™ŽGJ…ìòMããH’±Å@æ…ZÆuYÞ`üÍ€jÂT;«!îì T}|Û7MoøÞ›ýÈNN<|v–í2ÄÜ¥ÏèšbË¢Ázó˜Ë )„"£OÏ7ú{ZYÈ’yÞç#1'tuÉM?6o>Z´_å9›ëKÚ˜}?þ³žÏÌ·N>fµx PK IWª½e ¢ U € word/document.xmlUT dìdPK IWþË3” z €J¢ word/settings.xmlUT dìdPK IWC‡{š' ƒ €¤ docProps/custom.xmlUT dìdPK IW츱=Œ €‡¥ [Content_Types].xmlUT dìdPK IWV%ë±" €U§ docProps/app.xmlUT dìdPK IW€RŒ 3 €¶¨ docProps/core.xmlUT dìdPK IWkòDn ô €ª word/_rels/document.xml.relsUT dìdPK IW;$î €Î« word/fontTable.xmlUT dìdPK IW+åäz] ÷. €ý¬ word/numbering.xmlUT dìdPK IW¤2×r- ¿ €›° word/styles.xmlUT dìdPK IWMFÒ ø €´ word/header1.xmlUT dìdPK IWF— T e €· word/media/image1.jpegUT dìdPK IW!Yéáå €°Ë word/media/image2.pngUT dìdPK IW°Àºë ú €ÙÌ word/media/image3.pngUT dìdPK IW$“†ª L €Î word/footer1.xmlUT dìdPK IWzaGôM €ñÑ word/footer2.xmlUT dìdPK IW–µâº P €}Õ word/theme/theme1.xmlUT dìdPK IW™k‚½÷ á €{Û _rels/.relsUT PK ! bîh^ [Content_Types].xml ¢( ¬”ËNÃ0E÷HüCä-Jܲ@5í‚Ç*Q>Àēƪc[žiiÿž‰ûB¡j7±ÏÜ{2ñÍh²nm¶‚ˆÆ»R‹ÈÀU^7/ÅÇì%¿’rZYï @1__f› ˜q·ÃR4DáAJ¬h>€ãÚÇV߯¹ªZ¨9ÈÛÁàNVÞ8Ê©ÓãÑÔji){^óã-I‹"{Üv^¥P!XS)bR¹rú—K¾s(¸3Õ`cÞ0†½ÝÎß»¾7M4²©ŠôªZÆk+¿|\|z¿(Ž‹ôPúº6h_-[ž@!‚ÒØ Pk‹´2nÏ}Ä?£LËð Ýû%áÄßdºždN"m,à¥ÇžDO97*‚~§Èɸ8ÀOíc|n¦Ñ äEøÿöéºóÀBÉÀ!$}‡íàÈé;{ìÐå[ƒîñ–é2þ ÿÿ PK ! µU0#ô L _rels/.rels ¢( ¬’MOÃ0†ïHü‡È÷ÕÝBKwAH»!T~€Iܵ£$Ý¿'TƒG½~üÊÛÝ<êÈ!öâ4¬‹;#¶w†—úqu *&r–Fq¬áÄvÕõÕö™GJy(v½*«¸¨¡KÉß#FÓñD±Ï.W ¥†=™ZÆMYÞbø®ÕBS톰·7 ê“Ï›×–¦é ?ˆ9LìÒ™ÈsbgÙ®|Èl!õùUSh9i°bžr:"y_dlÀóD›¿ý|-NœÈR"4ø2ÏGÇ% õZ´4ñËyÄ7 ëÈðÉ‚‹¨Þ ÿÿ PK ! Q48wÛ — xl/workbook.xml¤UÙnâ0}iþ!cñ‡ *–¢AšVU×$dC¬&vÆv UÕŸë@XÊK§/¹p|Žï¹N÷b“¥Ö •Š ÞC¸î"‹òHÄŒ¯zèá~b·‘¥4á1I§=ôJºèÿüÑ] ù¼âÙ ®z(Ñ:GE ͈ª‹œrˆ,…̈†©\9*—”Ä*¡Tg©ã¹nàd„q´Eåg0ÄrÉ":Q‘Q®· ’¦D}•°\UhYô¸ŒÈç"·#‘å ±`)Ó¯%(²²(œ®¸d‘‚ì nZ w v¡ñª• t¶TÆ")”Xê:@;[Ògú±ë`|²›ó=ø’ïHúÂL÷¬dðEVÁ+8€a÷Ûh¬Uz%„Íû"ZsÏÍCýî’¥ôqk]‹äù5ÉL¦Rd¥Dé˘i÷P ¦bM/|dÉ",…¨çãFNoçiûéë>aêiçsó#ðÄ ÕTr¢éHp ÜIú®ÝJìQ"ÀÜÖ-ý[0I¡¦ÀZ Z…d¡nˆN¬B¦=4 g %PDF-1.4 %âãÏÓ 3 0 obj << /Linearized 1 /L 422775 ÿØÿà JFIF ÿÛ C ÿÛ C ÿÀ X" ÿÄ ÿÄ H !1A"Qaq2‘¡#±ÁBRÑ3Cbrá$S‚¢²ð4ñ%6DTc’ÂsÿÄ ÿÄ = !1AQ"aq‘Á2R¡±BÑð#3br’²4á$‚¢ÂñÿÚ ? áHBßÝ`„! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! ! stream
<?php
// orderdetail_header.php
include "connection/config.php";
// Get the order ID from GET
$allorder_id = intval($_GET['allorder'] ?? 0);
if ($allorder_id <= 0) {
die("Invalid order ID.");
}
// Fetch order from allorders table
$stmt = $pdo->prepare("SELECT * FROM allorders WHERE allorder_id = :allorder_id LIMIT 1");
$stmt->execute([':allorder_id' => $allorder_id]);
$order = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$order) {
die("Order not found.");
}
// Fetch latest payment for this order
$stmtPayment = $pdo->prepare("SELECT * FROM payments WHERE allorder_id = :allorder_id ORDER BY created_at DESC LIMIT 1");
$stmtPayment->execute([':allorder_id' => $allorder_id]);
$payment = $stmtPayment->fetch(PDO::FETCH_ASSOC);
// Format order number like #0758267/90
$orderNumber = sprintf("#%07d/%02d", $order['allorder_id'], $order['allorder_id'] % 100);
// Determine payment status
$paymentStatus = ($payment && $payment['payment_status'] === 'completed') ? 'Paid' : 'Unpaid';
// Map order status to display label
switch ($order['order_status']) {
case 'pending': $orderProgress = 'Pending'; break;
case 'confirmed': $orderProgress = 'Confirmed'; break;
case 'shipped': $orderProgress = 'Shipped'; break;
case 'delivered': $orderProgress = 'Delivered'; break;
case 'cancelled': $orderProgress = 'Cancelled'; break;
case 'active': $orderProgress = 'In Progress'; break;
case 'returned': $orderProgress = 'Returned'; break;
case 'overdue': $orderProgress = 'Overdue'; break;
default: $orderProgress = 'Unknown';
}
// Format created_at date
$createdAt = date("F d, Y \a\\t g:i a", strtotime($order['created_at']));
$shippingDate = !empty($order['shipping_date'])
? date("M d, Y", strtotime($order['shipping_date']))
: "Not Scheduled";
// Define the steps in order
$orderSteps = [
'Order Confirming' => 'pending',
'Payment Pending' => 'confirmed',
'Processing' => 'active',
'Shipping' => 'shipped',
'Delivered' => 'delivered'
];
// Map status to progress percentage and color
function getStepProgress($stepStatus, $currentStatus, $paymentStatus) {
$progress = 0;
$color = 'bg-primary';
$spinner = false;
switch ($stepStatus) {
case 'pending':
if (in_array($currentStatus, ['pending', 'confirmed', 'active', 'shipped', 'delivered'])) {
$progress = 100;
$color = 'bg-success';
}
break;
case 'confirmed':
if ($paymentStatus === 'Paid') {
$progress = 100;
$color = 'bg-success';
} else {
$progress = 60;
$color = 'bg-warning';
$spinner = true;
}
break;
case 'active':
if (in_array($currentStatus, ['active', 'shipped', 'delivered'])) {
$progress = 60;
$color = 'bg-warning';
$spinner = true;
}
break;
case 'shipped':
if (in_array($currentStatus, ['shipped', 'delivered'])) {
$progress = 100;
$color = 'bg-primary';
}
break;
case 'delivered':
if ($currentStatus === 'delivered') {
$progress = 100;
$color = 'bg-success';
}
break;
}
return ['progress' => $progress, 'color' => $color, 'spinner' => $spinner];
}
include "common/header.php";
?>
<!-- ==================================================== -->
<!-- Start right Content here -->
<!-- ==================================================== -->
<div class="page-content">
<!-- Start Container -->
<div class="container-xxl">
<div class="row">
<div class="col-xl-9 col-lg-8">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<div class="d-flex flex-wrap align-items-center justify-content-between gap-2">
<div>
<!-- Display Order Header -->
<h4 class="fw-medium text-dark d-flex align-items-center gap-2">
<?= htmlspecialchars($orderNumber) ?>
<span class="badge <?= $paymentStatus === 'Paid' ? 'bg-success-subtle text-success' : 'bg-danger-subtle text-danger' ?> px-2 py-1 fs-13">
<?= htmlspecialchars($paymentStatus) ?>
</span>
<span class="border border-warning text-warning fs-13 px-2 py-1 rounded">
<?= htmlspecialchars($orderProgress) ?>
</span>
</h4>
<p class="mb-0">
Order / Order Details / <?= htmlspecialchars($orderNumber) ?> - <?= htmlspecialchars($createdAt) ?>
</p>
</div>
<div>
<a href="#!" class="btn btn-outline-secondary">Refund</a>
<a href="#!" class="btn btn-outline-secondary">Return</a>
<a href="#!" class="btn btn-primary">Edit Order</a>
</div>
</div>
<div class="mt-4">
<h4 class="fw-medium text-dark">Progress</h4>
</div>
<div class="row row-cols-xxl-5 row-cols-md-2 row-cols-1">
<?php foreach ($orderSteps as $label => $statusStep):
$stepData = getStepProgress($statusStep, $order['order_status'], $paymentStatus);
?>
<div class="col">
<div class="progress mt-3" style="height: 10px;">
<div class="progress-bar progress-bar-striped progress-bar-animated <?= $stepData['color'] ?>"
role="progressbar"
style="width: <?= $stepData['progress'] ?>%"
aria-valuenow="<?= $stepData['progress'] ?>"
aria-valuemin="0"
aria-valuemax="100">
</div>
</div>
<?php if ($stepData['spinner']): ?>
<div class="d-flex align-items-center gap-2 mt-2">
<p class="mb-0"><?= $label ?></p>
<div class="spinner-border spinner-border-sm text-warning" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<?php else: ?>
<p class="mb-0 mt-2"><?= $label ?></p>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
</div>
<div class="card-footer d-flex flex-wrap align-items-center justify-content-between bg-light-subtle gap-2">
<p class="border rounded mb-0 px-2 py-1 bg-body"><i class='bx bx-arrow-from-left align-middle fs-16'></i> Estimated shipping date : <span class="text-dark fw-medium"><?= htmlspecialchars($shippingDate) ?></span></p>
<div>
<a href="#!" class="btn btn-primary">Make As Ready To Ship</a>
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4 class="card-title">Sale Products</h4>
</div>
<div class="card-body">
<div class="row g-3 g-lg-0">
<?php
include 'connection/config.php'; // Ensure $pdo is initialized
$allorder_id = $order['allorder_id'] ?? 0;
$order_total_amount = 0;
$order_items = [];
if ($allorder_id > 0) {
// Fetch order JSON
$stmt = $pdo->prepare("SELECT * FROM orders WHERE allorder_id = :allorder_id LIMIT 1");
$stmt->execute([':allorder_id' => $allorder_id]);
$orderData = $stmt->fetch(PDO::FETCH_ASSOC);
if ($orderData && !empty($orderData['order_json'])) {
$order_items = json_decode($orderData['order_json'], true);
// Normalize single item to array
if (isset($order_items['product_id'])) {
$order_items = [$order_items];
}
// Calculate total
foreach ($order_items as $item) {
$quantity = intval($item['quantity'] ?? 1);
$price = floatval($item['price'] ?? 0);
$order_total_amount += $quantity * $price;
}
}
}
?>
<div class="col-lg-3 border-end">
<div class="d-flex align-items-center gap-3 justify-content-between px-3">
<div class="mb-2">
<strong>Date:</strong> <?= date('d<\s\u\p>S</\s\u\p> M Y') ?><br>
<strong>Total:</strong>
<span class="heading-color heading-weight">₹<?= number_format($order_total_amount, 2) ?></span>
</div>
</div>
</div>
</div>
<div class="table-responsive">
<table class="table align-middle mb-0 table-hover table-centered">
<thead class="bg-light-subtle border-bottom">
<tr>
<th>Product Image</th>
<th>Name</th>
<th>Quantity</th>
<th>Price</th>
<th>Text</th>
<th>Amount</th>
</tr>
</thead>
<tbody>
<?php
include 'connection/config.php'; // Ensure $pdo is initialized
$allorder_id = $order['allorder_id'] ?? 0;
if ($allorder_id > 0) {
// Fetch the order row
$stmt = $pdo->prepare("SELECT order_json FROM `orders` WHERE allorder_id = :allorder_id LIMIT 1");
$stmt->execute([':allorder_id' => $allorder_id]);
$orderData = $stmt->fetch(PDO::FETCH_ASSOC);
if ($orderData && !empty($orderData['order_json'])) {
$orderItems = json_decode($orderData['order_json'], true);
// Normalize single object to array
if (isset($orderItems['product_id'])) {
$orderItems = [$orderItems];
}
foreach ($orderItems as $item) {
$product_unique_id = $item['product_unique_id'] ?? '';
$item_name = $item['name'] ?? 'Unknown Product';
$item_price = isset($item['price']) ? floatval($item['price']) : 0;
$item_quantity = $item['quantity'] ?? 1;
$item_metal_purity = $item['metal_purity'] ?? '';
$item_weight = $item['weight'] ?? '';
$item_hallmark = $item['hallmark_certification'] ?? '';
$item_color = $item['color'] ?? '';
// Fetch product details from products table
$stmtProduct = $pdo->prepare("
SELECT product_name, thumbnail_image
FROM products
WHERE product_unique_id = :unique_id
LIMIT 1
");
$stmtProduct->execute([':unique_id' => $product_unique_id]);
$product = $stmtProduct->fetch(PDO::FETCH_ASSOC);
// Fallbacks
$product_name = $product['product_name'] ?? $item_name;
$thumbnail = $product['thumbnail_image'] ?? "assets/image/search/search-product1.jpg";
// Calculate total amount
$total_amount = $item_price * $item_quantity;
?>
<tr>
<td>
<div class="d-flex align-items-center gap-2">
<div class="rounded bg-light avatar-md d-flex align-items-center justify-content-center">
<img src="../<?= htmlspecialchars($thumbnail) ?>" alt="" class="avatar-md">
</div>
</div>
</td>
<td>
<span class="badge bg-success-subtle text-success px-2 py-1 fs-13"><?= htmlspecialchars($product_name) ?></span>
</td>
<td><?= intval($item_quantity) ?></td>
<td>₹<?= number_format($item_price, 2) ?></td>
<td>
<div class="small text-muted">
<div><strong>Metal Purity:</strong> <?= htmlspecialchars($item_metal_purity) ?></div>
<div><strong>Weight:</strong> <?= htmlspecialchars($item_weight) ?> g</div>
<div><strong>Hallmark:</strong> <?= htmlspecialchars($item_hallmark) ?></div>
<?php if (!empty($item_color)) : ?>
<div><strong>Color:</strong> <?= htmlspecialchars($item_color) ?></div>
<?php endif; ?>
</div>
</td>
<td>₹<?= number_format($total_amount, 2) ?></td>
</tr>
<?php
}
} else {
echo "<tr><td colspan='6'>No products found for this order.</td></tr>";
}
} else {
echo "<tr><td colspan='6'>Invalid order ID.</td></tr>";
}
?>
</tbody>
</table>
</div>
</div>
</div>
<?php
include 'connection/config.php'; // Ensure $pdo is initialized
$allorder_id = intval($_GET['allorder'] ?? 0);
// Define start date (for example, today or from your order)
$startDate = new DateTime(); // You can replace this with actual start date from DB
$totalRentalFee = 0;
$totalDeposit = 0;
// Fetch rental order JSON
$stmt = $pdo->prepare("SELECT rental_id, order_json FROM `rental_orders` WHERE `allorder_id` = :allorder_id LIMIT 1");
$stmt->execute([':allorder_id' => $allorder_id]);
$orderData = $stmt->fetch(PDO::FETCH_ASSOC);
if ($orderData) {
$rentalItems = json_decode($orderData['order_json'], true);
if (json_last_error() !== JSON_ERROR_NONE) {
die("Invalid JSON in rental_orders: " . json_last_error_msg());
}
// Ensure array
if (isset($rentalItems['product_unique_id'])) {
$rentalItems = [$rentalItems];
}
if (!empty($rentalItems)):
?>
<div class="card">
<div class="card-header">
<h4 class="card-title">Rental Products</h4>
</div>
<div class="table-responsive">
<table class="table align-middle mb-0 table-hover table-centered">
<thead class="bg-light-subtle border-bottom">
<tr>
<th>Product Name & Size</th>
<th>Rental</th>
<th>Duration</th>
<th>Start</th>
<th>Return</th>
<th>Deposit</th>
<th>Refundable</th>
<th>Total Rental</th>
</tr>
</thead>
<tbody>
<?php foreach ($rentalItems as $item):
$productUniqueId = $item['product_unique_id'];
// Fetch product info
$stmtProduct = $pdo->prepare("SELECT product_name, thumbnail_image FROM products WHERE product_unique_id = :puid LIMIT 1");
$stmtProduct->execute([':puid' => $productUniqueId]);
$product = $stmtProduct->fetch(PDO::FETCH_ASSOC);
$productName = $product['product_name'] ?? $item['name'];
$thumbnail = $product['thumbnail_image'] ?? "assets/image/search/search-product1.jpg";
$price = floatval($item['price'] ?? 0);
$deposit = floatval($item['deposit'] ?? 0);
$days = intval($item['days'] ?? 1);
// Calculate rental total
$rentalTotal = $price * $days;
$totalRentalFee += $rentalTotal;
$totalDeposit += $deposit;
// Calculate end date
$endDate = (clone $startDate)->modify("+".($days-1)." days");
?>
<tr>
<td>
<div class="d-flex align-items-center gap-2">
<div class="rounded bg-light avatar-md d-flex align-items-center justify-content-center">
<img src="../<?= htmlspecialchars($thumbnail) ?>" alt="" class="avatar-md">
</div>
<div>
<a href="#!" class="text-dark fw-medium fs-15"><?= htmlspecialchars($productName) ?></a>
</div>
</div>
</td>
<td>
<span class="badge bg-success-subtle text-success px-2 py-1 fs-13">₹<?= number_format($price, 2) ?>/day</span>
</td>
<td> <?= $days ?> day(s)</td>
<td><?= $startDate->format('d M Y') ?></td>
<td><?= $endDate->format('d M Y') ?></td>
<td>₹<?= number_format($deposit, 2) ?></td>
<td>₹<?= number_format(max(0, $deposit - $rentalTotal), 2) ?></td>
<td><span class="badge bg-success-subtle text-success px-2 py-1 fs-13">₹<?= number_format($rentalTotal, 2) ?></span></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<div class="card-body">
<div class="row g-3 g-lg-0">
<div class="col-lg-12 border-end">
<!-- Rental Details Section -->
<div class="row px-3 mt-3">
<div class="col-lg-3 col-md-6 mb-3">
<strong>Rental ID:</strong>
<a href="rental-info.php?id=<?= $orderData['rental_id'] ?>"
class="text-decoration-underline body-dominant-color">
#R-<?= $orderData['rental_id'] ?>
</a>
</div>
<div class="col-lg-3 col-md-6 mb-3">
<strong>Start Date:</strong> <?= $startDate->format('d M Y') ?>
</div>
<div class="col-lg-3 col-md-6 mb-3">
<strong>Return Date:</strong> <?= $endDate->format('d M Y') ?>
</div>
<div class="col-lg-3 col-md-6 mb-3">
<strong>Security Deposit:</strong>
<span class="heading-color heading-weight">₹<?= number_format($totalDeposit, 2) ?></span>
</div>
<div class="col-lg-3 col-md-6 mb-3">
<strong>Total Rental Fee:</strong>
<span class="heading-color heading-weight">₹<?= number_format($totalRentalFee, 2) ?></span>
</div>
<div class="col-lg-3 col-md-6 mb-3">
<strong>Total Refundable Amount:</strong>
<span class="heading-color heading-weight">₹<?= number_format(max(0, $totalDeposit - $totalRentalFee), 2) ?></span>
</div>
<div class="col-lg-3 col-md-6 mb-3">
<strong>Status:</strong> <span class="text-primary">Ongoing</span>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
endif;
}
?>
</div>
</div>
</div>
<div class="col-xl-3 col-lg-4">
<?php
include "connection/config.php";
// Get the order ID from GET
$allorder_id = intval($_GET['allorder'] ?? 0);
if ($allorder_id <= 0) {
die("Invalid order ID.");
}
// Fetch order
$stmt = $pdo->prepare("SELECT * FROM allorders WHERE allorder_id = :allorder_id LIMIT 1");
$stmt->execute([':allorder_id' => $allorder_id]);
$order = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$order) {
die("Order not found.");
}
// Fix column name (remove space in array key)
$customer_id = $order['customer_id'];
// Fetch customer details
$stmt = $pdo->prepare("SELECT * FROM customers WHERE customer_id = :customer_id LIMIT 1");
$stmt->execute([':customer_id' => $customer_id]);
$customer = $stmt->fetch(PDO::FETCH_ASSOC);
// Fetch customer address
$stmt = $pdo->prepare("SELECT * FROM customer_addresses WHERE customer_id = :customer_id LIMIT 1");
$stmt->execute([':customer_id' => $customer_id]);
$address = $stmt->fetch(PDO::FETCH_ASSOC);
// Default profile image if not exists
$profile_image = !empty($customer['profile_image']) ? $customer['profile_image'] : "assets/images/users/avatar-1.jpg";
?>
<div class="card">
<div class="card-header">
<h4 class="card-title">Customer Details</h4>
</div>
<div class="card-body">
<div class="d-flex align-items-center gap-2">
<img src="../<?= htmlspecialchars($profile_image) ?>" alt="" class="avatar rounded-3 border border-light border-3">
<div>
<p class="mb-1"><?= htmlspecialchars($customer['first_name'] . " " . $customer['last_name']) ?></p>
<a href="mailto:<?= htmlspecialchars($customer['email']) ?>" class="link-primary fw-medium">
<?= htmlspecialchars($customer['email']) ?>
</a>
</div>
</div>
<div class="d-flex justify-content-between mt-3">
<h5 class="">Contact Number</h5>
<div>
<a href="#!"><i class='bx bx-edit-alt fs-18'></i></a>
</div>
</div>
<p class="mb-1"><?= htmlspecialchars($customer['phone']) ?></p>
<div class="d-flex justify-content-between mt-3">
<h5 class="">Shipping Address</h5>
<div>
<a href="#!"><i class='bx bx-edit-alt fs-18'></i></a>
</div>
</div>
<div>
<p class="mb-1"><?= htmlspecialchars($address['delivery_address_line1'] . " " . $address['delivery_address_line2']) ?></p>
<p class="mb-1"><?= htmlspecialchars($address['delivery_city']) ?>, <?= htmlspecialchars($address['delivery_state']) ?> <?= htmlspecialchars($address['delivery_postal_code']) ?></p>
<p class="mb-1"><?= htmlspecialchars($address['delivery_country']) ?></p>
<p class=""><?= htmlspecialchars($address['delivery_phone']) ?></p>
</div>
<div class="d-flex justify-content-between mt-3">
<h5 class="">Billing Address</h5>
<div>
<a href="#!"><i class='bx bx-edit-alt fs-18'></i></a>
</div>
</div>
<div>
<p class="mb-1"><?= htmlspecialchars($address['perm_address_line1'] . " " . $address['perm_address_line2']) ?></p>
<p class="mb-1"><?= htmlspecialchars($address['perm_city']) ?>, <?= htmlspecialchars($address['perm_state']) ?> <?= htmlspecialchars($address['perm_postal_code']) ?></p>
<p class="mb-1"><?= htmlspecialchars($address['perm_country']) ?></p>
<p class=""><?= htmlspecialchars($address['perm_phone']) ?></p>
</div>
</div>
</div>
<?php
// ✅ Remove space from array key: use correct `customer_id`
$customer_id = $order['customer_id'];
// Fetch customer details
$stmt = $pdo->prepare("SELECT * FROM customers WHERE customer_id = :customer_id LIMIT 1");
$stmt->execute([':customer_id' => $customer_id]);
$customer = $stmt->fetch(PDO::FETCH_ASSOC);
?>
<div class="card">
<div class="card-header">
<h4 class="card-title">Order Summary</h4>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table mb-0">
<tbody>
<tr>
<td class="px-0">
<p class="d-flex mb-0 align-items-center gap-1">
<iconify-icon icon="solar:clipboard-text-broken"></iconify-icon> Sub Total :
</p>
</td>
<td class="text-end text-dark fw-medium px-0">
₹<?= number_format($order['total_amount'], 2) ?>
</td>
</tr>
<tr>
<td class="px-0">
<p class="d-flex mb-0 align-items-center gap-1">
<iconify-icon icon="solar:ticket-broken" class="align-middle"></iconify-icon> Discount :
</p>
</td>
<td class="text-end text-dark fw-medium px-0">
-₹<?= number_format($order['discount_amount'], 2) ?>
</td>
</tr>
<tr>
<td class="px-0">
<p class="d-flex mb-0 align-items-center gap-1">
<iconify-icon icon="solar:kick-scooter-broken" class="align-middle"></iconify-icon> Delivery Charge :
</p>
</td>
<td class="text-end text-dark fw-medium px-0">
₹<?= number_format($order['shipping_charge'], 2) ?>
</td>
</tr>
<tr>
<td class="px-0">
<p class="d-flex mb-0 align-items-center gap-1">
<iconify-icon icon="solar:calculator-minimalistic-broken" class="align-middle"></iconify-icon> Estimated Tax :
</p>
</td>
<td class="text-end text-dark fw-medium px-0">
₹<?= number_format($order['tax_amount'], 2) ?>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="card-footer d-flex align-items-center justify-content-between bg-light-subtle">
<div>
<p class="fw-medium text-dark mb-0">Total Amount</p>
</div>
<div>
<p class="fw-medium text-dark mb-0">₹<?= number_format($order['final_amount'], 2) ?></p>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="mapouter">
<div class="gmap_canvas"><iframe class="gmap_iframe rounded" width="100%" style="height: 418px;" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?width=1980&height=400&hl=en&q=University%20of%20Oxford&t=&z=14&ie=UTF8&iwloc=B&output=embed"></iframe></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- End Container Fluid -->
<?php include "common/footer.php" ?>
</div>
</div>
<!-- END Wrapper -->
<!-- Vendor Javascript (Require in all Page) -->
<script src="assets/js/vendor.js"></script>
<!-- App Javascript (Require in all Page) -->
<script src="assets/js/app.js"></script>
</body>
<!-- Mirrored from techzaa.in/larkon/admin/order-detail.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 13 Aug 2025 09:34:46 GMT -->
</html>