Merge branch 'master' of bitbucket.org:code2lab/sxrestaurant

This commit is contained in:
Aung Myo
2017-06-06 10:01:36 +06:30
41 changed files with 531 additions and 174 deletions

View File

@@ -0,0 +1,113 @@
// $(document).on('touchstart click', '.keypad', function(event){
// event.stopPropagation();
// event.preventDefault();
// if(event.handled !== true) {
//
// // Do your magic here.
// var input_value = $(this).attr("data-value");
// switch (input_value) {
//
// case 'delete':
// process_delete_payment();
// break;
//
// case 'foc':
// remove_input_action();
// $(".foc").attr("data-action","true");
// if(customerName.toString() != " "){ //if already chosen customer
// if($("#foc_reason_lists").attr("foc_reason") == ' '){
// alert("Please! Choose or Add FOC reason");
// foc_additional_form();
// }
// else{
// process_foc_payment();
// }
// }
// else{
// alert("Please! Choose or Save Customer");
// foc_additional_form();
// }
// break;
//
// case 'nett':
// remove_input_action();
// $(".nett").attr("data-action","true");
// if($(".credit_note_payment").hasClass("payment_selected")){
// if(customerName == " "){
// alert("Please! Choose or Save Customer");
// showCustomer();
// }
// else{
// $("#accept_payment_btn").attr("data-payment","credit");
// process_nett_payment();
// }
// }
// else{
// process_nett_payment();
// }
// break;
//
// case 'edit':
// process_edit_invoice();
// break;
//
// case 'cancel':
// remove_input_action();
// var status = $("#label_amountdue").attr("data-status");
// if (status != 'completed' && status != 'void'){
// $(".cancel").attr("data-action","true");
// var message = confirm("Are you sure to void? Please, add reason!");
// if (message == true) {
// $(".additional_form").hide();
// $("#void_sale_additional_form").show();
// process_cancel_payment();
// }
// }
// else{
// $(".cancel").addClass("dim");
// }
// break;
//
// case 'ent':
// amount_due = parseFloat($("#label_amountdue").attr("data-original"));
// other_amt = parseFloat($("#label_cash_amount").attr("data-value"));
// credit_amount = parseFloat($("#label_credit_note").text());
// if ($(".credit_note_payment").hasClass("payment_selected") && credit_amount > 0){
// if(customerName.toString() != " "){
// if(credit_amount > (amount_due - other_amt)){
// alert("You shouldn't exceed the amount due.");
// }
// else{
// $("#accept_payment_btn").attr("data-payment","credit");
// update_balance_due();
// }
// }
// else{
// alert("Please! Choose or Save Customer");
// }
// }
// else{
// update_balance_due();
// }
//
// break;
// case 'clear':
// process_clear_payment();
// break;
//
// default:
//
// var existing_value = $(".payment_selected span").text();
//
// if (existing_value == "0" || existing_value == "0.00") { existing_value = ""; }
// existing_value = existing_value + input_value;
// $(".payment_selected span").text(existing_value);
//
// }
//
//
// event.handled = true;
// } else {
// return false;
// }
// });

View File

@@ -7,3 +7,21 @@
// min-height: 75rem; // min-height: 75rem;
// padding-top: 4.5rem; // padding-top: 4.5rem;
// } // }
.cashier_number{
height:76px;
line-height:80px;
text-align:center;
background:#54A5AF;
float:left;
margin:2px;
font-size:20px;
color:white;
cursor:pointer;
}
.cashier_number:hover{
background:#A9F5F2;
}
.long{
width:100%
}

View File

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

View File

@@ -4,9 +4,11 @@ class Origami::HomeController < BaseOrigamiController
@booking_rooms = Order.get_booking_order_rooms() @booking_rooms = Order.get_booking_order_rooms()
@orders = Order.get_orders() @orders = Order.get_orders()
end end
def show def show
str = [] str = []
if !params[:sale_id].nil? if !params[:sale_id].nil?
@order_details = SaleItem.get_order_items_details(params[:sale_id]) @order_details = SaleItem.get_order_items_details(params[:sale_id])
@order_details.each do |ord_detail| @order_details.each do |ord_detail|

View File

@@ -1,6 +1,14 @@
class Origami::PaymentsController < BaseOrigamiController class Origami::PaymentsController < BaseOrigamiController
def index def index
end end
def create def create
end end
def show
end
end end

View File

