Merge branch 'master' of ssh://bitbucket.org/code2lab/sxrestaurant
This commit is contained in:
2
Gemfile
2
Gemfile
@@ -13,7 +13,7 @@ gem 'rails', '~> 5.1.0'
|
||||
gem 'mysql2', '>= 0.3.18', '< 0.5'
|
||||
|
||||
#Use PosgreSQL
|
||||
# gem 'pg'
|
||||
gem 'pg'
|
||||
|
||||
# redis server for cable
|
||||
# gem 'redis', '~> 3.0'
|
||||
|
||||
@@ -122,6 +122,7 @@ GEM
|
||||
nokogiri (1.7.2)
|
||||
mini_portile2 (~> 2.1.0)
|
||||
pdf-core (0.7.0)
|
||||
pg (0.20.0)
|
||||
prawn (2.2.2)
|
||||
pdf-core (~> 0.7.0)
|
||||
ttfunk (~> 1.5)
|
||||
@@ -256,6 +257,7 @@ DEPENDENCIES
|
||||
kaminari!
|
||||
listen (~> 3.0.5)
|
||||
mysql2 (>= 0.3.18, < 0.5)
|
||||
pg
|
||||
prawn
|
||||
prawn-table
|
||||
puma (~> 3.0)
|
||||
|
||||
@@ -25,3 +25,7 @@
|
||||
.long{
|
||||
width:100%
|
||||
}
|
||||
|
||||
.purple {
|
||||
background-color:#7a62d3;
|
||||
}
|
||||
|
||||
10
app/controllers/origami/card_payments_controller.rb
Normal file
10
app/controllers/origami/card_payments_controller.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
class Origami::CardPaymentsController < BaseOrigamiController
|
||||
|
||||
|
||||
def index
|
||||
end
|
||||
|
||||
def create
|
||||
end
|
||||
|
||||
end
|
||||
10
app/controllers/origami/credit_payments_controller.rb
Normal file
10
app/controllers/origami/credit_payments_controller.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
class Origami::CreditPaymentsController < BaseOrigamiController
|
||||
|
||||
|
||||
def index
|
||||
end
|
||||
|
||||
def create
|
||||
end
|
||||
|
||||
end
|
||||
@@ -2,13 +2,16 @@ class Origami::PaymentsController < BaseOrigamiController
|
||||
|
||||
|
||||
def index
|
||||
|
||||
end
|
||||
|
||||
def create
|
||||
#payment type
|
||||
#sale status
|
||||
#point - get [ food amount ]
|
||||
end
|
||||
|
||||
def show
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -14,7 +14,7 @@ class Origami::RequestBillsController < BaseOrigamiController
|
||||
else
|
||||
@sale_data = Sale.find_by_sale_id(check_booking.sale_id)
|
||||
@sale_items = SaleItem.where("sale_id=?",check_booking.sale_id)
|
||||
end
|
||||
end
|
||||
|
||||
unique_code="ReceiptBillPdf"
|
||||
|
||||
@@ -30,7 +30,7 @@ class Origami::RequestBillsController < BaseOrigamiController
|
||||
def show
|
||||
sale_id = params[:sale_id]
|
||||
if Sale.exists?(sale_id)
|
||||
@sale_data = Sale.find_by_id(sale_id)
|
||||
@sale_data = Sale.find_by_sale_id(sale_id)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@ class Order < ApplicationRecord
|
||||
.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.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true)
|
||||
.group("bookings.booking_id")
|
||||
.group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status")
|
||||
|
||||
end
|
||||
|
||||
@@ -243,7 +243,7 @@ class Order < ApplicationRecord
|
||||
.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.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true)
|
||||
.group("bookings.booking_id")
|
||||
.group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name")
|
||||
end
|
||||
|
||||
#Origami: Cashier : to view order type Room
|
||||
@@ -255,7 +255,7 @@ class Order < ApplicationRecord
|
||||
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
|
||||
left join order_items on order_items.order_id = orders.order_id")
|
||||
.where("dining_facilities.type=? and orders.order_type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,"dine_in",true)
|
||||
.group("orders.order_id,order_items.order_items_id,dining_facilities.name")
|
||||
.group("orders.order_id,order_items.order_items_id,dining_facilities.name,sales.receipt_no")
|
||||
|
||||
end
|
||||
|
||||
@@ -271,7 +271,7 @@ class Order < ApplicationRecord
|
||||
left join sale_orders on sale_orders.order_id = orders.order_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)
|
||||
.group("orders.order_id,order_items.order_items_id,dining_facilities.name")
|
||||
.group("orders.order_id,order_items.order_items_id,dining_facilities.name,sales.receipt_no,bookings.booking_id,sales.sale_id")
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
class Sale < ApplicationRecord
|
||||
self.primary_key = "sale_id"
|
||||
|
||||
|
||||
#primary key - need to be unique generated for multiple shops
|
||||
before_create :generate_custom_id
|
||||
|
||||
@@ -17,6 +17,7 @@ class Sale < ApplicationRecord
|
||||
scope :open_invoices, -> { where("sale_status = 'new' and receipt_date BETWEEN '#{DateTime.now.utc.end_of_day}' AND '#{DateTime.now.utc.beginning_of_day}'") }
|
||||
|
||||
def generate_invoice_from_booking(booking_id, requested_by)
|
||||
puts "get invoice from booking"
|
||||
booking = Booking.find(booking_id)
|
||||
status = false
|
||||
Rails.logger.debug "Booking -> " + booking.id.to_s
|
||||
@@ -32,6 +33,7 @@ class Sale < ApplicationRecord
|
||||
booking.sale_id = sale_id
|
||||
end
|
||||
order = booking.booking_orders.take.order
|
||||
puts "add sale order"
|
||||
link_order_sale(order.id)
|
||||
return status
|
||||
end
|
||||
@@ -68,8 +70,8 @@ class Sale < ApplicationRecord
|
||||
add_item(item)
|
||||
end
|
||||
|
||||
link_order_sale(order.id)
|
||||
|
||||
link_order_sale(order.id)
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -226,9 +228,14 @@ class Sale < ApplicationRecord
|
||||
|
||||
def link_order_sale(order_id)
|
||||
#create if it doesn't exist
|
||||
if (SaleOrder.where("sale_id = #{self.id} and order_id=#{order_id}").nil?)
|
||||
saleOrder = SaleOrder.where("sale_id=? and order_id=?", self.id, order_id).take
|
||||
|
||||
if saleOrder.nil?
|
||||
SaleOrder.create(:sale_id => self.id, :order_id => order_id)
|
||||
end
|
||||
# if (SaleOrder.where("sale_id = #{self.id} and order_id=#{order_id}").nil?)
|
||||
# SaleOrder.create(:sale_id => self.id, :order_id => order_id)
|
||||
# end
|
||||
#dosomrting here
|
||||
#puts Time.now.format(":short")
|
||||
end
|
||||
|
||||
1
app/views/origami/card_payments/index.html.erb
Normal file
1
app/views/origami/card_payments/index.html.erb
Normal file
@@ -0,0 +1 @@
|
||||
Hello Card Payment
|
||||
1
app/views/origami/credit_payments/index.html.erb
Normal file
1
app/views/origami/credit_payments/index.html.erb
Normal file
@@ -0,0 +1 @@
|
||||
hello Credit
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
<% if @booking_orders %>
|
||||
<% @booking_orders.each do |booking_order| %>
|
||||
<% if !booking_order.order_status = 'new'%>
|
||||
<% if booking_order.order_status != "new" %>
|
||||
<div style="background-color: red;color: white;" class="card" id="table-order-<%=booking_order.sale_id%>" onclick="callOrderDetails('sale_<%=booking_order.sale_id%>')">
|
||||
<div class="card-block">
|
||||
<h4 class="card-title">
|
||||
@@ -204,14 +204,17 @@
|
||||
var old_order_id = 0
|
||||
var old_table_name = ""
|
||||
var table_or_order_id = 0
|
||||
|
||||
var pay_sale_id = 0
|
||||
|
||||
function callOrderDetails(sale_order_id){
|
||||
|
||||
var order_id = 0
|
||||
var sale_id = 0
|
||||
var data_val = ""
|
||||
sale_order = sale_order_id.split("_")[0]
|
||||
|
||||
if (sale_order == 'sale') {
|
||||
order_id = sale_order_id.split("_")[1]
|
||||
sale_id = sale_order_id.split("_")[1]
|
||||
url = "origami/"+sale_order_id.split("_")[1]
|
||||
data_val = { sale_id: sale_order_id.split("_")[1]}
|
||||
|
||||
@@ -222,6 +225,7 @@ function callOrderDetails(sale_order_id){
|
||||
|
||||
}
|
||||
table_or_order_id = order_id
|
||||
pay_sale_id = sale_id
|
||||
var tbody = ""
|
||||
$("#append-table").html("")
|
||||
if (old_order_id != order_id){
|
||||
@@ -308,14 +312,15 @@ $( document ).ready(function() {
|
||||
window.location.href = '/origami/request_bills/'+ table_or_order_id
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#pay').click(function() {
|
||||
window.location.href = '/origami/sale/'+ pay_sale_id + "/payment"
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$( document ).ready(function() {
|
||||
$('#pay').click(function() {
|
||||
window.location.href = '/origami/sale/'+ 10 + "/payment"
|
||||
return false;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
<style type="text/css">
|
||||
|
||||
@@ -4,9 +4,12 @@
|
||||
<div class="card" >
|
||||
<div class="card-header">
|
||||
<div id="order-title">
|
||||
|
||||
|
||||
<span><strong>Receipt No : <%=@sale_data.receipt_no rescue ' '%></strong></span>
|
||||
<span style="margin-left: 40%"><strong>Receipt Date : <%=@sale_data.receipt_date rescue '-'%></strong></span>
|
||||
<span><strong>Table No</strong> <% if @sale_data%>- <%=@sale_data.receipt_no%><% end %></span>
|
||||
<span><strong>Sale Id</strong> </span><span id="sale_id"><% if @sale_data %><%=@sale_data.sale_id %><% end %></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-block">
|
||||
@@ -61,38 +64,38 @@
|
||||
</tr>
|
||||
</tfooter>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style='text-align:center;margin-top:20px'>
|
||||
<INPUT TYPE="Button" class='btn btn-primary' VALUE="Reprint" onClick="" style='width:120px'/>
|
||||
<INPUT TYPE="Submit" class='btn btn-primary' VALUE="CANCEL" action="origami/index" style='width:120px'/>
|
||||
<!-- <INPUT TYPE="Button" class='btn btn-primary' VALUE="Reprint" onClick="" style='width:120px'/>
|
||||
<INPUT TYPE="Submit" class='btn btn-primary' VALUE="CANCEL" action="origami/index" style='width:120px'/> -->
|
||||
</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 class="col-md-8"><strong>AMOUNT DUE</strong></div>
|
||||
<div class="col-md-4"><strong><span id="amount_due"><%= @sale_data.grand_total %></span></strong></div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="col-md-8">CASH</div>
|
||||
<div class="col-md-4">0.0</div>
|
||||
<div class="col-md-4" id="cash" >0.0</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="row" id="credit_payment">
|
||||
<div class="col-md-8">CREDIT</div>
|
||||
<div class="col-md-4">0.0</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="row" id="card_payment">
|
||||
<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 class="col-md-4"><span id='balance'><%= @sale_data.grand_total %></span></div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row">
|
||||
@@ -100,49 +103,49 @@
|
||||
<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 class="col-md-3 cashier_number" data-value="1" data-type="num">1</div>
|
||||
<div class="col-md-3 cashier_number" data-value="2" data-type="num">2</div>
|
||||
<div class="col-md-3 cashier_number" data-value="3" data-type="num">3</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-12 cashier_number long">1000</div>
|
||||
<div class="col-md-12 cashier_number long" data-value="1000" data-type="add">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 class="col-md-3 cashier_number" data-value="4" data-type="num">4</div>
|
||||
<div class="col-md-3 cashier_number" data-value="5" data-type="num">5</div>
|
||||
<div class="col-md-3 cashier_number" data-value="6" data-type="num">6</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-12 cashier_number long">5000</div>
|
||||
<div class="col-md-12 cashier_number long" data-value="5000" data-type="add">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 class="col-md-3 cashier_number" data-value="7" data-type="num">7</div>
|
||||
<div class="col-md-3 cashier_number" data-value="8" data-type="num">8</div>
|
||||
<div class="col-md-3 cashier_number" data-value="9" data-type="num">9</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-12 cashier_number long">10000</div>
|
||||
<div class="col-md-12 cashier_number long" data-value="10000" data-type="add">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 class="col-md-3 cashier_number" data-value="0" data-type="num">0</div>
|
||||
<div class="col-md-3 cashier_number" data-value="." data-type="num">.</div>
|
||||
<div class="col-md-3 cashier_number" data-value="00" data-type="num">00</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-12 cashier_number long">50000</div>
|
||||
<div class="col-md-12 cashier_number long" data-value="50000" data-type="add">50000</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
@@ -154,7 +157,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-12 cashier_number long">ENTER</div>
|
||||
<div class="col-md-12 cashier_number long purple " id="pay">PAY</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -167,13 +170,67 @@ $(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) {
|
||||
var original_value;
|
||||
original_value = $('#cash').text();
|
||||
|
||||
}
|
||||
event.handled = true;
|
||||
var input_type = $(this).attr("data-type");
|
||||
switch (input_type) {
|
||||
case 'num':
|
||||
var input_value = $(this).attr("data-value");
|
||||
if (original_value == "0.0"){
|
||||
$('#cash').text(input_value);
|
||||
update_balance();
|
||||
}else{
|
||||
$('#cash').append(input_value);
|
||||
update_balance();
|
||||
}
|
||||
break;
|
||||
|
||||
case 'add':
|
||||
var input_value = $(this).attr("data-value");
|
||||
amount = parseInt(input_value) + parseInt(original_value);
|
||||
$('#cash').text(amount);
|
||||
update_balance();
|
||||
break;
|
||||
|
||||
}
|
||||
event.handled = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
$( document ).ready(function() {
|
||||
$('#credit_payment').click(function() {
|
||||
var sale_id = $('#sale_id').text();
|
||||
window.location.href = '/origami/sale/'+ sale_id + "/payment/credit_payment"
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#card_payment').click(function() {
|
||||
var sale_id = $('#sale_id').text();
|
||||
window.location.href = '/origami/sale/'+ sale_id + "/payment/card_payment"
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#pay').click(function() {
|
||||
console.log("pay")
|
||||
if($('#amount_due').text() > 0){
|
||||
console.log("greater")
|
||||
}else{
|
||||
console.log("less")
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function update_balance(){
|
||||
var cash = $('#cash').text();
|
||||
var credit = $('#credit').text();
|
||||
var card = $('#card').text();
|
||||
var amount_due = $('#amount_due').text();
|
||||
var total = cash + credit + card
|
||||
var result = amount_due - total
|
||||
$('#balance').text(result);
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -72,8 +72,10 @@ Rails.application.routes.draw do
|
||||
resources :discounts, only: [:index,:new, :create ] #add discount type
|
||||
resources :customers, only: [:index,:new, :create ] #add customer type
|
||||
end
|
||||
resources :request_bills, only: [:show]
|
||||
# resources :request_bills, only: [:show]
|
||||
get 'sale/:sale_id/payment' => 'request_bills#show'
|
||||
get 'sale/:sale_id/payment/credit_payment' => "credit_payments#index"
|
||||
get 'sale/:sale_id/payment/card_payment' => "card_payments#index"
|
||||
end
|
||||
|
||||
#--------- Waiter/Ordering Station ------------#
|
||||
|
||||
Reference in New Issue
Block a user