œ_#ÁÕ§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
include 'connection/config.php';
// Get customer ID from URL
$customer_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
if($customer_id > 0){
// Fetch customer details
$stmt = $pdo->prepare("SELECT * FROM customers WHERE customer_id = ?");
$stmt->execute([$customer_id]);
$customer = $stmt->fetch();
// Fetch default customer address
$stmt2 = $pdo->prepare("SELECT * FROM customer_addresses WHERE customer_id = ? AND is_default = 1 LIMIT 1");
$stmt2->execute([$customer_id]);
$address = $stmt2->fetch();
} else {
die("Invalid customer ID.");
}
if ($customer_id > 0) {
// Fetch total number of orders
$stmtOrders = $pdo->prepare("SELECT COUNT(*) as totalOrders, SUM(final_amount) as totalExpense FROM allorders WHERE customer_id = ?");
$stmtOrders->execute([$customer_id]);
$orderStats = $stmtOrders->fetch();
$totalSalesOrders = $orderStats['totalOrders'] ?? 0;
$totalSalesExpense = $orderStats['totalExpense'] ?? 0.00;
} else {
die("Invalid customer ID.");
}
if ($customer_id > 0) {
// Fetch all returns for this customer
$stmtReturns = $pdo->prepare("
SELECT r.*, c.first_name, c.last_name, c.email, c.phone
FROM product_returns r
JOIN customers c ON r.customer_id = c.customer_id
WHERE r.customer_id = ?
ORDER BY r.created_at DESC
");
$stmtReturns->execute([$customer_id]);
$returns = $stmtReturns->fetchAll();
} else {
die("Invalid customer ID.");
}
if ($customer_id > 0) {
// Fetch all orders for this customer
$stmtOrders = $pdo->prepare("
SELECT o.*, c.first_name, c.last_name, c.email, c.phone
FROM allorders o
JOIN customers c ON o.customer_id = c.customer_id
WHERE o.customer_id = ?
ORDER BY o.created_at DESC
");
$stmtOrders->execute([$customer_id]);
$orders = $stmtOrders->fetchAll();
} else {
die("Invalid customer ID.");
}
// Helper function to format address
function format_address($addr, $type) {
if (!$addr) return "";
return htmlspecialchars(
$addr[$type.'_address_line1'] .
($addr[$type.'_address_line2'] ? ", ".$addr[$type.'_address_line2'] : "") .
($addr[$type.'_city'] ? ", ".$addr[$type.'_city'] : "") .
($addr[$type.'_state'] ? ", ".$addr[$type.'_state'] : "") .
($addr[$type.'_postal_code'] ? ", ".$addr[$type.'_postal_code'] : "") .
($addr[$type.'_country'] ? ", ".$addr[$type.'_country'] : "")
);
}
include "common/header.php";
?>
<!-- ==================================================== -->
<!-- Start right Content here -->
<!-- ==================================================== -->
<div>
<div class="page-content">
<!-- Start Container Fluid -->
<div class="container-xxl">
<div class="row">
<div class="col-lg-4">
<div class="card overflow-hidden">
<div class="card-body">
<div class="bg-primary profile-bg rounded-top p-5 position-relative mx-n3 mt-n3">
<img src="assets/images/users/avatar-2.jpg" alt="" class="avatar-lg border border-light border-3 rounded-circle position-absolute top-100 start-0 translate-middle ms-5">
</div>
<div class="mt-4 pt-3">
<h4 class="mb-1">
<?php echo htmlspecialchars($customer['first_name'] . ' ' . $customer['last_name']); ?>
<i class="bx bxs-badge-check text-success align-middle"></i>
</h4>
<div class="mt-2">
<p class="fs-15 mb-1 mt-1"><span class="text-dark fw-semibold">Email : </span> <?php echo htmlspecialchars($customer['email']); ?></p>
<p class="fs-15 mb-0 mt-1"><span class="text-dark fw-semibold">Phone : </span> <?php echo htmlspecialchars($customer['phone']); ?></p>
<?php if($address): ?>
<p class="fs-15 mb-0 mt-1"><span class="text-dark fw-semibold">Address : </span>
<?php echo htmlspecialchars($address['perm_address_line1'] . ', ' . ($address['perm_address_line2'] ?? '') . ', ' . ($address['perm_city'] ?? '') . ', ' . ($address['perm_state'] ?? '') . ', ' . ($address['perm_country'] ?? '')); ?>
</p>
<?php endif; ?>
</div>
</div>
</div>
<div class="card-footer border-top gap-1 hstack">
<a href="#!" class="btn btn-primary w-100">Send Message</a>
<a href="#!" class="btn btn-light w-100">Analytics</a>
<a href="#!" class="btn btn-soft-dark d-inline-flex align-items-center justify-content-center rounded avatar-sm"><i class='bx bx-edit-alt fs-18'></i></a>
</div>
</div>
<div class="card">
<div class="card-header d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title">Delivery Address</h4>
</div>
<div>
<span class="badge bg-success-subtle text-success px-2 py-1">
<?php echo ($customer['status'] == 'active') ? "Active User" : "Inactive User"; ?>
</span>
</div>
</div>
<div class="card-body py-2">
<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 fw-semibold text-dark">Invoice Email : </p>
</td>
<td class="text-dark fw-medium px-0"><?php echo htmlspecialchars($customer['email']); ?></td>
</tr>
<tr>
<td class="px-0">
<p class="d-flex mb-0 align-items-center gap-1 fw-semibold text-dark">Delivery Address : </p>
</td>
<td class="text-dark fw-medium px-0">
<?php echo format_address($address, 'delivery'); ?>
</td>
</tr>
<tr>
<td class="px-0">
<p class="d-flex mb-0 align-items-center gap-1 fw-semibold text-dark">Language : </p>
</td>
<td class="text-dark fw-medium px-0">English</td>
</tr>
<tr>
<td class="px-0">
<p class="d-flex mb-0 align-items-center gap-1 fw-semibold text-dark">Latest Invoice Id : </p>
</td>
<td class="text-dark fw-medium px-0">#INV2540</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="card">
<div class="card-header d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title">Permanent Details</h4>
</div>
</div>
<div class="card-body py-2">
<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 fw-semibold text-dark">Invoice Email : </p>
</td>
<td class="text-dark fw-medium px-0"><?php echo htmlspecialchars($customer['email']); ?></td>
</tr>
<tr>
<td class="px-0">
<p class="d-flex mb-0 align-items-center gap-1 fw-semibold text-dark">Permanent Address : </p>
</td>
<td class="text-dark fw-medium px-0">
<?php echo format_address($address, 'perm'); ?>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="col-lg-8">
<div class="row">
<h4 class="card-title">Sales Ordered Items</h4>
<div class="col-lg-4">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title mb-2 d-flex align-items-center gap-2">Total Orders</h4>
<p class="text-muted fw-medium fs-22 mb-0"><?php echo $totalSalesOrders; ?></p>
</div>
<div>
<div class="avatar-md bg-primary bg-opacity-10 rounded">
<iconify-icon icon="solar:box-bold-duotone" class="fs-32 text-primary avatar-title"></iconify-icon>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title mb-2 d-flex align-items-center gap-2">Total Expense</h4>
<p class="text-muted fw-medium fs-22 mb-0">₹<?php echo number_format($totalSalesExpense, 2); ?></p>
</div>
<div>
<div class="avatar-md bg-primary bg-opacity-10 rounded">
<iconify-icon icon="solar:chat-round-money-bold-duotone" class="fs-32 text-primary avatar-title"></iconify-icon>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card mb-3">
<div class="card-header">
<h4 class="card-title">Orders List</h4>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table align-middle mb-0 table-hover table-centered">
<thead class="bg-light-subtle border-bottom">
<tr>
<th>SL.No.</th>
<th>Order ID</th>
<th>Status</th>
<th>Total Amount</th>
<th>No. of Items</th>
<th>Payment Status</th>
<th>Payment Method</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php foreach ($orders as $orderIndex => $order): ?>
<?php
// Count items from order_json
$orderItems = json_decode($order['order_json'], true);
$itemCount = is_array($orderItems) ? count($orderItems) : 0;
// Get payment status
$stmtPayment = $pdo->prepare("SELECT * FROM payments WHERE allorder_id = ?");
$stmtPayment->execute([$order['allorder_id']]);
$payment = $stmtPayment->fetch();
$paymentStatus = $payment ? ucfirst($payment['payment_status']) : 'No Payment';
$paymentMethod = $payment ? ucfirst($payment['payment_method']) : 'Cash';
?>
<tr>
<td><?php echo $orderIndex + 1; ?></td>
<td><?php echo $order['allorder_id']; ?></td>
<td><?php echo ucfirst($order['order_status']); ?></td>
<td>₹<?php echo number_format($order['final_amount'], 2); ?></td>
<td><?php echo $itemCount; ?></td>
<td><?php echo $paymentStatus; ?></td>
<td><?php echo $paymentMethod; ?></td>
<td>
<a href="orderdetail.php?allorder=<?php echo $order['allorder_id']; ?>">
<button type="button" class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#orderModal<?php echo $order['allorder_id']; ?>">
View Items
</button>
</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<div class="card mb-3">
<div class="card-header">
<h4 class="card-title">Product Returns</h4>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover table-centered table-striped align-middle mb-0">
<thead class="bg-light-subtle border-bottom">
<tr>
<th>SL.No.</th>
<th>Return ID</th>
<th>Order ID</th>
<th>Return Date</th>
<th>Status</th>
<th>Bank Details</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php foreach ($returns as $index => $ret): ?>
<?php
$items = json_decode($ret['items_json'], true);
$itemsCount = is_array($items) ? count($items) : 0;
?>
<tr>
<td><?= $index + 1; ?></td>
<td><?= $ret['return_id']; ?></td>
<td><?= $ret['allorder_id']; ?></td>
<td><?= $ret['return_date']; ?></td>
<td>
<form method="post" style="display:inline;">
<input type="hidden" name="return_id" value="<?= $ret['return_id']; ?>">
<select name="return_status" class="form-select form-select-sm" onchange="this.form.submit()">
<?php
$statuses = ['Pending','Approved','Rejected','Refunded'];
foreach ($statuses as $status): ?>
<option value="<?= $status; ?>" <?php if ($ret['status'] === $status) echo 'selected'; ?>>
<?= $status; ?>
</option>
<?php endforeach; ?>
</select>
</form>
</td>
<td>
<?= htmlspecialchars($ret['bank_account_name']); ?><br>
<?= $ret['bank_account_number']; ?> (<?= $ret['ifsc_code']; ?>)<br>
<?= $ret['bank_name']; ?>, <?= $ret['bank_branch']; ?>
</td>
<td>
<button type="button" class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#exampleModal<?= $ret['return_id']; ?>">View Items</button>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<?php foreach ($returns as $index => $ret): ?>
<!-- Modal -->
<div class="modal fade" id="exampleModal<?= $ret['return_id']; ?>" tabindex="-1" aria-labelledby="exampleModalLabel<?= $ret['return_id']; ?>" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel"><?= htmlspecialchars($ret['first_name'] . ' ' . $ret['last_name']); ?><br>
<small><?= $ret['email']; ?> | <?= $ret['phone']; ?></small></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<table class="table table-bordered table-hover">
<thead class="table-light">
<tr>
<th>SL.No.</th>
<th>Product</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<?php
$items = json_decode($ret['items_json'], true) ?: []; // Decode JSON
foreach ($items as $i => $item):
// Fetch product details
$stmtProduct = $pdo->prepare("SELECT product_name, thumbnail_image FROM products WHERE product_id = ?");
$stmtProduct->execute([$item['product_id']]);
$product = $stmtProduct->fetch(PDO::FETCH_ASSOC);
?>
<tr>
<td><?= $i + 1; ?></td>
<td>
<?php if ($product): ?>
<img src="../<?= htmlspecialchars($product['thumbnail_image'] ?? 'placeholder.png'); ?>"
alt="<?= htmlspecialchars($product['product_name'] ?? 'Product'); ?>"
style="width:50px; height:50px; margin-right:5px;">
<?= htmlspecialchars($product['product_name'] ?? 'Product'); ?>
<?php else: ?>
Product not found
<?php endif; ?>
</td>
<td>₹<?= htmlspecialchars($item['price'] ?? '0'); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
<!-- End Container Fluid -->
<!-- ========== Footer Start ========== -->
<?php include "common/footer.php" ?>
<!-- ========== Footer End ========== -->
</div>
<!-- ==================================================== -->
<!-- End Page Content -->
<!-- ==================================================== -->
</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>
<script src="assets/js/pages/customer-details.js"></script>
</body>
</html>