merge master

This commit is contained in:
Yan
2018-04-05 16:10:59 +06:30
45 changed files with 671 additions and 161 deletions

View File

@@ -0,0 +1,47 @@
class Api::SurveyController < Api::ApiController
# before_action :authenticate
def index
dining_facility = DiningFacility.find(params[:id])
survey_data = Survey.find_by_dining_name(dining_facility.name)
countries = Lookup.collection_of("country")
if !countries.nil? || !survey_data.nil?
render :json => { :status => true, :data => { :countries => countries, :survey_data => survey_data} }
else
render :json => { :status => true, :error_message => "There is no data" }
end
end
def create
dining_facility = DiningFacility.find(params[:id])
cashier_zone = CashierTerminalByZone.find_by_zone_id(dining_facility.zone_id)
shift_by_terminal = ShiftSale.find_by_cashier_terminal_id_and_shift_closed_at(cashier_zone.cashier_terminal_id,nil)
if params[:survey_id]
survey = Survey.find(params[:survey_id])
else
survey = Survey.new
end
survey.dining_name = dining_facility.name
survey.shift_id = shift_by_terminal.id
survey.child = params[:child]
survey.adult = params[:adult]
survey.male = params[:male]
survey.female = params[:female]
survey.local = params[:local]
survey.created_by = current_login_employee.name
survey.total_customer = params[:total_customer]
survey.total_amount = params[:total_amount]
survey.foreigner = params[:foreigner].to_json
survey.save!
render :json => { :status => true }
end
# private
# def survey_params
# params.require(:survey).permit(:child, :adult,:male,:female,:local,:foreigner,
# :dining_name,:created_by,:total_customer,:total_amount)
# end
end

View File

@@ -7,7 +7,8 @@ class BaseOrigamiController < ActionController::Base
#before_action :check_installation
protect_from_forgery with: :exception
helper_method :shop_detail
helper_method :shop_detail, :current_token
rescue_from CanCan::AccessDenied do |exception|
flash[:warning] = exception.message
# redirect_to origami_root_path
@@ -33,5 +34,17 @@ class BaseOrigamiController < ActionController::Base
def shop_detail
@shop = Shop.first
end
#check webview
def check_mobile
status = false
authenticate_with_http_token do |token, options|
session[:session_token] = token
end
if session[:session_token] && request.user_agent =~ /android|blackberry|iphone|ipad|ipod|iemobile|mobile|webos/i
status = true
end
return status
end
end

View File

@@ -2,13 +2,23 @@ class Origami::AddordersController < BaseOrigamiController
# before_action :set_dining, only: [:detail]
def index
@tables = Table.all.active.order('zone_id asc').group("zone_id")
@rooms = Room.all.active.order('zone_id asc').group("zone_id")
@all_table = Table.all.active.order('status desc')
@all_room = Room.all.active.order('status desc')
@webview = false
if check_mobile
@webview = true
end
@tables = Table.all.active.order('zone_id asc').group("zone_id")
@rooms = Room.all.active.order('zone_id asc').group("zone_id")
@all_table = Table.all.active.order('status desc')
@all_room = Room.all.active.order('status desc')
end
def detail
@webview = false
if check_mobile
@webview = true
end
today = DateTime.now
day = Date.today.wday
@menus = Menu.all

View File

@@ -9,7 +9,6 @@ class Origami::CustomersController < BaseOrigamiController
end
def get_customer
filter = params[:filter]
type = params[:type]
@@ -47,7 +46,11 @@ class Origami::CustomersController < BaseOrigamiController
end
def add_customer
@webview = false
if check_mobile
@webview = true
end
@sale_id = params[:sale_id]
@cashier_type = params[:type]
@page = params[:page]

View File

@@ -3,6 +3,11 @@ class Origami::DiscountsController < BaseOrigamiController
#discount page show from origami index with selected order
def index
@webview = false
if check_mobile
@webview = true
end
sale_id = params[:id]
@cashier_type = params[:type]
if Sale.exists?(sale_id)

View File

