fixed conflict

This commit is contained in:
Nweni
2017-06-04 13:12:02 +06:30
23 changed files with 250 additions and 43 deletions

View File

@@ -1,6 +1,7 @@
class Origami::RequestBillsController < BaseOrigamiController
def show
@sale = Sale.new
check_order = Order.find_by_id(params[:id])
if check_order
@order_details = OrderItem.get_order_items_details(check_order.id)
@@ -9,5 +10,13 @@ class Origami::RequestBillsController < BaseOrigamiController
@sale_data = Sale.find_by_id(@sale_id)
@sale_items = SaleItem.where("sale_id=?",@sale_id)
end
unique_code="ReceiptBillPdf"
print_settings=PrintSetting.find_by_unique_code(unique_code)
printer = Printer::ReceiptPrinter.new(print_settings)
printer.print_receipt_bill(print_settings,@sale_items,@sale)
end
end

View File

@@ -6,12 +6,14 @@ class Settings::SetMenuItemsController < ApplicationController
def index
@settings_menu_items = @category.menu_items.page(params[:page]).per(10)
end
# GET /settings/menu_items/1
# GET /settings/menu_items/1.json
def show
@sub_menu = MenuItem.where("menu_item_id=?",params[:id]).page(params[:page]).per(10)
@menu_item_instance = MenuItemInstance.where("menu_item_id=?",params[:id]).page(params[:page]).per(10)
end
# GET /settings/menu_items/new

View File

@@ -1,7 +1,6 @@
class OrderBroadcastJob < ApplicationJob
queue_as :default
def perform(message)
order = Order.find(message) # message come as order_id
ApplicationCable.server.broadcast "order_queue_station_channel", order: order

View File

@@ -2,6 +2,6 @@ class Account < ApplicationRecord
validates_presence_of :title, :account_type
has_many :menu_items
# belongs_to :lookup , :class_name => "Lookup" ,:foreign_key => :tax_type
# belongs_to :lookup , :class_name => "Lookup"
end

View File

@@ -25,7 +25,7 @@ class Order < ApplicationRecord
if self.new_booking
booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking",
:checkin_at => Time.now.utc, :checkin_by => self.employee_name,
:booking_status => "new" })
:booking_status => "assign" })
else
if (self.booking_id.to_i > 0 )
booking = Booking.find(self.booking_id)

View File

@@ -63,4 +63,13 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker
self.print(filename)
end
#Bill Receipt Print
def print_receipt_bill(printer_settings,sale_items,sale)
#Use CUPS service
#Generate PDF
#Print
pdf = ReceiptBillPdf.new(printer_settings,sale_items,sale)
pdf.render_file "tmp/receipt_bill_#{sale.id}.pdf"
self.print("tmp/receipt_bill_#{sale.id}.pdf")
end
end

110
app/pdf/receipt_bill_pdf.rb Normal file
View File

@@ -0,0 +1,110 @@
class ReceiptBillPdf < Prawn::Document
attr_accessor :receipt_width,:price_column_width,:p_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_column_width,:item_description_width
def initialize(printer_settings, sale_items,sale)
self.p_width = 200
self.page_height = 1450
self.margin = 10
# self.price_width = self.p_width / 2
self.price_width=90
self.item_width = self.p_width - self.price_width
self.item_height = self.item_height
self.qty_column_width = self.p_width / 2
self.item_description_width=self.p_width - self.price_width
self.receipt_width=130
@item_width = self.p_width.to_i / 2
@qty_width = @item_width.to_i / 3
@double = @qty_width * 2
@half_qty = @qty_width / 2
#setting page margin and width
super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.p_width, self.page_height])
self.header_font_size = 10
self.item_font_size = 6
header( printer_settings.printer_name, printer_settings.name)
stroke_horizontal_rule
cashier_info(sale.receipt_no,sale.customer.name, sale.receipt_date)
line_items(sale_items)
end
def header (printer_name, name)
text "#{printer_name}", :size => self.header_font_size,:align => :center
move_down 5
text "#{name}", :size => self.header_font_size,:align => :center
# move_down self.item_height
move_down 5
stroke_horizontal_rule
end
def cashier_info(receipt_no, customer, receipt_date)
move_down 5
move_down 2
y_position = cursor
bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
text "Receipt No:", :size => self.item_font_size,:align => :left
end
bounding_box([self.price_width, y_position], :width =>self.receipt_width) do
text "#{receipt_no}" , :size => self.item_font_size, :align => :left
end
move_down 5
y_position = cursor
bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
text "Customer:", :size => self.item_font_size,:align => :left
end
bounding_box([self.price_width,y_position], :width =>self.price_width) do
text "#{customer}" , :size => self.item_font_size,:align => :left
end
move_down 5
y_position = cursor
bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
text "Date:", :size => self.item_font_size,:align => :left
end
bounding_box([self.price_width,y_position], :width =>self.price_width) do
text "#{receipt_date}" , :size => self.item_font_size,:align => :left
end
# stroke_horizontal_rule
move_down 5
end
def line_items(sale_items)
y_position = cursor
qty_column_width = self.p_width * 0.2
item_description_width = self.p_width * 0.5
price_column_width = self.p_width * 0.3
stroke_horizontal_rule
move_down 5
y_position = cursor
pad_top(15) {
# @item_width.to_i + @half_qty.to_i
text_box "Items", :at =>[0,y_position], :width => @item_width.to_i - @half_qty.to_i , :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size
text_box "Price", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
text_box "Qty", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
text_box "Discount", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
text_box "Total", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @double, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
}
move_down 5
stroke_horizontal_rule
add_line_item_row(sale_items)
stroke_horizontal_rule
end
def add_line_item_row(sale_items)
y_position = cursor
move_down 5
end
end

