merge with master

This commit is contained in:
Yan
2017-12-15 10:36:43 +06:30
30 changed files with 218 additions and 99 deletions

View File

@@ -949,7 +949,7 @@ $(function() {
$(sub_category).removeClass('hidden');
for(var i in data) {
row = '<li class="menu_category" data-id="'+data[i].id+'">'
row = '<li class="menu_category fadeInTop animated" data-id="'+data[i].id+'">'
+'<a class="nav-link" data-toggle="tab" href="" role="tab">'+ data[i].name+'</a>'
+'</li>' ;
$(sub_category).append(row);

View File

@@ -5,10 +5,15 @@ App.order = App.cable.subscriptions.create('BillChannel', {
disconnected: function() {},
received: function(data) {
$('.table_'+data.table.id).removeClass('blue');
$('.table_'+data.table.id).addClass('red');
$('.new_text_'+data.table.id).removeClass('hide')
received: function(data) {
if($('.table_'+data.table.id).hasClass('blue')){
$('.table_'+data.table.id).removeClass('blue');
$('.table_'+data.table.id).addClass('red');
}else{
$('.table_'+data.table.id).removeClass('orange');
$('.table_'+data.table.id).addClass('red');
}
$('.new_text_'+data.table.id).removeClass('hide');
}
});

View File

@@ -9,6 +9,7 @@ App.call_waiter = App.cable.subscriptions.create('CallWaiterChannel', {
table = data.table
// for Notificaiotn message
var element = "#notify-wrapper"
var placementFrom = "top";
var placementAlign = "center";
var animateEnter = "";
@@ -17,21 +18,22 @@ App.call_waiter = App.cable.subscriptions.create('CallWaiterChannel', {
var text = " Calling Waiter <br> "+table.name ;
if (text != null || colorName != null){
showNotification(colorName, text, placementFrom, placementAlign, animateEnter, animateExit);
showNotification(element, colorName, text, placementFrom, placementAlign, animateEnter, animateExit);
}
function showNotification(colorName, text, placementFrom, placementAlign, animateEnter, animateExit) {
function showNotification(element, colorName, text, placementFrom, placementAlign, animateEnter, animateExit) {
if (colorName === null || colorName === '') { colorName = 'bg-black'; }
if (animateEnter === null || animateEnter === '') { animateEnter = 'animated fadeInDown'; }
if (animateExit === null || animateExit === '') { animateExit = 'animated fadeOutUp'; }
var allowDismiss = true;
$.notify({
message: text
},
{
element: element,
type: colorName,
allow_dismiss: allowDismiss,
newest_on_top: true,
timer: 200000000000000,
placement: {
from: placementFrom,
@@ -41,8 +43,8 @@ App.call_waiter = App.cable.subscriptions.create('CallWaiterChannel', {
enter: animateEnter,
exit: animateExit
},
template: '<div data-notify="container" style="max-width: 180px !important;" class="bootstrap-notify-container alert alert-dismissible {0} ' + (allowDismiss ? "p-r-30" : "") + '" role="alert">' +
'<button type="button" aria-hidden="true" class="close float-right m-l-20 m-t--5" data-notify="dismiss" style="right: -5px;">×</button>' +
template: '<div data-notify="container" style="width:180px !important;" class="bootstrap-notify-container alert alert-dismissible {0} ' + (allowDismiss ? "p-r-30" : "") + '" role="alert">' +
'<button type="button" aria-hidden="true" class="close notify-close float-right m-l-5 m-t--5" data-notify="dismiss">×</button>' +
'<span data-notify="icon"></span> ' +
'<span data-notify="title">{1}</span> ' +
'<span data-notify="message">{2}</span>' +

View File

@@ -0,0 +1,14 @@
App.checkin = App.cable.subscriptions.create('CheckInBookingChannel', {
// App.messages = App.cable.subscriptions.create('MessagesChannel', {
connected: function() {},
disconnected: function() {},
received: function(data) {
$('.table_'+data.table.id).removeClass('green');
$('.table_'+data.table.id).addClass('blue');
$('.new_text_'+data.table.id).removeClass('hide')
}
});

View File

@@ -5,21 +5,22 @@ App.order = App.cable.subscriptions.create('CheckinChannel', {
disconnected: function() {},
received: function(data) {
if((data.table != undefined) && (data.table.length > 0)){
$.each(data.table,function(key,value){
if($('.table_'+value.table_id).hasClass('blue')){
$('.table_'+value.table_id).removeClass('blue');
$('.table_'+value.table_id).addClass('orange');
}
else if($('.table_'+value.table_id).hasClass('red')){
$('.table_'+value.table_id).removeClass('red');
$('.table_'+value.table_id).addClass('orange');
}
$('.new_text_'+value.table_id).removeClass('hide');
});
}
received: function(data) {
$.each(data.table,function(key,value){
if($('.table_'+value.table_id).hasClass('blue')){
$('.table_'+value.table_id).removeClass('blue');
$('.table_'+value.table_id).addClass('orange');
}
else if($('.table_'+value.table_id).hasClass('red')){
$('.table_'+value.table_id).removeClass('red');
$('.table_'+value.table_id).addClass('orange');
}
else {
$('.table_'+value.table_id).removeClass('green');
$('.table_'+value.table_id).addClass('orange');
}
$('.new_text_'+value.table_id).removeClass('hide');
});
}
});

View File

@@ -362,8 +362,31 @@ tr.discount-item-row:hover {
/* End Payment Page */
/*Logout Icon*/
/* Logout Icon */
i.logout_icon{
position: relative;
top: 5px;
}
}
/* End Logout Icon */
/* Notify */
#notify-wrapper {
position: absolute;
top: 55px;
left: 10px;
z-index: 9999;
opacity: 0.8;
}
[data-notify="container"] {
margin-bottom: 5px !important;
margin-left:5px !important;
position:relative !important;
top: 25% !important;
width: 100% !important;
}
/* End Notify */

View File

@@ -0,0 +1,10 @@
class CheckInBookingChannel < ApplicationCable::Channel
def subscribed
stream_from "check_in_booking_channel"
end
def unsubscribed
stop_all_streams
# Any cleanup needed when channel is unsubscribed
end
end

View File

@@ -5,8 +5,12 @@ class Api::CheckInProcessController < Api::ApiController
dining_facility = DiningFacility.find(params[:dining_id])
booking = dining_facility.get_current_checkout_booking
if !booking.nil?
DiningFacility.check_in_booking(params[:dining_id])
check_in_time = booking.checkin_at.utc.getlocal.strftime("%Y-%m-%d %H:%M")
check_out_time = booking.checkout_at.utc.getlocal.strftime("%Y-%m-%d %H:%M")
render :json => { :status => true, :check_in_time => check_in_time, :check_out_time => check_out_time }
else
render :json => { :status => false, :error_message => "No current booking!" }
@@ -18,20 +22,16 @@ class Api::CheckInProcessController < Api::ApiController
if params[:dining_id]
dining_facility = DiningFacility.find(params[:dining_id])
if dining_facility.status == "available"
dining_charge = DiningCharge.select('charge_type','charge_block')
.where('dining_facility_id = ?',params[:dining_id])
.first()
lookup_checkout_time = Lookup.collection_of("checkout_time")
checkout_at = Time.now.utc
if !dining_charge.nil?
hr = (dining_charge.charge_block.utc.strftime("%H").to_i).to_int
min = (dining_charge.charge_block.utc.strftime("%M").to_i).to_int
# if dining_charge.charge_type == 'hr'
checkout_at = checkout_at + hr.hour + min.minutes
# else
# end
if !lookup_checkout_time.nil?
if lookup_checkout_time[0][0] == 'hr'
checkout_at = checkout_at + (lookup_checkout_time[0][1]).to_i.hour
else
checkout_at = checkout_at + (lookup_checkout_time[0][1]).to_i.minutes
end
end
dining_facility.status = "occupied"

View File

@@ -23,7 +23,6 @@ class ApplicationController < ActionController::Base
end
def lookup_domain
if request.subdomain.present? && request.subdomain != "www"
from = request.subdomain.downcase + "." + request.domain.downcase
@license = cache_license(ENV["SX_PROVISION_URL"], from) # request.subdomain.downcase

View File

@@ -2,7 +2,7 @@ class BaseOrigamiController < ActionController::Base
include LoginVerification
layout "origami"
before_action :checkin_process
# before_action :checkin_process
#before_action :check_installation
protect_from_forgery with: :exception
@@ -15,7 +15,7 @@ class BaseOrigamiController < ActionController::Base
@current_user ||= Employee.find_by_token_session(session[:session_token]) if session[:session_token]
end
def checkin_process
CheckinJob.set(wait: 1.minute).perform_later()
end
# def checkin_process
# CheckinJob.set(wait: 1.minute).perform_later()
# end
end

View File

@@ -72,7 +72,8 @@ class HomeController < ApplicationController
@hourly_sales = Sale.hourly_sales(today).sum(:grand_total)
# .group_by_hour(:created_at, :time_zone => 'Asia/Rangoon',format: '%I:%p')
# .sum(:grand_total)
@employee_sales = Sale.employee_sales(today).sum('payment_amount')
@employee_sales = Sale.employee_sales(today)
.sum('(CASE WHEN sp.payment_method="cash" THEN (sp.payment_amount - sales.amount_changed) ELSE sp.payment_amount END)')
@inventories = StockJournal.inventory_balances(today).sum(:balance)
@total_sale = Sale.total_sale(today)

View File

@@ -1,20 +1,15 @@
class Origami::CheckInProcessController < BaseOrigamiController
def check_in_process
dining_charge = DiningCharge.select('charge_type','charge_block')
.where('dining_facility_id = ?',params[:dining_id])
.first()
lookup_checkout_time = Lookup.collection_of("checkout_time")
checkout_at = Time.now.utc
if !dining_charge.nil?
hr = (dining_charge.charge_block.utc.strftime("%H").to_i).to_int
min = (dining_charge.charge_block.utc.strftime("%M").to_i).to_int
# if dining_charge.charge_type == 'hr'
checkout_at = checkout_at + hr.hour + min.minutes
# else
# end
if !lookup_checkout_time.nil?
if lookup_checkout_time[0][0] == 'hr'
checkout_at = checkout_at + (lookup_checkout_time[0][1]).to_i.hour
else
checkout_at = checkout_at + (lookup_checkout_time[0][1]).to_i.minutes
end
end
@dining_facility = DiningFacility.find(params[:dining_id])
@dining_facility.status = "occupied"

View File

@@ -44,7 +44,7 @@ class Origami::PaymentsController < BaseOrigamiController
# printer = Printer::ReceiptPrinter.new(print_settings)
# printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_details, "Frt")
# printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_details, "Frt")
end
def create
@@ -264,8 +264,13 @@ class Origami::PaymentsController < BaseOrigamiController
# item_price_by_accounts = SaleItem.calculate_price_by_accounts(saleObj.sale_items)
# discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items)
<<<<<<< HEAD
# printer = Printer::ReceiptPrinter.new(print_settings)
# printer.print_receipt_bill(print_settings,cashier_terminal,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "FOC")
=======
printer = Printer::ReceiptPrinter.new(print_settings)
printer.print_receipt_bill(print_settings,cashier_terminal,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "FOC",nil)
>>>>>>> master
end
end

View File

@@ -5,6 +5,10 @@ class Origami::SalesController < BaseOrigamiController
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))
@orders = Order.all.order('date desc')
@sale = Sale.find(params[:sale_id])
@order = SaleOrder.find_by_sale_id(@sale.sale_id).order_id
@booking = BookingOrder.find_by_order_id(@order).booking_id
@table_id = Booking.find(@booking).dining_facility_id
@dining = DiningFacility.find(@table_id)
end
def add_to_existing_invoice

View File

@@ -18,7 +18,7 @@ class Reports::SaleitemController < BaseReportController
@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)
@sale_taxes = Sale.get_separate_tax(shift_sale_range,shift,from,to,nil)
puts @sale_data.to_json
@account_cate_count = Hash.new {|hash, key| hash[key] = 0}

View File

@@ -0,0 +1,9 @@
class CheckInBookingJob < ApplicationJob
queue_as :default
def perform(table)
ActionCable.server.broadcast "check_in_booking_channel",table: table
end
end

View File

@@ -1,9 +1,11 @@
class CheckinJob < ApplicationJob
queue_as :default
def perform()
def self.perform()
table = DiningFacility.get_checkin_booking
ActionCable.server.broadcast "checkin_channel",table: table
if table.length > 0
ActionCable.server.broadcast "checkin_channel",table: table
end
end

View File

@@ -78,8 +78,17 @@ class DiningFacility < ApplicationRecord
def get_checkout_booking
booking = self.get_current_checkout_booking
if booking
lookup_checkout_time = Lookup.collection_of("checkout_alert_time")
free_time_min = 0
if !lookup_checkout_time.nil?
if lookup_checkout_time[0][0] == 'min'
free_time_min = (lookup_checkout_time[0][1]).to_i
else
free_time_min = 15
end
end
now = Time.now.utc
puts now
hr = (now.strftime("%H").to_i).to_int
min = (now.strftime("%M").to_i).to_int
if !booking.checkout_at.nil?
@@ -89,7 +98,7 @@ class DiningFacility < ApplicationRecord
checkout_at_min -= min
if (checkout_at_hr < hr)
return booking
elsif (checkout_at_hr == hr && checkout_at_min <= 15)
elsif (checkout_at_hr == hr && checkout_at_min <= free_time_min)
return booking
else
return nil
@@ -104,18 +113,28 @@ class DiningFacility < ApplicationRecord
bookings = Booking.where("booking_status ='assign' and checkin_at between '#{DateTime.now.utc - 5.hours}' and '#{DateTime.now.utc}' and reserved_by is not null and checkout_by is null")
arr_booking = Array.new
if bookings
lookup_checkout_time = Lookup.collection_of("checkout_alert_time")
free_time_min = 0
if !lookup_checkout_time.nil?
if lookup_checkout_time[0][0] == 'min'
free_time_min = (lookup_checkout_time[0][1]).to_i
else
free_time_min = 15
end
end
bookings.each do |booking|
now = Time.now.utc.getlocal
now = Time.now.utc
hr = (now.strftime("%H").to_i).to_int
min = (now.strftime("%M").to_i).to_int
if !booking.checkout_at.nil?
checkout_at = booking.checkout_at.utc.getlocal
checkout_at = booking.checkout_at.utc
checkout_at_hr = (checkout_at.strftime("%H").to_i).to_int
checkout_at_min = (checkout_at.strftime("%M").to_i).to_int
checkout_at_min -= min
if (checkout_at_hr < hr)
arr_booking.push({'table_id' => booking.dining_facility_id})
elsif (checkout_at_hr == hr && checkout_at_min <= 15)
elsif (checkout_at_hr == hr && checkout_at_min <= free_time_min)
arr_booking.push({'table_id' => booking.dining_facility_id})
end
end
@@ -123,4 +142,11 @@ class DiningFacility < ApplicationRecord
end
return arr_booking
end
#send order items and send to order queue
def self.check_in_booking(table_id)
table = DiningFacility.find(table_id)
#Send to background job for processing
CheckInBookingJob.perform_later(table)
end
end

View File

@@ -984,12 +984,11 @@ end
end
def self.employee_sales(today)
query = Sale.select('(CASE WHEN (sp.payment_method="mpu" or sp.payment_method="visa" or sp.payment_method="master" or sp.payment_method="jcb") THEN "card" ELSE sp.payment_method END) as payment_name, (CASE WHEN sp.payment_method="cash" THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) ELSE SUM(sp.payment_amount) END) as payment_amount')
.joins("join employees e on e.id=sales.cashier_id")
.joins("join sale_payments sp on sp.sale_id=sales.sale_id")
.where("sales.payment_status='paid' and sales.sale_status = 'completed' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = '#{today}'")
.group('payment_method','e.name')
.order('e.name')
query = Sale.joins("JOIN employees as e on e.id=sales.cashier_id")
.joins("JOIN sale_payments as sp on sp.sale_id=sales.sale_id")
.where("sales.payment_status='paid' and sales.sale_status = 'completed' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = '#{today}'")
.group("(CASE WHEN (sp.payment_method='mpu' or sp.payment_method='visa' or sp.payment_method='master' or sp.payment_method='jcb') THEN 'card' ELSE sp.payment_method END)","e.name")
.order("e.name")
end
def self.total_sale(today)
@@ -1043,11 +1042,16 @@ end
end
def self.total_customer(today)
query = Sale.select("(CASE WHEN (c.customer_type='Dinein' or c.customer_type='Takeaway') THEN count(sales.customer_id) ELSE count(distinct sales.customer_id) END) as total_cus")
.joins("JOIN customers as c ON c.customer_id = sales.customer_id")
.where('sales.sale_status = "completed" and DATE_FORMAT(sales.receipt_date,"%Y-%m-%d") = ?',today)
.order('sales.sale_id ASC')
.first()
dinein_cnt = self.total_dinein(today)
takeaway_cnt = self.total_takeaway(today)
membership_cnt = self.total_membership(today)
total_cus = 0
if !dinein_cnt.nil? || !takeaway_cnt.nil? || !membership_cnt.nil?
total_cus = dinein_cnt.total_dinein_cus.to_int + takeaway_cnt.total_take_cus.to_int + membership_cnt.total_memb_cus.to_int
end
return total_cus
end
def self.total_dinein(today)
@@ -1067,12 +1071,12 @@ end
def self.total_membership(today)
query = Sale.select("count(distinct sales.customer_id) as total_memb_cus")
.joins("JOIN customers as c ON c.customer_id = sales.customer_id")
.where('sales.sale_status = "completed" and DATE_FORMAT(sales.receipt_date,"%Y-%m-%d") = ? and c.customer_type = "Takeaway" and c.membership_id is not null',today)
.where('sales.sale_status = "completed" and DATE_FORMAT(sales.receipt_date,"%Y-%m-%d") = ? and ((c.customer_type = "Dinein" and c.membership_id is not null) or (c.customer_type = "Takeaway" and c.membership_id is not null))',today)
.first()
end
def self.total_other_customer(today)
query = Sale.select("count(distinct sales.customer_id) as total_cus")
query = Sale.select("count(sales.customer_id) as total_cus")
.joins("JOIN customers as c ON c.customer_id = sales.customer_id")
.where('sales.sale_status = "completed" and DATE_FORMAT(sales.receipt_date,"%Y-%m-%d") = ? and c.customer_type is null and c.membership_id is null',today)
.first()
@@ -1111,8 +1115,8 @@ end
def self.total_foc_items(today)
query = Sale.joins("JOIN sale_items as a ON a.sale_id = sales.sale_id")
.where("sales.sale_status = 'completed' and a.remark='foc' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = ?",today)
.count()
.where("sales.sale_status = 'completed' and a.remark='foc' and a.product_name not like '%FOC%' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = ?",today)
.sum("a.qty")
end
private

View File

@@ -27,10 +27,14 @@ class SaleItem < ApplicationRecord
end
def self.update_existing_item(qty, item, sale_id, type, item_price, price)
# Original Item to add remark
item.remark = type
item.save
sale_item = SaleItem.new
sale_item.product_code = item.product_code
sale_item.item_instance_code = item.item_instance_code
sale_item.product_name = item.product_name + "(#{type})"
sale_item.product_name = item.product_name + " (#{type.upcase})"
sale_item.product_alt_name = item.product_alt_name
sale_item.account_id = item.account_id
sale_item.remark = type

View File

@@ -56,7 +56,7 @@
<% if current_user.role == 'administrator' || current_user.role == 'manager' %>
<div class="row">
<div class="col-xs-9 col-sm-9 col-md-9 col-lg-9">
<div class="col-xs-8 col-sm-8 col-md-8 col-lg-8">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
<div class="card">
@@ -111,7 +111,7 @@
</div>
</div>
</div>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
<% if !@summ_sale.nil? %>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
@@ -185,7 +185,7 @@
<% if !@total_customer.nil? %>
<tr>
<td><%= t("views.right_panel.detail.total") %> <%= t :customer %> : </td>
<td align="right"><%= @total_customer.total_cus %></td>
<td align="right"><%= @total_customer %></td>
</tr>
<% end %>
<% if !@total_dinein.nil? %>
@@ -254,7 +254,7 @@
<% if !@total_foc_items.nil? %>
<tr>
<td width="40px"><%= t("views.right_panel.detail.total") %> <%= t("views.btn.foc") %> <%= t("views.right_panel.detail.item") %> : </td>
<td align="right" width="60px"><%= @total_foc_items %></td>
<td align="right" width="60px"><%= @total_foc_items.to_int %></td>
</tr>
<% end %>
</table>

View File

@@ -41,6 +41,10 @@
<%= render 'layouts/right_sidebar' %>
</section>
<!-- Notify -->
<div id="notify-wrapper"></div>
<!-- Notify -->
<!-- Main Content -->
<section class="content">
<% flash.each do |type, message| %>

View File

@@ -12,7 +12,7 @@
<li class="nav-item menu_category sub_click" data-id="<%=menu.id%>">
<p class="hidden menu-id"><%= menu.id %></p>
<a class="nav-link" data-toggle="tab" href="" role="tab"> <%= menu.name%>
<ul class=" sub_category_list hidden" id="sub_category_list">
<ul class=" sub_category_list hidden fadeInTop animated" id="sub_category_list">
</ul>
</a>

View File

@@ -220,7 +220,7 @@
<input type="hidden" id="sale_id" value="<%= @sale_array[0].sale_id %>">
<%
# Can't check for discount
unless sale_item.price == 0
# unless sale_item.price == 0
count += 1
%>
<tr>
@@ -231,8 +231,7 @@
</tr>
<%
end
# end
end
end
@@ -243,7 +242,7 @@
count += 1
sub_total = sub_total + (order_item.price * order_item.qty)
unless order_item.price == 0 %>
# unless order_item.price == 0 %>
<tr>
<td><%= count %></td>
<td class='item-name'><%= order_item.item_name %></td>
@@ -252,7 +251,7 @@
</tr>
<%
end
# end
end
end
end

View File

@@ -215,7 +215,7 @@
<input type="hidden" id="sale_id" value="<%= @sale_array[0].sale_id %>">
<%
# Can't check for discount
unless sale_item.price == 0
# unless sale_item.price == 0
count += 1
%>
<tr>
@@ -227,7 +227,7 @@
<%
end
# end
end
end
@@ -238,7 +238,7 @@
count += 1
sub_total = sub_total + (order_item.price * order_item.qty)
unless order_item.price == 0 %>
# unless order_item.price == 0 %>
<tr>
<td><%= count %></td>
<td class='item-name'><%= order_item.item_name %></td>
@@ -247,7 +247,7 @@
</tr>
<%
end
# end
end
end
end

View File

@@ -109,7 +109,7 @@
<div class="col-lg-5 col-md-5 col-sm-5">
<div class="card" >
<div class="card-header">
<div><strong id="order-title">INVOICE DETAILS </strong></div>
<div><strong id="order-title">INVOICE DETAILS </strong>| Table <%= @dining.name rescue "" %></div>
</div>
<div class="card-block">
<div class="card-title row p-l-5 p-r-5">
@@ -146,7 +146,7 @@
sub_total = sub_total + sale_item.price
%>
<input type="hidden" id="sale_id" value="<%= @sale.sale_id %>">
<% unless sale_item.price <= 0 %>
<% #unless sale_item.price <= 0 %>
<tr>
<td class='item-name'><%= sale_item.product_name %></td>
<td class='item-attr'><%= sale_item.qty %></td>
@@ -154,7 +154,7 @@
</tr>
<%
end
#end
end
%>

View File

@@ -86,6 +86,6 @@ Rails.application.configure do
config.active_record.dump_schema_after_migration = false
# Action Cable Setup
config.action_cable.url = "ws://192.168.1.24:9292/cable"
# config.action_cable.url = "ws://192.168.1.24:9292/cable"
config.action_cable.allowed_request_origins = [/http:\/\/*/, /https:\/\/*/]
end

View File

@@ -10,3 +10,7 @@ dbusername: LapN+Geriht8yk866FxNiQ==
dbpassword: QtboWZ4ATE05vvYw6J+Uqw==
api_token: nGyMizHtoVEFYCjSVEFJuzkxuBJwSsH
app_token: QUdPwSakcsnuVLdfkXgGHhPMiIOcSSfaVwQyA
plan_sku: 001
renewable_date: 2018-12-14
plan_name: Community

View File

@@ -10,3 +10,6 @@ every 30.minutes do
runner "Customer.update_membership"
end
every 1.minutes do
runner "CheckinJob.perform"
end

View File

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