@@ -3,6 +3,11 @@ class Origami::HomeController < BaseOrigamiController
before_action :set_dining, only: [:show]
def index
@webview = false
if check_mobile
@webview = true
end
@tables = Table.all.active.order('status desc')
@rooms = Room.all.active.order('status desc')
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))
@@ -14,6 +19,11 @@ class Origami::HomeController < BaseOrigamiController
# origami table detail
def show
@webview = false
if check_mobile
@webview = true
end
@tables = Table.all.active.order('status desc')
@rooms = Room.all.active.order('status desc')
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))

View File

@@ -56,19 +56,19 @@ class Origami::MovetableController < BaseOrigamiController
end
end
def moving
change_to = params[:change_to] #new
change_from = params[:change_from] #original
bookings = Booking.where('dining_facility_id=?',change_from)
def moving
change_to = params[:change_to] #new
change_from = params[:change_from] #original
bookings = Booking.where('dining_facility_id=?',change_from)
booking_array = Array.new
bookings.each do | booking |
if booking.sale_id.nil? && booking.booking_status != 'moved'
booking_array.push(booking)
end
end
booking_array = Array.new
bookings.each do | booking |
if booking.sale_id.nil? && booking.booking_status != 'moved'
booking_array.push(booking)
end
end
@get_type = Booking.update_dining_facility(booking_array,change_to,change_from)
@get_type = Booking.update_dining_facility(booking_array,change_to,change_from)
# get printer info
@from = (DiningFacility.find(change_from)).name
@@ -78,9 +78,16 @@ class Origami::MovetableController < BaseOrigamiController
@date = DateTime.now
@shop = Shop::ShopDetail
unique_code = "MoveTablePdf"
print_settings = PrintSetting.find_by_unique_code(unique_code)
printer = Printer::ReceiptPrinter.new(print_settings)
printer.print_move_table(print_settings,@to,@from ,@shop,@date,@type,@moved_by)
end
pdf_no = PrintSetting.where(:unique_code => unique_code).count
#print_settings = PrintSetting.find_by_unique_code(unique_code)
printer_array = []
printer_array = PrintSetting.where(:unique_code => unique_code)
for i in 0..pdf_no
if i != pdf_no
print_settings = printer_array[i]
printer = Printer::ReceiptPrinter.new(print_settings)
printer.print_move_table(print_settings,@to,@from ,@shop,@date,@type,@moved_by)
end
end
end
end

View File

@@ -1,5 +1,10 @@
class Origami::OrdersController < BaseOrigamiController
def show
@webview = false
if check_mobile
@webview = true
end
@tables = Table.all.active.order('status desc')
@rooms = Room.all.active.order('status desc')
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))

View File

@@ -2,6 +2,11 @@ class Origami::OtherChargesController < BaseOrigamiController
authorize_resource :class => false
def index
@webview = false
if check_mobile
@webview = true
end
sale_id = params[:sale_id]
@cashier_type = params[:type]
if Sale.exists?(sale_id)

View File

@@ -431,13 +431,17 @@ class Origami::PaymentsController < BaseOrigamiController
if(Sale.exists?(sale_id))
saleObj = Sale.find(sale_id)
#calculate cash acmount
cash = saleObj.total_amount
if saleObj.discount_type == "member_discount"
saleObj.update_attributes(rounding_adjustment: 0)
saleObj.update_attributes(grand_total: 0, rounding_adjustment: 0, amount_received: 0, amount_changed: 0)
saleObj.compute_by_sale_items(sale_id, saleObj.sale_items,0,order_source)
end
saleObj.update_attributes(rounding_adjustment: 0)
saleObj.update_attributes(grand_total: 0, rounding_adjustment: 0, amount_received: 0, amount_changed: 0)
puts "FOC"
puts saleObj.to_json
sale_payment = SalePayment.new
sale_payment.process_payment(saleObj, current_user.name, cash, "foc" ,remark)
# For Cashier by Zone

View File

