Merge branch 'sqa-1804-001' of bitbucket.org:code2lab/sxrestaurant into r-1804001-01

This commit is contained in:
phyusin
2018-05-14 17:05:23 +06:30
25 changed files with 328 additions and 183 deletions

View File

@@ -1373,7 +1373,7 @@ $(function() {
if (JSON.stringify(menu_items[field].item_sets)!='[]') { if (JSON.stringify(menu_items[field].item_sets)!='[]') {
fa_plus = ''; fa_plus = '';
add = ''; add = '';
menu_item_box = 'add_icon'; menu_item_box = 'set_add_icon';
data_target = 'sx_item_set_detailModal'; data_target = 'sx_item_set_detailModal';
data_modal = 'modal' data_modal = 'modal'
add_icon = "set_item_box" add_icon = "set_item_box"

View File

@@ -19,33 +19,34 @@ App.check_new_order = App.cable.subscriptions.create('CheckNewOrderChannel', {
}); });
// alert(order_lists); // alert(order_lists);
swal({ // swal({
title: 'Information', // title: 'Information',
target: document.getElementById(shop_code+"_notify_new_order"), // target: document.getElementById(shop_code+"_notify_new_order"),
text: "You have new orders <br/>"+ // text: "You have new orders <br/>"+
"Are you accept or reject for these orders <b>"+order_lists+"</b>?", // "Are you accept or reject for these orders <b>"+order_lists+"</b>?",
type: 'success', // type: 'success',
html: true, // html: true,
closeOnConfirm: false, // closeOnConfirm: false,
closeOnCancel: false, // closeOnCancel: false,
allowOutsideClick: false // allowOutsideClick: false
}, function (isConfirm) { // }, function (isConfirm) {
if(isConfirm){ // if(isConfirm){
swal.close(); // swal.close();
}
});
// $("#notify_new_order_lists").text(order_lists);
// if($("#notify_new_order").hasClass("hidden")){
// $("#notify_new_order").removeClass("hidden");
// } // }
// $("#notify_new_order").on('show.bs.modal', function(e){ // });
// $("#notify_order_send_to_kitchen").addClass("hidden"); $("#notify_new_order_lists").text(order_lists);
// $("#notify_order_ready_to_delivery").addClass("hidden"); // if($("#"+shop_code+"_notify_new_order").hasClass("hidden")){
// }).on('shown.bs.modal', function(e){ $("#"+shop_code+"_notify_new_order").removeClass("hidden");
// $("#notify_new_order").focus(); // }
// }).on('hide.bs.modal', function (e) { $("#"+shop_code+"_notify_new_order").on('shown.bs.modal', function(e){
// $("#notify_new_order").addClass("hidden"); // $(document).off('focusin.modal');
// }).modal({show: true, keyboard: false, backdrop: false}); $("#"+shop_code+"_notify_new_order").focus();
$("#"+shop_code+"_doemal_new_order").addClass("hidden");
$("#"+shop_code+"_notify_order_send_to_kitchen").addClass("hidden");
$("#"+shop_code+"_notify_order_ready_to_delivery").addClass("hidden");
}).on('hide.bs.modal', function (e) {
$("#"+shop_code+"_notify_new_order").addClass("hidden");
}).modal({show: true, keyboard: false, backdrop: false});
} }
} }
}); });

View File

@@ -19,33 +19,34 @@ App.check_order_ready_to_delivery = App.cable.subscriptions.create('CheckOrderRe
}); });
// alert(order_lists); // alert(order_lists);
swal({ // swal({
title: 'Information', // title: 'Information',
target: document.getElementById(shop_code+"_notify_order_ready_to_delivery"), // target: document.getElementById(shop_code+"_notify_order_ready_to_delivery"),
text: "You have orders that are ready to deliver <br/>"+ // text: "You have orders that are ready to deliver <br/>"+
"Could you ready these orders <b>"+order_lists+"</b> to deliver?", // "Could you ready these orders <b>"+order_lists+"</b> to deliver?",
type: 'success', // type: 'success',
html: true, // html: true,
closeOnConfirm: false, // closeOnConfirm: false,
closeOnCancel: false, // closeOnCancel: false,
allowOutsideClick: false // allowOutsideClick: false
}, function (isConfirm) { // }, function (isConfirm) {
if(isConfirm){ // if(isConfirm){
swal.close(); // swal.close();
}
});
// $("#notify_order_ready_to_delivery_lists").text(order_lists);
// if($("#notify_order_ready_to_delivery").hasClass("hidden")){
// $("#notify_order_ready_to_delivery").removeClass("hidden");
// } // }
// $("#notify_order_ready_to_delivery").on('shown.bs.modal', function(e){ // });
// $("#notify_new_order").addClass("hidden"); $("#notify_order_ready_to_delivery_lists").text(order_lists);
// $("#notify_order_send_to_kitchen").addClass("hidden"); // if($("#notify_order_ready_to_delivery").hasClass("hidden")){
// }).on('shown.bs.modal', function(e){ $("#"+shop_code+"_notify_order_ready_to_delivery").removeClass("hidden");
// $("#notify_order_ready_to_delivery").focus(); // }
// }).on('hide.bs.modal', function (e) { $("#"+shop_code+"_notify_order_ready_to_delivery").on('shown.bs.modal', function(e){
// $("#notify_order_ready_to_delivery").addClass("hidden"); // $(document).off('focusin.modal');
// }).modal({show: true, keyboard: false, backdrop: false}); $("#"+shop_code+"_notify_order_ready_to_delivery").focus();
$("#"+shop_code+"_doemal_new_order").addClass("hidden");
$("#"+shop_code+"_notify_new_order").addClass("hidden");
$("#"+shop_code+"_notify_order_send_to_kitchen").addClass("hidden");
}).on('hide.bs.modal', function (e) {
$("#"+shop_code+"_notify_order_ready_to_delivery").addClass("hidden");
}).modal({show: true, keyboard: false, backdrop: false});
} }
} }
}); });

View File