@@ -1,7 +1,9 @@
class Origami::RequestBillsController < BaseOrigamiController class Origami::RequestBillsController < BaseOrigamiController
def show
def create
@sale = Sale.new @sale = Sale.new
booking_id = params[:id] booking_id = params[:id]
check_booking = Booking.find_by_booking_id(booking_id) check_booking = Booking.find_by_booking_id(booking_id)
if check_booking.sale_id.nil? if check_booking.sale_id.nil?
@@ -15,13 +17,21 @@ class Origami::RequestBillsController < BaseOrigamiController
end end
unique_code="ReceiptBillPdf" unique_code="ReceiptBillPdf"
print_settings=PrintSetting.find_by_unique_code(unique_code) print_settings=PrintSetting.find_by_unique_code(unique_code)
printer = Printer::ReceiptPrinter.new(print_settings) printer = Printer::ReceiptPrinter.new(print_settings)
printer.print_receipt_bill(print_settings,@sale_items,@sale,@sale_data) printer.print_receipt_bill(print_settings,@sale_items,@sale,@sale_data)
end
def show
sale_id = params[:sale_id]
if Sale.exists?(sale_id)
@sale_data = Sale.find_by_id(sale_id)
end
end end
end end

View File

@@ -63,7 +63,14 @@ class Settings::MenuCategoriesController < ApplicationController
# DELETE /settings/menu_categories/1 # DELETE /settings/menu_categories/1
# DELETE /settings/menu_categories/1.json # DELETE /settings/menu_categories/1.json
def destroy def destroy
# instances = MenuItemInstance.where("menu_item_id=?",@settings_menu_item.id)
# instances.each do |instance|
# instance.destroy
# end
# @settings_menu_item.destroy
# @settings_menu_category.destroy # @settings_menu_category.destroy
abc = MenuCategory.destroyCategory(@settings_menu_category)
respond_to do |format| respond_to do |format|
format.html { redirect_to settings_menu_categories_path, notice: 'Menu category was successfully destroyed.' } format.html { redirect_to settings_menu_categories_path, notice: 'Menu category was successfully destroyed.' }
format.json { head :no_content } format.json { head :no_content }

View File

@@ -11,18 +11,21 @@ class Settings::MenuItemInstancesController < ApplicationController
# GET /settings/menu_item_instances/1 # GET /settings/menu_item_instances/1
# GET /settings/menu_item_instances/1.json # GET /settings/menu_item_instances/1.json
def show def show
@category = MenuCategory.find(@item.menu_category_id) id = MenuItemInstance.findParentCategory(@item)
@category = MenuCategory.find(id)
end end
# GET /settings/menu_item_instances/new # GET /settings/menu_item_instances/new
def new def new
@category = MenuCategory.find(@item.menu_category_id) id = MenuItemInstance.findParentCategory(@item)
@category = MenuCategory.find(id)
@settings_menu_item_instances = MenuItemInstance.new @settings_menu_item_instances = MenuItemInstance.new
end end
# GET /settings/menu_item_instances/1/edit # GET /settings/menu_item_instances/1/edit
def edit def edit
@category = MenuCategory.find(@item.menu_category_id) id = MenuItemInstance.findParentCategory(@item)
@category = MenuCategory.find(id)
end end
# POST /settings/menu_item_instances # POST /settings/menu_item_instances
@@ -30,6 +33,7 @@ class Settings::MenuItemInstancesController < ApplicationController
def create def create
@settings_menu_item_instances = MenuItemInstance.new(settings_menu_item_instance_params) @settings_menu_item_instances = MenuItemInstance.new(settings_menu_item_instance_params)
#check if the menu item type is simple or not( not only the diff of status .. here is different routes)
if params[:simple_menu_item_id] if params[:simple_menu_item_id]
@settings_menu_item_instances.menu_item_id = params[:simple_menu_item_id] @settings_menu_item_instances.menu_item_id = params[:simple_menu_item_id]
catID = MenuItem.find(params[:simple_menu_item_id]) catID = MenuItem.find(params[:simple_menu_item_id])
@@ -38,7 +42,8 @@ class Settings::MenuItemInstancesController < ApplicationController
catID = MenuItem.find(params[:set_menu_item_id]) catID = MenuItem.find(params[:set_menu_item_id])
end end
category = MenuCategory.find(catID.menu_category_id) id = MenuItemInstance.findParentCategory(catID)
category = MenuCategory.find(id)
respond_to do |format| respond_to do |format|
if @settings_menu_item_instances.save if @settings_menu_item_instances.save
@settings_menu_item_instances.item_attributes = params[:menu_item_instance][:item_attributes].reject(&:blank?) @settings_menu_item_instances.item_attributes = params[:menu_item_instance][:item_attributes].reject(&:blank?)
@@ -55,14 +60,15 @@ class Settings::MenuItemInstancesController < ApplicationController
# PATCH/PUT /settings/menu_item_instances/1 # PATCH/PUT /settings/menu_item_instances/1
# PATCH/PUT /settings/menu_item_instances/1.json # PATCH/PUT /settings/menu_item_instances/1.json
def update def update
puts "params[:menu_item_instance][:item_attributes]" #check if the menu item type is simple or not( not only the diff of status .. here is different routes)
puts params[:menu_item_instance][:item_attributes]
if params[:simple_menu_item_id] if params[:simple_menu_item_id]
catID = MenuItem.find(params[:simple_menu_item_id]) catID = MenuItem.find(params[:simple_menu_item_id])
else else
catID = MenuItem.find(params[:set_menu_item_id]) catID = MenuItem.find(params[:set_menu_item_id])
end end
category = MenuCategory.find(catID.menu_category_id)
id = MenuItemInstance.findParentCategory(catID)
category = MenuCategory.find(id)
respond_to do |format| respond_to do |format|
if @settings_menu_item_instances.update(settings_menu_item_instance_params) if @settings_menu_item_instances.update(settings_menu_item_instance_params)
@@ -86,7 +92,13 @@ class Settings::MenuItemInstancesController < ApplicationController
else else
catID = MenuItem.find(params[:set_menu_item_id]) catID = MenuItem.find(params[:set_menu_item_id])
end end
category = MenuCategory.find(catID.menu_category_id) # check if the menu item is sub of another menu item
if catID.menu_category_id
category = MenuCategory.find(catID.menu_category_id)
else
item = MenuItem.find(catID.menu_item_id)
category = MenuCategory.find(item.menu_category_id)
end
respond_to do |format| respond_to do |format|
format.html { redirect_to settings_menu_category_simple_menu_item_path(category,catID), notice: 'Menu item instance was successfully destroyed.' } format.html { redirect_to settings_menu_category_simple_menu_item_path(category,catID), notice: 'Menu item instance was successfully destroyed.' }
format.json { head :no_content } format.json { head :no_content }

