Lot, Serial, ExpiryDate
This commit is contained in:
@@ -41,19 +41,27 @@
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-3">
|
||||
<label for="aisle_from" class="form-label">Aisle From</label>
|
||||
<input type="text" class="form-control" id="aisle_from" placeholder="Enter aisle form" required>
|
||||
<input type="text" class="form-control" id="aisle_from" placeholder="e.g. 1 or A" required
|
||||
pattern="^([0-9]+|[A-Za-z])$" title="Enter a number (e.g. 1) or a single letter (e.g. A)">
|
||||
<div class="form-text">Number (1–99) or letter (A–Z)</div>
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<label for="aisle_to" class="form-label">Aisle To</label>
|
||||
<input type="text" class="form-control" id="aisle_to" placeholder="Enter aisle to" required>
|
||||
<input type="text" class="form-control" id="aisle_to" placeholder="e.g. 5 or E" required
|
||||
pattern="^([0-9]+|[A-Za-z])$" title="Enter a number (e.g. 5) or a single letter (e.g. E)">
|
||||
<div class="form-text">Must be same type as Aisle From</div>
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<label for="rack_from" class="form-label">Rack From</label>
|
||||
<input type="text" class="form-control" id="rack_from" placeholder="Enter rack form" required>
|
||||
<input type="text" class="form-control" id="rack_from" placeholder="e.g. 1 or A" required
|
||||
pattern="^([0-9]+|[A-Za-z])$" title="Enter a number (e.g. 1) or a single letter (e.g. A)">
|
||||
<div class="form-text">Number (1–99) or letter (A–Z)</div>
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<label for="rack_to" class="form-label">Rack To</label>
|
||||
<input type="text" class="form-control" id="rack_to" placeholder="Enter rack to" required>
|
||||
<input type="text" class="form-control" id="rack_to" placeholder="e.g. 10 or J" required
|
||||
pattern="^([0-9]+|[A-Za-z])$" title="Enter a number (e.g. 10) or a single letter (e.g. J)">
|
||||
<div class="form-text">Must be same type as Rack From</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,6 +93,45 @@
|
||||
<script>
|
||||
function manage_storage() {
|
||||
|
||||
// Validate that aisle from/to and rack from/to are same type
|
||||
var af = $('#aisle_from').val().trim().toUpperCase();
|
||||
var at = $('#aisle_to').val().trim().toUpperCase();
|
||||
var rf = $('#rack_from').val().trim().toUpperCase();
|
||||
var rt = $('#rack_to').val().trim().toUpperCase();
|
||||
|
||||
var isNumeric = function(v) { return /^[0-9]+$/.test(v); };
|
||||
var isAlpha = function(v) { return /^[A-Z]$/.test(v); };
|
||||
|
||||
if (af && at) {
|
||||
if (isNumeric(af) !== isNumeric(at)) {
|
||||
alert('Aisle From and Aisle To must both be numbers or both be letters.');
|
||||
return;
|
||||
}
|
||||
if (isAlpha(af) && isAlpha(at) && af.charCodeAt(0) > at.charCodeAt(0)) {
|
||||
alert('Aisle From must be less than or equal to Aisle To.');
|
||||
return;
|
||||
}
|
||||
if (isNumeric(af) && isNumeric(at) && parseInt(af) > parseInt(at)) {
|
||||
alert('Aisle From must be less than or equal to Aisle To.');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (rf && rt) {
|
||||
if (isNumeric(rf) !== isNumeric(rt)) {
|
||||
alert('Rack From and Rack To must both be numbers or both be letters.');
|
||||
return;
|
||||
}
|
||||
if (isAlpha(rf) && isAlpha(rt) && rf.charCodeAt(0) > rt.charCodeAt(0)) {
|
||||
alert('Rack From must be less than or equal to Rack To.');
|
||||
return;
|
||||
}
|
||||
if (isNumeric(rf) && isNumeric(rt) && parseInt(rf) > parseInt(rt)) {
|
||||
alert('Rack From must be less than or equal to Rack To.');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
return ajax_request({
|
||||
url: "<?php echo $server_url?>inventory/api/engine/manage_storage.php",
|
||||
autoPrepare: true,
|
||||
|
||||
Reference in New Issue
Block a user