//= require jquery
//= require tether
//= require jquery_ujs
//= require bootstrap/js/popper.min
//= require bootstrap/js/bootstrap-material-design.min
//= require momentjs/moment
//= require bootstrap-material-datetimepicker/js/bootstrap-material-datetimepicker
//= require jquery-slimscroll/jquery.slimscroll.js
//= require bootstrap-notify/bootstrap-notify.js
//= require node-waves/waves.js
//= require sweetalert/sweetalert.min.js
//= require fileinput.min
//= require cable
//= require turbolinks
//= require BSBMaterial/turbolink_admin.js
//= require BSBMaterial/demo.js
//= require custom.js
/* Constant Varaibles */
_CREDIT_PAYMENTS_ = "/ CREDIT PAYMENTS";
_CUSTOMERS_ = "/ CUSTOMERS";
_DISCOUNTS_ = "/ DISCOUNTS";
_IN_DUTIES_ = "/ IN DUTIES";
_JCB_ = "/ JCB PAYMENT";
_MASTER_ = "/ MASTER PAYMENT";
_MPU_ = "/ MPU PAYMENT";
_ALIPAY_ = "/ Alipay";
_JUNCTIONPAY_ = "/ JunctionPay";
_PAYMAL_ = "/ PAYMAL";
_DINGA_ = "/ DINGA PAYMENT";
_GIFT_VOUCHER_ = "/ GIFT VOUCHER";
_OTHER_CHARGES_ = "/ CHARGES";
_OTHER_PAYMENTS_ = "/ OTHER PAYMENT";
_PAYMENTS_ = "/ PAYMENT";
_PAYPAR_PAYMENT_ = "/ PAYPAR PAYMENT";
_COMMISSIONS_ = "/ COMMISSIONS";
_REDEEM_PAYMENT_ = "/ REDEEM PAYMENT";
_SALE_EDIT_ = "/ SALE EDIT";
_SPLIT_BILL_ = "/ SPLIT BILL";
_UNION_ = "/ UNION PAYMENT";
_VISA_ = "/ VISA PAYMENT";
_VOUCHER_ = "/ VOUCHER";
_SURVEY_ = "/ SURVEY";
/* Constant Varaibles */
$(document).on("turbolinks:load", function () {
$("#customer_image_path").fileinput({
previewFileType: "image",
allowedFileExtensions: ["jpg", "gif", "png"],
browseClass: "btn btn-success",
browseLabel: "Pick Image",
browseIcon: ' ',
removeClass: "btn btn-danger",
removeLabel: "Delete",
removeIcon: ' ',
showUpload: false,
// uploadClass: "btn btn-info",
// uploadLabel: "Upload",
// uploadIcon: " ",
previewTemplates: {
image:
'
\n' +
'

\n' +
"
\n",
},
});
$(".datetimepicker").bootstrapMaterialDatePicker({
format: "DD-MM-YYYY - HH:mm",
clearButton: true,
weekStart: 1,
});
$(".datepicker").bootstrapMaterialDatePicker({
format: "DD-MM-YYYY",
clearButton: true,
weekStart: 1,
time: false,
});
$(".timepicker").bootstrapMaterialDatePicker({
format: "HH:mm",
clearButton: true,
date: false,
});
// For selected order return
var order_status = "";
order_status = $(".selected-item")
.children()
.find(".orders-order-status")
.text()
.substr(0, 6)
.trim();
// Enable/Disable Button
//control_button(order_status);
$(".orders").on("click", function () {
$("#order-sub-total").text("");
// $("#order-food").text('');
// $("#order-beverage").text('');
$("#order-discount").text("");
$("#order-Tax").text("");
$("#order-grand-total").text("");
var zone_name = $(this).find(".orders-table").text();
var receipt_no = $(this).find(".orders-receipt-no").text();
var unique_id = $(this).find(".orders-id").text();
var order_status = $(this).find(".orders-order-status").text().trim();
// Enable/Disable Button
//control_button(order_status);
var customer_id = $(this).find(".customer-id").text();
show_customer_details(customer_id);
$("#re-print").val(unique_id);
var cashier = "";
var receipt_date = "";
var sub_total = 0.0;
var discount_amount = 0;
var tax_amount = 0;
var grand_total_amount = 0;
$("#order-title").text("ORDER DETAILS - " + zone_name);
// clear order items
$("#order-items-table").children("tbody").empty();
// AJAX call for order
$.ajax({
type: "POST",
url: "/origami/" + unique_id,
data: { booking_id: unique_id },
success: function (result) {
for (i = 0; i < result.length; i++) {
var data = JSON.stringify(result[i]);
var parse_data = JSON.parse(data);
var show_date = "";
// Receipt Header
receipt_no = result[i].receipt_no;
cashier = result[i].cashier_name;
if (result[i].receipt_date != null) {
receipt_date = new Date(result[i].receipt_date);
show_date =
receipt_date.getDate() +
"-" +
receipt_date.getMonth() +
"-" +
receipt_date.getFullYear() +
" " +
receipt_date.getHours() +
":" +
receipt_date.getMinutes();
}
//Receipt Charges
sub_total += parseFloat(parse_data.price);
discount_amount =
parse_data.discount_amount == null
? "0.0"
: parse_data.discount_amount;
tax_amount = parse_data.tax_amount;
grand_total_amount = parse_data.grand_total_amount;
// Ordered Items
var order_items_rows =
"" +
"| " +
parse_data.item_name +
" | " +
"" +
parse_data.qty +
" | " +
"" +
parse_data.price +
" | " +
"
";
$("#order-items-table").children("tbody").append(order_items_rows);
}
// Cashier Info
$("#receipt_no").text(receipt_no);
$("#cashier").text(cashier == null ? "" : cashier);
$("#receipt_date").text(show_date);
// Payment Info
$("#order-sub-total").text(sub_total);
// $("#order-food").text('');
// $("#order-beverage").text('');
$("#order-discount").text(discount_amount);
$("#order-Tax").text(tax_amount);
$("#order-grand-total").text(grand_total_amount);
},
});
// End AJAX Call
$(".orders").removeClass("selected-item");
$(this).addClass("selected-item");
});
// Payment for Bill
$("#pay-bill").click(function () {
var sale_id = $(".selected-item").find(".orders-id").text().substr(0, 16);
if (sale_id != "") {
window.location.href = "/origami/sale/" + sale_id + "/payment";
} else {
alert("Please select an order!");
}
return false;
});
$(document).on("click", ".access_modal", function (event) {
type = $(this).data("type");
$(".ok").attr("data-action", type);
$("#AccessCodeModal").modal("show");
});
$(document).on("click", ".access_number", function (event) {
if (event.handled !== true) {
var original_value = $("#access_code").val();
var input_type = $(this).attr("data-type");
switch (input_type) {
case "num":
var input_value = $(this).attr("data-value");
if (original_value) {
$("#access_code").val(original_value + input_value);
} else {
$("#access_code").val(original_value + input_value);
}
break;
case "ok":
var type = $(this).attr("data-action");
code = $("#access_code").val();
check_emp_access_code(code, type);
break;
case "clr":
$("#access_code").val("");
break;
}
event.handled = true;
} else {
return false;
}
});
$(document).on("click", ".credit_detail", function () {
var sale_id = $(this).attr("data-id");
var cashier_type = $(this).attr("data-type");
if (cashier_type == "cashier") {
window.location.href = "/origami/cashier/credit_sales/" + sale_id;
} else {
window.location.href = "/origami/quick_service/credit_sales/" + sale_id;
}
});
});
/* start check first bill or not funs: */
function checkReceiptNoInFirstBillData(receipt_no, payment) {
// localStorage.removeItem('receipt_lists');
var status = false;
var json_data = [];
if (receipt_no != undefined && receipt_no != "") {
if (localStorage.hasOwnProperty("receipt_lists") === true) {
var arr_data = JSON.parse(localStorage.getItem("receipt_lists"));
if (payment) {
json_data = arr_data.filter(function (e) {
return e.receipt_no == receipt_no;
});
} else {
json_data = arr_data.filter(function (e) {
return e.receipt_no !== receipt_no;
});
}
if (arr_data.length > json_data.length) {
status = true;
}
}
}
if (payment) {
if (json_data.length > 0) {
return json_data[0]["payment"];
} else {
return false;
}
} else {
return status;
}
}
function createReceiptNoInFirstBillData(receipt_no, payment) {
var arr_data = [];
var json_data = [];
if (localStorage.hasOwnProperty("receipt_lists") === true) {
arr_data = JSON.parse(localStorage.getItem("receipt_lists"));
json_data = arr_data.filter(function (e) {
return e.receipt_no == receipt_no;
});
if (payment) {
jdata = arr_data.filter(function (e) {
return e.receipt_no !== receipt_no;
});
jdata.push({ receipt_no: receipt_no, payment: payment });
localStorage.setItem("receipt_lists", JSON.stringify(jdata));
}
}
if (
(arr_data.length == 0 && json_data.length == 0) ||
(arr_data.length > 0 && json_data.length == 0)
) {
arr_data.push({ receipt_no: receipt_no, payment: payment });
localStorage.setItem("receipt_lists", JSON.stringify(arr_data));
}
}
function deleteReceiptNoInFirstBillData(receipt_no) {
if (localStorage.hasOwnProperty("receipt_lists") === true) {
var arr_data = JSON.parse(localStorage.getItem("receipt_lists"));
var json_data = arr_data.filter(function (e) {
return e.receipt_no !== receipt_no;
});
localStorage.setItem("receipt_lists", JSON.stringify(json_data));
}
}
/* end check first bill or not funs: */
//start CB ECR integration
//set CB com port data
function setCommPorts(comPortLists) {
var sale_id = $("#sale_id").val();
$("#com_port_name").html("");
var jsonPortLists = $.parseJSON(comPortLists);
// alert(jsonPortLists);
if (
jsonPortLists != undefined &&
jsonPortLists != "" &&
jsonPortLists.length > 0
) {
$.each(jsonPortLists, function (key, value) {
$("#com_port_name").append(
""
);
});
} else {
swal(
{
title: "Oops",
text: "Payment device has been disconnected! Please plug it in.",
type: "error",
html: true,
closeOnConfirm: false,
closeOnCancel: false,
allowOutsideClick: false,
},
function () {
window.location.href =
"/origami/sale/" +
sale_id +
"/" +
cashier_type +
"/payment/others_payment";
}
);
}
}
/** pay with CB bank **/
function pay_withBank(cmd_type, payment_type, bnk_bill_amount,sale_id,receipt_no,cashier_type) {
$("#loading_wrapper").show();
var com_port = $("#com_port_name").val();
reqCardSaleTrans(cmd_type, payment_type, bnk_bill_amount, sale_id, receipt_no, com_port,cashier_type);
}
//add req data to card_sale_trans table
function reqCardSaleTrans(
cmd_type,
payment_type,
bnk_bill_amount,
sale_id,
receipt_no,
com_port,
cashier_type
) {
var jobj = {
cmd_type: cmd_type,
payment_type: "CARD",
amt: bnk_bill_amount,
sale_id: sale_id,
inv_no: receipt_no,
com_port: com_port,
};
$.ajax({
type: "POST",
url: "/origami/bank_integration/sale_trans",
data: { type: "request", data: jobj },
dataType: "json",
success: function (data) {
if (data.status == "success") {
card_sale_trans_id = data.card_sale_trans_id;
resCardSaleTrans(
card_sale_trans_id,
cmd_type,
payment_type,
bnk_bill_amount,
sale_id,
receipt_no,
com_port,
cashier_type
);
}
},
});
}
//add res data to card_sale_trans table
function resCardSaleTrans(
card_sale_trans_id,
cmd_type,
payment_type,
bnk_bill_amount,
sale_id,
receipt_no,
com_port,
cashier_type
) {
var resMsg = "";
var card_payment_type = "";
if ($("#loading_wrapper").is(":visible")) {
if (
payment_type == "mpu" ||
payment_type == "visa" ||
payment_type == "master" ||
payment_type == "jcb" ||
payment_type == "unionpay"
) {
card_payment_type = "CARD";
} else if (payment_type == "alipay") {
card_payment_type = "EWALLET";
}
bnk_bill_amount = parseFloat(bnk_bill_amount);
resMsg = code2lab.reqBankPayment(
cmd_type,
card_payment_type,
bnk_bill_amount,
receipt_no,
com_port
);
}
if (resMsg.includes("STATUS")) {
var jobj = $.parseJSON(resMsg);
$.ajax({
type: "POST",
url: "/origami/bank_integration/sale_trans",
data: {
type: "response",
card_sale_trans_id: card_sale_trans_id,
data: jobj,
},
dataType: "json",
success: function (data) {
if (data.status == "success") {
resCBPay(
resMsg,
card_sale_trans_id,
cmd_type,
payment_type,
bnk_bill_amount,
sale_id,
receipt_no,
com_port,
cashier_type
);
}
},
});
} else {
if (payment_type != "master") {
payment_type = payment_type.toUpperCase();
} else {
payment_type = "Master";
}
$("#loading_wrapper").hide();
swal(
{
title: "Oops",
text: resMsg.toString(),
type: "error",
html: true,
closeOnConfirm: false,
closeOnCancel: false,
allowOutsideClick: false,
},
function () {
var url_param = "payment";
if (location.pathname.includes("credit_payment")) {
url_param = "credit_payment";
}
window.location.href =
"/origami/sale/" +
sale_id +
"/" +
cashier_type +
"/" +
url_param +
"/others_payment/" +
payment_type;
}
);
}
}
function resCBPay(
resMsg,
card_sale_trans_id,
cmd_type,
payment_type,
bnk_bill_amount,
sale_id,
receipt_no,
com_port,
cashier_type
) {
$("#loading_wrapper").hide();
var jobj = $.parseJSON(resMsg);
$("#reference_no").val(jobj.REFNUM);
if (jobj.STATUS == "Approved") {
$.ajax({
type: "POST",
url: "/origami/payment/" + payment_type,
data:
"amount=" +
bnk_bill_amount +
"&sale_id=" +
sale_id +
"&ref_no=" +
jobj.REFNUM,
success: function (result) {
if (result) {
swal(
{
title: "Information!",
text: "Payment Successfully",
html: true,
closeOnConfirm: false,
closeOnCancel: false,
allowOutsideClick: false,
},
function () {
var url_param = "payment";
if (location.pathname.includes("credit_payment")) {
url_param = "credit_payment";
}
window.location.href =
"/origami/sale/" +
sale_id +
"/" +
cashier_type +
"/" +
url_param;
}
);
}
},
});
} else {
if (payment_type != "master") {
payment_type = payment_type.toUpperCase();
} else {
payment_type = "Master";
}
swal(
{
title: "Oops",
text: "Transaction is " + jobj.STATUS.toLowerCase(),
type: "error",
html: true,
closeOnConfirm: false,
closeOnCancel: false,
allowOutsideClick: false,
},
function () {
var url_param = "payment";
if (location.pathname.includes("credit_payment")) {
url_param = "credit_payment";
}
window.location.href =
"/origami/sale/" +
sale_id +
"/" +
cashier_type +
"/" +
url_param +
"/others_payment/" +
payment_type;
}
);
}
}
//end CB ECR integration
function setHeaderBreadCrumb(params) {
$("#others_payment").html(params);
}
//show hide nav bar for webview
function showHideNavbar(webview, page) {
if (webview) {
$("nav.navbar").addClass("hidden");
$("section").addClass("section-margin");
$(".page-loader-wrapper").addClass("hidden");
if (page != undefined) {
$("#back").hide();
}
} else {
$("nav.navbar").removeClass("hidden");
$("section").removeClass("section-margin");
$(".page-loader-wrapper").removeClass("hidden");
if (page != undefined) {
$("#back").show();
}
}
}
function createAccessCode(code) {
localStorage.setItem("access_code", code);
}
//get menu item cache
function getAllMenu() {
$.ajax({
type: "GET",
url: "/origami/get_all_menu",
data: {},
success: function (result) {
console.log(result);
localStorage.setItem("menus", JSON.stringify(result));
var menu = localStorage.getItem("menus");
if (menu != null) {
$("#loading_wrapper").hide();
}
},
});
}
/* String format */
if (!String.prototype.formatUnicorn) {
String.prototype.formatUnicorn = function () {
var e = this.toString();
if (!arguments.length) {
return e;
}
var t = typeof arguments[0],
n =
"string" == t || "number" == t
? Array.prototype.slice.call(arguments)
: arguments[0];
for (var i in n) {
e = e.replace(
new RegExp("\\{" + i + "\\}", "gi"),
n[i] == null ? "" : n[i]
);
}
return e;
};
}
/* String format */
//credit sales lists
function timeFormat(date) {
var isPM = date.getHours() >= 12;
var isMidday = date.getHours() == 12;
var time =
[
(date.getHours() > 10 ? date.getHours() : "0" + date.getHours()) -
(isPM && !isMidday ? 12 : 0),
(date.getMinutes() > 10 ? date.getMinutes() : "0" + date.getMinutes()) ||
"00",
].join(":") + (isPM ? " PM" : " AM");
return time;
}
function getCreditData(cashier_type) {
var filter = $("#filter").val();
var customer = $("#sel_customer").val();
var receipt_no = "";
var customer_id = "";
if (filter != undefined && filter != null && filter != "") {
receipt_no = filter;
}
if (customer != undefined && customer != null && customer != "") {
customer_id = customer;
}
getCreditSales(receipt_no, customer_id, cashier_type);
}
function getCreditSales(filter, customer, cashier_type) {
// $(".credit_items").hide();
$(".tbd_credit_lists").empty();
var html_credit_items = $("#html_credit_items").html();
var receipt_no = "";
var customer_id = "";
if (filter != undefined && filter != null && filter != "") {
receipt_no = filter;
}
if (customer != undefined && customer != null && customer != "") {
customer_id = customer;
}
$.ajax({
type: "POST",
data: { receipt_no: receipt_no, customer_id: customer_id },
dataType: "json",
url: "/origami/" + cashier_type + "/credit_sales",
success: function (data) {
// console.log(data);
if (data.status) {
var credit_sales = data.data;
// console.log(credit_sales);
if (credit_sales.length > 0) {
$(".credit_items").show();
for (var i = 0; i < credit_sales.length; i++) {
var sale_date = new Date(credit_sales[i].sale_date);
var receipt_date =
sale_date.getFullYear() +
"-" +
(sale_date.getMonth() > 10
? sale_date.getMonth() + 1
: "0" + (sale_date.getMonth() + 1)) +
"-" +
(sale_date.getDate() > 10
? sale_date.getDate()
: "0" + sale_date.getDate());
$(".tbd_credit_lists").append(
html_credit_items.formatUnicorn({
key: i,
sale_id: credit_sales[i].sale_id,
receipt_date: receipt_date + " " + timeFormat(sale_date),
receipt_no: credit_sales[i].receipt_no,
cashier_name: credit_sales[i].cashier_name,
customer_name: credit_sales[i].customer_name,
credit_amount: credit_sales[i].payment_amount,
cashier_type: cashier_type,
})
);
}
}
} else {
$(".tbd_credit_lists").html(data.message);
}
},
});
}
//End of credit sales function