@@ -19,33 +19,34 @@ App.check_order_send_to_kitchen = App.cable.subscriptions.create('CheckOrderSend
}); });
// alert(order_lists); // alert(order_lists);
swal({ // swal({
title: 'Information', // title: 'Information',
target: document.getElementById(shop_code+"_notify_order_send_to_kitchen"), // target: document.getElementById(shop_code+"_notify_order_send_to_kitchen"),
text: "You have to send order to kitchen <br/>"+ // text: "You have to send order to kitchen <br/>"+
"Could you send these orders <b>"+order_lists+"</b> to kitchen?", // "Could you send these orders <b>"+order_lists+"</b> to kitchen?",
type: 'success', // type: 'success',
html: true, // html: true,
closeOnConfirm: false, // closeOnConfirm: false,
closeOnCancel: false, // closeOnCancel: false,
allowOutsideClick: false // allowOutsideClick: false
}, function (isConfirm) { // }, function (isConfirm) {
if(isConfirm){ // if(isConfirm){
swal.close(); // swal.close();
}
});
// $("#notify_order_send_to_kitchen_lists").text(order_lists);
// if($("#notify_order_send_to_kitchen").hasClass("hidden")){
// $("#notify_order_send_to_kitchen").removeClass("hidden");
// } // }
// $("#notify_order_send_to_kitchen").on('show.bs.modal', function(e){ // });
// $("#notify_new_order").addClass("hidden"); $("#notify_order_send_to_kitchen_lists").text(order_lists);
// $("#notify_order_ready_to_delivery").addClass("hidden"); // if($("#notify_order_send_to_kitchen").hasClass("hidden")){
// }).on('shown.bs.modal', function(e){ $("#"+shop_code+"_notify_order_send_to_kitchen").removeClass("hidden");
// $("#notify_order_send_to_kitchen").focus(); // }
// }).on('hide.bs.modal', function (e) { $("#"+shop_code+"_notify_order_send_to_kitchen").on('shown.bs.modal', function(e){
// $("#notify_order_send_to_kitchen").addClass("hidden"); // $(document).off('focusin.modal');
// }).modal({show: true, keyboard: false, backdrop: false}); $("#"+shop_code+"_notify_order_send_to_kitchen").focus();
$("#"+shop_code+"_doemal_new_order").addClass("hidden");
$("#"+shop_code+"_notify_new_order").addClass("hidden");
$("#"+shop_code+"_notify_order_ready_to_delivery").addClass("hidden");
}).on('hide.bs.modal', function (e) {
$("#"+shop_code+"_notify_order_send_to_kitchen").addClass("hidden");
}).modal({show: true, keyboard: false, backdrop: false});
} }
} }
}); });

View File

@@ -157,12 +157,28 @@ $(function() {
} }
}); });
// $('button[data-dismiss="modal"]').on('click', function(){ $(this).parent().parent().parent().parent().modal('hide'); }); // $('button[data-dismiss="modal"]').on('click', function(){ $(this).parent().parent().parent().parent().modal('hide'); });
// $(".new_order_close").on("click",function(){ $(".new_order_close").on("click",function(){
// var code = $(this).attr("data-value"); var code = $(this).attr("data-value");
// $("#"+code+"_doemal_new_order").modal("hide"); $("#"+code+"_doemal_new_order").modal("hide");
// }); });
$(".notify_new_close").on("click",function(){
var code = $(this).attr("data-value");
$("#"+code+"_notify_new_order").modal("hide");
});
$(".notify_order_send_close").on("click",function(){
var code = $(this).attr("data-value");
$("#"+code+"_notify_order_send_to_kitchen").modal("hide");
});
$(".notify_order_ready_close").on("click",function(){
var code = $(this).attr("data-value");
$("#"+code+"_notify_order_ready_to_delivery").modal("hide");
});
// $("[data-dismiss='modal']").on('click', function() { // $("[data-dismiss='modal']").on('click', function() {
// $('body').addClass('modal-open-fix'); // $('body').addClass('modal-open-fix');
@@ -467,42 +483,42 @@ function showNewOrder(order_reservation,shop_code){
var time = timeFormat(date); var time = timeFormat(date);
var requested_date = date.getFullYear() + '-' + (date.getMonth() >= 10? date.getMonth() : '0' + (date.getMonth() + 1)) +'-'+ (date.getDate() >= 10? date.getDate() : '0' + date.getDate()) +' '+time; var requested_date = date.getFullYear() + '-' + (date.getMonth() >= 10? date.getMonth() : '0' + (date.getMonth() + 1)) +'-'+ (date.getDate() >= 10? date.getDate() : '0' + date.getDate()) +' '+time;
//audio play //audio play
var audio = new Audio('/beep.mp3'); // define your audio var audio = new Audio('/'+shop_code+'-beep.mp3'); // define your audio
// setTimeout(function(){ // setTimeout(function(){
// audio.loop = true; // audio.loop = true;
audio.play(); audio.play();
// },10000); // },10000);
// $("#new_order").text(order_reservation.order_reservation_id); $("#new_order").text(order_reservation.order_reservation_id);
// $("#new_order_date").text(requested_date); $("#new_order_date").text(requested_date);
// if($("#"+shop_code+"_doemal_new_order").hasClass("hidden")){ // if($("#"+shop_code+"_doemal_new_order").hasClass("hidden")){
// $("#"+shop_code+"_doemal_new_order").removeClass("hidden"); $("#"+shop_code+"_doemal_new_order").removeClass("hidden");
// } // }
// $("#"+shop_code+"_doemal_new_order").on('show.bs.modal', function(e){ $("#"+shop_code+"_doemal_new_order").on('shown.bs.modal', function(e){
// $("#notify_new_order").addClass("hidden"); // $(document).off('focusin.modal');
// $("#notify_order_send_to_kitchen").addClass("hidden"); $("#"+shop_code+"_doemal_new_order").focus();
// $("#notify_order_ready_to_delivery").addClass("hidden"); $("#"+shop_code+"_notify_new_order").addClass("hidden");
// }).on('shown.bs.modal', function(e){ $("#"+shop_code+"_notify_order_send_to_kitchen").addClass("hidden");
// $("#"+shop_code+"_doemal_new_order").focus(); $("#"+shop_code+"_notify_order_ready_to_delivery").addClass("hidden");
// }).on('hide.bs.modal', function (e) { }).on('hide.bs.modal', function (e) {
// $("#"+shop_code+"_doemal_new_order").addClass("hidden"); $("#"+shop_code+"_doemal_new_order").addClass("hidden");
// }).modal({show: true, keyboard: false, backdrop: false}); }).modal({show: true, keyboard: false, backdrop: false});
swal({ // swal({
title: 'Information', // title: 'Information',
target: document.getElementById(shop_code+"_notify_new_order"), // target: document.getElementById(shop_code+"_notify_new_order"),
text: "You have new order "+ // text: "You have new order "+
"<b>"+order_reservation.order_reservation_id+"</b> requested for "+requested_date+"?", // "<b>"+order_reservation.order_reservation_id+"</b> requested for "+requested_date+"?",
type: 'success', // type: 'success',
html: true, // html: true,
closeOnConfirm: false, // closeOnConfirm: false,
closeOnCancel: false, // closeOnCancel: false,
allowOutsideClick: false // allowOutsideClick: false
}, function (isConfirm) { // }, function (isConfirm) {
if(isConfirm){ // if(isConfirm){
audio.pause(); // audio.pause();
swal.close(); // swal.close();
} // }
}); // });
} }
} }

