modify mobile order page

This commit is contained in:
Zin Moe
2020-02-25 17:02:22 +06:30
parent 300779402d
commit b1c5495d95
6 changed files with 144 additions and 89 deletions

View File

@@ -24,7 +24,6 @@ $(document).ready(function() {
});
$('#order-detail-slimscroll').slimScroll({
// height: '250px',
height: $('#order-detail-slimscroll').attr('data-height'),
// height: height-$('#order-detail-slimscroll').attr('data-height'),
size: '5px',

View File

@@ -43,7 +43,6 @@ class Foodcourt::FoodCourtController < ApplicationController
end
end
@app_order_new_count = Booking.select("bookings.*,customers.*")
.joins("JOIN dining_facilities ON dining_facilities.id=bookings.dining_facility_id")
.joins(" JOIN sales ON bookings.sale_id=sales.sale_id")
.joins(" JOIN booking_orders ON booking_orders.booking_id=bookings.booking_id")
.joins("JOIN orders ON orders.order_id=booking_orders.order_id")

View File

@@ -54,9 +54,11 @@ class Foodcourt::OrdersController < BaseFoodcourtController
end
end
def app_orders
# @pending_orders = Sale.pending_order('food_court')
# @completed = Sale.completed_sale('food_court')
if !params[:booking_id].nil? && !params[:booking_id].blank?
@booking = Booking.select("orders.*,bookings.*,customers.*")
.joins("JOIN dining_facilities ON dining_facilities.id=bookings.dining_facility_id")
.joins("JOIN booking_orders ON booking_orders.booking_id=bookings.booking_id")
.joins("JOIN orders ON orders.order_id=booking_orders.order_id")
.joins("JOIN customers ON orders.customer_id=customers.customer_id")
@@ -66,15 +68,11 @@ class Foodcourt::OrdersController < BaseFoodcourtController
@order_id =@booking.order_id
@sale_data = Sale.find_by_sale_id(@booking.sale_id)
end
@bookings = Booking.select("bookings.*,customers.*")
.joins("JOIN dining_facilities ON dining_facilities.id=bookings.dining_facility_id")
.joins(" JOIN sales ON bookings.sale_id=sales.sale_id")
.joins(" JOIN booking_orders ON booking_orders.booking_id=bookings.booking_id")
.joins("JOIN orders ON orders.order_id=booking_orders.order_id")
.joins("JOIN order_items ON orders.order_id=order_items.order_id")
.joins("JOIN customers ON orders.customer_id=customers.customer_id")
.where("sales.sale_status =? and sales.payment_status =? and orders.source='app' and DATE(bookings.created_at)=?",'completed','paid',Date.today).order("bookings.created_at desc").uniq
@completed, @bookings = Sale.get_mobile_orders
end
def completed
customer =Customer.find_by_customer_id(params[:customer_id])
phone_number =customer.contact_no

View File

@@ -667,6 +667,28 @@ class Sale < ApplicationRecord
end
def self.get_mobile_orders
@bookings = Booking.select("bookings.*,customers.*")
.joins(" JOIN sales ON bookings.sale_id=sales.sale_id")
.joins(" JOIN booking_orders ON booking_orders.booking_id=bookings.booking_id")
.joins("JOIN orders ON orders.order_id=booking_orders.order_id")
.joins("JOIN order_items ON orders.order_id=order_items.order_id")
.joins("JOIN customers ON orders.customer_id=customers.customer_id")
.where("sales.sale_status =? and sales.payment_status =? and orders.source='app' and DATE(bookings.created_at)=?",'completed','paid', Date.today)
.order("bookings.created_at desc").uniq
@competed = []
@assigns = []
@bookings.each do |b|
if b.booking_status == 'completed'
@competed << b
else
@assigns << b
end
end
return @competed, @assigns
end
#Generate new Receipt No when it is not assigned
def generate_receipt_no
#shop_code and client_code

View File

@@ -165,7 +165,7 @@
</div>
<div class="card-block">
<div class="card-text" id="order-detail-slimscroll" data-height="140">
<div class="card-text" id="order-detail-slimscroll" data-height="350">
<table class="table table-striped summary-items" id="order-items-table" >
<thead>
<tr>

View File

@@ -7,68 +7,103 @@
}
</style>
<%= javascript_include_tag 'custom', 'data-turbolinks-track': 'reload' %>
<% if @booking.nil?%>
<div class="page-header">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="<%= foodcourt_food_court_path %>">Foodcourt</a></li>
<li class="breadcrumb-item active">Mobile Orders</li>
<span class="float-right">
<%= link_to 'Back', foodcourt_food_court_path %>
</span>
</ol>
</div>
<% end %>
<!-- Nav tabs -->
<ul class="nav nav-tabs tab-col-teal" role="tablist">
<li class="nav-item">
<a class="nav-link <%= 'active' if params[:active].blank? %>" data-toggle="tab" href="#mobile_orders" role="tab">Mobile Orders</a>
</li>
<li class="nav-item">
<a class="nav-link <%= params[:active] ? 'active' : '' %>" data-toggle="tab" href="#complete" role="tab"><%= t :competed %></a>
</li>
</ul>
<!-- Nav tabs - End -->
<div class="container-fluid " style="padding:0px 3px 0px 3px;margin-top:20px">
<div id="oqs_loading_wrapper" style="display:none;">
<div id="oqs_loading"></div>
</div>
<div class="row clearfix">
<div class="row m-t--10">
<% if !@booking.nil?%>
<div class="col-md-8 col-lg-8 col-sm-12">
<div class="col-md-8 col-lg-8 col-sm-12 float-left">
<% else %>
<div class="col-md-12 col-lg-12 col-sm-12">
<% end %>
<div id="custom-slimscroll">
<div class="card-columns">
<% bk_color ='' %>
<% @bookings.each do |bk|
bk_status ='completed'
if bk.booking_status =='assign'
bk_status ='new'
end
if !@booking.nil?
if bk.booking_id == @booking.booking_id
bk_color ='bg-red'
<div class="tab-content" id="custom-slimscroll">
<!-- Panel 0 - Mobile Orders -->
<div class="tab-pane <%= 'active' if params[:active].blank? %>" id='mobile_orders' role='tabpanel'>
<div id="custom-slimscroll">
<div class="card-columns">
<% bk_color ='' %>
<% @bookings.each do |bk|
bk_status ='new'
if !@booking.nil?
if bk.booking_id == @booking.booking_id
bk_color ='bg-secondary'
else
bk_color =bk.booking_status
end
else
bk_color =bk.booking_status
end
else
bk_color =bk.booking_status
end %>
<%= link_to foodcourt_app_order_by_booking_path(booking_id:bk.booking_id) do %>
<div class="card <%= bk_color %> text-white" data-id ="<%= bk.booking_id %>">
<div class="card-block">
Cus Ph :<%= bk.contact_no %><span style="font-size:12px;float:right;line-height:inherit;">Order Time :<%= bk.checkin_at.utc.getlocal.strftime("%I:%M %p") %></span><br>
Order No :<%= bk.orders[0].order_id %><span style="font-size:12px;float:right;line-height:inherit;"><%= bk_status %></span> </div>
</div>
end %>
<%= link_to foodcourt_app_order_by_booking_path(booking_id:bk.booking_id), class: 'item-card' do %>
<div class="card <%= bk_color %> text-white" data-id ="<%= bk.booking_id %>">
<div class="card-block">
Cus Ph :<%= bk.contact_no %><span style="font-size:12px;float:right;line-height:inherit;">Order Time :<%= bk.checkin_at.utc.getlocal.strftime("%I:%M %p") %></span><br>
Order No :<%= bk.orders[0].order_id %><span style="font-size:12px;float:right;line-height:inherit;"><%= bk_status %></span> </div>
</div>
<% end %>
<% end %>
</div>
</div>
</div>
<!--- Panel 1 - Completed Orders -->
<div class="tab-pane <%= params[:active] ? 'active' : '' %>" id="complete" role="tabpanel">
<div class="card-columns">
<% bk_color ='' %>
<% @completed.each do |c| %>
<%
if !@booking.nil?
if c.booking_id == @booking.booking_id
bk_color ='bg-secondary'
else
bk_color = c.booking_status
end
else
bk_color = c.booking_status
end
%>
<%= link_to foodcourt_app_order_by_booking_path(booking_id: c.booking_id, active: 'completed'), class: 'item-card' do %>
<div class="card <%= bk_color %> text-white" data-id ="<%= c.booking_id %>">
<div class="card-block">
Cus Ph :<%= c.contact_no %><span style="font-size:12px;float:right;line-height:inherit;">Order Time :<%= c.checkin_at.utc.getlocal.strftime("%I:%M %p") %></span><br>
Order No :<%= c.orders[0].order_id %><span style="font-size:12px;float:right;line-height:inherit;">competed</span> </div>
</div>
<% end %>
<% end %>
</div>
</div>
</div>
</div>
<% if !@booking.nil?%>
<span id="sale_id" style="display:none"><%= @booking.sale_id %></span>
<div class="col-md-3 col-lg-3 col-sm-12">
<span id="sale_id" style="display:none"><%= @booking.sale_id %></span>
<div class="card">
<div class="card-header" style="padding: 0.12rem 0.25rem">
<div class="row" style="margin:auto">
<div class="col-md-12 col-lg-12 col-sm-12">
<strong id="order-title" class="font-14 p-l-10">ORDER DETAILS </strong>| <span class="font-14">Table-<%=@booking.dining_facility.name%></span><br>
<strong class="font-14 p-l-10">Booking - <%=@booking.booking_id%></strong><br>
<strong class="font-14 p-l-10">Order No- <%=@booking.order_id%></strong>
</div>
</div>
<div class="card-block">
<div class="card-text" id="order-detail-slimscroll" data-height="250">
<div class="col-md-12 col-lg-12 col-sm-12">
<strong id="order-title" class="font-14 p-l-10">ORDER DETAILS </strong>| <span class="font-14">Table-<%=@booking.dining_facility.try(:name)%></span><br>
<span class="font-14 p-l-10"><b>Booking</b> - <%=@booking.booking_id%></span><br>
<span class="font-14 p-l-10"><b>Order No</b> - <%=@booking.order_id%></span>
</div>
</div>
</div>
<div class="card-body">
<div class="card-text" id="order-detail-slimscroll" data-height="250">
<table class="table table-striped summary-items">
<thead>
<tr>
@@ -79,49 +114,50 @@
</tr>
</thead>
<tbody class="font-13">
<% sub_total = 0
count = 0
<%
sub_total = 0
count = 0
%>
<% @sale_data.sale_items.each do |sale_item|
count += 1
%>
%>
<% sub_total += sale_item.price%>
<tr>
<td><%= count %></td>
<td class="item-name"><%=sale_item.product_name%>@<%=number_with_precision( sale_item.unit_price, precision: precision.to_i )%></td>
<td class=""><%=sale_item.qty%></td>
<td class="item-attr"><%=(number_with_precision(sale_item.price, precision: precision.to_i ))%></td>
</tr>
<%end %>
</tbody>
<td class=""><%=sale_item.qty%></td>
<td class="item-attr"><%=(number_with_precision(sale_item.price, precision: precision.to_i ))%></td>
</tr>
<%end %>
</tbody>
</table>
</div>
<div class="card-footer custom-card-footer" style="padding: 0.35rem 0.15rem !important;">
<table class="table" id="order-charges-table" border="0">
<tr>
<td colspan="2" style="padding:2px; text-align:" class="charges-name" width="25%"><strong>Sub Total</strong></td>
<td style="padding:2px; text-align:" width="25%" class="item-attr"><strong id="sub_total"><%=number_with_precision(sub_total, precision: precision.to_i)%></strong></td>
</tr>
<tr>
<td colspan="2" style="padding:2px; text-align:" class="charges-name" width="25%"><strong>(Discount)</strong></td>
<td style="padding:2px; text-align:" width="25%" class="item-attr"><strong id="sub_total">(<%= number_with_precision(@sale_data.total_discount, precision: precision.to_i ) rescue number_with_precision(0, precision: precision.to_i ) %>)</strong></td>
</tr>
<tr>
<td colspan="2" style="padding:2px; text-align:" class="charges-name" width="25%"><strong>Total Tax</strong></td>
<td style="padding:2px; text-align:" width="25%" class="item-attr"><strong id="sub_total"><%= number_with_precision(@sale_data.total_tax, precision: precision.to_i ) rescue number_with_precision(0, precision: precision.to_i )%></strong></td>
</tr>
<tr>
<td colspan="2" style="padding:2px; text-align:" class="charges-name" width="25%"><strong>Rounding Adj</strong></td>
<td style="padding:2px; text-align:" width="25%" class="item-attr"><strong id="sub_total"><%= number_with_precision(@sale_data.rounding_adjustment, precision: precision.to_i ) rescue number_with_precision(0, precision: precision.to_i )%></strong></td>
</tr>
<tr>
<td colspan="2" style="padding:2px; text-align:" class="charges-name" width="25%"><strong>Grand Total</strong></td>
<td style="padding:2px; text-align:" width="25%" class="item-attr"><strong id="sub_total"><%= number_with_precision(@sale_data.grand_total, precision: precision.to_i ) rescue number_with_precision(0, precision: precision.to_i )%></strong></td>
</tr>
</table>
<button type="button" class="btn btn-primary action-btn create col-md-12" id="done_order" style="padding-top:4px !important;padding-bottom:4px !important;">DONE</button>
</div>
</div>
</div>
<div class="card-footer custom-card-footer" style="padding: 0.35rem 0.15rem !important;">
<table class="table" id="order-charges-table" border="0">
<tr>
<td colspan="2" style="padding:2px; text-align:" class="charges-name" width="25%"><strong>Sub Total</strong></td>
<td style="padding:2px; text-align:" width="25%" class="item-attr"><strong id="sub_total"><%=number_with_precision(sub_total, precision: precision.to_i)%></strong></td>
</tr>
<tr>
<td colspan="2" style="padding:2px; text-align:" class="charges-name" width="25%"><strong>(Discount)</strong></td>
<td style="padding:2px; text-align:" width="25%" class="item-attr"><strong id="sub_total">(<%= number_with_precision(@sale_data.total_discount, precision: precision.to_i ) rescue number_with_precision(0, precision: precision.to_i ) %>)</strong></td>
</tr>
<tr>
<td colspan="2" style="padding:2px; text-align:" class="charges-name" width="25%"><strong>Total Tax</strong></td>
<td style="padding:2px; text-align:" width="25%" class="item-attr"><strong id="sub_total"><%= number_with_precision(@sale_data.total_tax, precision: precision.to_i ) rescue number_with_precision(0, precision: precision.to_i )%></strong></td>
</tr>
<tr>
<td colspan="2" style="padding:2px; text-align:" class="charges-name" width="25%"><strong>Rounding Adj</strong></td>
<td style="padding:2px; text-align:" width="25%" class="item-attr"><strong id="sub_total"><%= number_with_precision(@sale_data.rounding_adjustment, precision: precision.to_i ) rescue number_with_precision(0, precision: precision.to_i )%></strong></td>
</tr>
<tr>
<td colspan="2" style="padding:2px; text-align:" class="charges-name" width="25%"><strong>Grand Total</strong></td>
<td style="padding:2px; text-align:" width="25%" class="item-attr"><strong id="sub_total"><%= number_with_precision(@sale_data.grand_total, precision: precision.to_i ) rescue number_with_precision(0, precision: precision.to_i )%></strong></td>
</tr>
</table>
<button type="button" class="btn btn-primary action-btn create col-md-12" id="done_order" style="padding-top:4px !important;padding-bottom:4px !important;">DONE</button>
</div>
</div>
</div>
<div class="col-md-1 col-lg-1 col-sm-12">
@@ -190,6 +226,7 @@
</div>
</div>
<script type="text/javascript">
  $('#back').on('click', function () {
     window.location.href ="<%=foodcourt_food_court_path %>";
  });