591 lines
19 KiB
JavaScript
Executable File
591 lines
19 KiB
JavaScript
Executable File
//= 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: "<i class=\"fa fa-image\"></i> ",
|
|
removeClass: "btn btn-danger",
|
|
removeLabel: "Delete",
|
|
removeIcon: "<i class=\"fa fa-trash\"></i> ",
|
|
showUpload: false,
|
|
// uploadClass: "btn btn-info",
|
|
// uploadLabel: "Upload",
|
|
// uploadIcon: "<i class=\"fa fa-upload\"></i> ",
|
|
previewTemplates: {
|
|
image: '<div class="file-preview-frame" id="{previewId}" data-fileindex="{fileindex}">\n' +
|
|
' <img src="{data}" class="file-preview-image" title="{caption}" alt="{caption}" style="width: 200px;height: 200px;">\n' +
|
|
'</div>\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 = "<tr>" +
|
|
"<td class='item-name'>" + parse_data.item_name + "</td>" +
|
|
"<td class='item-attr'>" + parse_data.qty + "</td>" +
|
|
"<td class='item-attr'>" + parse_data.price + "</td>" +
|
|
"</tr>";
|
|
|
|
$("#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("<option value='"+value+"'>"+value+"</option>");
|
|
});
|
|
}
|
|
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){
|
|
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
|