View File

@@ -271,3 +271,7 @@ i.logout_icon{
.border-left{ .border-left{
border-left:1px solid #fff; border-left:1px solid #fff;
} }
.set_add_icon{
display:none;
}

View File

@@ -89,7 +89,6 @@ class Oqs::HomeController < BaseOqsController
# Query for OQS with delivery status # Query for OQS with delivery status
def queue_items_query(status) def queue_items_query(status)
byebug
AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.id as station_id, oqs.station_name, oqs.is_active, oqpz.zone_id, df.name as zone, df.type as type, odt.order_id, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, odt.options, cus.name as customer_name, odt.created_at") AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.id as station_id, oqs.station_name, oqs.is_active, oqpz.zone_id, df.name as zone, df.type as type, odt.order_id, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, odt.options, cus.name as customer_name, odt.created_at")
.joins(" left join order_queue_stations as oqs on oqs.id = assigned_order_items.order_queue_station_id .joins(" left join order_queue_stations as oqs on oqs.id = assigned_order_items.order_queue_station_id
left join order_queue_process_by_zones as oqpz on oqpz.order_queue_station_id = oqs.id left join order_queue_process_by_zones as oqpz on oqpz.order_queue_station_id = oqs.id

View File

@@ -67,6 +67,8 @@ class Origami::AddordersController < BaseOrigamiController
end end
def get_menu() def get_menu()
puts "sssssssssssssss"
puts params[:id]
if (params[:id]) if (params[:id])
#Pull this menu #Pull this menu
@menu = Menu.find_by_id(params[:id]) @menu = Menu.find_by_id(params[:id])

View File

@@ -81,6 +81,8 @@ class Origami::ShiftsController < BaseOrigamiController
#get tax #get tax
shift_obj = ShiftSale.where('id =?',@shift.id) shift_obj = ShiftSale.where('id =?',@shift.id)
@sale_taxes = Sale.get_separate_tax(shift_obj,from=nil,to=nil,type='') @sale_taxes = Sale.get_separate_tax(shift_obj,from=nil,to=nil,type='')
@total_waste = Sale.get_total_waste(shift_id).sum(:grand_total)
@total_spoile = Sale.get_total_spoile(shift_id).sum(:grand_total)
#other payment details for mpu or visa like card #other payment details for mpu or visa like card
@other_payment = ShiftSale.get_by_shift_other_payment(@shift) @other_payment = ShiftSale.get_by_shift_other_payment(@shift)
@@ -94,10 +96,9 @@ class Origami::ShiftsController < BaseOrigamiController
# get printer info # get printer info
print_settings = PrintSetting.find_by_unique_code(unique_code) print_settings = PrintSetting.find_by_unique_code(unique_code)
#byebug
printer = Printer::CashierStationPrinter.new(print_settings) printer = Printer::CashierStationPrinter.new(print_settings)
printer.print_close_cashier(print_settings,cashier_terminal,@shift,shop_details,@sale_taxes,@other_payment,@total_amount_by_account,@total_discount_by_account,@total_member_discount,@total_dinein,@total_takeway,@total_other_charges) printer.print_close_cashier(print_settings,cashier_terminal,@shift,shop_details,@sale_taxes,@other_payment,@total_amount_by_account,@total_discount_by_account,@total_member_discount,@total_dinein,@total_takeway,@total_other_charges,@total_waste,@total_spoile)
end end
end end
Employee.logout(session[:session_token]) Employee.logout(session[:session_token])

View File

@@ -155,6 +155,7 @@ class Menu < ApplicationRecord
# Menu Item Attributes # Menu Item Attributes
item_attrs = [] item_attrs = []
if !row["Attributes"].nil?
attributes = row["Attributes"].split(',') attributes = row["Attributes"].split(',')
attributes.each do |attr| attributes.each do |attr|
attribute = MenuItemAttribute.find_by_name(attr) attribute = MenuItemAttribute.find_by_name(attr)
@@ -163,9 +164,11 @@ class Menu < ApplicationRecord
end end
item_attrs.push(attribute.id) item_attrs.push(attribute.id)
end end
end
# Menu Item Options # Menu Item Options
item_opts = [] item_opts = []
if !row["Options"].nil?
options = row["Options"].split(',') options = row["Options"].split(',')
options.each do |opt| options.each do |opt|
option = MenuItemOption.find_by_name(opt) option = MenuItemOption.find_by_name(opt)
@@ -174,6 +177,7 @@ class Menu < ApplicationRecord
end end
item_opts.push(option.id) item_opts.push(option.id)
end end
end
menu_itm = MenuItem.find_by_item_code(row["Item Code"]) menu_itm = MenuItem.find_by_item_code(row["Item Code"])
if !menu_itm if !menu_itm
@@ -189,7 +193,11 @@ class Menu < ApplicationRecord
menu_inst = MenuItemInstance.find_by_item_instance_code(row["Instance Code"]) menu_inst = MenuItemInstance.find_by_item_instance_code(row["Instance Code"])
if !menu_inst if !menu_inst
imported_instance = MenuItemInstance.create(menu_item_id: menu_itm.id, item_instance_code: row["Instance Code"], item_instance_name: row["Instance Name"], item_attributes: [], price: row["Price"], is_on_promotion: false, promotion_price: 0, is_available: true, is_default: row["Is Default"]) instance_name = ''
if !row["Instance Name"].nil?
instance_name = row["Instance Name"]
end
imported_instance = MenuItemInstance.create(menu_item_id: menu_itm.id, item_instance_code: row["Instance Code"], item_instance_name: instance_name, item_attributes: [], price: row["Price"], is_on_promotion: false, promotion_price: 0, is_available: true, is_default: row["Is Default"])
# else # else
# status = status + "Instance Code already exists for " + row["Instance Name"] + "." # status = status + "Instance Code already exists for " + row["Instance Name"] + "."
end end

View File

@@ -38,7 +38,7 @@ class Printer::CashierStationPrinter < Printer::PrinterWorker
# self.print(filename, cashier_terminal.printer_name) # self.print(filename, cashier_terminal.printer_name)
# end # end
def print_close_cashier(printer_settings,cashier_terminal,shift_sale,shop_details,sale_taxes,other_payment,amount,discount,member_discount,total_dinein,total_takeway,total_other_charges) def print_close_cashier(printer_settings,cashier_terminal,shift_sale,shop_details,sale_taxes,other_payment,amount,discount,member_discount,total_dinein,total_takeway,total_other_charges,total_waste,total_spoile)
#Use CUPS service #Use CUPS service
#Generate PDF #Generate PDF
@@ -46,7 +46,7 @@ class Printer::CashierStationPrinter < Printer::PrinterWorker
cashier = shift_sale.employee.name cashier = shift_sale.employee.name
shift_name = shift_sale.shift_started_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p") + "_" + shift_sale.shift_closed_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p") shift_name = shift_sale.shift_started_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p") + "_" + shift_sale.shift_closed_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p")
filename = "tmp/close_cashier_#{cashier}_#{shift_name}.pdf" filename = "tmp/close_cashier_#{cashier}_#{shift_name}.pdf"
pdf = CloseCashierPdf.new(printer_settings,shift_sale,shop_details,sale_taxes,other_payment,amount,discount,member_discount) pdf = CloseCashierPdf.new(printer_settings,shift_sale,shop_details,sale_taxes,other_payment,amount,discount,member_discount,total_waste,total_spoile)
close_cashier_pdf = Lookup.collection_of("print_settings") #print_settings with name:CloseCashierPdf close_cashier_pdf = Lookup.collection_of("print_settings") #print_settings with name:CloseCashierPdf
if !close_cashier_pdf.empty? if !close_cashier_pdf.empty?
@@ -55,7 +55,7 @@ class Printer::CashierStationPrinter < Printer::PrinterWorker
if close_cashier[1] == '1' if close_cashier[1] == '1'
pdf = CloseCashierCustomisePdf.new(printer_settings,shift_sale,shop_details,sale_taxes,other_payment,amount,discount,member_discount,total_dinein,total_takeway,total_other_charges) pdf = CloseCashierCustomisePdf.new(printer_settings,shift_sale,shop_details,sale_taxes,other_payment,amount,discount,member_discount,total_dinein,total_takeway,total_other_charges)
else else
pdf = CloseCashierPdf.new(printer_settings,shift_sale,shop_details,sale_taxes,other_payment,amount,discount,member_discount) pdf = CloseCashierPdf.new(printer_settings,shift_sale,shop_details,sale_taxes,other_payment,amount,discount,member_discount,total_waste,total_spoile)
end end
end end
end end

