/* * 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, customer: customerid }, 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(); } }); $("#pos-lines-box").on("click", ".open-number-pad-btn", function (e) { var inputbox = $(this).parents('.input-group').children(".item-price"); var value = inputbox.val(); if (isNaN(value)) { value = ''; } bsnumpad("Keyboard", value, "Save", "Cancel", function (answer) { inputbox.val(answer); 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();