:: **Zploit** v1.0 | Current Path: **/home/kreativepixelz/www/crm/quatation/**
:: Editing File: materials_list.php
<?php ob_start(); error_reporting(E_ALL); ini_set('display_errors', 1); include_once("session.php"); include("db.php"); include("header.php"); /* ================= FILTER CONDITIONS ================= */ $where = "WHERE 1 "; if (!empty($_GET['category_id'])) { $where .= " AND pm.category_id = '".intval($_GET['category_id'])."'"; } if (isset($_GET['status']) && $_GET['status'] !== '') { $where .= " AND pm.status = '".intval($_GET['status'])."'"; } if (!empty($_GET['product_id'])) { $where .= " AND pm.id = '".intval($_GET['product_id'])."'"; } /* ================= LIST QUERY ================= */ $sql = " SELECT pm.id, pm.product_name, pm.quantity, pm.unit_type, pm.status, mc.category_name FROM packaging_materials pm INNER JOIN material_categories mc ON mc.id = pm.category_id $where ORDER BY pm.id ASC "; $result = mysqli_query($conn, $sql); ?> <link href="assets/vendor/datatable/jquery.dataTables.min.css" rel="stylesheet"> <main> <div class="container-fluid"> <!-- ================= PAGE HEADER ================= --> <div class="row m-1"> <div class="col-md-9"> <h4 class="main-title">Product List</h4> <ul class="app-line-breadcrumbs mb-3"> <li> <a href="dashboard.php"> <i class="ph-duotone ph-bank"></i> Home </a> </li> <li class="active">Product</li> </ul> </div> <div class="col-md-3 text-end"> <a href="materials_add.php" class="btn btn-primary"> + Add Product </a> </div> </div> <!-- ================= FILTER ================= --> <form method="GET" class="card mb-3"> <div class="card-body row g-3"> <div class="col-md-3"> <label>Category</label> <select name="category_id" id="category_id" class="form-select"> <option value="">-- Select Category --</option> <?php $cat = mysqli_query($conn,"SELECT id, category_name FROM material_categories WHERE status=1"); while($c=mysqli_fetch_assoc($cat)){ echo "<option value='{$c['id']}'>{$c['category_name']}</option>"; } ?> </select> </div> <div class="col-md-3"> <label>Product</label> <select name="product_id" id="product_id" class="form-select"> <option value="">-- Select Product --</option> </select> </div> <!-- CATEGORY -- <div class="col-md-2"> <label>Category</label> <select name="category_id" class="form-select"> <option value="">-- All Categories --</option> <?php /* $cat = mysqli_query($conn,"SELECT id, category_name FROM material_categories WHERE status=1"); while($c = mysqli_fetch_assoc($cat)){ $sel = ($_GET['category_id'] ?? '') == $c['id'] ? 'selected' : ''; echo "<option value='{$c['id']}' $sel>{$c['category_name']}</option>"; } */ ?> </select> </div> <!-- STATUS --> <div class="col-md-3"> <label>Status</label> <select name="status" class="form-select"> <option value="">-- All Status --</option> <option value="1" <?= (@$_GET['status']=='1')?'selected':'' ?>>Active</option> <option value="0" <?= (@$_GET['status']=='0')?'selected':'' ?>>Inactive</option> </select> </div> <!-- PRODUCT -- <div class="col-md-2"> <label>Product</label> <select name="product_id" class="form-select"> <option value="">-- All Products --</option> <?php /* $p = mysqli_query($conn,"SELECT id, product_name FROM packaging_materials"); while($r=mysqli_fetch_assoc($p)){ $sel = ($_GET['product_id'] ?? '') == $r['id'] ? 'selected' : ''; echo "<option value='{$r['id']}' $sel>{$r['product_name']}</option>"; } */ ?> </select> </div> <!-- FILTER --> <div class="col-md-1 d-flex align-items-end"> <button class="btn btn-success w-100">Filter</button> </div> <!-- CLEAR --> <div class="col-md-1 d-flex align-items-end"> <a href="materials_list.php" class="btn btn-secondary w-100">Clear</a> </div> </div> </form> <!-- ================= TABLE ================= --> <div class="card"> <div class="card-body p-0"> <div class="table-responsive"> <table class="display table table-striped" id="productTable"> <thead> <tr> <th>No</th> <th>Category</th> <th>Product Name</th> <th>Unit</th> <th>Status</th> <th width="120">Action</th> </tr> </thead> <tbody> <?php $no = 1; if ($result && mysqli_num_rows($result) > 0) { while ($row = mysqli_fetch_assoc($result)) { $status = ($row['status'] == 1) ? '<span class="badge bg-success">Active</span>' : '<span class="badge bg-danger">Inactive</span>'; ?> <tr> <td><?= $no++; ?></td> <td><?= htmlspecialchars($row['category_name']); ?></td> <td><?= htmlspecialchars($row['product_name']); ?></td> <td><?= htmlspecialchars($row['unit_type']); ?></td> <td><?= $status; ?></td> <td> <a href="materials_edit.php?id=<?= $row['id']; ?>" class="btn btn-light-success btn-sm"> <i class="ti ti-edit"></i> </a> <a href="products_delete.php?id=<?= $row['id']; ?>" onclick="return confirm('Delete this product?');" class="btn btn-light-danger btn-sm"> <i class="ti ti-trash"></i> </a> </td> </tr> <?php } } else { echo "<tr><td colspan='6' class='text-center'>No products found</td></tr>"; } ?> </tbody> </table> </div> </div> </div> </div> </main> <?php include("footer.php"); ?> <script src="assets/vendor/datatable/jquery-3.5.1.js"></script> <!-- DATATABLE EXPORT --> <link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.4.2/css/buttons.dataTables.min.css"> <script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script> <script src="https://cdn.datatables.net/buttons/2.4.2/js/dataTables.buttons.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script> <script src="https://cdn.datatables.net/buttons/2.4.2/js/buttons.html5.min.js"></script> <script> $(document).ready(function(){ $('#category_id').on('change', function(){ let category_id = $(this).val(); $('#product_id').html('<option value="">Loading...</option>'); if(category_id !== ''){ $.ajax({ url: 'ajax_get_products.php', type: 'POST', data: { category_id: category_id }, success: function(response){ $('#product_id').html(response); } }); } else { $('#product_id').html('<option value="">-- Select Product --</option>'); } }); }); </script> <script> $(function(){ $('#productTable').DataTable({ paging: true, searching: true, ordering: true, info: false, dom: 'Bfrtip', buttons: [ // 📗 EXCEL { extend: 'excelHtml5', footer: true, title: 'Product Report' }, // 📄 CSV { extend: 'csvHtml5', footer: true, title: 'Product Report' }, // 🧾 PDF { extend: 'pdfHtml5', footer: true, title: 'Product Report', orientation: 'landscape', pageSize: 'A4', customize: function (doc) { // Center align doc.styles.tableHeader.alignment = 'center'; // Bold TOTAL row let rowCount = doc.content[1].table.body.length; doc.content[1].table.body[rowCount - 1].forEach(function(cell){ cell.bold = true; }); } } ] }); }); </script> <?php ob_end_flush(); ?>