/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
function addItem(name, code, price, id) {
if ($(".list-group-item[data-code='" + code + "']").length) {
updateQty($(".list-group-item[data-code='" + code + "']").find(".qty-plus"), 1);
return;
}
price = (price * 1.0).toFixed(2);
$("#pos-lines-box").append('
'
+ '
'
+ '
'
+ name
+ '
'
+ ''
+ '' + code + ''
+ ''
+ '$'
+ price
+ ''
+ ''
+ '
'
+ ''
+ '
'
+ '
');
recalculate();
}
function findItem(q) {
function decodeThenAddItem(item) {
var code = item.code1;
console.log(code);
if (code == "" && item["code2"] != "") {
code = item["code2"];
} else if (code == "") {
code = "---";
}
var price = item['price'];
if (price == null || price == "" || price == 0) {
if (!$(".list-group-item[data-code='" + code + "']").length) {
bsprompt("Enter Price",
"No price set. Enter a price for this item:",
"Add Item",
"Cancel",
"number",
function (result) {
addItem(item['name'], code, result, item['id']);
});
return;
}
}
addItem(item['name'], code, price, item['id']);
}
if (q == "") {
return;
}
$.get("action.php", {
action: "itemsearch",
q: q
}, function (data) {
if (data['items'].length == 1) {
decodeThenAddItem(data['items'][0]);
} else if (data['items'].length > 1) {
var options = [];
for (var i = 0; i < data['items'].length; i++) {
var text = data['items'][i]['name'];
if (data['items'][i]['price'] != null) {
text += " $" + data['items'][i]['price'] + "";
}
options.push({"text": text, "val": data['items'][i]['id']});
}
bschoices(
"Multiple Results",
"More than one item match the query. Pick the correct one:",
options,
"Cancel",
function (result) {
for (var i = 0; i < data['items'].length; i++) {
if (data['items'][i]['id'] == result) {
decodeThenAddItem(data['items'][i]);
break;
}
}
}
);
}
}).fail(function () {
alert("Error");
});
}
function removezero() {
$("#pos-lines-box .list-group-item").each(function () {
var qty = $(".item-qty", this).val() * 1.0;
if (qty == 0) {
$(this).remove();
}
});
}
function updateQty(btn, diff) {
var qtybox = $(btn).parent().parent().find(".item-qty");
var qty = parseInt(qtybox.val());
qty += diff;
if (qty > 0) {
qtybox.val(qty);
var minbtn = $(btn).parent().parent().find(".qty-minus");
if (qty == 1) {
minbtn.html("");
} else {
minbtn.html("");
}
} else {
qtybox.closest(".list-group-item").remove();
}
recalculate();
}
$("#pos-lines-box").on("click", ".qty-minus", function () {
updateQty(this, -1);
});
$("#pos-lines-box").on("click", ".qty-plus", function () {
updateQty(this, 1);
});
$("#pos-lines-box").on("change blur", ".item-qty,.item-price", function () {
recalculate();
});
$("#pos-lines-box").on("keypress", ".item-qty,.item-price", function (e) {
if (e.which === 13) {
recalculate();
}
});
$("#barcode").on('keypress', function (e) {
if (e.which === 13) {
findItem($("#barcode").val());
$("#barcode").val("");
}
});
$("#barcodebtn").on("click", function () {
findItem($("#barcode").val());
$("#barcode").val("");
});
$("#barcode").focus();