ICS modules

This commit is contained in:
Thanakorn S
2026-03-21 14:58:15 +07:00
parent 2e558a55bb
commit a4f474b5df
45 changed files with 3110 additions and 597 deletions
+110 -4
View File
@@ -18,7 +18,7 @@
<div class="mb-6 d-flex justify-content-between align-items-center">
<h1 class="fs-3 mb-0">Stock in
</h1>
<a href="<?php echo $server_url?>ics/add_stock_in.php" class="btn btn-primary">
<a href="<?php echo $server_url?>ics/manage_stock_in.php" class="btn btn-primary">
<span><i class="ti ti-plus"></i></span>
<span>ADD Stock In</span></a>
@@ -27,18 +27,31 @@
</div>
<div class="row g-5">
<div class="mb-3 col-lg-2">
<input class="form-control" value='Warehouse' disabled>
</div>
<div class="mb-3 col-lg-4">
<select name="warehouse" id="warehouse" class="form-select" required></select>
</div>
<div class="mb-3 col-lg-6">
<button class='btn btn-secondary' onclick='retrieve_stock_in()'>Search</button>
</div>
<div class="col-12">
<div class="card">
<div class="card-body p-5">
<h2 class="mb-4 fs-5">Item List</h2>
<div class="table-responsive">
<table class="table table-hover mb-0 table-centered" id="product">
<table class="table table-hover mb-0 table-centered" id="stock_in">
<thead class="table-primary border-light">
<tr>
<th>Date</th>
<th>Product</th>
<th>Quantity</th>
<th>Warehouse</th>
<th>Storage Location</th>
<th>Zone</th>
<th>Aisle</th>
<th>Rack</th>
<th>Status</th>
<th>Action</th>
</tr>
@@ -63,7 +76,100 @@
<?php require "../include_ending.php";?>
<script>
function retrieve_stock_in() {
return ajax_request({
url: "<?php echo $server_url?>ics/api/engine/stock_in.php",
autoPrepare: true,
checkRequired: 0,
debugMode: 0,
action: 'read',
onSuccess: function(res) {
// Register the array as a table name
alasql('CREATE TABLE IF NOT EXISTS stock_in');
alasql.tables.stock_in.data = res.output || [];
var total_records = alasql.tables.stock_in.data.length;
var table_id = 'stock_in';
var page = generate_pagination(table_id, total_records);
$(`table#${table_id} tfoot`).html(page);
// dynamic function name
if (typeof window[`change_page_${table_id}`] === "function") {
window[`change_page_${table_id}`](1);
} else {
console.error(`Function change_page_${table_id} does not exist.`);
}
}
});
}
function change_page_stock_in(page_num) {
var offset = (page_num - 1) * prop_limit;
var page_data = alasql(`SELECT * FROM stock_in LIMIT ${prop_limit} OFFSET ${offset}`);
var body = ``;
var warehouse = $(`select#warehouse`).val();
$.each(page_data, function(key, item) {
body += `<tr>
<td class="py-3">${format_date(item["date"])}</td>
<td class="py-3">${item["product_sku"]}: ${item['product_name']}</td>
<td class="py-3">${item['quantity']}</td>
<td class="py-3">${item['zone']}</td>
<td class="py-3">${item['aisle']}</td>
<td class="py-3">${item['rack']}</td>
<td class="py-3">
${(item['status'])?'<span class="badge bg-success">Active</span>':'<span class="badge bg-secondary">Inactive</span>'}
</td>
<td class="py-3">
<a href="<?php echo $server_url?>ics/manage_stock_in.php?id=${item['id']}&wh=${warehouse}" class=""><i class="ti ti-eye fs-5"></i></a>
<a href="#" class="link-danger"><i class="ti ti-trash ms-2 fs-5"></i></a>
</td>
</tr>`;
})
$("table#stock_in > tbody").html(body);
}
function retrieve_warehouse() {
return ajax_request({
url: "<?php echo $server_url?>inventory/api/engine/warehouse.php",
autoPrepare: true,
checkRequired: 0,
action: 'read',
onSuccess: function(res) {
var option = ``;
$.each(res.output, function(key, item) {
option += `<option value='${item.id}'>${item.warehouse_name}</option>`;
})
$(`select#warehouse`).html(option);
}
});
}
$(async function() {
try {
await retrieve_warehouse();
await retrieve_stock_in();
} catch (e) {
console.log(e);
}
});
</script>
</body>