@@ -16,7 +16,7 @@ class Origami::RequestBillsController < ApplicationController
bk_order = BookingOrder.find_by_order_id(order_id)
order = Order.find(order_id)
check_booking = Booking.find_by_booking_id(bk_order.booking_id)
table = DiningFacility.find(check_booking.dining_facility_id)
if check_booking.sale_id.nil?
# Create Sale if it doesn't exist
@status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee, current_user, order.source)
@@ -33,6 +33,8 @@ class Origami::RequestBillsController < ApplicationController
# Promotion Activation
Promotion.promo_activate(@sale)
#bill channel
ActionCable.server.broadcast "bill_channel",table: table
if order.source == "quick_service"
result = {:status=> @status, :data => @sale.sale_id }
render :json => result.to_json

View File

@@ -5,9 +5,18 @@ class Origami::RoomsController < BaseOrigamiController
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))
@orders = Order.where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
# @shift = ShiftSale.current_open_shift(current_user.id)
@webview = false
if check_mobile
@webview = true
end
end
def show
@webview = false
if check_mobile
@webview = true
end
@tables = Table.all.active.order('status desc')
@rooms = Room.all.active.order('status desc')
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))

View File

@@ -2,6 +2,11 @@ class Origami::SplitBillController < BaseOrigamiController
authorize_resource :class => false
def index
@webview = false
if check_mobile
@webview = true
end
dining_id = params[:dining_id]
@cashier_type = params[:type]
@table = DiningFacility.find(dining_id)

View File

@@ -1,6 +1,10 @@
class Origami::SurveysController < BaseOrigamiController
def new
@webview = false
if check_mobile
@webview = true
end
@survey = Survey.new
@id = params[:id]
@cashier_type = params[:type]

View File

@@ -3,18 +3,26 @@ class Reports::SaleitemController < BaseReportController
def index
from, to = get_date_range_from_params
shift_sale_range = Sale.get_by_shift_sale(from,to,Sale::SALE_STATUS_COMPLETED)
shift_sale_range = ''
shift = ''
if params[:shift_name].to_i != 0
shift_sale_range = Sale.get_by_shift_sale_by_item(from,to,Sale::SALE_STATUS_COMPLETED)
shift_sale = ShiftSale.find(params[:shift_name])
if to.blank?
if to.blank?
shift = ShiftSale.where('shift_started_at = ? and shift_closed_at is NULL ',shift_sale.shift_started_at)
else
shift = ShiftSale.where('shift_started_at = ? and shift_closed_at = ? ',shift_sale.shift_started_at, shift_sale.shift_closed_at)
if shift_sale.shift_closed_at.blank?
shift = ShiftSale.where('shift_started_at = ? and shift_closed_at is NULL',shift_sale.shift_started_at)
else
shift = ShiftSale.where('shift_started_at = ? and shift_closed_at = ? ',shift_sale.shift_started_at, shift_sale.shift_closed_at)
end
end
end
@type = params[:sale_type]
@sale_data, @other_charges,@discount_data , @cash_data , @card_data , @credit_data , @foc_data , @grand_total , @change_amount = Sale.get_by_shift_items(shift_sale_range,shift, from, to, Sale::SALE_STATUS_COMPLETED,@type)
@@ -54,8 +62,8 @@ class Reports::SaleitemController < BaseReportController
def show
from, to, report_type = get_date_range_from_params
@sale_data = Sale.get_by_shift_sale(from,to,Sale::SALE_STATUS_COMPLETED)
puts "aaaaaaaaaaaaaaaaaaaaaaaaaa"
@sale_data = Sale.get_by_shift_sale_by_item(from,to,Sale::SALE_STATUS_COMPLETED)
date_arr = Array.new
@sale_data.each do |sale|
@@ -68,8 +76,8 @@ class Reports::SaleitemController < BaseReportController
date_arr.push(str)
end
@totalByAccount = Hash.new {|hash, key| hash[key] = 0}
@sale_data.each {|acc| @totalByAccount[acc.account_id] += acc.grand_total}
# @totalByAccount = Hash.new {|hash, key| hash[key] = 0}
# @sale_data.each {|acc| @totalByAccount[acc.account_id] += acc.grand_total}
out = {:status => 'ok', :message => date_arr}