View File

@@ -55,7 +55,8 @@ class Settings::MenusController < ApplicationController
# DELETE /settings/menus/1 # DELETE /settings/menus/1
# DELETE /settings/menus/1.json # DELETE /settings/menus/1.json
def destroy def destroy
@settings_menu.destroy # @settings_menu.destroy
abc = Menu.destroyMenu(@settings_menu)
respond_to do |format| respond_to do |format|
format.html { redirect_to settings_menus_path, notice: 'Menu was successfully destroyed.' } format.html { redirect_to settings_menus_path, notice: 'Menu was successfully destroyed.' }
format.json { head :no_content } format.json { head :no_content }

View File

@@ -62,7 +62,7 @@ class Settings::SetMenuItemsController < ApplicationController
# DELETE /settings/menu_items/1 # DELETE /settings/menu_items/1
# DELETE /settings/menu_items/1.json # DELETE /settings/menu_items/1.json
def destroy def destroy
# @settings_menu_item.destroy abc = MenuItem.deleteRecursive(@settings_menu_item)
respond_to do |format| respond_to do |format|
format.html { redirect_to settings_menu_category_set_menu_items_path, notice: 'Menu item was successfully destroyed.' } format.html { redirect_to settings_menu_category_set_menu_items_path, notice: 'Menu item was successfully destroyed.' }
format.json { head :no_content } format.json { head :no_content }

View File

@@ -59,7 +59,7 @@ class Settings::SimpleMenuItemsController < ApplicationController
# DELETE /settings/menu_items/1 # DELETE /settings/menu_items/1
# DELETE /settings/menu_items/1.json # DELETE /settings/menu_items/1.json
def destroy def destroy
# @settings_menu_item.destroy abc = MenuItem.deleteRecursive(@settings_menu_item)
respond_to do |format| respond_to do |format|
format.html { redirect_to settings_menu_category_simple_menu_items_path, notice: 'Menu item was successfully destroyed.' } format.html { redirect_to settings_menu_category_simple_menu_items_path, notice: 'Menu item was successfully destroyed.' }
format.json { head :no_content } format.json { head :no_content }

View File

@@ -1,6 +1,9 @@
class AssignedOrderItem < ApplicationRecord class AssignedOrderItem < ApplicationRecord
before_create :generate_custom_id before_create :generate_custom_id
#primary key - need to be unique
self.primary_key = "assigned_order_item_id"
belongs_to :order belongs_to :order
belongs_to :order_queue_station belongs_to :order_queue_station