View File

@@ -1091,6 +1091,14 @@ end
return sale_arr return sale_arr
end end
def self.get_total_waste(shift_id)
query = Sale.where("sale_status = 'waste' and shift_sale_id = ?", shift_id)
end
def self.get_total_spoile(shift_id)
query = Sale.where("sale_status = 'spoile' and shift_sale_id = ?", shift_id)
end
def self.get_separate_tax(shift_sale_range=nil,shift,from,to,payment_type) def self.get_separate_tax(shift_sale_range=nil,shift,from,to,payment_type)
# wrong amount tax for service and commercial tax # wrong amount tax for service and commercial tax

View File

@@ -70,7 +70,7 @@ class CloseCashierCustomisePdf < Prawn::Document
stroke_horizontal_rule stroke_horizontal_rule
end end
def shift_detail(shift_sale,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount,precision,delimiter,total_dinein,total_takeway,total_other_charges) def shift_detail(shift_sale,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount,precision,delimiter,total_dinein,total_takeway,total_other_charges,total_spoile)
move_down 7 move_down 7
y_position = cursor y_position = cursor
bounding_box([0,y_position], :width =>self.label_width, :height => self.item_height) do bounding_box([0,y_position], :width =>self.label_width, :height => self.item_height) do

View File

@@ -2,7 +2,7 @@ class CloseCashierPdf < Prawn::Document
include ActionView::Helpers::NumberHelper include ActionView::Helpers::NumberHelper
attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width,:text_width attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width,:text_width
def initialize(printer_settings, shift_sale,shop_details,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount) def initialize(printer_settings, shift_sale,shop_details,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount,total_waste,total_spoile)
self.page_width = printer_settings.page_width #PrintSetting.where("name = ?","Close Cashier").first.page_width self.page_width = printer_settings.page_width #PrintSetting.where("name = ?","Close Cashier").first.page_width
self.page_height = printer_settings.page_height self.page_height = printer_settings.page_height
self.header_font_size = printer_settings.header_font_size.to_i self.header_font_size = printer_settings.header_font_size.to_i
@@ -54,7 +54,7 @@ class CloseCashierPdf < Prawn::Document
stroke_horizontal_rule stroke_horizontal_rule
shift_detail(shift_sale,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount,printer_settings.precision,delimiter) shift_detail(shift_sale,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount,printer_settings.precision,delimiter,total_waste,total_spoile)
end end
def header (shop_details) def header (shop_details)
@@ -70,7 +70,7 @@ class CloseCashierPdf < Prawn::Document
stroke_horizontal_rule stroke_horizontal_rule
end end
def shift_detail(shift_sale,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount,precision,delimiter) def shift_detail(shift_sale,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount,precision,delimiter,total_waste,total_spoile)
move_down 7 move_down 7
y_position = cursor y_position = cursor
bounding_box([0,y_position], :width =>self.label_width, :height => self.item_height) do bounding_box([0,y_position], :width =>self.label_width, :height => self.item_height) do
@@ -341,6 +341,22 @@ class CloseCashierPdf < Prawn::Document
text "(#{shift_sale.total_void})", :size => self.item_font_size, :align => :right text "(#{shift_sale.total_void})", :size => self.item_font_size, :align => :right
end end
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "Total Waste :", :size => self.item_font_size, :align => :right
end
bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
text "(#{ number_with_precision(total_waste, :precision => precision.to_i, :delimiter => delimiter)})", :size => self.item_font_size, :align => :right
end
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "Total Spoile :", :size => self.item_font_size, :align => :right
end
bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
text "(#{ number_with_precision(total_spoile, :precision => precision.to_i, :delimiter => delimiter)})", :size => self.item_font_size, :align => :right
end
# y_position = cursor # y_position = cursor
# bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do # bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
# text "Grand Total :", :size => self.item_font_size, :align => :right # text "Grand Total :", :size => self.item_font_size, :align => :right

