Change 'Rack' to 'Bin'
This commit is contained in:
@@ -382,7 +382,7 @@
|
||||
warehouse_id: wh,
|
||||
zone: '',
|
||||
aisle: '',
|
||||
rack: '',
|
||||
bin: '',
|
||||
lot_number: '',
|
||||
serial_number: '',
|
||||
quantity: qty,
|
||||
@@ -566,7 +566,7 @@
|
||||
// ── Confirm order ─────────────────────────────────────────────────────────
|
||||
function confirm_order() {
|
||||
bootbox.confirm({
|
||||
message: 'Confirm this order? Stock-out rows will be created for all items using FIFO rack selection.',
|
||||
message: 'Confirm this order? Stock-out rows will be created for all items using FIFO bin selection.',
|
||||
buttons: {
|
||||
confirm: { label: 'Confirm Order', className: 'btn-success' },
|
||||
cancel: { label: 'Back', className: 'btn-secondary' }
|
||||
|
||||
+40
-40
@@ -102,7 +102,7 @@
|
||||
<th class="th_return_wh" style="width:150px;">Warehouse</th>
|
||||
<th class="th_return_zone" style="width:120px;">Zone</th>
|
||||
<th class="th_return_aisle" style="width:120px;">Aisle</th>
|
||||
<th class="th_return_rack" style="width:120px;">Location</th>
|
||||
<th class="th_return_bin" style="width:120px;">Location</th>
|
||||
<th class="text-end" style="width:110px;">Return Qty</th>
|
||||
<th class="text-end" style="width:100px;">Unit Price</th>
|
||||
<th style="width:70px;">Tax%</th>
|
||||
@@ -215,7 +215,7 @@
|
||||
var returnable = []; // returnable_items from order
|
||||
var warehouses = [];
|
||||
var advanced = false;
|
||||
var label_rack = 'Location';
|
||||
var label_bin = 'Location';
|
||||
var label_zone = 'Zone';
|
||||
var label_aisle = 'Aisle';
|
||||
|
||||
@@ -276,16 +276,16 @@
|
||||
$('.th_return_wh').text('Warehouse');
|
||||
$('.th_return_zone').text(label_zone).toggleClass('d-none', !advanced);
|
||||
$('.th_return_aisle').text(label_aisle).toggleClass('d-none', !advanced);
|
||||
$('.th_return_rack').text(label_rack);
|
||||
$('.th_return_bin').text(label_bin);
|
||||
$('#loading_row td').attr('colspan', 12);
|
||||
}
|
||||
|
||||
function retrieve_return_zones(item_id, selected_zone, selected_aisle, selected_rack) {
|
||||
function retrieve_return_zones(item_id, selected_zone, selected_aisle, selected_bin) {
|
||||
var $row = $(`#ret_item_${item_id}`);
|
||||
var wh = $row.find('.item_return_warehouse').val();
|
||||
$row.find('.item_return_zone').html(`<option value="">Select ${label_zone.toLowerCase()}...</option>`);
|
||||
$row.find('.item_return_aisle').html(`<option value="">Select ${label_aisle.toLowerCase()}...</option>`);
|
||||
$row.find('.item_return_rack').html(`<option value="">Select ${label_rack.toLowerCase()}...</option>`);
|
||||
$row.find('.item_return_bin').html(`<option value="">Select ${label_bin.toLowerCase()}...</option>`);
|
||||
if (!wh) return Promise.resolve();
|
||||
|
||||
return ajax_request({
|
||||
@@ -307,7 +307,7 @@
|
||||
opts += `<option value="${escape_html(selected_zone)}">${escape_html(selected_zone)}</option>`;
|
||||
}
|
||||
$row.find('.item_return_zone').html(opts).val(selected_zone || '');
|
||||
if (selected_zone) retrieve_return_aisles(item_id, selected_aisle, selected_rack);
|
||||
if (selected_zone) retrieve_return_aisles(item_id, selected_aisle, selected_bin);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -316,35 +316,35 @@
|
||||
var $row = $(`#ret_item_${item_id}`);
|
||||
$row.find('.item_return_zone').val('');
|
||||
$row.find('.item_return_aisle').val('');
|
||||
$row.find('.item_return_rack').val('');
|
||||
$row.find('.item_return_bin').val('');
|
||||
|
||||
if (!$row.find('.item_check').is(':checked')) return;
|
||||
if (advanced) {
|
||||
retrieve_return_zones(item_id);
|
||||
} else {
|
||||
retrieve_return_racks(item_id);
|
||||
retrieve_return_bins(item_id);
|
||||
}
|
||||
}
|
||||
|
||||
function change_return_zone(item_id) {
|
||||
var $row = $(`#ret_item_${item_id}`);
|
||||
$row.find('.item_return_aisle').val('');
|
||||
$row.find('.item_return_rack').val('');
|
||||
$row.find('.item_return_bin').val('');
|
||||
if ($row.find('.item_check').is(':checked')) retrieve_return_aisles(item_id);
|
||||
}
|
||||
|
||||
function change_return_aisle(item_id) {
|
||||
var $row = $(`#ret_item_${item_id}`);
|
||||
$row.find('.item_return_rack').val('');
|
||||
if ($row.find('.item_check').is(':checked')) retrieve_return_racks(item_id);
|
||||
$row.find('.item_return_bin').val('');
|
||||
if ($row.find('.item_check').is(':checked')) retrieve_return_bins(item_id);
|
||||
}
|
||||
|
||||
function retrieve_return_aisles(item_id, selected_aisle, selected_rack) {
|
||||
function retrieve_return_aisles(item_id, selected_aisle, selected_bin) {
|
||||
var $row = $(`#ret_item_${item_id}`);
|
||||
var wh = $row.find('.item_return_warehouse').val();
|
||||
var zone = $row.find('.item_return_zone').val();
|
||||
$row.find('.item_return_aisle').html(`<option value="">Select ${label_aisle.toLowerCase()}...</option>`);
|
||||
$row.find('.item_return_rack').html(`<option value="">Select ${label_rack.toLowerCase()}...</option>`);
|
||||
$row.find('.item_return_bin').html(`<option value="">Select ${label_bin.toLowerCase()}...</option>`);
|
||||
if (!wh || !zone) return Promise.resolve();
|
||||
|
||||
return ajax_request({
|
||||
@@ -366,21 +366,21 @@
|
||||
opts += `<option value="${escape_html(selected_aisle)}">${escape_html(selected_aisle)}</option>`;
|
||||
}
|
||||
$row.find('.item_return_aisle').html(opts).val(selected_aisle || '');
|
||||
if (selected_aisle) retrieve_return_racks(item_id, selected_rack);
|
||||
if (selected_aisle) retrieve_return_bins(item_id, selected_bin);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function retrieve_return_racks(item_id, selected_rack) {
|
||||
function retrieve_return_bins(item_id, selected_bin) {
|
||||
var $row = $(`#ret_item_${item_id}`);
|
||||
var wh = $row.find('.item_return_warehouse').val();
|
||||
var zone = advanced ? $row.find('.item_return_zone').val() : '';
|
||||
var aisle = advanced ? $row.find('.item_return_aisle').val() : '';
|
||||
$row.find('.item_return_rack').html(`<option value="">Select ${label_rack.toLowerCase()}...</option>`);
|
||||
$row.find('.item_return_bin').html(`<option value="">Select ${label_bin.toLowerCase()}...</option>`);
|
||||
if (!wh || (advanced && (!zone || !aisle))) return Promise.resolve();
|
||||
|
||||
return ajax_request({
|
||||
url: '<?php echo $server_url?>ics/api/engine/retrieve_rack.php',
|
||||
url: '<?php echo $server_url?>ics/api/engine/retrieve_bin.php',
|
||||
autoPrepare: true,
|
||||
checkRequired: 0,
|
||||
noLoading: true,
|
||||
@@ -388,16 +388,16 @@
|
||||
action: 'read',
|
||||
data: { type: 'to', warehouse: wh, zone: zone, aisle: aisle, id: 0 },
|
||||
onSuccess: function(res) {
|
||||
var opts = `<option value="">Select ${label_rack.toLowerCase()}...</option>`;
|
||||
var has_selected = !selected_rack;
|
||||
var opts = `<option value="">Select ${label_bin.toLowerCase()}...</option>`;
|
||||
var has_selected = !selected_bin;
|
||||
$.each(res.output || [], function(_, value) {
|
||||
if (String(value) === String(selected_rack)) has_selected = true;
|
||||
if (String(value) === String(selected_bin)) has_selected = true;
|
||||
opts += `<option value="${escape_html(value)}">${escape_html(value)}</option>`;
|
||||
});
|
||||
if (!has_selected) {
|
||||
opts += `<option value="${escape_html(selected_rack)}">${escape_html(selected_rack)}</option>`;
|
||||
opts += `<option value="${escape_html(selected_bin)}">${escape_html(selected_bin)}</option>`;
|
||||
}
|
||||
$row.find('.item_return_rack').html(opts).val(selected_rack || '');
|
||||
$row.find('.item_return_bin').html(opts).val(selected_bin || '');
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -406,19 +406,19 @@
|
||||
var wh = selected.warehouse_id || '';
|
||||
var zone = selected.zone || '';
|
||||
var aisle = selected.aisle || '';
|
||||
var rack = selected.rack || '';
|
||||
var bin = selected.bin || '';
|
||||
|
||||
if (advanced) {
|
||||
return `<td><select class="form-select form-select-sm item_return_warehouse" onchange="change_return_warehouse(${item_id})">${warehouse_options(wh)}</select></td>
|
||||
<td><select class="form-select form-select-sm item_return_zone" onchange="change_return_zone(${item_id})"><option value="">Select ${label_zone.toLowerCase()}...</option></select></td>
|
||||
<td><select class="form-select form-select-sm item_return_aisle" onchange="change_return_aisle(${item_id})"><option value="">Select ${label_aisle.toLowerCase()}...</option></select></td>
|
||||
<td><select class="form-select form-select-sm item_return_rack"><option value="">Select ${label_rack.toLowerCase()}...</option></select></td>`;
|
||||
<td><select class="form-select form-select-sm item_return_bin"><option value="">Select ${label_bin.toLowerCase()}...</option></select></td>`;
|
||||
}
|
||||
|
||||
return `<td><select class="form-select form-select-sm item_return_warehouse" onchange="change_return_warehouse(${item_id})">${warehouse_options(wh)}</select></td>
|
||||
<td class="d-none"><select class="form-select form-select-sm item_return_zone"><option value=""></option></select></td>
|
||||
<td class="d-none"><select class="form-select form-select-sm item_return_aisle"><option value=""></option></select></td>
|
||||
<td><select class="form-select form-select-sm item_return_rack"><option value="">Select ${label_rack.toLowerCase()}...</option></select></td>`;
|
||||
<td><select class="form-select form-select-sm item_return_bin"><option value="">Select ${label_bin.toLowerCase()}...</option></select></td>`;
|
||||
}
|
||||
|
||||
function hydrate_location_selectors(items, selected_map) {
|
||||
@@ -427,15 +427,15 @@
|
||||
var $row = $(`#ret_item_${item.item_id}`);
|
||||
if (!$row.find('.item_check').is(':checked')) return;
|
||||
|
||||
if (!selected.warehouse_id && !selected.zone && !selected.aisle && !selected.rack) {
|
||||
if (!selected.warehouse_id && !selected.zone && !selected.aisle && !selected.bin) {
|
||||
change_return_warehouse(item.item_id);
|
||||
return;
|
||||
}
|
||||
|
||||
if (advanced) {
|
||||
retrieve_return_zones(item.item_id, selected.zone || '', selected.aisle || '', selected.rack || '');
|
||||
} else if (selected.rack) {
|
||||
retrieve_return_racks(item.item_id, selected.rack || '');
|
||||
retrieve_return_zones(item.item_id, selected.zone || '', selected.aisle || '', selected.bin || '');
|
||||
} else if (selected.bin) {
|
||||
retrieve_return_bins(item.item_id, selected.bin || '');
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -498,7 +498,7 @@
|
||||
warehouse_id: si ? (si.warehouse_id || item.warehouse_id || '') : (item.warehouse_id || ''),
|
||||
zone: si ? (si.zone || '') : (item.zone || ''),
|
||||
aisle: si ? (si.aisle || '') : (item.aisle || ''),
|
||||
rack: si ? (si.rack || '') : (item.rack || ''),
|
||||
bin: si ? (si.bin || '') : (item.bin || ''),
|
||||
};
|
||||
|
||||
rows += `<tr class="return-item-row" id="ret_item_${item.item_id}">
|
||||
@@ -514,7 +514,7 @@
|
||||
<input type="hidden" class="item_warehouse_id" value="${item.warehouse_id || 0}">
|
||||
<input type="hidden" class="item_zone" value="${item.zone || ''}">
|
||||
<input type="hidden" class="item_aisle" value="${item.aisle || ''}">
|
||||
<input type="hidden" class="item_rack" value="${item.rack || ''}">
|
||||
<input type="hidden" class="item_bin" value="${item.bin || ''}">
|
||||
<input type="hidden" class="item_lot" value="${item.lot_number || ''}">
|
||||
<input type="hidden" class="item_serial" value="${item.serial_number || ''}">
|
||||
<input type="hidden" class="item_stock_out_id" value="${item.stock_out_id || 0}">
|
||||
@@ -561,7 +561,7 @@
|
||||
function toggle_item_row(item_id) {
|
||||
var $row = $(`#ret_item_${item_id}`);
|
||||
var checked = $row.find('.item_check').is(':checked');
|
||||
$row.find('.item_qty, .item_price, .item_tax_rate, .item_return_warehouse, .item_return_zone, .item_return_aisle, .item_return_rack').prop('disabled', !checked);
|
||||
$row.find('.item_qty, .item_price, .item_tax_rate, .item_return_warehouse, .item_return_zone, .item_return_aisle, .item_return_bin').prop('disabled', !checked);
|
||||
if (!checked) {
|
||||
$row.find('.item_total').text('—');
|
||||
return;
|
||||
@@ -631,7 +631,7 @@
|
||||
onSuccess: function(res) {
|
||||
var s = res.output || {};
|
||||
advanced = s.advanced_location == 1;
|
||||
label_rack = s.location_label_rack || (advanced ? 'Rack' : 'Location');
|
||||
label_bin = s.location_label_bin || (advanced ? 'Bin' : 'Location');
|
||||
label_zone = s.location_label_zone || 'Zone';
|
||||
label_aisle = s.location_label_aisle || 'Aisle';
|
||||
apply_location_headers();
|
||||
@@ -664,12 +664,12 @@
|
||||
var tax_rate = parseFloat($row.find('.item_tax_rate').val()) || 0;
|
||||
if (qty <= 0) return;
|
||||
var return_wh = parseInt($row.find('.item_return_warehouse').val()) || 0;
|
||||
var return_rack = $row.find('.item_return_rack').val() || '';
|
||||
var return_zone = advanced ? ($row.find('.item_return_zone').val() || '') : return_rack;
|
||||
var return_aisle = advanced ? ($row.find('.item_return_aisle').val() || '') : return_rack;
|
||||
var return_bin = $row.find('.item_return_bin').val() || '';
|
||||
var return_zone = advanced ? ($row.find('.item_return_zone').val() || '') : return_bin;
|
||||
var return_aisle = advanced ? ($row.find('.item_return_aisle').val() || '') : return_bin;
|
||||
|
||||
if (!return_wh || !return_rack || (advanced && (!return_zone || !return_aisle))) {
|
||||
throw new Error('Please select return warehouse and ' + label_rack.toLowerCase() + ' for every checked item.');
|
||||
if (!return_wh || !return_bin || (advanced && (!return_zone || !return_aisle))) {
|
||||
throw new Error('Please select return warehouse and ' + label_bin.toLowerCase() + ' for every checked item.');
|
||||
}
|
||||
|
||||
items.push({
|
||||
@@ -679,7 +679,7 @@
|
||||
warehouse_id: return_wh,
|
||||
zone: return_zone,
|
||||
aisle: return_aisle,
|
||||
rack: return_rack,
|
||||
bin: return_bin,
|
||||
lot_number: $row.find('.item_lot').val(),
|
||||
serial_number: $row.find('.item_serial').val(),
|
||||
stock_out_id: parseInt($row.find('.item_stock_out_id').val()) || 0,
|
||||
@@ -750,7 +750,7 @@
|
||||
$('.item_check').prop('disabled', !is_draft);
|
||||
$('#item_tbody tr.return-item-row').each(function() {
|
||||
var checked = $(this).find('.item_check').is(':checked');
|
||||
$(this).find('.item_qty, .item_price, .item_tax_rate, .item_return_warehouse, .item_return_zone, .item_return_aisle, .item_return_rack')
|
||||
$(this).find('.item_qty, .item_price, .item_tax_rate, .item_return_warehouse, .item_return_zone, .item_return_aisle, .item_return_bin')
|
||||
.prop('disabled', !is_draft || !checked);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user