View File

@@ -1,6 +1,9 @@
class Booking < ApplicationRecord class Booking < ApplicationRecord
before_create :generate_custom_id self.primary_key = "booking_id"
#primary key - need to be unique #primary key - need to be unique
before_create :generate_custom_id
belongs_to :dining_facility, :optional => true belongs_to :dining_facility, :optional => true
belongs_to :sale, :optional => true belongs_to :sale, :optional => true

View File

@@ -1,6 +1,5 @@
class Customer < ApplicationRecord class Customer < ApplicationRecord
self.primary_key = "customer_id"
#self.primary_key = :customer_id
before_create :generate_custom_id before_create :generate_custom_id
has_many :orders has_many :orders

View File

@@ -22,4 +22,13 @@ class Menu < ApplicationRecord
return current_menu return current_menu
end end
def self.destroyMenu(menu)
cats = MenuCategory.where("menu_id=?",menu.id)
cats.each do |cat|
abc = MenuCategory.destroyCategory(cat)
end
menu.destroy
return false
end
end end

View File

@@ -8,5 +8,29 @@ class MenuCategory < ApplicationRecord
default_scope { order('order_by asc') } default_scope { order('order_by asc') }
def self.destroyCategory(menu_category)
# find the sub menu item of current item
sub_menu_cat = MenuCategory.where("menu_category_id=?",menu_category.id)
if sub_menu_cat.length != 0
sub_menu_cat.each do |sub|
if destroyCategory(sub)
end
end
# find the items of current menu item
items = MenuItem.where("menu_category_id=?",menu_category.id)
items.each do |item|
abc = MenuItem.deleteRecursive(item)
end
menu_category.destroy
return true
else
items = MenuItem.where("menu_category_id=?",menu_category.id)
items.each do |item|
abc = MenuItem.deleteRecursive(item)
end
menu_category.destroy
return false
end
end
end end

View File

@@ -1,7 +1,6 @@
class MenuItem < ApplicationRecord class MenuItem < ApplicationRecord
#belongs_to :account #belongs_to :account
belongs_to :menu_category, :optional => true belongs_to :menu_category, :optional => true
has_many :menu_item_instances has_many :menu_item_instances
belongs_to :parent, :class_name => "MenuItem", foreign_key: "menu_item_id", :optional => true belongs_to :parent, :class_name => "MenuItem", foreign_key: "menu_item_id", :optional => true
@@ -40,4 +39,31 @@ class MenuItem < ApplicationRecord
return nil return nil
end end
def self.deleteRecursive(menu_item)
# find the sub menu item of current item
sub_menu_items = MenuItem.where("menu_item_id=?",menu_item.id)
if sub_menu_items.length != 0
sub_menu_items.each do |subitem|
if deleteRecursive(subitem)
end
end
# find the instances of current menu item
instances = MenuItemInstance.where("menu_item_id=?",menu_item.id)
instances.each do |instance|
instance.destroy
end
menu_item.destroy
return true
else
instances = MenuItemInstance.where("menu_item_id=?",menu_item.id)
instances.each do |instance|
instance.destroy
end
menu_item.destroy
return false
end
end
end end

View File

@@ -1,4 +1,12 @@
class MenuItemInstance < ApplicationRecord class MenuItemInstance < ApplicationRecord
belongs_to :menu_item belongs_to :menu_item
def self.findParentCategory(item)
if item.menu_category_id
return item.menu_category_id
else
parentitem = MenuItem.find(item.menu_item_id)
findParentCategory(parentitem)
end
end
end end

View File

