You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
4.6 KiB
JavaScript
143 lines
4.6 KiB
JavaScript
/*
|
|
* 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/.
|
|
*/
|
|
|
|
|
|
$('#name').on('input propertychange paste', function () {
|
|
$('#name_title').text($('#name').val());
|
|
});
|
|
|
|
var pricingtable = $('#pricingtable').DataTable({
|
|
responsive: {
|
|
details: {
|
|
display: $.fn.dataTable.Responsive.display.modal({
|
|
header: function (row) {
|
|
var data = row.data();
|
|
return "<i class=\"fas fa-box fa-fw\"></i> " + data[2];
|
|
}
|
|
}),
|
|
renderer: $.fn.dataTable.Responsive.renderer.tableAll({
|
|
tableClass: 'table'
|
|
}),
|
|
type: "column"
|
|
}
|
|
},
|
|
columnDefs: [
|
|
{
|
|
targets: 0,
|
|
className: 'control',
|
|
orderable: false
|
|
},
|
|
{
|
|
targets: 1,
|
|
orderable: false
|
|
}
|
|
],
|
|
order: [
|
|
[2, 'asc']
|
|
]
|
|
});
|
|
|
|
$("#pricingtable").on("click", ".deletepricebtn", function () {
|
|
pricingtable.row($("#pricingtable tr[data-itemid=" + $(this).data("itemid") + "]")).remove();
|
|
pricingtable.draw();
|
|
});
|
|
|
|
function findItem(q) {
|
|
function decodeThenSetItem(item) {
|
|
var name = item['name'];
|
|
var id = item['id'];
|
|
var price = item['price'];
|
|
var cost = item['price'];
|
|
|
|
$("#pricemodal").data("itemid", id);
|
|
$("#pricemodalitemname").text(name);
|
|
$("#pricemodalitemcost").text(cost);
|
|
$("#pricemodalitemprice").text(price);
|
|
$("#pricemodalcustomerprice").val(price);
|
|
}
|
|
if (q == "") {
|
|
return;
|
|
}
|
|
$.get("action.php", {
|
|
action: "itemsearch",
|
|
q: q
|
|
}, function (data) {
|
|
if (data['items'].length == 1) {
|
|
decodeThenSetItem(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 += " <span class=\"ml-auto\">$" + data['items'][i]['price'] + "</span>";
|
|
}
|
|
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) {
|
|
decodeThenSetItem(data['items'][i]);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
}).fail(function () {
|
|
alert("Error");
|
|
});
|
|
}
|
|
|
|
$("#pricemodalitem").on('keypress', function (e) {
|
|
if (e.which === 13) {
|
|
findItem($("#pricemodalitem").val());
|
|
$("#pricemodalitem").val("");
|
|
}
|
|
});
|
|
|
|
$("#pricemodalsearch").on("click", function () {
|
|
findItem($("#pricemodalitem").val());
|
|
$("#pricemodalitem").val("");
|
|
});
|
|
|
|
$("#addcustomerpricebtn").click(function () {
|
|
$("#pricemodal").data("itemid", "");
|
|
$("#pricemodal").modal();
|
|
});
|
|
|
|
$("#pricemodalsave").click(function () {
|
|
var itemid = $("#pricemodal").data("itemid");
|
|
var name = $("#pricemodalitemname").text();
|
|
var cost = $("#pricemodalitemcost").text();
|
|
var price = $("#pricemodalitemprice").text();
|
|
var custprice = $("#pricemodalcustomerprice").val();
|
|
var rownumber = $("#pricingtable tbody tr").length;
|
|
var html = ''
|
|
+ '<tr data-itemid="' + itemid + '">'
|
|
+ ' <td></td>'
|
|
+ ' <td>'
|
|
+ ' <div class="btn btn-sm btn-danger deletepricebtn" data-itemid="' + itemid + '"><i class="fas fa-trash"></i> Delete</div>'
|
|
+ ' </td>'
|
|
+ ' <td>'
|
|
+ ' <input type="hidden" name="pricing[' + rownumber + '][item]" value="' + itemid + '" />'
|
|
+ ' ' + name
|
|
+ ' </td>'
|
|
+ ' <td>' + cost + '</td>'
|
|
+ ' <td>' + price + '</td>'
|
|
+ ' <td>'
|
|
+ ' <input type="hidden" name="pricing[' + rownumber + '][price]" value="' + custprice + '" />'
|
|
+ ' ' + custprice
|
|
+ ' </td>'
|
|
+ '</tr>';
|
|
pricingtable.row.add($(html));
|
|
pricingtable.draw();
|
|
$("#pricemodal").modal("hide");
|
|
}) |