« Back to History
khata_report.php
|
20260722_120325.php
Initial Domain Snapshot
Copy Code
<?php declare(strict_types=1); require_once __DIR__ . '/auth.php'; require_login(); error_reporting(E_ALL); ini_set('display_errors', '1'); $SHOP_ID = (int)($_SESSION['owner']['shop_id'] ?? 0); if ($SHOP_ID <= 0) { die('Invalid shop session.'); } require_once __DIR__ . '/partials/header.php'; /* =============================== FETCH PARTIES =============================== */ $pStmt = $pdo->prepare(" SELECT party_id, party_name, opening_balance FROM khata_party WHERE shop_id = ? ORDER BY party_name "); $pStmt->execute([$SHOP_ID]); $parties = $pStmt->fetchAll(PDO::FETCH_ASSOC); ?> <h2>Khata Report</h2> <div class="container"> <?php if (!$parties): ?> <div class="card"> <p class="text-muted">No khata parties found.</p> </div> <?php endif; ?> <?php foreach ($parties as $party): ?> <?php /* =============================== FETCH ENTRIES =============================== */ $eStmt = $pdo->prepare(" SELECT entry_date, amount, note FROM khata_entry WHERE shop_id = ? AND party_id = ? ORDER BY entry_date ASC, entry_id ASC "); $eStmt->execute([$SHOP_ID, $party['party_id']]); $entries = $eStmt->fetchAll(PDO::FETCH_ASSOC); /* =============================== CALCULATE CLOSING BALANCE =============================== */ $running = (float)$party['opening_balance']; foreach ($entries as $e) { $running += (float)$e['amount']; } ?> <div class="card"> <h3><?= htmlspecialchars($party['party_name']) ?></h3> <!-- Closing Balance (ONLY ONE BALANCE SHOWN) --> <div class="mt-sm mb-sm"> <strong> Closing Balance: <?= number_format($running, 2) ?> </strong> </div> <hr> <?php if (!$entries): ?> <p class="text-muted">No transactions</p> <?php else: ?> <?php foreach ($entries as $e): ?> <?php $amount = (float)$e['amount']; $cls = $amount >= 0 ? 'text-danger' : 'text-success'; ?> <div class="row-between mb-sm"> <div> <div class="text-muted"> <?= htmlspecialchars($e['entry_date']) ?> </div> <?php if (!empty($e['note'])): ?> <div><?= htmlspecialchars($e['note']) ?></div> <?php endif; ?> </div> <div class="<?= $cls ?>"> <?= number_format($amount, 2) ?> </div> </div> <?php endforeach; ?> <?php endif; ?> </div> <?php endforeach; ?> </div> <?php require_once __DIR__ . '/partials/footer.php';