@@ -1,4 +1,6 @@
class Order < ApplicationRecord class Order < ApplicationRecord
self.primary_key = "order_id"
#primary key - need to be unique #primary key - need to be unique
before_create :generate_custom_id before_create :generate_custom_id
before_create :set_order_date before_create :set_order_date
@@ -208,6 +210,18 @@ class Order < ApplicationRecord
#Origami: Cashier : to view order type Table #Origami: Cashier : to view order type Table
def self.get_order_table
order_table = Order.select("orders.id as order_id,sum(order_items.qty*order_items.price) as total_price,
order_items.id as order_items_id,dining_facilities.name as table_name")
.joins("left join booking_orders on booking_orders.order_id = orders.id
left join bookings on bookings.id = booking_orders.id
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
left join order_items on order_items.order_id = orders.id")
.where("dining_facilities.type=? and orders.order_type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,"dine_in",true)
.group("orders.id, order_items.id,dining_facilities.name")
def self.get_booking_order_table def self.get_booking_order_table
booking_orders = Booking.select("sales.receipt_no,orders.status as order_status, booking_orders = Booking.select("sales.receipt_no,orders.status as order_status,
bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name") bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name")
@@ -256,16 +270,9 @@ class Order < ApplicationRecord
left join sale_orders on sale_orders.order_id = orders.order_id left join sale_orders on sale_orders.order_id = orders.order_id
left join sales on sales.sale_id = sale_orders.sale_id") left join sales on sales.sale_id = sale_orders.sale_id")
.where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to) .where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to)
.group("orders.order_id")
# Booking.select("sales.receipt_no,orders.status as order_status,bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name") .group("orders.id,order_items.id,dining_facilities.name")
# .joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id")
# .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id")
# .joins("left join orders on orders.order_id = booking_orders.order_id")
# .joins("left join sale_orders on sale_orders.order_id = orders.order_id")
# .joins("left join sales on sales.sale_id = sale_orders.sale_id")
# .where("booking_orders.order_id IS NOT NULL and dining_facilities.is_active=? and orders.date between ? and ?",true,from,to)
# .group("orders.order_id")
end end

View File

@@ -1,4 +1,6 @@
class OrderItem < ApplicationRecord class OrderItem < ApplicationRecord
self.primary_key = "order_items_id"
#primary key - need to be unique #primary key - need to be unique
before_create :generate_custom_id before_create :generate_custom_id

View File

@@ -1,6 +1,9 @@
class Sale < ApplicationRecord class Sale < ApplicationRecord
self.primary_key = "sale_id"
#primary key - need to be unique generated for multiple shops #primary key - need to be unique generated for multiple shops
before_create :generate_custom_id before_create :generate_custom_id
#before_create :generate_receipt_no #before_create :generate_receipt_no
belongs_to :cashier, :optional => true belongs_to :cashier, :optional => true
belongs_to :customer, :optional => true belongs_to :customer, :optional => true
@@ -28,7 +31,8 @@ class Sale < ApplicationRecord
end end
booking.sale_id = sale_id booking.sale_id = sale_id
end end
order = booking.booking_orders.take.order
link_order_sale(order.id)
return status return status
end end
end end

View File

@@ -1,5 +1,8 @@
class SaleAudit < ApplicationRecord class SaleAudit < ApplicationRecord
#primary key - need to be unique generated for multiple shops self.primary_key = "sale_audit_id"
#primary key - need to be unique generated for SaleAudit
before_create :generate_custom_id
belongs_to :sale belongs_to :sale

View File

@@ -1,4 +1,6 @@
class SaleItem < ApplicationRecord class SaleItem < ApplicationRecord
self.primary_key = "sale_item_id"
#primary key - need to be unique generated for multiple shops #primary key - need to be unique generated for multiple shops
before_create :generate_custom_id before_create :generate_custom_id

View File

@@ -1,5 +1,7 @@
class SaleOrder < ApplicationRecord class SaleOrder < ApplicationRecord
#primary key - need to be unique generated for multiple shops self.primary_key = "sale_order_id"
#primary key - need to be unique generated for multiple shops
before_create :generate_custom_id before_create :generate_custom_id
belongs_to :sale belongs_to :sale

View File

@@ -1,4 +1,6 @@
class SalePayment < ApplicationRecord class SalePayment < ApplicationRecord
self.primary_key = "sale_payment_id"
#primary key - need to be unique generated for multiple shops #primary key - need to be unique generated for multiple shops
before_create :generate_custom_id before_create :generate_custom_id

View File

@@ -1,5 +1,7 @@
class SaleTax < ApplicationRecord class SaleTax < ApplicationRecord
#primary key - need to be unique generated for multiple shops self.primary_key = "sale_tax_id"
#primary key - need to be unique generated for multiple shops
before_create :generate_custom_id before_create :generate_custom_id
belongs_to :sale belongs_to :sale

View File

