« Back to History
beam_load_manage.php
|
20260721_154032.php
Initial Bulk Import
Copy Code
<?php error_reporting(E_ALL); ini_set('display_errors', 1); require_once __DIR__ . '/modules/auth/page_acl.php'; $ctx = page_require_access('beam_load_manage'); $pdo = $ctx['pdo']; $company_id = (int)$ctx['company_id']; function h($s){ return htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8'); } require_once __DIR__ . '/helpers/activity_helper.php'; /* ================= INPUTS ================= */ $machine_no = $_GET['machine_no'] ?? ''; $beam_no = $_GET['beam_no'] ?? ''; $from_date = $_GET['from_date'] ?? ''; $to_date = $_GET['to_date'] ?? ''; $page = max(1, (int)($_GET['page'] ?? 1)); $per_page = (int)($_GET['per_page'] ?? 20); $per_page = in_array($per_page, [20,50,100,150]) ? $per_page : 20; $offset = ($page - 1) * $per_page; /* ================= UPDATE ================= */ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['id'])) { $upd = $pdo->prepare(" UPDATE beam_load_data SET beam_slot = :slot, quality_id = :quality, load_type = :load_type, load_date = :load_date WHERE id = :id AND company_id = :cid "); $upd->execute([ ':slot' => $_POST['beam_slot'], ':quality' => $_POST['quality_id'], ':load_type' => $_POST['load_type'], ':load_date' => $_POST['load_date'], ':id' => $_POST['id'], ':cid' => $company_id, ]); activity_update('beam', 'beam_load_manage_update', (int)$_POST['id'], 'Updated beam load record'); header('Location: beam_load_manage.php?' . $_SERVER['QUERY_STRING']); exit; } /* ================= WHERE ================= */ $where = "WHERE company_id = :cid"; $params = [':cid' => $company_id]; if ($machine_no !== '') { $where .= " AND machine_no = :machine_no"; $params[':machine_no'] = $machine_no; } if ($beam_no !== '') { $where .= " AND beam_no LIKE :beam_no"; $params[':beam_no'] = "%$beam_no%"; } if ($from_date && $to_date) { $where .= " AND load_date BETWEEN :from AND :to"; $params[':from'] = $from_date; $params[':to'] = $to_date; } /* ================= COUNT ================= */ $countStmt = $pdo->prepare("SELECT COUNT(*) FROM beam_load_data $where"); $countStmt->execute($params); $total_rows = (int)$countStmt->fetchColumn(); $total_pages = max(1, ceil($total_rows / $per_page)); /* ================= DATA ================= */ $sql = " SELECT * FROM beam_load_data $where ORDER BY load_date DESC, id DESC LIMIT $per_page OFFSET $offset "; $stmt = $pdo->prepare($sql); $stmt->execute($params); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); $page_title = 'Beam Load Manage'; require_once __DIR__ . '/partials/header.php'; ?> <div class="container-fluid py-4"> <div class="card shadow-sm mb-4"> <div class="card-body"> <h4 class="fw-bold mb-4">Beam Load Manage</h4> <form method="get" class="row g-3 align-items-end"> <div class="col-md-2"> <label class="form-label">Beam No</label> <input type="text" name="beam_no" value="<?=h($beam_no)?>" class="form-control"> </div> <div class="col-md-2"> <label class="form-label">Machine</label> <input type="number" name="machine_no" value="<?=h($machine_no)?>" class="form-control"> </div> <div class="col-md-2"> <label class="form-label">From</label> <input type="date" name="from_date" value="<?=h($from_date)?>" class="form-control"> </div> <div class="col-md-2"> <label class="form-label">To</label> <input type="date" name="to_date" value="<?=h($to_date)?>" class="form-control"> </div> <div class="col-md-2"> <label class="form-label">Per Page</label> <select name="per_page" class="form-select"> <?php foreach ([20,50,100,150] as $n): ?> <option value="<?=$n?>" <?=$per_page==$n?'selected':''?>> <?=$n?> </option> <?php endforeach; ?> </select> </div> <div class="col-md-2 d-flex gap-2"> <button class="btn btn-primary w-100"> Filter </button> <a href="beam_load_manage.php" class="btn btn-outline-secondary w-100"> Reset </a> </div> <div class="col-md-2"> <a href="beam_load_print.php?<?=http_build_query($_GET)?>" class="btn btn-dark w-100" target="_blank"> Print </a> </div> </form> </div> </div> <div class="card shadow-sm"> <div class="card-body p-0"> <div class="table-responsive"> <table class="table table-bordered table-hover align-middle mb-0"> <thead class="table-light"> <tr> <th>ID</th> <th>Beam No</th> <th>Machine</th> <th>Slot</th> <th>Quality</th> <th>Load Type</th> <th>Load Date</th> <th>Action</th> </tr> </thead> <tbody> <?php if (!$rows): ?> <tr> <td colspan="8" class="text-center py-4 text-muted"> No data found </td> </tr> <?php endif; ?> <?php foreach ($rows as $r): ?> <tr> <form method="post"> <td> <?=h($r['id'])?> <input type="hidden" name="id" value="<?=h($r['id'])?>"> </td> <td><?=h($r['beam_no'])?></td> <td><?=h($r['machine_no'])?></td> <td> <select name="beam_slot" class="form-select form-select-sm"> <option value="primary" <?=$r['beam_slot']=='primary'?'selected':''?>> Primary </option> <option value="secondary" <?=$r['beam_slot']=='secondary'?'selected':''?>> Secondary </option> </select> </td> <td> <input type="number" name="quality_id" value="<?=h($r['quality_id'])?>" class="form-control form-control-sm"> </td> <td> <input type="text" name="load_type" value="<?=h($r['load_type'])?>" class="form-control form-control-sm"> </td> <td> <input type="date" name="load_date" value="<?=h($r['load_date'])?>" class="form-control form-control-sm"> </td> <td> <button class="btn btn-success btn-sm"> Save </button> </td> </form> </tr> <?php endforeach; ?> </tbody> </table> </div> </div> </div> <nav class="mt-4"> <ul class="pagination justify-content-center"> <?php for ($p=1; $p<=$total_pages; $p++): ?> <li class="page-item <?=$p==$page?'active':''?>"> <a class="page-link" href="?<?=http_build_query(array_merge($_GET,['page'=>$p]))?>"> <?=$p?> </a> </li> <?php endfor; ?> </ul> </nav> </div> <?php require_once __DIR__ . '/partials/footer.php'; ?>