420 lines
17 KiB
Plaintext
Executable File
420 lines
17 KiB
Plaintext
Executable File
|
|
<!-- <div class="page-header">
|
|
<ul class="breadcrumb">
|
|
<li class="breadcrumb-item"><a href="<%= dashboard_path %>"><%= t("views.right_panel.button.home") %></a></li>
|
|
<li class="breadcrumb-item active"><%= t :OQS %></li>
|
|
<li class="breadcrumb-item"><a href="<%= dashboard_path %>">Home</a></li>
|
|
<span class="float-right">
|
|
<%= link_to 'Back', dashboard_path %>
|
|
</span>
|
|
</ul>
|
|
</div> -->
|
|
|
|
<!-- Column One -->
|
|
<div class="row clearfix">
|
|
<div class="col-lg-8 col-md-8 col-sm-8">
|
|
<div class="body p-l-10">
|
|
<%= form_tag oqs_root_path, :method => :get do %>
|
|
<div class="row clearfix">
|
|
<div class="col-lg-5 col-md-5 col-sm-5 col-xs-12">
|
|
<input type="text" name="filter" class="form-control" placeholder="Search">
|
|
|
|
</div>
|
|
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-12">
|
|
<button type="submit" class="btn bg-blue waves-effect waves-effect">Search</button>
|
|
</div>
|
|
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
|
|
<!-- Nav tabs -->
|
|
<ul class="nav nav-tabs" role="tablist">
|
|
<!-- <li class="nav-item nav-search <%= @filter.to_s.length > 0? " " : "hide"%>">
|
|
<a class="nav-link <%= @filter.to_s.length > 0? "active" : " "%>" data-toggle="tab" href="#search" role="tab">Searching .. <span class="badge badge-pill badge-default" id="completed_count"><%= @queue_completed_item.length %></span></a>
|
|
</li> -->
|
|
<li class="nav-item nav-completed">
|
|
<a class="nav-link active" data-toggle="tab" href="#completed" role="tab">Processed
|
|
<span class="badge bg-blue-grey" id="completed_count"><%= @queue_completed_item.length %></span></a>
|
|
</li>
|
|
<% # For Tab Disable for Station is inactive
|
|
status=""
|
|
i=0
|
|
@queue_stations.each do |qsi|
|
|
if qsi.is_active == false
|
|
status="disabled"
|
|
end %>
|
|
<li class="nav-item oqs_click" data-id="<%= qsi.id %>">
|
|
<p class="hidden oqs-id"><%= qsi.id %></p>
|
|
<a class="nav-link" data-id="<%= qsi.id %>" data-toggle="tab" href="" role="tab" <%= status %>>
|
|
<%= qsi.station_name %>
|
|
<% if @filter.nil? %>
|
|
<span class="badge bg-blue-grey oqs_count<%= i%> oqs_count" data-id="<%= qsi.id %>" id="completed_count">
|
|
<!-- <span class="badge badge-pill badge-default oqs_count<%= i%> oqs_count" data-id="<%= qsi.id %>"> --> <%= qsi.assigned_order_items.where("delivery_status=0 AND created_at >= '#{Time.now.beginning_of_day.utc}'").count %>
|
|
</span>
|
|
<%else%>
|
|
<span class="label-count badge bg-blue-grey" data-id="<%= qsi.id %>">
|
|
<% @count.each do |c|%>
|
|
<% if qsi.id == c.station_id %>
|
|
<%= c.total %>
|
|
<%end %>
|
|
<%end %>
|
|
</span>
|
|
<%end%>
|
|
<% if qsi.auto_print %>
|
|
<span>(ap)</span>
|
|
<% end %>
|
|
</a>
|
|
</li>
|
|
<% i+=1%>
|
|
|
|
<% end %>
|
|
</ul>
|
|
<!-- Nav tabs - End -->
|
|
<p class="hidden filter"><%= @filter %></p>
|
|
|
|
<div class="tab-content" id="custom-slimscroll" style="">
|
|
<!--- Panel 0 - Completed -->
|
|
|
|
<div class="tab-pane in active" id="completed" role="tabpanel">
|
|
<div class="card-columns" style="padding-top:10px; column-gap: 1.2rem;">
|
|
<%
|
|
@queue_completed_item.each do |qid|
|
|
%>
|
|
<div class="card queue_station">
|
|
<div class="card-block">
|
|
<div class="row">
|
|
<span class="col-md-4 order-zone-type font-13"><%= qid.type %>-<%= qid.zone %></span>
|
|
<span class="order-zone hidden font-13"><%= qid.zone %></span>
|
|
<span class="col-md-8"><small class="float-right font-13"><%= qid.order_id %></small></span>
|
|
</div>
|
|
<p class="m-b--10">
|
|
<span class="order-item font-16">
|
|
<%= qid.item_name %>
|
|
</span> [x
|
|
<span class="order-qty">
|
|
<%= qid.qty %>
|
|
</span> ]
|
|
</p>
|
|
|
|
<p class="card-text item-options"><%= qid.options == "[]"? "" : qid.options %></p>
|
|
|
|
<span class="card-text">
|
|
<span class="text-muted">Order at -
|
|
<span class="order-at font-13">
|
|
<%= qid.created_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p") %>
|
|
</span> <br>
|
|
Order By - <span class="order-by font-13">
|
|
<%= qid.item_order_by %>
|
|
</span>
|
|
</span>
|
|
</span>
|
|
|
|
<p class="hidden order-status">completed</p>
|
|
<p class="hidden order-customer"><%= qid.customer_name %></p>
|
|
<p class="hidden assigned-order-item"><%= qid.assigned_order_item_id %></p>
|
|
</div>
|
|
</div>
|
|
<%
|
|
end
|
|
%>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- End Panel 0 - Completed -->
|
|
<!--- Order Items -->
|
|
<div class="card-columns oqs_append" id="oqs_container" style="padding-top:10px; column-gap: 1.2rem;">
|
|
</div>
|
|
<!--- end of Items-->
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Column Two -->
|
|
<div class="col-lg-3 col-md-3 col-sm-3">
|
|
<div class="card" >
|
|
<div class="card-header">
|
|
<div><strong id="order-title">ORDER DETAILS</strong></div>
|
|
</div>
|
|
<div class="card-block">
|
|
<div class="card-title">
|
|
<table class="">
|
|
<thead>
|
|
<tr>
|
|
<th style="width:33%; text-align:">Order By</th>
|
|
<th style="width:33%; text-align:">Order At</th>
|
|
<!-- <th style="width:33%; text-align:">Customer</th> -->
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td id="order-by" style="width:33%; text-align:"></td>
|
|
<td id="order-at" style="width:33%; text-align:"></td>
|
|
<!-- <td id="order-customer" style="width:33%; text-align:"></td> -->
|
|
</tr>
|
|
<tr>
|
|
<td><strong class="hidden cus_name">Customer</strong></td>
|
|
<td id="order-customer" colspan="2"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="card-text" id="order-detail-slimscroll" style="min-height:; max-height:; overflow:">
|
|
<table class="table" id="oqs-order-details-table">
|
|
<thead>
|
|
<tr>
|
|
<th style="width:80%; text-align:left">Items</th>
|
|
<th style="width:20%; text-align:right">QTY</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<!-- Bind With JS -->
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Column Three--->
|
|
<div class="col-lg-1 col-md-1 col-sm-1">
|
|
<!-- OQS Buttons -->
|
|
<a href="<%= dashboard_path %>" class="btn btn-sm btn-block btn-default waves-effect" role="button" aria-haspopup="true"><i class="material-icons">reply</i> Back </a>
|
|
<button type="button" title="Print Order Item" id="print_order_item" class="btn bg-blue btn-block btn-lg waves-effect">Print</a>
|
|
<button type="button" class="btn bg-blue btn-block btn-lg waves-effect" id="print_order_summary">Print <br/>Order<br/>Summary</button>
|
|
|
|
<!-- <button type="button" class="" id="print_order_summary">Print <br/>Order<br/>Summary</button> -->
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- <script type="text/javascript">
|
|
$(document).ready(function(){
|
|
|
|
$(".nav-completed").on("click", function(){
|
|
$("#completed").removeClass('hide')
|
|
$(".oqs_append").addClass('hide')
|
|
});
|
|
|
|
$(".oqs_click").on("click", function(){
|
|
$(".oqs_click").removeClass('oqs_active');
|
|
$(".queue_station").removeClass('queue_station_box');
|
|
$("#completed").addClass('hide');
|
|
$(".oqs_append").removeClass('hide');
|
|
$(this).addClass('oqs_active');
|
|
$(".queue_station").addClass('queue_station_box');
|
|
var oqs_id = $(this).find(".oqs-id").text();
|
|
var url = 'oqs/get_items/'+oqs_id;
|
|
|
|
show_details(url);
|
|
|
|
}); //End Click
|
|
|
|
function show_details(url){
|
|
var oqs_append = $('.oqs_append');
|
|
oqs_append.empty();
|
|
var filter = $('.filter').text();
|
|
//Start Ajax
|
|
$.ajax({
|
|
type: "GET",
|
|
url: url,
|
|
data: {'filter':filter},
|
|
dataType: "json",
|
|
success: function(data) {
|
|
for(var field in data) {
|
|
var price = parseFloat(data[field].price).toFixed(2);
|
|
|
|
if (data[field]["options"] == "[]" || data[field]["options"] == "") {
|
|
var options = "";
|
|
}else{
|
|
var options = data.options;
|
|
}
|
|
|
|
var date = new Date(data[field]["created_at"]);
|
|
var show_date = date.getDate() + "-" + date.getMonth() + "-" + date.getFullYear() + ' ' + date.getHours()+ ':' + date.getMinutes();
|
|
|
|
row ='<div class="card queue_station animated " data-date="'+data[field]["order_id"]+'">'
|
|
+'<div class="card-block">'
|
|
+'<h6 class="card-">'
|
|
+'<span class="order-zone-type">'+data[field]["table_type"]+'- </span>'
|
|
+'<span class="order-zone">'+ data[field]["zone"] +'</span>'
|
|
+'<small class="float-right">'+ data[field]["order_id"] +'</small>'
|
|
+'</h6>'
|
|
|
|
+'<h6>'
|
|
+'<span class="order-item">'+ data[field]["item_name"] +'- </span>'
|
|
+'<span class="order-qty">'+ data[field]["qty"] +' </span>'
|
|
+'</h6>'
|
|
|
|
+'<p class="card-text item-options">'+ options +'</p>'
|
|
|
|
+'<p class="card-text">'
|
|
+'<small class="text-muted">Order at'
|
|
+'<span class="order-at">'+ show_date +'</span> - '
|
|
|
|
+'<span class="order-by">'+ data[field]["item_order_by"] +'</span> '
|
|
+'</small> '
|
|
+'</p>'
|
|
|
|
+'<p class="hidden order-customer">'+ data[field]["customer_name"] +'</p> '
|
|
+'<p class="hidden assigned-order-item">'+ data[field]["assigned_order_item_id"] +'</p> '
|
|
+'</div>'
|
|
|
|
+'<div class="card-footer">'
|
|
+'<button id="edit_'+ data[field]["assigned_order_item_id"]+'" class="btn btn-warning order-item order-item-edit">EDIT</button>'
|
|
+' <button id="assigned_queue_' + data[field]["assigned_order_item_id"] +'" class="btn btn-primary order-item order-complete">COMPLETE</button>'
|
|
+'</div>'
|
|
|
|
+'</div>';
|
|
|
|
|
|
|
|
$('.oqs_append').append(row);
|
|
}
|
|
|
|
}
|
|
});
|
|
//end Ajax
|
|
|
|
}
|
|
|
|
$(document).on('click', '.queue_station', function(event){
|
|
var orderZone=$(this).children().children().children('.order-zone').text().trim();
|
|
// var orderItem=$(this).children().children().children('.order-item').text();
|
|
var assigned_item_id = $(this).children().find(".assigned-order-item").text();
|
|
var orderQty = $(this).children().children().children('.order-qty').text();
|
|
var orderBy = $(this).children().children().children().children('.order-by').text();
|
|
var orderAt = $(this).children().children().children().children('.order-at').text();
|
|
var orderCustomer = $(this).children().children('.order-customer').text();
|
|
var order_status = $(this).children().children('.order-status').text();
|
|
|
|
$('#order-title').text("ORDER DETAILS - " + orderZone);
|
|
$('#order-by').text(orderBy);
|
|
$('#order-at').text(orderAt);
|
|
$('#order-customer').text(orderCustomer);
|
|
$('#order-from').text(orderZone);
|
|
// clear order items
|
|
$("#oqs-order-details-table").children("tbody").empty();
|
|
// Call get_order_items() for Order Items by dining
|
|
$.ajax({
|
|
type: 'GET',
|
|
url: '/oqs/' + orderZone,
|
|
data: { 'status' : order_status },
|
|
success: function(res){
|
|
for (i = 0; i < res.length; i++) {
|
|
var data = JSON.stringify(res[i]);
|
|
var parse_data = JSON.parse(data);
|
|
|
|
var order_item_row = "<tr>" +
|
|
"<td class='order-items' style='width:80%; text-align:left'>" + parse_data.item_name + "</td>" +
|
|
"<td class='order-qty' style='width:20%; text-align:right'>" + parse_data.qty + "</td>" +
|
|
"</tr>";
|
|
$("#oqs-order-details-table").children("tbody").append(order_item_row);
|
|
}
|
|
}
|
|
})
|
|
|
|
// $('#order-items').text(orderItem);
|
|
// $('#order-qty').text(orderQty);
|
|
|
|
$('.queue_station').removeClass('selected-item');
|
|
$(this).addClass('selected-item');
|
|
});
|
|
|
|
$(document).on('click', '.order-item-edit', function(event){
|
|
var _self = $(this); // To know in ajax return
|
|
var assigned_item_id=$(this).attr('id').substr(5);
|
|
window.location.href = '/oqs/'+ assigned_item_id + "/edit"
|
|
});
|
|
|
|
// complete for queue item
|
|
|
|
$(document).on('click', '.order-complete', function(event){
|
|
//e.preventDefault();
|
|
var _self = $(this); // To know in ajax return
|
|
var assigned_item_id=$(this).attr('id').substr(15);
|
|
var params = { 'id':assigned_item_id };
|
|
|
|
// Call update_delivery_status() for changed delivery and move to delivery
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: '/oqs/update_delivery',
|
|
data: params,
|
|
dataType: 'json',
|
|
success: function(data){
|
|
for (i = 0; i < data.length; i++) {
|
|
var queue_station = $('#assigned_queue_' + data[i]).parent().parent(".queue_station");
|
|
var station = queue_station.parent().parent().attr('id');
|
|
|
|
// Remove a queue card from current station
|
|
queue_station.remove();
|
|
|
|
// Remove a queue card from current station
|
|
queue_station.children('.card-footer').remove();
|
|
|
|
// Add removed queue card from station to completed
|
|
$("#completed").children('.card-columns').append(queue_station);
|
|
|
|
// update queue item count in each station
|
|
var station_count=parseInt($("#"+station+"_count").text()) - 1;
|
|
$("#"+station+"_count").text(station_count);
|
|
}
|
|
|
|
// update queue item count in completed station
|
|
$("#completed_count").text(parseInt($("#completed_count").text()) + data.length);
|
|
|
|
alert("updated!");
|
|
// Page reload
|
|
location.reload();
|
|
}
|
|
});
|
|
});
|
|
|
|
// Print Order Item
|
|
$(document).on('click', '#print_order_item', function(event){
|
|
var assigned_item_id = $('.selected-item').children('.card-block').children('.assigned-order-item').text();
|
|
var options = $('.selected-item').children('.card-block').find('.item-options').text();
|
|
var params = { 'options':options };
|
|
|
|
$.ajax({
|
|
type: 'GET',
|
|
url: '/oqs/print/print/'+assigned_item_id,
|
|
success: function(data){ }
|
|
});
|
|
});
|
|
|
|
// Print Order Summary
|
|
// $('#print_order_summary').on('click',function(){
|
|
$(document).on('click', '#print_order_summary', function(event){
|
|
var table_name=$('.selected-item').children().children().children('.order-zone').text().trim();
|
|
var assigned_item_id=$('.selected-item').children('.card-block').children('.assigned-order-item').text();
|
|
var params = { 'table_name':table_name };
|
|
$.ajax({
|
|
type: 'GET',
|
|
url: '/oqs/print/print_order_summary/'+assigned_item_id,
|
|
data: params,
|
|
success: function(data){ }
|
|
});
|
|
});
|
|
|
|
// Qty update for OQS Edit Controller
|
|
$('#qty-update').on('click', function(){
|
|
var qty_weight = $("input[name='qty_weight']").val();
|
|
var remarks = $("textarea[name='remarks']").val();
|
|
var order_items_id = $(this).attr('data-id');
|
|
var params = { 'order_items_id': order_items_id, 'qty_weight': qty_weight, 'remarks': remarks }
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: '/oqs/' + order_items_id,
|
|
data: params,
|
|
success: function(result){
|
|
alert("Updated!");
|
|
window.location.href = '/oqs';
|
|
}
|
|
});
|
|
});
|
|
});
|
|
</script> -->
|