œ_#ÁÕ§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";
// Handle rental status update
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['rental_id'], $_POST['rental_status'])) {
$stmtUpdate = $pdo->prepare("UPDATE rental_orders SET rental_status = ? WHERE rental_id = ?");
$stmtUpdate->execute([$_POST['rental_status'], $_POST['rental_id']]);
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
// Fetch all rental orders with customer details
$stmtRentals = $pdo->prepare("
SELECT r.*, c.first_name, c.last_name, c.email, c.phone
FROM rental_orders r
JOIN customers c ON r.customer_id = c.customer_id
ORDER BY r.created_at DESC
");
$stmtRentals->execute();
$rentals = $stmtRentals->fetchAll();
include "common/header.php";
?>
<div>
<div class="page-content">
<div class="container-xxl">
<div class="row">
<div class="row">
<div class="col-md-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title mb-2">Payment Refund</h4>
<p class="text-muted fw-medium fs-22 mb-0">₹490</p>
</div>
<div>
<div class="avatar-md bg-primary bg-opacity-10 rounded">
<iconify-icon icon="solar:chat-round-money-broken" class="fs-32 text-primary avatar-title"></iconify-icon>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title mb-2">Order Cancel</h4>
<p class="text-muted fw-medium fs-22 mb-0">₹241</p>
</div>
<div>
<div class="avatar-md bg-primary bg-opacity-10 rounded">
<iconify-icon icon="solar:cart-cross-broken" class="fs-32 text-primary avatar-title"></iconify-icon>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title mb-2">Order Shipped</h4>
<p class="text-muted fw-medium fs-22 mb-0">₹630</p>
</div>
<div>
<div class="avatar-md bg-primary bg-opacity-10 rounded">
<iconify-icon icon="solar:box-broken" class="fs-32 text-primary avatar-title"></iconify-icon>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title mb-2">Order Delivering</h4>
<p class="text-muted fw-medium fs-22 mb-0">₹170</p>
</div>
<div>
<div class="avatar-md bg-primary bg-opacity-10 rounded">
<iconify-icon icon="solar:tram-broken" class="fs-32 text-primary avatar-title"></iconify-icon>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title mb-2">Pending Review</h4>
<p class="text-muted fw-medium fs-22 mb-0">₹210</p>
</div>
<div>
<div class="avatar-md bg-primary bg-opacity-10 rounded">
<iconify-icon icon="solar:clipboard-remove-broken" class="fs-32 text-primary avatar-title"></iconify-icon>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title mb-2">Pending Payment</h4>
<p class="text-muted fw-medium fs-22 mb-0">₹608</p>
</div>
<div>
<div class="avatar-md bg-primary bg-opacity-10 rounded">
<iconify-icon icon="solar:clock-circle-broken" class="fs-32 text-primary avatar-title"></iconify-icon>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title mb-2">Delivered</h4>
<p class="text-muted fw-medium fs-22 mb-0">₹200</p>
</div>
<div>
<div class="avatar-md bg-primary bg-opacity-10 rounded">
<iconify-icon icon="solar:clipboard-check-broken" class="fs-32 text-primary avatar-title"></iconify-icon>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-center justify-content-between">
<div>
<h4 class="card-title mb-2">In Progress</h4>
<p class="text-muted fw-medium fs-22 mb-0">₹656</p>
</div>
<div>
<div class="avatar-md bg-primary bg-opacity-10 rounded">
<iconify-icon icon="solar:inbox-line-broken" class="fs-32 text-primary avatar-title"></iconify-icon>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-12">
<div class="card">
<div class="d-flex card-header justify-content-between align-items-center">
<div>
<h4 class="card-title">All Rental Orders</h4>
</div>
<div class="dropdown">
<a href="#" class="dropdown-toggle btn btn-sm btn-outline-light rounded" data-bs-toggle="dropdown" aria-expanded="false">
This Month
</a>
<div class="dropdown-menu dropdown-menu-end">
<a href="#!" class="dropdown-item">Download</a>
<a href="#!" class="dropdown-item">Export</a>
<a href="#!" class="dropdown-item">Import</a>
</div>
</div>
</div>
<div class="card mb-3">
<div class="card-header">
<h4 class="card-title">Rental 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>Rental ID</th>
<th>Customer Name</th>
<th>Status</th>
<th>Total Amount</th>
<th>Total Deposit</th>
<th>Rental Start</th>
<th>Rental Due</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php foreach ($rentals as $index => $rental): ?>
<tr>
<td><?php echo $index + 1; ?></td>
<td><?php echo $rental['rental_id']; ?></td>
<td><?php echo htmlspecialchars($rental['first_name'] . ' ' . $rental['last_name']); ?></td>
<td>
<form method="post" style="display:inline;">
<input type="hidden" name="rental_id" value="<?php echo $rental['rental_id']; ?>">
<select name="rental_status" class="form-select form-select-sm" onchange="this.form.submit()">
<?php
$statuses = ['pending', 'active', 'returned', 'overdue'];
foreach ($statuses as $status): ?>
<option value="<?php echo $status; ?>" <?php if ($rental['rental_status'] === $status) echo 'selected'; ?>>
<?php echo ucfirst($status); ?>
</option>
<?php endforeach; ?>
</select>
</form>
</td>
<td>₹<?php echo number_format($rental['total_amount'], 2); ?></td>
<td>₹<?php echo number_format($rental['total_deposit'], 2); ?></td>
<td><?php echo $rental['rental_start']; ?></td>
<td><?php echo $rental['rental_due']; ?></td>
<td>
<button type="button" class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#rentalModal<?php echo $rental['rental_id']; ?>">
View Items
</button>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<!-- Rental Items Modals -->
<?php foreach ($rentals as $rental): ?>
<div class="modal fade" id="rentalModal<?php echo $rental['rental_id']; ?>" tabindex="-1" aria-labelledby="rentalModalLabel<?php echo $rental['rental_id']; ?>" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="rentalModalLabel<?php echo $rental['rental_id']; ?>">
Rental #<?php echo $rental['rental_id']; ?> Items
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="mb-3">
<h6>Customer Information</h6>
<p>
<strong>Name:</strong> <?php echo htmlspecialchars($rental['first_name'] . ' ' . $rental['last_name']); ?><br>
<strong>Email:</strong> <?php echo htmlspecialchars($rental['email']); ?><br>
<strong>Phone:</strong> <?php echo htmlspecialchars($rental['phone']); ?>
</p>
</div>
<div class="mb-3">
<h6>Rental Summary</h6>
<p>
<strong>Status:</strong> <?php echo ucfirst($rental['rental_status']); ?><br>
<strong>Total Amount:</strong> ₹<?php echo number_format($rental['total_amount'], 2); ?><br>
<strong>Total Deposit:</strong> ₹<?php echo number_format($rental['total_deposit'], 2); ?><br>
<strong>Rental Start:</strong> <?php echo $rental['rental_start']; ?><br>
<strong>Rental Due:</strong> <?php echo $rental['rental_due']; ?><br>
<strong>Created At:</strong> <?php echo $rental['created_at']; ?>
</p>
</div>
<h6>Rented Items</h6>
<table class="table align-middle mb-0 table-hover table-centered">
<thead class="bg-light-subtle border-bottom">
<tr>
<th>SL.No.</th>
<th>Product</th>
<th>Quantity</th>
<th>Price per Item</th>
<th>Total Price</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<?php
$stmtItems = $pdo->prepare("
SELECT roi.*, p.product_name, p.thumbnail_image, pr.late_fee
FROM rental_order_items roi
JOIN products p ON roi.product_id = p.product_id
LEFT JOIN product_rentals pr ON roi.rental_id = pr.rental_id AND roi.product_id = pr.product_id
WHERE roi.rental_id = ?
");
$stmtItems->execute([$rental['rental_id']]);
$items = $stmtItems->fetchAll();
foreach ($items as $itemIndex => $item):
$totalPrice = $item['total_price'];
if ($item['status'] === 'overdue') {
$totalPrice += $item['late_fee'];
}
?>
<tr>
<td><?php echo $itemIndex + 1; ?></td>
<td>
<?php if (!empty($item['thumbnail_image'])): ?>
<img src="../<?php echo htmlspecialchars($item['thumbnail_image']); ?>" alt="Product" style="width:40px;height:40px;object-fit:cover;border-radius:5px;margin-right:5px;">
<?php endif; ?>
<?php echo htmlspecialchars($item['product_name']); ?>
</td>
<td><?php echo $item['quantity']; ?></td>
<td>₹<?php echo number_format($item['price_per_item'], 2); ?></td>
<td>
₹<?php echo number_format($totalPrice, 2); ?>
<?php if ($item['status'] === 'overdue'): ?>
<small class="text-danger">(Including Late Fee ₹<?php echo number_format($item['late_fee'], 2); ?>)</small>
<?php endif; ?>
</td>
<td><?php echo ucfirst($item['status']); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<p class="mt-2"><strong>Total Items:</strong> <?php echo count($items); ?></p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
<div class="card-footer border-top">
<nav aria-label="Page navigation example">
<ul class="pagination justify-content-end mb-0">
<li class="page-item"><a class="page-link" href="javascript:void(0);">Previous</a></li>
<li class="page-item active"><a class="page-link" href="javascript:void(0);">1</a></li>
<li class="page-item"><a class="page-link" href="javascript:void(0);">2</a></li>
<li class="page-item"><a class="page-link" href="javascript:void(0);">3</a></li>
<li class="page-item"><a class="page-link" href="javascript:void(0);">Next</a></li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
<?php include "common/footer.php" ?>
</div>
</div>
<script src="assets/js/vendor.js"></script>
<script src="assets/js/app.js"></script>
</body>
</html>