View File

@@ -17,7 +17,7 @@
<span class="main_menu" id="main_menu menu_name" > <span class="main_menu" id="main_menu menu_name" >
<%if @menu.present? %> <%if @menu.present? %>
<%=menu[0].name%> <%=@menus[0].name%>
<% end%> <% end%>
</span> </span>
</a> </a>
@@ -650,11 +650,58 @@
$(document).on('click', '.menu_click', function(event){ $(document).on('click', '.menu_click', function(event){
var menu_id = $(this).attr("data-id"); var menu_id = $(this).attr("data-id");
var name = $(this).attr("data-name"); var name = $(this).attr("data-name");
var menus = JSON.parse(localStorage.getItem("menus"));
if (menus != null) {
menu_click_cache_append(name,menus,menu_id);
}else{
var url = "get_menu/"+menu_id; var url = "get_menu/"+menu_id;
show_menu_cat_list(name, url); show_menu_cat_list(name, url);
}
}); });
//End menu category Click //End menu category Click
function menu_click_cache_append(name,menus,menu_id) {
var menu_list = $('.menu_items_list');
menu_list.empty();
var menu_cat = $('.category_list');
menu_cat.empty();
$(".main_menu").text(name);
for(var i in menus) {
console.log(menus)
console.log(menus[i]["id"]);
console.log(menus[i]["is_active"]);
console.log(menu_id);
if (menu_id == menus[i]["id"] && menus[i]["is_active"] == true) {
// menu_list_template(menus[i]);
var category = menus[i]["categories"];
for(var ii in category) {
if (category[ii]["is_available"]== true){
if (category[ii]["valid_time"]== true){
if (category[ii]["parent_id"] == null ){
if(type){
if (category[ii]["code"].includes("SPL") != true) {
category_list_template(category[ii]);
}
}else{
if ($("#table_get_current").text()) {
if (category[ii]["code"].includes("SPL") != true) {
category_list_template(category[ii]);
}else {
category_list_template(category[ii]);
}
}
}
}
}
}
}
}
}
}
//show menu item list when click menu category //show menu item list when click menu category
function show_menu_cat_list(name, url_item){ function show_menu_cat_list(name, url_item){
var menu_list = $('.menu_items_list'); var menu_list = $('.menu_items_list');
@@ -663,15 +710,18 @@
var menu_cat = $('.category_list'); var menu_cat = $('.category_list');
menu_cat.empty(); menu_cat.empty();
$(".main_menu").text(name) $(".main_menu").text(name);
if (modify_order=="true" && type =="true") { cashier_type = window.location.href.indexOf("quick_service");
modify_order = window.location.href.indexOf("modify_order");
if (cashier_type != -1 && modify_order != -1) {
url_item = '../../../addorders/'+url_item; url_item = '../../../addorders/'+url_item;
}if(modify_order=="false" && type =="true"){ }
if(modify_order == -1 && cashier_type != -1){
url_item = 'addorders/'+url_item url_item = 'addorders/'+url_item
}else{ }
if (cashier_type ==-1 && modify_order == -1){
url_item = url_item; url_item = url_item;
} }
//Start Ajax //Start Ajax
$.ajax({ $.ajax({
type: "GET", type: "GET",
@@ -679,10 +729,8 @@
data: {}, data: {},
dataType: "json", dataType: "json",
success: function(data) { success: function(data) {
for(var i in data) { for(var i in data) {
if (data[i].is_available == true) { if (data[i].is_available == true) {
row = '<div class="card custom-card testimonial-card animated fadeInRight menu_category sub_click" data-id="'+ data[i].id +'">' row = '<div class="card custom-card testimonial-card animated fadeInRight menu_category sub_click" data-id="'+ data[i].id +'">'
+' <div class="card-block custom-card-block">' +' <div class="card-block custom-card-block">'
+' <p>'+ data[i].name +'<p>' +' <p>'+ data[i].name +'<p>'

View File

@@ -1,4 +1,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div id="loading_wrapper" style="display:none;">
<div id="loading"></div>
</div>
<div class="block-header"> <div class="block-header">
<!-- <h2><%= t :dashboard %></h2> --> <!-- <h2><%= t :dashboard %></h2> -->
<h2><%= t :date_time %> : <%= Time.zone.now.utc.getlocal.strftime("%Y-%m-%d %I:%M %p") %></h2> <h2><%= t :date_time %> : <%= Time.zone.now.utc.getlocal.strftime("%Y-%m-%d %I:%M %p") %></h2>
@@ -208,15 +211,24 @@
<input type="hidden" name="server_mode" value="<%=ENV["SERVER_MODE"]%>" id="server_mode"> <input type="hidden" name="server_mode" value="<%=ENV["SERVER_MODE"]%>" id="server_mode">
<script> <script>
$(function() { $(function() {
$( "#loading_wrapper").show();
$.ajax({ $.ajax({
type: "GET", type: "GET",
url: 'get_all_menu', url: 'get_all_menu',
data: {}, data: {},
success:function(result){ success:function(result){
localStorage.setItem("menus", JSON.stringify(result)); localStorage.setItem("menus", JSON.stringify(result));
var menu = localStorage.getItem("menus");
if (menu != null ) {
$( "#loading_wrapper").hide();
}
} }
}); });
$(".cashier_view").on('click', function() { $(".cashier_view").on('click', function() {
window.location.href = '/origami'; window.location.href = '/origami';
}); });

View File

@@ -1010,7 +1010,13 @@
$('#add_order').on('click', function () { $('#add_order').on('click', function () {
var dining_id = "<%= @dining.id %>"; var dining_id = "<%= @dining.id %>";
var menus = JSON.parse(localStorage.getItem("menus"));
// if (menus != null) {
// console.log("menu");
// menu_cache_append(menus);
// }else{
// $("#menu_data").removeClass("hidden");
// }
window.location.href = '/origami/addorders/' + dining_id; window.location.href = '/origami/addorders/' + dining_id;
}); });

View File

@@ -463,11 +463,10 @@
</div> </div>
</div> </div>
</div> </div>
<!-- <div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_doemal_new_order"></div>
<div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_doemal_new_order"></div>
<div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_new_order"></div> <div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_new_order"></div>
<div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_order_send_to_kitchen"></div> <div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_order_send_to_kitchen"></div>
<div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_order_ready_to_delivery"></div> <div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_order_ready_to_delivery"></div> -->
</div> </div>
<p id="ref_no" class="hidden"></p> <p id="ref_no" class="hidden"></p>
@@ -584,7 +583,7 @@
</div> </div>
</div> </div>
<!-- <div class="modal fade text-center" id="<%= @shop.shop_code ? @shop.shop_code : '' %>_doemal_new_order" tabindex="-1" role="dialog"> <div class="modal fade text-center" id="<%= @shop.shop_code ? @shop.shop_code : '' %>_doemal_new_order" tabindex="-1" role="dialog">
<div class="modal-dialog modal-md" role="document"> <div class="modal-dialog modal-md" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
@@ -598,7 +597,7 @@
<div class="modal-footer "> <div class="modal-footer ">
<div class="row p-r-20"> <div class="row p-r-20">
<div class="col-md-5"> <div class="col-md-5">
<button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue waves-effect new_order_close" data-value="<%= @shop.shop_code ? @shop.shop_code : '' %>" data-dismiss="modal">CLOSE</button> <button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue new_order_close" data-value="<%= @shop.shop_code ? @shop.shop_code : '' %>" data-dismiss="modal">CLOSE</button>
</div> </div>
</div> </div>
</div> </div>
@@ -606,7 +605,7 @@
</div> </div>
</div> </div>
<div class="modal fade text-center" id="notify_new_order" tabindex="-1" role="dialog"> <div class="modal fade text-center" id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_new_order" tabindex="-1" role="dialog">
<div class="modal-dialog modal-md" role="document"> <div class="modal-dialog modal-md" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
@@ -620,7 +619,7 @@
<div class="modal-footer "> <div class="modal-footer ">
<div class="row p-r-20"> <div class="row p-r-20">
<div class="col-md-5"> <div class="col-md-5">
<button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue waves-effect" data-dismiss="modal">CLOSE</button> <button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue notify_new_close" data-value="<%= @shop.shop_code ? @shop.shop_code : '' %>" data-dismiss="modal">CLOSE</button>
</div> </div>
</div> </div>
</div> </div>
@@ -628,7 +627,7 @@
</div> </div>
</div> </div>
<div class="modal fade text-center" id="notify_order_send_to_kitchen" tabindex="-1" role="dialog"> <div class="modal fade text-center" id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_order_send_to_kitchen" tabindex="-1" role="dialog">
<div class="modal-dialog modal-md" role="document"> <div class="modal-dialog modal-md" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
@@ -642,7 +641,7 @@
<div class="modal-footer "> <div class="modal-footer ">
<div class="row p-r-20"> <div class="row p-r-20">
<div class="col-md-5"> <div class="col-md-5">
<button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue waves-effect" data-dismiss="modal">CLOSE</button> <button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue notify_order_send_close" data-value="<%= @shop.shop_code ? @shop.shop_code : '' %>" data-dismiss="modal">CLOSE</button>
</div> </div>
</div> </div>
</div> </div>
@@ -650,7 +649,7 @@
</div> </div>
</div> </div>
<div class="modal fade text-center" id="notify_order_ready_to_delivery" tabindex="-1" role="dialog"> <div class="modal fade text-center" id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_order_ready_to_delivery" tabindex="-1" role="dialog">
<div class="modal-dialog modal-md" role="document"> <div class="modal-dialog modal-md" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
@@ -664,11 +663,11 @@
<div class="modal-footer "> <div class="modal-footer ">
<div class="row p-r-20"> <div class="row p-r-20">
<div class="col-md-5"> <div class="col-md-5">
<button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue waves-effect" data-dismiss="modal">CLOSE</button> <button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue notify_order_ready_close" data-value="<%= @shop.shop_code ? @shop.shop_code : '' %>" data-dismiss="modal">CLOSE</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> --> </div>

View File

@@ -633,33 +633,33 @@ var customer_name = "<%= @customer.name %>";
$('#pay').click(function() { $('#pay').click(function() {
sub_total = $('#sub-total').text(); sub_total = $('#sub-total').text();
if (payment_type == 'MPU' && $('.mpu').text() == 0 && sub_total != 0.0) { if (parseInt(jQuery.inArray("MPU", payment_type)) != -1 && $('.mpu').text() == 0 && sub_total != 0.0) {
swal("Oops","Please Pay with MPU Payment","warning"); swal("Oops","Please Pay with MPU Payment","warning");
}else if(payment_type == "Redeem" && $('#ppamount').text()==0 && sub_total != 0.0){ }else if(parseInt(jQuery.inArray("Redeem", payment_type)) != -1 && $('#ppamount').text()==0 && sub_total != 0.0){
swal("Oops","Please Pay with Redeem Payment","warning"); swal("Oops","Please Pay with Redeem Payment","warning");
}else if(payment_type == "VISA" && $('#visacount').text()==0 && sub_total != 0.0){ }else if(parseInt(jQuery.inArray("VISA", payment_type)) != -1 && $('#visacount').text()==0 && sub_total != 0.0){
swal("Oops","Please Pay with Visa Payment","warning"); swal("Oops","Please Pay with Visa Payment","warning");
}else if(payment_type == "JCB" && $('#jcbcount').text()==0 && sub_total != 0.0){ }else if(parseInt(jQuery.inArray("JCB", payment_type)) != -1 && $('#jcbcount').text()==0 && sub_total != 0.0){
swal("Oops","Please Pay with jcb Payment","warning"); swal("Oops","Please Pay with jcb Payment","warning");
} }
else if(payment_type == "Master" && $('#mastercount').text()==0 && sub_total != 0.0){ else if(parseInt(jQuery.inArray("Master", payment_type)) != -1 && $('#mastercount').text()==0 && sub_total != 0.0){
swal("Oops","Please Pay with Master Payment","warning"); swal("Oops","Please Pay with Master Payment","warning");
} }
else if(payment_type == "UNIONPAY" && $('#unionpaycount').text()==0 && sub_total != 0.0){ else if(payment_type == "UNIONPAY" && $('#unionpaycount').text()==0 && sub_total != 0.0){
swal("Oops","Please Pay with UNIONPAY Payment","warning"); swal("Oops","Please Pay with UNIONPAY Payment","warning");
} }
else if(payment_type == "Alipay" && $('#alipaycount').text()==0 && sub_total != 0.0){ else if(parseInt(jQuery.inArray("Alipay", payment_type)) != -1 && $('#alipaycount').text()==0 && sub_total != 0.0){
swal("Oops","Please Pay with Alipay Payment","warning"); swal("Oops","Please Pay with Alipay Payment","warning");
} }
else if(payment_type == "JUNCTIONPAY" && $('#junctionpaycount').text()==0 && sub_total != 0.0){ else if(parseInt(jQuery.inArray("JUNCTIONPAY", payment_type)) != -1 != -1 && $('#junctionpaycount').text()==0 && sub_total != 0.0){
swal("Oops","Please Pay with JUNCTIONPAY Payment","warning"); swal("Oops","Please Pay with JUNCTIONPAY Payment","warning");
} }
else if(payment_type == "Credit" && $('#credit').text()==0 && sub_total != 0.0){ else if(payment_type == "Credit" && $('#credit').text()==0 && sub_total != 0.0){
swal("Oops","Please Pay with Credit Payment","warning"); swal("Oops","Please Pay with Credit Payment","warning");
}else if(payment_type == "PAYMAL" && $('#paymalcount').text()==0 && sub_total != 0.0){ }else if(parseInt(jQuery.inArray("PAYMAL", payment_type)) != -1 && $('#paymalcount').text()==0 && sub_total != 0.0){
swal("Oops","Please Pay with Paymal Payment","warning"); swal("Oops","Please Pay with Paymal Payment","warning");
}else if(payment_type == "DINGA" && $('#dingacount').text()==0 && sub_total != 0.0){ }else if(parseInt(jQuery.inArray("DINGA", payment_type)) != -1 && $('#dingacount').text()==0 && sub_total != 0.0){
swal("Oops","Please Pay with Dinga Payment","warning"); swal("Oops","Please Pay with Dinga Payment","warning");
}else{ }else{

View File

@@ -24,7 +24,7 @@
<span style='font-size:20px;'><b><%= t :closing_balance %></b></span> <span style='font-size:20px;'><b><%= t :closing_balance %></b></span>
</div> </div>
<div class='col-md-6'> <div class='col-md-6'>
<span style='font-size:20px;'><b><input type='text' class="form-control" id='closing_balance_amount' value=''></b></span> <span style='font-size:20px;'><b><input type='number' class="form-control" id='closing_balance_amount' value='' onkeypress="return isNumberKey(event);" onkeyup="notNegative(this.value);"></b></span>
</div> </div>
</div> </div>
</div> </div>
@@ -58,6 +58,20 @@
</div> </div>
</div> </div>
<script> <script>
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
} else {
return true;
}
}
function greaterThanOne(val){
if(parseInt(val)==0) $("#closing_balance_amount").val(1);
}
var cashier_type = '<%= @cashier_type %>'; var cashier_type = '<%= @cashier_type %>';
$('#close_cashier').on('click',function(){ $('#close_cashier').on('click',function(){
var amount = $('#closing_balance_amount').val(); var amount = $('#closing_balance_amount').val();

View File

@@ -59,16 +59,18 @@
<% unless @sale_data.blank? %> <% unless @sale_data.blank? %>
<% @sale_data.each do |sale| %> <% @sale_data.each do |sale| %>
<!-- all total qty sum --> <!-- all total qty sum -->
<!--
<% if sale.status_type != "Discount" && sale.status_type != "foc" <% if sale.status_type != "Discount" && sale.status_type != "foc"
total_qty += sale.total_item total_qty += sale.total_item
end %> end %>
<% if sale.status_type == "foc" && sale.price > 0 <% if sale.status_type == "foc" && sale.price > 0
total_qty += sale.total_item total_qty += sale.total_item
end %> end %>
--> <% if sale.status_type == "Discount"
total_qty += sale.total_item*(-1)
end %>
<!-- end all total qty --> <!-- end all total qty -->
<!--
<% if sale.status_type == "foc" && sale.grand_total < 0 <% if sale.status_type == "foc" && sale.grand_total < 0
total_item_foc += sale.grand_total*(-1) total_item_foc += sale.grand_total*(-1)
end %> end %>
@@ -76,7 +78,7 @@
<% if sale.status_type == "Discount" && sale.grand_total < 0 <% if sale.status_type == "Discount" && sale.grand_total < 0
total_item_dis += sale.grand_total*(-1) total_item_dis += sale.grand_total*(-1)
end %> end %>
-->
<% if !acc_arr.include?(sale.account_id) %> <% if !acc_arr.include?(sale.account_id) %>
<tr> <tr>
<td><b><%= sale.account_name %></b></td> <td><b><%= sale.account_name %></b></td>
@@ -103,7 +105,12 @@
<% end %> <% end %>
<td><%= sale.item_code rescue '-' %></td> <td><%= sale.item_code rescue '-' %></td>
<td><%= sale.product_name rescue '-' %></td> <td><%= sale.product_name rescue '-' %></td>
<% if sale.status_type != "Discount" %>
<td><%= sale.total_item rescue '-' %></td> <td><%= sale.total_item rescue '-' %></td>
<%else%>
<td><%= sale.total_item*(-1) rescue '-' %></td>
<% end %>
<td><%= number_with_precision(sale.unit_price , precision:precision.to_i,delimiter:delimiter) rescue '-'%></td> <td><%= number_with_precision(sale.unit_price , precision:precision.to_i,delimiter:delimiter) rescue '-'%></td>
<td><%= number_with_precision(sale.grand_total , precision:precision.to_i,delimiter:delimiter) rescue '-'%></td> <td><%= number_with_precision(sale.grand_total , precision:precision.to_i,delimiter:delimiter) rescue '-'%></td>
</tr> </tr>
@@ -114,10 +121,12 @@
<% count = count + 1 %> <% count = count + 1 %>
<% sub_total += sale.grand_total %> <% sub_total += sale.grand_total %>
<% #sub_qty += sale.total_item %> <% #sub_qty += sale.total_item %>
<% if sale.status_type!="Discount" && (!sale.product_name.include? "FOC") <% if sale.status_type !="Discount" && (!sale.product_name.include? "FOC")
sub_qty += sale.total_item sub_qty += sale.total_item
end %> end %>
<% if sale.status_type =="Discount"
sub_qty += sale.total_item*(-1)
end %>
<% if count == value %> <% if count == value %>
<tr> <tr>
<td colspan="3">&nbsp;</td> <td colspan="3">&nbsp;</td>

View File

@@ -150,13 +150,13 @@
<th></th> <th></th>
<td style="text-align: right;">JCB Payment </td> <td style="text-align: right;">JCB Payment </td>
<td><%=other.master_amount.round(2) rescue 0.0 %></td> <td><%=other.master_amount.round(2) rescue 0.0 %></td>
<% @total_amount = @total_amount+other.master_amount rescue 0.0 %> <% @total_amount = @total_amount+other.jcb_amount rescue 0.0 %>
</tr> </tr>
<tr> <tr>
<th></th> <th></th>
<td style="text-align: right;">Master Payment </td> <td style="text-align: right;">Master Payment </td>
<td><%=other.jcb_amount.round(2) rescue 0.0 %></td> <td><%=other.jcb_amount.round(2) rescue 0.0 %></td>
<% @total_amount = @total_amount+other.jcb_amount rescue 0.0 %> <% @total_amount = @total_amount+other.master_amount rescue 0.0 %>
</tr> </tr>
<tr> <tr>
<th></th> <th></th>

View File

@@ -55,5 +55,5 @@ Rails.application.configure do
config.file_watcher = ActiveSupport::EventedFileUpdateChecker config.file_watcher = ActiveSupport::EventedFileUpdateChecker
# Set Cable URL # Set Cable URL
config.action_cable.url = "ws://192.168.1.196:3002/cable" # config.action_cable.url = "ws://192.168.1.196:3002/cable"
end end

View File

@@ -4,7 +4,7 @@ class CreateOrderReservations < ActiveRecord::Migration[5.1]
t.string :order_reservation_id, :limit => 16, :primary_key => true t.string :order_reservation_id, :limit => 16, :primary_key => true
t.string :order_reservation_type, :null => false t.string :order_reservation_type, :null => false
t.string :customer_id, :null => false t.string :customer_id, :null => false
t.datetime :requested_time, :null => false t.string :requested_time, :null => false
t.string :callback_url, :null => false t.string :callback_url, :null => false
t.string :transaction_ref, :null => false t.string :transaction_ref, :null => false
t.string :sale_id t.string :sale_id
@@ -21,7 +21,7 @@ class CreateOrderReservations < ActiveRecord::Migration[5.1]
t.decimal :grand_total, :precision => 10, :scale => 2, :null => false, :default => 0.00 t.decimal :grand_total, :precision => 10, :scale => 2, :null => false, :default => 0.00
t.string :status, :null => false, :default => "new" t.string :status, :null => false, :default => "new"
t.string :order_remark t.string :order_remark
t.string :reservation_remark t.string :remark
t.timestamps t.timestamps
end end
end end

BIN
public/AC-beep.mp3 Normal file

Binary file not shown.