@@ -22,6 +22,7 @@
<div class="tab-pane active" id="tables" role="tabpanel"> <div class="tab-pane active" id="tables" role="tabpanel">
<!--- Booking Items --> <!--- Booking Items -->
<div class="card-columns" style="padding-top:10px"> <div class="card-columns" style="padding-top:10px">
<% if @booking_orders %> <% if @booking_orders %>
<% @booking_orders.each do |booking_order| %> <% @booking_orders.each do |booking_order| %>
<% if !booking_order.order_status = 'new'%> <% if !booking_order.order_status = 'new'%>
@@ -50,6 +51,7 @@
<div class="tab-pane" id="rooms" role="tabpanel" style="min-height:670px; max-height:670px; overflow-y:scroll"> <div class="tab-pane" id="rooms" role="tabpanel" style="min-height:670px; max-height:670px; overflow-y:scroll">
<!--- Booking Items --> <!--- Booking Items -->
<div class="card-columns" style="padding-top:10px"> <div class="card-columns" style="padding-top:10px">
<% if @booking_rooms %> <% if @booking_rooms %>
<% @booking_rooms.each do |booking_room| %> <% @booking_rooms.each do |booking_room| %>
<% if !booking_room.order_status = 'new'%> <% if !booking_room.order_status = 'new'%>
@@ -82,6 +84,7 @@
<!--- Booking Items --> <!--- Booking Items -->
<div class="card-columns" style="padding-top:10px"> <div class="card-columns" style="padding-top:10px">
<% if @orders %> <% if @orders %>
<% @orders.each do |order| %> <% @orders.each do |order| %>
<% if !order.order_status = 'new'%> <% if !order.order_status = 'new'%>
@@ -193,7 +196,7 @@
<!-- Cashier Buttons --> <!-- Cashier Buttons -->
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Discount</button> <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Discount</button>
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Tax</button> <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Tax</button>
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Pay</button> <button type="button" id="pay" class="btn btn-primary btn-lg btn-block" >Pay</button>
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Re.Print</button> <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Re.Print</button>
</div> </div>
</div> </div>
@@ -202,6 +205,7 @@
var old_table_name = "" var old_table_name = ""
var table_or_order_id = 0 var table_or_order_id = 0
function callOrderDetails(sale_order_id){ function callOrderDetails(sale_order_id){
var order_id = 0 var order_id = 0
var data_val = "" var data_val = ""
@@ -225,6 +229,7 @@ function callOrderDetails(sale_order_id){
$("#table-order-"+order_id).addClass("selected_color") $("#table-order-"+order_id).addClass("selected_color")
old_order_id = order_id old_order_id = order_id
} }
$("#order-detail-header").html("") $("#order-detail-header").html("")
$("#order-detail-header").append("Table Name : "+document.getElementById("table-name-"+order_id).innerHTML) $("#order-detail-header").append("Table Name : "+document.getElementById("table-name-"+order_id).innerHTML)
$("#sub-total").html("") $("#sub-total").html("")
@@ -249,6 +254,7 @@ function callOrderDetails(sale_order_id){
+'<td style="width:20%; text-align:right"><span id="item-total-price">'+(parse_data.qty*parse_data.price)+'</span></td>' +'<td style="width:20%; text-align:right"><span id="item-total-price">'+(parse_data.qty*parse_data.price)+'</span></td>'
+'</tr>>' +'</tr>>'
tbody += row tbody += row
discount_amount = result[i].discount_amount; discount_amount = result[i].discount_amount;
tax_amount = result[i].tax_amount; tax_amount = result[i].tax_amount;
@@ -257,10 +263,10 @@ function callOrderDetails(sale_order_id){
receipt_no = result[i].receipt_no; receipt_no = result[i].receipt_no;
cashier_name = result[i].cashier_name; cashier_name = result[i].cashier_name;
receipt_date = result[i].receipt_date; receipt_date = result[i].receipt_date;
} }
row = "</tbody>" row = "</tbody>"
$("#append-table").append(tbody) $("#append-table").append(tbody)
$("#sub-total").append((sub_total)+"<br/>") $("#sub-total").append((sub_total)+"<br/>")
if (discount_amount > 0 ) { if (discount_amount > 0 ) {
@@ -299,10 +305,18 @@ function callOrderDetails(sale_order_id){
$( document ).ready(function() { $( document ).ready(function() {
$('#request_bills').click(function() { $('#request_bills').click(function() {
window.location.href = '/origami/request_bills/'+table_or_order_id; window.location.href = '/origami/request_bills/'+ table_or_order_id
return false; return false;
}); });
}); });
$( document ).ready(function() {
$('#pay').click(function() {
window.location.href = '/origami/sale/'+ 10 + "/payment"
return false;
});
});
</script> </script>
<style type="text/css"> <style type="text/css">
.selected_color{ .selected_color{

View File

@@ -1,3 +1,4 @@
<div class="row"> <div class="row">
<div class="col-lg-5 col-md-5 col-sm-3"> <div class="col-lg-5 col-md-5 col-sm-3">
<div class="card" > <div class="card" >
@@ -24,8 +25,7 @@
<table class="table" id="append-table"> <table class="table" id="append-table">
<tbody> <tbody>
<% sub_total = 0 %> <% sub_total = 0 %>
<% if @sale_items %> <% @sale_data.sale_items.each do |sale_item| %>
<% @sale_items.each do |sale_item| %>
<% sub_total += sale_item.qty*sale_item.unit_price%> <% sub_total += sale_item.qty*sale_item.unit_price%>
<tr> <tr>
<td style="width:60%; text-align:left"> <td style="width:60%; text-align:left">
@@ -39,7 +39,6 @@
</td> </td>
</tr> </tr>
<%end %> <%end %>
<%end %>
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -70,4 +69,111 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-lg-5 col-md-5 col-sm-3">
<div class="row">
<div class="col-md-8">AMOUNT DUE</div>
<div class="col-md-4"><%= @sale_data.grand_total %></div>
</div>
<hr>
<div class="row">
<div class="col-md-8">CASH</div>
<div class="col-md-4">0.0</div>
</div>
<hr>
<div class="row">
<div class="col-md-8">CREDIT</div>
<div class="col-md-4">0.0</div>
</div>
<hr>
<div class="row">
<div class="col-md-8">CARD</div>
<div class="col-md-4">0.0</div>
</div>
<hr>
<div class="row">
<div class="col-md-8">BALANCE</div>
<div class="col-md-4">0.0</div>
</div>
<hr>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="1">1</div>
<div class="col-md-3 cashier_number">2</div>
<div class="col-md-3 cashier_number">3</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long">1000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number">4</div>
<div class="col-md-3 cashier_number">5</div>
<div class="col-md-3 cashier_number">6</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long">5000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number">7</div>
<div class="col-md-3 cashier_number">8</div>
<div class="col-md-3 cashier_number">9</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long">10000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number">0</div>
<div class="col-md-3 cashier_number">.</div>
<div class="col-md-3 cashier_number">00</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long">50000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number"></div>
<div class="col-md-3 cashier_number">DEL</div>
<div class="col-md-3 cashier_number">CLR</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long">ENTER</div>
</div>
</div>
</div>
</div>
</div> </div>
</div>
<script>
$(document).on('click', '.cashier_number', function(event){
event.stopPropagation();
event.preventDefault();
if(event.handled !== true) {
var input_value = $(this).attr("data-value");
switch (input_value) {
}
event.handled = true;
} else {
return false;
}
});
</script>

View File

@@ -33,7 +33,7 @@
<td><%= settings_menu_category.alt_name rescue ''%></td> <td><%= settings_menu_category.alt_name rescue ''%></td>
<td><%= settings_menu_category.order_by rescue ''%></td> <td><%= settings_menu_category.order_by rescue ''%></td>
<td><%= settings_menu_category.parent.name rescue ''%></td> <td><%= settings_menu_category.parent.name rescue ''%></td>
<td><%= link_to 'Edit', edit_settings_menu_category_path(settings_menu_category) %> | <%= link_to 'Destroy', settings_menu_categories_path(settings_menu_category), method: :delete, data: { confirm: 'Are you sure?' } %></td></td> <td><%= link_to 'Edit', edit_settings_menu_category_path(settings_menu_category) %> | <%= link_to 'Destroy', settings_menu_category_path(settings_menu_category), method: :delete, data: { confirm: 'Are you sure?' } %></td></td>
</tr> </tr>
<% end %> <% end %>

View File

@@ -20,3 +20,5 @@
<%= f.button :submit %> <%= f.button :submit %>
</div> </div>
<% end %> <% end %>

View File

@@ -10,8 +10,7 @@
<ul class="breadcrumb"> <ul class="breadcrumb">
<li><a href="<%= root_path %>">Home</a></li> <li><a href="<%= root_path %>">Home</a></li>
<li><a href="<%= settings_menu_category_simple_menu_item_path(@category,@item) %>">Menu Category</a></li> <li><a href="<%= settings_menu_category_simple_menu_item_path(@category,@item) %>">Menu Item</a></li>
<li>Menu Item</li>
<li>New Menu Item Instance</li> <li>New Menu Item Instance</li>
</ul> </ul>
</div> </div>

View File

@@ -3,8 +3,7 @@
<ul class="breadcrumb"> <ul class="breadcrumb">
<li><a href="<%= root_path %>">Home</a></li> <li><a href="<%= root_path %>">Home</a></li>
<li><a href="<%= settings_menu_category_simple_menu_item_path(@category,@item) %>">Menu Category</a></li> <li><a href="<%= settings_menu_category_simple_menu_item_path(@category,@item) %>">Menu Item</a></li>
<li>Menu Item</li>
<li>Menu Item Instances</li> <li>Menu Item Instances</li>
<span style="float: right"> <span style="float: right">
@@ -52,50 +51,4 @@
</div> </div>
</div> </div>
<br>
<div class="card">
<div class="card-block">
<h4 class="card-title">Sub Menu Items </h4>
<table class="table">
<thead>
<tr>
<th>Item code</th>
<th>Name</th>
<th>Alt name</th>
<th>Type</th>
<th>Parent Item</th>
<th>Created by</th>
<th>Created at</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @sub_menu.each do |settings_menu_item| %>
<tr>
<td><%= settings_menu_item.item_code %></td>
<td><%= settings_menu_item.name %></td>
<td><%= settings_menu_item.alt_name %></td>
<td><%= settings_menu_item.type %></td>
<td><%= settings_menu_item.parent.name rescue "-" %></td>
<td><%= settings_menu_item.created_by %></td>
<td><%=l settings_menu_item.created_at, :format => :short %></td>
<% if settings_menu_item.type == "SimpleMenuItem" %>
<td><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %></td>
<td><%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@category, settings_menu_item) %></td>
<td><%= link_to 'Destroy', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
<% else %>
<td><%= link_to 'Show', settings_menu_category_set_menu_item_path(@category, settings_menu_item ) %></td>
<td><%= link_to 'Edit', edit_settings_menu_category_set_menu_item_path(@category, settings_menu_item) %></td>
<td><%= link_to 'Destroy', settings_menu_category_set_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
<% end %>
</tr>
<% end %>
</tbody>
</table>
</div>
</div>
<%= paginate @sub_menu, param_name: :page, :outer_window => 3 %>
</div> </div>

View File

@@ -37,6 +37,7 @@
<!-- <td><%=l settings_menu.created_at, format: :short %></td> --> <!-- <td><%=l settings_menu.created_at, format: :short %></td> -->
<td><%= settings_menu.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td> <td><%= settings_menu.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
<td><%= link_to 'Edit', edit_settings_menu_path(settings_menu) %></td> <td><%= link_to 'Edit', edit_settings_menu_path(settings_menu) %></td>
<td><%= link_to 'Destroy', settings_menu_path(settings_menu), method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr> </tr>
<% end %> <% end %>
</tbody> </tbody>

View File

@@ -73,6 +73,7 @@ Rails.application.routes.draw do
resources :customers, only: [:index,:new, :create ] #add customer type resources :customers, only: [:index,:new, :create ] #add customer type
end end
resources :request_bills, only: [:show] resources :request_bills, only: [:show]
get 'sale/:sale_id/payment' => 'request_bills#show'
end end
#--------- Waiter/Ordering Station ------------# #--------- Waiter/Ordering Station ------------#
@@ -113,7 +114,7 @@ Rails.application.routes.draw do
#menu #menu
resources :menus do resources :menus do
#menu_categories #menu_categories
resources :menu_categories, only: [:new, :create, :edit] resources :menu_categories, only: [:new, :create, :edit,:delete]
end end
#accounts #accounts

View File

@@ -1,7 +1,7 @@
class CreateAssignedOrderItems < ActiveRecord::Migration[5.0] class CreateAssignedOrderItems < ActiveRecord::Migration[5.0]
def change def change
create_table :assigned_order_items, :id => false, :primary_key => :assigned_order_item_id do |t| create_table :assigned_order_items, :id => false do |t|
t.string :assigned_order_item_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing t.string :assigned_order_item_id, :limit => 16, :primary_key => true #custom primary key - to ensure consistence for cloud syncing
t.string :item_code, :null => false, :index => true t.string :item_code, :null => false, :index => true
t.references :order_queue_station, foreign_key: true t.references :order_queue_station, foreign_key: true
t.string :order_id, foreign_key: true, :limit => 16 t.string :order_id, foreign_key: true, :limit => 16

View File

@@ -133,3 +133,7 @@ zone_queue_station = OrderQueueProcessByZone.create({order_queue_station: zone_o
#Create Adminstrator employee #Create Adminstrator employee
admin_employee = Employee.create({name: "Administrator", role: "Administrator", password: "99999", emp_id:"999", created_by: "SYSTEM DEFAULT"}) admin_employee = Employee.create({name: "Administrator", role: "Administrator", password: "99999", emp_id:"999", created_by: "SYSTEM DEFAULT"})
#Account for Menu Item Type (eg: Food, Beverage)
food = Account.create({title: "Food", account_type: "0"})
beverage = Account.create({title: "Beverage", account_type: "1"})

View File

@@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe PrintSetting, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

View File

@@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe PrintSetting, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end