/* * 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 sendTransactionToServer(callback) { var items = []; var payments = []; var customer = customerid; var register = $("#register").data('id'); var discountpercent = $("#discountpercentbtn").data("percent"); if (discountpercent <= 0) { discountpercent = 0.0; } var txid = ""; if ($("#txid").length) { txid = $("#txid").val(); } $("#pos-lines-box .list-group-item").each(function () { var each = $(".item-price", this).val() * 1.0; var qty = $(".item-qty", this).val() * 1.0; var code = $(this).data("code"); var id = $(this).data("itemid"); items.push({ each: each, qty: qty, code: code, id: id }); }); $("#payment-lines .list-group-item").each(function () { var amount = $(".payment-entry", this).val() * 1.0; var type = $(".payment-entry", this).data("type"); var code = ''; if ($(".giftcard-number", this).length) { code = $(".giftcard-number", this).val(); } payments.push({ amount: amount, type: type, code: code }); }); console.log(payments); $.post("action.php", { action: "finish_transaction", items: items, payments: payments, customer: customer, register: register, discountpercent: discountpercent, txid: txid }, function (data) { if (data.status == "OK") { callback(data); } else { bsalert("Error", "The transaction could not be completed:
" + data.message); } }).fail(function () { bsalert("Error", "The transaction could not be completed due to an unknown error."); }); } function sendReturnToServer(callback) { var items = []; var payments = []; var customer = customerid; var register = $("#register").data('id'); $("#pos-lines-box .list-group-item").each(function () { var each = $(".item-price", this).val() * 1.0; var qty = $(".item-qty", this).val() * 1.0; var code = $(this).data("code"); var id = $(this).data("itemid"); items.push({ each: each, qty: qty, code: code, id: id }); }); $("#payment-lines .list-group-item").each(function () { var amount = $(".payment-entry", this).val() * 1.0; var type = $(".payment-entry", this).data("type"); var code = ''; if ($(".giftcard-number", this).length) { code = $(".giftcard-number", this).val(); } payments.push({ amount: amount, type: type, code: code }); }); console.log(payments); $.post("action.php", { action: "finish_return", items: items, payments: payments, customer: customer, register: register }, function (data) { if (data.status == "OK") { callback(data); } else { bsalert("Error", "The return could not be completed: " + data.message); } }).fail(function () { bsalert("Error", "The return could not be completed due to an unknown error."); }); } function showReceipt(txid) { $("#receiptchangediv").removeClass("d-none"); $("#receiptframe").attr("src", 'action.php?action=getreceipt&txid=' + txid); $("#receiptmodal").modal(); } function finishTransaction() { sendTransactionToServer(function (data) { showReceipt(data.txid); }); } $("#finishbtn").click(function () { recalculate(); var owed = $("#owed-amount").text() * 1.0; if ($("#return").length) { if (owed > 0) { bsalert("Incomplete Transaction", "The customer is still owed $" + owed.toFixed(2) + ". Add a payment or remove items until the customer is not owed anything."); } else if ($("#change-amount").text() * 1.0 > 0) { bsalert("Incomplete Transaction", "The customer would need to pay you $" + ($("#change-amount").text() * 1.0).toFixed(2) + " for the refund. Adjust payments until the change is zero."); } else { sendReturnToServer(function (data) { showReceipt(data.txid); }); } } else { if (owed > 0) { bsalert("Incomplete Transaction", "The customer still owes $" + owed.toFixed(2) + ". Add a payment or remove items until everything is paid for."); } else { finishTransaction(); } } }); $("#receiptprintbtn").click(function () { document.getElementById("receiptframe").contentWindow.print(); }); $("#receiptmodal").on("hide.bs.modal", function () { window.location.href = "app.php?page=pos"; });