View File

@@ -21,10 +21,10 @@
<div class="card-footer">
<div class="row">
<div class="col-md-6">
<button id="assign" data-id="<%= booking.id %>" data-type="complete" class="btn assign btn-primary btn-sm btn-block">ASSIGN</button>
</div>
<div class="col-md-6">
<button id="cancel" data-id="<%= booking.id %>" data-type="cancel" class="btn btn-danger cancel btn-sm btn-block">CANCLE</button>
</div>
</div>
</div>
@@ -38,19 +38,21 @@ $(function(){
$(".booking_click").on("click", function(){
$(".summary-items tbody tr").remove();
$("#cancel").removeAttr("disabled");
$("#assign").removeAttr("disabled");
var url = $(this).attr('data-ref');
show_details(url);
});
$('.assign').click(function(e){
var booking_id = $(this).attr("data-id")
var booking_id = $(this).val()
var type = $(this).attr("data-type")
update_booking(booking_id,type)
});
$('.cancel').click(function(e){
var booking_id = $(this).attr("data-id")
var booking_id = $(this).val()
var type = $(this).attr("data-type")
update_booking(booking_id,type)
@@ -71,7 +73,8 @@ function show_details(url_item){
$("#table").text(data.table_name)
$("#order_at").text(data.checkin_at)
$("#order_by").text(data.checkin_by)
$("#assign").val(data.id)
$("#cancel").val(data.id)
for(var field in item_data) {
if (item_data[field].item_name){
var price = parseFloat(item_data[field].price).toFixed(2);

View File

@@ -2,7 +2,7 @@
<% @i = 0 %>
<% @booking.each do |booking| %>
<% if booking.booking_status == "complete" %>
<% if booking.booking_status == "assign" %>
<div class="card booking_click" data-ref="<%= api_booking_path booking.id%>" id="booking_block">
<div class="card-block" id="card-block" style="width:100%;">
<h4 class="card-title">

View File

@@ -5,7 +5,7 @@
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#completed" role="tab">Queue <span class="badge badge-pill badge-default"><%= @booking.where("booking_status=?","complete").count %></span></a>
<a class="nav-link" data-toggle="tab" href="#completed" role="tab">Queue <span class="badge badge-pill badge-default"><%= @booking.where("booking_status=?","assign").count %></span></a>
</li>
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#tables" role="tab">Bookings <span class="badge badge-pill badge-default"><%= @booking.where("booking_status=?","new").count %></span></a>
@@ -94,6 +94,8 @@
<!-- OQS Buttons -->
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Print</button>
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Print <br/>Order<br/>Summary</button>
<button id="assign" value="" disabled="disabled" data-type="assign" class="btn assign btn-primary btn-lg btn-block">ASSIGN</button>
<button id="cancel" value="" disabled="disabled" data-type="cancel" class="btn btn-danger cancel btn-lg btn-block">CANCLE</button>
</div>
</div>

View File

@@ -10,6 +10,7 @@
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= stylesheet_link_tag 'settings', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>

View File

@@ -1,7 +1,4 @@
<%= link_to 'New Settings Account', new_settings_account_path %>
<div class="page-header">
<ul class="breadcrumb">
<li><a href="<%= %>">Home</a></li>

View File

@@ -1,18 +1,3 @@
<p id="notice"><%= notice %></p>
<p>
<strong>Title:</strong>
<%= @settings_account.title %>
</p>
<p>
<strong>Account type:</strong>
<%= @settings_account.account_type %>
</p>
<%= link_to 'Edit', %> |
<%= link_to 'Back', settings_accounts_path %>
<div class="page-header">
<ul class="breadcrumb">

View File

@@ -6,7 +6,7 @@
<span style="float: right">
</span>
</ul>
</div>
</div>
<div class="card">
<div class="card-block">
<h4 class="card-title">Menu Category</h4>
@@ -69,7 +69,9 @@
<td><%= settings_menu_item.type %></td>
<td><%= settings_menu_item.parent.name rescue "-" %></td>
<td><%= settings_menu_item.created_by %></td>
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
<% if settings_menu_item.type == "SimpleMenuItem" %>
<td><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@settings_menu_category, settings_menu_item ) %></td>
<td><%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@settings_menu_category, settings_menu_item) %></td>
@@ -85,4 +87,5 @@
</table>
</div>
</div>
</div>

View File

@@ -1,12 +1,16 @@
<%= simple_form_for([:settings, @item, @settings_menu_item_instances]) do |f| %>
<%= simple_form_for([:settings,:menu_item, @settings_menu_item_instance]) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :item_instance_code %>
<%= f.input :item_instance_name %>
<%= f.input :price %>
<%= f.input :item_attributes, collection: MenuItemAttribute.collection, input_html: { multiple: true } %>
<%= f.input :is_on_promotion %>
<%= f.input :promotion_price %>
<%= f.input :is_available %>

View File

@@ -4,6 +4,7 @@
<div class="page-header">
<ul class="breadcrumb">
<li><a href="<%= root_path %>">Home</a></li>
<li><a href="<%= settings_menu_category_simple_menu_item_path(@category,@item) %>">Menu Category</a></li>
<li>Menu Item</li>
<li>Menu Item Instances</li>
@@ -11,4 +12,5 @@
</ul>
</div>
<%= render 'form', settings_menu_item_menu_item_instances: @settings_menu_item_instances %>
</div>

View File

@@ -1,16 +1,20 @@
<!-- <h1>New Settings Menu Item</h1>
<<<<<<< HEAD
<%= render 'form', settings_menu_item: @settings_menu_item %>-->
<div class="span12">
<div class="page-header">
<ul class="breadcrumb">
<li><a href="<%= root_path %>">Home</a></li>
<li><a href="<%= settings_menu_category_simple_menu_item_path(@category,@item) %>">Menu Category</a></li>
<li>Menu Item</li>
<li>New Menu Item Instance</li>
</ul>
</div>
<%= render 'form', settings_simple_menu_item_menu_item_instances: @settings_menu_item_instances %>
</div>

View File

@@ -1,10 +1,12 @@
<div class="page-header">
<ul class="breadcrumb">
<li><a href="<%= root_path %>">Home</a></li>
<li><a href="<%= settings_menu_category_simple_menu_item_path(@category,@item) %>">Menu Category</a></li>
<li>Menu Item</li>
<li>Menu Item Instances</li>
<span style="float: right">
</span>
</ul>
@@ -12,6 +14,7 @@
<div class="card">
<div class="card-block">
<h4 class="card-title">Menu Item Instance</h4>
<table class="table">
<thead>
@@ -23,11 +26,13 @@
<th>Promotion Price</th>
<th>Available</th>
<th>Created At</th>
</tr>
</thead>
<tbody>
<tr>
<td><%= @settings_menu_item_instances.item_instance_code %></td>
<td><%= @settings_menu_item_instances.item_instance_name rescue "-" %></td>
<td><%= @settings_menu_item_instances.price %></td>
@@ -40,9 +45,57 @@
<% else %>
<td><%= link_to 'Edit', edit_settings_simple_menu_item_menu_item_instance_path(@item,@settings_menu_item_instances) %></td>
<% end %>
</tr>
</tbody>
</table>
</div>
</div>
<br>
<div class="card">
<div class="card-block">
<h4 class="card-title">Sub Menu Items </h4>
<table class="table">
<thead>
<tr>
<th>Item code</th>
<th>Name</th>
<th>Alt name</th>
<th>Type</th>
<th>Parent Item</th>
<th>Created by</th>
<th>Created at</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @sub_menu.each do |settings_menu_item| %>
<tr>
<td><%= settings_menu_item.item_code %></td>
<td><%= settings_menu_item.name %></td>
<td><%= settings_menu_item.alt_name %></td>
<td><%= settings_menu_item.type %></td>
<td><%= settings_menu_item.parent.name rescue "-" %></td>
<td><%= settings_menu_item.created_by %></td>
<td><%=l settings_menu_item.created_at, :format => :short %></td>
<% if settings_menu_item.type == "SimpleMenuItem" %>
<td><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %></td>
<td><%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@category, settings_menu_item) %></td>
<td><%= link_to 'Destroy', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
<% else %>
<td><%= link_to 'Show', settings_menu_category_set_menu_item_path(@category, settings_menu_item ) %></td>
<td><%= link_to 'Edit', edit_settings_menu_category_set_menu_item_path(@category, settings_menu_item) %></td>
<td><%= link_to 'Destroy', settings_menu_category_set_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
<% end %>
</tr>
<% end %>
</tbody>
</table>
</div>
</div>
<%= paginate @sub_menu, param_name: :page, :outer_window => 3 %>
</div>

View File

@@ -41,13 +41,16 @@
<td><%= @settings_menu_item.min_selectable_item %></td>
<td><%= @settings_menu_item.max_selectable_item %></td>
<td><%= @settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
<td><%= link_to 'Edit', edit_settings_menu_category_set_menu_item_path(@category, @settings_menu_item) %></td>
</tr>
</tbody>
</table>
</div>
</div>
<% if @sub_menu.count > 0 %>
<br>
<div class="card">
<div class="card-block">
@@ -76,6 +79,7 @@
<td><%= settings_menu_item.type %></td>
<td><%= settings_menu_item.parent.name rescue "-" %></td>
<td><%= settings_menu_item.created_by %></td>
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
<% if settings_menu_item.type == "SimpleMenuItem" %>
@@ -94,6 +98,7 @@
</div>
</div>
<%= paginate @sub_menu, param_name: :page, :outer_window => 3 %>
<% end %>
<br>
<div class="card">
@@ -128,14 +133,15 @@
<td><%= settings_menu_item.price %></td>
<td><%= settings_menu_item.is_on_promotion %></td>
<td><%= settings_menu_item.promotion_price %></td>
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
<td><%= link_to 'Show', settings_set_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ) %></td>
<td><%= link_to 'Edit', edit_settings_set_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item) %></td>
<td><%= link_to 'Destroy', settings_set_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
<td><%= link_to 'Destroy', settings_set_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
</div>
</div>

View File

@@ -3,7 +3,9 @@
<ul class="breadcrumb">
<li><a href="<%= %>">Home</a></li>
<li><a href="<%= settings_menu_category_simple_menu_items_path(@category) %>">Menu Category</a></li>
<li>Menu Item</li>
<span style="float: right">
</span>
</ul>
@@ -40,14 +42,18 @@
<td><%= @settings_menu_item.min_qty %></td>
<td><%= @settings_menu_item.min_selectable_item %></td>
<td><%= @settings_menu_item.max_selectable_item %></td>
<td><%= @settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
<td><%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@category, @settings_menu_item) %></td>
</tr>
</tbody>
</table>
</div>
</div>
<% if @sub_menu.count > 0 %>
<br>
<div class="card">
<div class="card-block">
@@ -76,8 +82,10 @@
<td><%= settings_menu_item.type %></td>
<td><%= settings_menu_item.parent.name rescue "-" %></td>
<td><%= settings_menu_item.created_by %></td>
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
<% if settings_menu_item.type == "SimpleMenuItem" %>
<td><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %></td>
<td><%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@category, settings_menu_item) %></td>
@@ -94,12 +102,15 @@
</div>
</div>
<%= paginate @sub_menu, param_name: :page, :outer_window => 3 %>
<% end %>
<br>
<div class="card">
<div class="card-block">
<h4 class="card-title">Menu Item Instances
<span style="float: right">
<%= link_to t('.new', :default => t("helpers.links.new")),new_settings_simple_menu_item_menu_item_instance_path(@settings_menu_item),:class => 'btn btn-primary btn-sm' %>
</span>
@@ -115,6 +126,7 @@
<th>promotion_price</th>
<th>Created at</th>
<th colspan="3"></th>
</tr>
</thead>
@@ -122,17 +134,19 @@
<tbody>
<% @menu_item_instance.each do |settings_menu_item| %>
<tr>
<!-- <td><%= settings_menu_item.menu_item_id %></td> -->
<td><%= settings_menu_item.item_instance_code %></td>
<td><%= settings_menu_item.item_attributes %></td>
<td><%= settings_menu_item.price %></td>
<td><%= settings_menu_item.is_on_promotion %></td>
<td><%= settings_menu_item.promotion_price %></td>
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
<td><%= link_to 'Show', settings_simple_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ) %></td>
<td><%= link_to 'Edit', edit_settings_simple_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item) %></td>
<td><%= link_to 'Destroy', settings_simple_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
<td><%= link_to 'Destroy', settings_simple_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>