Merge branch 'adminbsb_material_ui'

This commit is contained in:
Aung Myo
2018-01-02 12:32:21 +06:30
7 changed files with 109 additions and 38 deletions

View File

@@ -49,7 +49,25 @@ class Api::OrdersController < Api::ApiController
def create
Rails.logger.debug "Order Source - " + params[:order_source].to_s
Rails.logger.debug "Table ID - " + params[:table_id].to_s
#for extratime
is_extra_time = false
extra_time = ''
params[:order_items].each { |i|
if i["item_instance_code"] == 'Exti60' || i["item_instance_code"] == 'Exti30'
is_extra_time = true
if i["item_instance_code"] == 'Exti30'
t = Time.now
time = 30*60*i["quantity"].to_i
extra_time = Time.at(time)
else
t = Time.now
time = 60*60*i["quantity"].to_i
extra_time = Time.at(time)
end
end
}
#end extra time
# begin
@order = Order.new
@order.source = params[:order_source]
@@ -61,6 +79,9 @@ class Api::OrdersController < Api::ApiController
@order.new_booking = true
@order.waiters = current_login_employee.name
@order.employee_name = current_login_employee.name
@order.is_extra_time = is_extra_time
@order.extra_time = extra_time
#Create Table Booking or Room Booking
if !params["booking_id"].nil?
# check booking id is already completed.

View File

@@ -62,9 +62,21 @@ class Origami::AddordersController < ApplicationController#BaseOrigamiController
def create
Rails.logger.debug "Order Source - " + params[:order_source].to_s
Rails.logger.debug "Table ID - " + params[:table_id].to_s
puts params[:order_items]
is_extra_time = false
extra_time = ''
items_arr = []
JSON.parse(params[:order_items]).each { |i|
if i["item_instance_code"] == 'Exti60' || i["item_instance_code"] == 'Exti30'
is_extra_time = true
if i["item_instance_code"] == 'Exti30'
time = 30*60*i["quantity"].to_i
extra_time = Time.at(time)
else
time = 60*60*i["quantity"].to_i
extra_time = Time.at(time)
end
end
items = {"order_item_id": i["order_item_id"],"item_instance_code": i["item_instance_code"],"quantity": i["quantity"],"options": i["options"]}
items_arr.push(items)
}
@@ -80,36 +92,34 @@ class Origami::AddordersController < ApplicationController#BaseOrigamiController
@order.new_booking = true
@order.waiters = current_login_employee.name
@order.employee_name = current_login_employee.name
@order.is_extra_time = is_extra_time
@order.extra_time = extra_time
#Create Table Booking or Room Booking
if !params["booking_id"].nil?
# check booking id is already completed.
booking = Booking.find(params[:booking_id])
if booking
if booking.dining_facility_id.to_i == params[:table_id].to_i && booking.booking_status != 'moved'
if !booking.sale_id.nil?
sale_status = check_order_with_booking(booking)
# puts "WWwwWWWWWWww"
# puts sale_status
if sale_status
return return_json_status_with_code(400, "bill requested")
# check booking id is already completed.
booking = Booking.find(params[:booking_id])
if booking
if booking.dining_facility_id.to_i == params[:table_id].to_i && booking.booking_status != 'moved'
if !booking.sale_id.nil?
sale_status = check_order_with_booking(booking)
if sale_status
return return_json_status_with_code(400, "bill requested")
end
else
@order.new_booking = false
@order.booking_id = params[:booking_id]
end
else
sale_status = check_order_with_table(params[:table_id])
if sale_status
return return_json_status_with_code(400, "bill requested")
end
end
else
@order.new_booking = false
@order.booking_id = params[:booking_id]
end
else
sale_status = check_order_with_table(params[:table_id])
# puts "OOOOOOOOO"
# puts sale_status
if sale_status
return return_json_status_with_code(400, "bill requested")
end
end
end #booking exists
end #booking exists
else
sale_status = check_order_with_table(params[:table_id])
# puts "MMMMMMMM"
# puts sale_status
if sale_status
# return false , @message = "bill requested"
return return_json_status_with_code(400, "bill requested")

