« Back to History
jobwork_in_report.php
|
20260920_164915.php
Initial Domain Snapshot
Copy Code
<?php require_once __DIR__ . '/modules/auth/page_acl.php'; $ctx = page_require_access('jobwork_in_report'); $pdo = $ctx['pdo'] ?? null; $company_id = (int)($ctx['company_id'] ?? 0); $u = $ctx['user'] ?? null; require_once __DIR__ . '/partials/header.php'; /* ================= FILTERS ================= */ $party_id = $_GET['party_id'] ?? ''; $from_date = $_GET['from_date'] ?? date('Y-m-01'); $to_date = $_GET['to_date'] ?? date('Y-m-d'); /* ================= PARTY LIST ================= */ $stmt = $pdo->prepare("SELECT id, party_name FROM job_work_party WHERE company_id = :cid AND status='active' ORDER BY party_name"); $stmt->execute([':cid' => $company_id]); $parties = $stmt->fetchAll(PDO::FETCH_ASSOC); /* ================= SUMMARY ================= */ $sql = "SELECT j.party, p.party_name, SUM(j.total_weight) as total_weight FROM jobwork_in j LEFT JOIN job_work_party p ON p.id = j.party WHERE j.company_id = :cid AND j.job_date BETWEEN :from AND :to"; $params = [ ':cid' => $company_id, ':from' => $from_date, ':to' => $to_date ]; if (!empty($party_id)) { $sql .= " AND j.party = :party"; $params[':party'] = $party_id; } $sql .= " GROUP BY j.party ORDER BY p.party_name"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $summary = $stmt->fetchAll(PDO::FETCH_ASSOC); /* ================= DETAIL ================= */ $sql2 = "SELECT j.id, j.job_date, j.weight_json, j.total_weight, p.party_name FROM jobwork_in j LEFT JOIN job_work_party p ON p.id = j.party WHERE j.company_id = :cid AND j.job_date BETWEEN :from AND :to"; if (!empty($party_id)) { $sql2 .= " AND j.party = :party"; } $sql2 .= " ORDER BY j.job_date DESC, j.id DESC"; $stmt = $pdo->prepare($sql2); $stmt->execute($params); $details = $stmt->fetchAll(PDO::FETCH_ASSOC); /* ================= GRAND TOTAL ================= */ $grand_total = 0; foreach ($details as $d) { $grand_total += (float)$d['total_weight']; } ?> <div class="container mt-4"> <div class="card p-3"> <h4 class="mb-3">Jobwork In Report</h4> <!-- FILTER --> <form method="GET" class="row g-2 mb-3"> <div class="col-md-3"> <select name="party_id" class="form-control"> <option value="">All Parties</option> <?php foreach ($parties as $p): ?> <option value="<?= $p['id'] ?>" <?= ($party_id == $p['id']) ? 'selected' : '' ?>> <?= htmlspecialchars($p['party_name']) ?> </option> <?php endforeach; ?> </select> </div> <div class="col-md-3"> <input type="date" name="from_date" value="<?= $from_date ?>" class="form-control"> </div> <div class="col-md-3"> <input type="date" name="to_date" value="<?= $to_date ?>" class="form-control"> </div> <div class="col-md-3"> <button class="btn btn-primary w-100">Filter</button> </div> </form> <!-- SUMMARY --> <h5>Summary</h5> <table class="table table-bordered mb-4"> <thead> <tr> <th>Party</th> <th>Total Weight</th> </tr> </thead> <tbody> <?php foreach ($summary as $s): ?> <tr> <td><?= htmlspecialchars($s['party_name']) ?></td> <td><?= number_format($s['total_weight'], 3) ?></td> </tr> <?php endforeach; ?> </tbody> </table> <!-- DETAIL --> <h5>All Entries</h5> <table class="table table-bordered table-striped"> <thead> <tr> <th>Date</th> <th>Party</th> <th>Weights (JSON)</th> <th>Total</th> </tr> </thead> <tbody> <?php foreach ($details as $d): $weights = json_decode($d['weight_json'], true); ?> <tr> <td><?= $d['job_date'] ?></td> <td><?= htmlspecialchars($d['party_name']) ?></td> <td> <?php if ($weights) { $arr = []; foreach ($weights as $w) { $arr[] = $w['weight']; } echo implode(', ', $arr); } ?> </td> <td><?= number_format($d['total_weight'], 3) ?></td> </tr> <?php endforeach; ?> </tbody> <tfoot> <tr> <th colspan="3">Grand Total</th> <th><?= number_format($grand_total, 3) ?></th> </tr> </tfoot> </table> </div> </div> <?php require_once __DIR__ . '/partials/footer.php'; ?>