« Back to History
pissing_rate_manage.php
|
20260723_000646.php
Initial Domain Snapshot
Copy Code
<?php error_reporting(E_ALL); ini_set('display_errors', 1); $page_title = 'Pissing Rate Master'; /* ================= AUTH ================= */ require_once __DIR__ . '/modules/auth/page_acl.php'; require_once __DIR__ . '/modules/activity/activity_logger.php'; $ctx = page_require_access('pissing_rate_manage'); $pdo = $ctx['pdo']; $company_id = (int)$ctx['company_id']; function h($s){ return htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8'); } /* ================= CSRF ================= */ if (empty($_SESSION['csrf_token'])) { $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); } /* ================= EDIT MODE ================= */ $edit_id = (int)($_GET['edit'] ?? 0); $edit_rate = null; $edit_quality= null; if ($edit_id > 0) { $st = $pdo->prepare(" SELECT * FROM pissing_rate WHERE company_id = ? AND id = ? LIMIT 1 "); $st->execute([$company_id, $edit_id]); $edit = $st->fetch(PDO::FETCH_ASSOC); if ($edit) { $edit_rate = $edit['rate']; $edit_quality = $edit['quality_id']; } } /* ================= SAVE ================= */ if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (!hash_equals($_SESSION['csrf_token'], $_POST['csrf_token'] ?? '')) { die('Invalid CSRF token'); } $quality_id = (int)($_POST['quality_id'] ?? 0); $rate = (float)($_POST['rate'] ?? 0); if ($quality_id > 0) { $sql = " INSERT INTO pissing_rate (company_id, quality_id, rate) VALUES (:cid, :qid, :rate) ON DUPLICATE KEY UPDATE rate = VALUES(rate) "; $stmt = $pdo->prepare($sql); $stmt->execute([ ':cid' => $company_id, ':qid' => $quality_id, ':rate' => $rate ]); activity_log([ 'company_id' => $company_id, 'user_id' => (int)($ctx['user']['id'] ?? 0), 'module' => 'pissing', 'action_name' => $edit_id > 0 ? 'edit' : 'create', 'entity_type' => 'pissing_rate', 'entity_id' => $edit_id > 0 ? $edit_id : (int)$pdo->lastInsertId(), 'remarks' => $edit_id > 0 ? 'Updated pissing rate' : 'Created pissing rate' ]); } header('Location: pissing_rate_manage.php'); exit; } /* ================= DATA ================= */ $qualities = $pdo->prepare(" SELECT id, name FROM beam_qualities WHERE company_id = ? ORDER BY name "); $qualities->execute([$company_id]); $qualities = $qualities->fetchAll(PDO::FETCH_ASSOC); $rates = $pdo->prepare(" SELECT pr.id, pr.quality_id, pr.rate, bq.name AS quality_name FROM pissing_rate pr JOIN beam_qualities bq ON bq.id = pr.quality_id AND bq.company_id = pr.company_id WHERE pr.company_id = ? ORDER BY bq.name "); $rates->execute([$company_id]); $rates = $rates->fetchAll(PDO::FETCH_ASSOC); require_once __DIR__ . '/partials/header.php'; ?> <div class="container py-4"> <!-- ADD / EDIT FORM --> <div class="card shadow-sm mb-4"> <div class="card-header bg-primary text-white"> <h5 class="mb-0"> <?= $edit_id ? 'Edit Pissing Rate' : 'Add New Pissing Rate' ?> </h5> </div> <div class="card-body"> <form method="post" class="row g-3"> <input type="hidden" name="csrf_token" value="<?= h($_SESSION['csrf_token']) ?>"> <div class="col-md-6"> <label class="form-label">Quality</label> <select name="quality_id" class="form-select" required> <option value="">-- Select Quality --</option> <?php foreach ($qualities as $q): ?> <option value="<?= (int)$q['id'] ?>" <?= ($edit_quality == $q['id']) ? 'selected' : '' ?>> <?= h($q['name']) ?> </option> <?php endforeach; ?> </select> </div> <div class="col-md-6"> <label class="form-label">Pissing Rate</label> <input type="number" step="0.01" name="rate" value="<?= h($edit_rate ?? '') ?>" class="form-control" required> </div> <div class="col-12"> <button type="submit" class="btn btn-primary"> <?= $edit_id ? 'Update Rate' : 'Save Rate' ?> </button> <?php if ($edit_id): ?> <a href="pissing_rate_manage.php" class="btn btn-secondary"> Cancel </a> <?php endif; ?> </div> </form> </div> </div> <!-- EXISTING TABLE --> <div class="card shadow-sm"> <div class="card-header bg-light"> <h5 class="mb-0">Existing Pissing Rates</h5> </div> <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>Quality</th> <th class="text-end">Rate</th> <th width="120">Action</th> </tr> </thead> <tbody> <?php if (!$rates): ?> <tr> <td colspan="3" class="text-center text-muted"> No data found </td> </tr> <?php else: ?> <?php foreach ($rates as $r): ?> <tr> <td><?= h($r['quality_name']) ?></td> <td class="text-end fw-semibold"> <?= number_format($r['rate'], 2) ?> </td> <td> <a href="?edit=<?= (int)$r['id'] ?>" class="btn btn-sm btn-outline-primary"> Edit </a> </td> </tr> <?php endforeach; ?> <?php endif; ?> </tbody> </table> </div> </div> </div> </div> <?php require_once __DIR__ . '/partials/footer.php'; ?>