View File

@@ -15,9 +15,14 @@ class Origami::SalesController < BaseOrigamiController
dining = params[:dining_id]
sale_id = params[:sale_id]
table = DiningFacility.find(dining)
existing_booking = Booking.find_by_sale_id(sale_id)
table.bookings.each do |booking|
# if !booking.checkout_at.nil?
# existing_booking.update_attributes(checkout_at: checkout_at)
# end
if booking.sale_id.nil?
booking.booking_orders.each do |booking_order|
booking.booking_status = 'moved'
order = Order.find(booking_order.order_id)
order.status = 'billed'
@@ -36,7 +41,7 @@ class Origami::SalesController < BaseOrigamiController
order.save
booking.save
end
existing_booking = Booking.find_by_sale_id(sale_id)
booking_order = BookingOrder.where('booking_id=?',booking)
booking_order.each do |bo|
bo.booking_id = existing_booking.booking_id

View File

@@ -10,7 +10,7 @@ class Order < ApplicationRecord
has_many :assigned_order_items
#internal references attributes for business logic control
attr_accessor :items, :guest, :table_id, :new_booking, :booking_type, :employee_name, :booking_id
attr_accessor :items, :guest, :table_id, :new_booking, :booking_type, :employee_name, :booking_id, :extra_time, :is_extra_time
scope :active, -> { where("date BETWEEN '#{DateTime.now.utc.end_of_day}' AND '#{DateTime.now.utc.beginning_of_day}'") }
#Main Controller method to create new order - validate all inputs and generate new order
# order_item : {
@@ -25,14 +25,33 @@ class Order < ApplicationRecord
booking = nil
if self.new_booking
booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking",
#add extra time
if self.is_extra_time && self.extra_time
booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking",
:checkin_at => Time.now.utc,:checkout_at => Time.now.utc + self.extra_time.to_i,
:checkin_by => self.employee_name,
:booking_status => "assign" })
else
booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking",
:checkin_at => Time.now.utc, :checkin_by => self.employee_name,
:booking_status => "assign" })
end
#end extra time
table = DiningFacility.find(self.table_id)
table.status = "occupied"
table.save
else
booking = Booking.find(self.booking_id)
#add extra time
if self.is_extra_time
if !booking.checkout_at.nil?
new_time = booking.checkout_at + self.extra_time.to_i
booking.update_attributes(checkout_at: new_time)
end
end
#end extra time
end
booking.save!

View File

@@ -114,7 +114,10 @@ class Sale < ApplicationRecord
order.save
booking.sale_id = self.id
booking.checkout_at = Time.now.utc.getlocal
if booking.checkout_at < Time.now.utc.getlocal
booking.checkout_at = Time.now.utc.getlocal
end
booking.checkout_by = requested_by.name
booking.save
@@ -222,8 +225,6 @@ class Sale < ApplicationRecord
sales_items.each do |item|
#compute each item and added to total
puts "item.sales_item_id ddd"
puts item.sale_item_id
subtotal_price = subtotal_price + item.price
# only calc tax when true

View File

@@ -143,7 +143,11 @@
</div>
<% elsif @status_sale == 'sale' %>
<div><strong id="order-title">INVOICE DETAILS </strong> | Table <%= @dining.name rescue "" %>
<span class="float-right">Checkin Time : <%= @booking.checkin_at.utc.getlocal.strftime("%I:%M %p") %></span>
<% if !@booking.reserved_by.nil? && %>
<span class="float-right"><%= @booking.checkin_at.utc.getlocal.strftime("%I:%M %p") %> - <%= @booking.checkout_at.utc.getlocal.strftime("%I:%M %p") %></span>
<% else %>
<span class="float-right">Checkin Time : <%= @booking.checkin_at.utc.getlocal.strftime("%I:%M %p") %></span>
<% end %>
</div>
<% else %>
<strong id="order-title">ORDER DETAILS </strong> | Table <%= @dining.name rescue "" %>