print format updating

This commit is contained in:
Yan
2017-06-14 10:15:35 +06:30
parent b133129389
commit b7f1a0a029
6 changed files with 123 additions and 91 deletions

View File

@@ -19,8 +19,12 @@
//= require bootstrap-datepicker //= require bootstrap-datepicker
$(document).ready(function(){ $(document).ready(function(){
// For selected order return
var order_status = "";
order_status = $(".selected-item").children().find(".orders-order-status").text().substr(0,6).trim();
console.log(order_status) ;
// Enable/Disable Button // Enable/Disable Button
control_button("disabled"); control_button(order_status);
$(".orders").on('click', function(){ $(".orders").on('click', function(){
$("#order-sub-total").text(''); $("#order-sub-total").text('');
@@ -66,12 +70,15 @@ $(document).ready(function(){
for (i = 0; i < result.length; i++) { for (i = 0; i < result.length; i++) {
var data = JSON.stringify(result[i]); var data = JSON.stringify(result[i]);
var parse_data = JSON.parse(data); var parse_data = JSON.parse(data);
var show_date = "";
// Receipt Header // Receipt Header
receipt_no = result[i].receipt_no; receipt_no = result[i].receipt_no;
cashier = result[i].cashier_name; cashier = result[i].cashier_name;
if(result[i].receipt_date != null){
receipt_date = new Date(result[i].receipt_date); receipt_date = new Date(result[i].receipt_date);
show_date = receipt_date.getDate() + "-" + receipt_date.getMonth() + "-" + receipt_date.getFullYear() + ' ' + receipt_date.getHours()+ ':' + receipt_date.getMinutes() show_date = receipt_date.getDate() + "-" + receipt_date.getMonth() + "-" + receipt_date.getFullYear() + ' ' + receipt_date.getHours()+ ':' + receipt_date.getMinutes()
}
$("#receipt_no").text(receipt_no); $("#receipt_no").text(receipt_no);
$("#cashier").text(cashier == null ? "" : cashier); $("#cashier").text(cashier == null ? "" : cashier);
@@ -276,16 +283,19 @@ $(document).ready(function(){
/* Button Control by Status */ /* Button Control by Status */
function control_button(order_status){ function control_button(order_status){
if(order_status=="billed"){ if(order_status=="billed"){
$("#customer").prop('disabled', false);
$("#request_bills").prop('disabled', true); $("#request_bills").prop('disabled', true);
$("#discount").prop('disabled', false); $("#discount").prop('disabled', false);
$("#pay-bill").prop('disabled', false); $("#pay-bill").prop('disabled', false);
} }
else if(order_status=="new") { else if(order_status=="new") {
$("#customer").prop('disabled', false);
$("#request_bills").prop('disabled', false); $("#request_bills").prop('disabled', false);
$("#discount").prop('disabled', true); $("#discount").prop('disabled', true);
$("#pay-bill").prop('disabled', true); $("#pay-bill").prop('disabled', true);
} }
else { else {
$("#customer").prop('disabled', true);
$("#request_bills").prop('disabled', true); $("#request_bills").prop('disabled', true);
$("#discount").prop('disabled', true); $("#discount").prop('disabled', true);
$("#pay-bill").prop('disabled', true); $("#pay-bill").prop('disabled', true);

View File

@@ -230,8 +230,11 @@ class Order < ApplicationRecord
.joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id")
.joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join orders on orders.order_id = booking_orders.order_id")
.joins("left join sales on sales.sale_id = bookings.sale_id") .joins("left join sales on sales.sale_id = bookings.sale_id")
.where("booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true) .where("(orders.status = 'new' or orders.status = 'billed')")
.group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.order_id") .group("bookings.booking_id")
# For PG
# booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true
# sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.order_id
end end
#Origami: Cashier : to view booking order Table #Origami: Cashier : to view booking order Table
@@ -243,7 +246,9 @@ class Order < ApplicationRecord
.joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join orders on orders.order_id = booking_orders.order_id")
.joins("left join sales on sales.sale_id = bookings.sale_id") .joins("left join sales on sales.sale_id = bookings.sale_id")
.where("sales.sale_status='completed'") .where("sales.sale_status='completed'")
.group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.order_id") .group("sales.sale_id")
# For PG
#bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.order_id
end end
#Origami: Cashier : to view order type Room #Origami: Cashier : to view order type Room
@@ -255,10 +260,12 @@ class Order < ApplicationRecord
.joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id") .joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id")
.joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id")
.joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join orders on orders.order_id = booking_orders.order_id")
.joins("left join sale_orders on sale_orders.order_id = orders.order_id") .joins("left join sales on sales.sale_id = bookings.sale_id")
.joins("left join sales on sales.sale_id = sale_orders.sale_id") .where("(orders.status = 'new' or orders.status = 'billed')")
.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,orders.customer_id,orders.order_id") # For PG
# booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true
# sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.customer_id,orders.order_id
end end
#Origami: Cashier : to view order type Room #Origami: Cashier : to view order type Room
@@ -271,24 +278,36 @@ class Order < ApplicationRecord
left join order_items on order_items.order_id = orders.order_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) .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,sales.receipt_no") .group("orders.order_id,order_items.order_items_id,dining_facilities.name,sales.receipt_no")
end end
#Origami: Cashier : to view orders #Origami: Cashier : to view orders
def self.get_orders def self.get_orders
from = Time.now.beginning_of_day.utc from = Time.now.beginning_of_day.utc
to = Time.now.end_of_day.utc to = Time.now.end_of_day.utc
orders = Order.select("orders.order_id as order_id,sales.receipt_no,orders.status as order_status, sales.sale_status as sale_status, orders=Booking.select("sales.receipt_no, sales.sale_status as sale_status, orders.status as order_status,
orders.order_id as order_id,sales.customer_id as sale_customer_id,orders.customer_id as order_customer_id orders.order_id as order_id,sales.customer_id as sale_customer_id,orders.customer_id as order_customer_id,
,bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name") bookings.booking_id,orders.customer_id as customer_id,
.joins("left join booking_orders on booking_orders.order_id = orders.order_id sales.sale_id as sale_id,dining_facilities.name as table_name")
left join bookings on bookings.booking_id = booking_orders.order_id .joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id")
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id")
left join order_items on order_items.order_id = orders.order_id .joins("left join orders on orders.order_id = booking_orders.order_id")
left join sale_orders on sale_orders.order_id = orders.order_id .joins("left join sales on sales.sale_id = bookings.sale_id")
left join sales on sales.sale_id = sale_orders.sale_id") .where("(orders.status = 'new' or orders.status = 'billed')")
.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,sales.receipt_no,bookings.booking_id,sales.sale_id,orders.customer_id") # orders = Order.select("orders.order_id as order_id,sales.receipt_no,orders.status as order_status, sales.sale_status as sale_status,
# orders.order_id as order_id,sales.customer_id as sale_customer_id,orders.customer_id as order_customer_id
# ,bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name")
# .joins("left join booking_orders on booking_orders.order_id = orders.order_id
# left join bookings on bookings.booking_id = booking_orders.order_id
# left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
# left join order_items on order_items.order_id = orders.order_id
# left join sale_orders on sale_orders.order_id = orders.order_id
# left join sales on sales.sale_id = sale_orders.sale_id")
# .where("(orders.status = 'new' or orders.status = 'billed')")
# .group("orders.order_id")
# For PG
# .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,sales.receipt_no,bookings.booking_id,sales.sale_id,orders.customer_id")
end end

View File

@@ -251,7 +251,7 @@ class Sale < ApplicationRecord
if self.receipt_no.nil? if self.receipt_no.nil?
prefix = DateTime.now().utc prefix = DateTime.now().utc
#self.receipt_no = prefix.to_s + "/" + self.shit_id.to_s + "/" + SeedGenerator.new_receipt_no().to_s #self.receipt_no = prefix.to_s + "/" + self.shit_id.to_s + "/" + SeedGenerator.new_receipt_no().to_s
self.receipt_no = prefix.strftime("%Y%m%d") + "/" + SeedGenerator.new_receipt_no().to_s self.receipt_no = prefix.strftime("%Y%m%d") + "-" + SeedGenerator.new_receipt_no().to_s
self.receipt_date = prefix self.receipt_date = prefix
Rails.logger.debug "Receipt No #{self.receipt_no} | Date #{ self.receipt_date.to_s}" Rails.logger.debug "Receipt No #{self.receipt_no} | Date #{ self.receipt_date.to_s}"

View File

@@ -1,15 +1,16 @@
class OrderItemPdf < Prawn::Document class OrderItemPdf < Prawn::Document
attr_accessor :receipt_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:item_description_width attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width
def initialize(order_item, print_settings) def initialize(order_item, print_settings)
self.page_width = 300 self.page_width = 254
self.page_height = 400 self.page_height = 1450
self.margin = 10 self.margin = 10
self.price_width = 50 self.price_width = 40 # No Need for item
self.qty_width = 50 self.qty_width = 34
self.item_width = self.page_width - (self.price_width + self.qty_width) self.total_width = 40 # No Need for item
self.item_width = self.page_width - (self.qty_width + (self.margin*4))
self.item_height = 15 self.item_height = 15
self.item_description_width = self.page_width - (self.price_width + self.qty_width) self.item_description_width = self.page_width - (self.price_width + self.qty_width + self.total_width)
self.receipt_width=130 self.label_width=80
super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height])
# super(:margin => [10, 5, 30, 5], :page_size => [200,400]) # super(:margin => [10, 5, 30, 5], :page_size => [200,400])
@@ -17,10 +18,10 @@ class OrderItemPdf < Prawn::Document
# font "public/fonts/#{font_name}".to_s + ".ttf".to_s # font "public/fonts/#{font_name}".to_s + ".ttf".to_s
# font "public/fonts/Zawgyi-One.ttf" # font "public/fonts/Zawgyi-One.ttf"
# font "public/fonts/padauk.ttf" # font "public/fonts/padauk.ttf"
self.header_font_size = 12 self.header_font_size = 14
self.item_font_size = 10 self.item_font_size = 12
text "#{order_item.dining}", :size => self.header_font_size,:align => :center text "#{order_item.dining}", :size => self.header_font_size,:align => :center, :left_margin => -20
stroke_horizontal_rule stroke_horizontal_rule
move_down 5 move_down 5
@@ -35,36 +36,43 @@ class OrderItemPdf < Prawn::Document
def order_info(order_by, order_at) def order_info(order_by, order_at)
y_position = cursor y_position = cursor
bounding_box([0,y_position], :width => self.item_width - 50, :height => self.item_height) do bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
text "OrderBy:#{order_by} ", :size => self.item_font_size,:align => :left text "OrderBy: #{order_by} ", :size => self.item_font_size,:align => :left
end end
bounding_box([self.item_width - 50,y_position], :width => self.item_width + 50, :height => self.item_height) do move_down 5
text "Date:#{order_at.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left
bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
text "Date: #{order_at.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left
end end
stroke_horizontal_rule stroke_horizontal_rule
move_down 20 move_down 10
end end
# Write Order items to PDF # Write Order items to PDF
def order_items(order_item) def order_items(order_item)
y_position = cursor y_position = cursor
bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do # No Need for Order Item
text "Item", :size => self.item_font_size,:align => :left # bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
end # text "Item", :size => self.item_font_size,:align => :left
# end
bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do # bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do
text "Qty", :size => self.item_font_size,:align => :right # text "Qty", :size => self.item_font_size,:align => :right
end # end
stroke_horizontal_rule # stroke_horizontal_rule
move_down 5 # move_down 5
#Add Order Item #Add Order Item
add_order_items(order_item) add_order_items(order_item)
dash(1, :space => 1, :phase => 1)
stroke_horizontal_line 0, self.page_width
move_down 5
end end
# Add order items under order info # Add order items under order info
@@ -78,7 +86,7 @@ class OrderItemPdf < Prawn::Document
end end
bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do
text "#{order_item.qty}", :size => self.item_font_size,:align => :right text "[#{order_item.qty.to_i}]", :size => self.item_font_size,:align => :left
end end
move_down 5 move_down 5

View File

@@ -1,15 +1,16 @@
class OrderSummaryPdf < Prawn::Document class OrderSummaryPdf < Prawn::Document
attr_accessor :receipt_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:item_description_width attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width
def initialize(order, print_settings) def initialize(order, print_settings)
self.page_width = 300 self.page_width = 254
self.page_height = 400 self.page_height = 1450
self.margin = 10 self.margin = 10
self.price_width = 60 self.price_width = 40 # No Need for item
self.qty_width = 60 self.qty_width = 34
self.item_width = self.page_width - (self.price_width + self.qty_width) self.total_width = 40 # No Need for item
self.item_width = self.page_width - (self.qty_width + (self.margin*4))
self.item_height = 15 self.item_height = 15
self.item_description_width = self.page_width - (self.price_width + self.qty_width) self.item_description_width = self.page_width - (self.price_width + self.qty_width + self.total_width)
self.receipt_width=130 self.label_width=100
super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height])
@@ -19,7 +20,7 @@ class OrderSummaryPdf < Prawn::Document
self.header_font_size = 12 self.header_font_size = 12
self.item_font_size = 10 self.item_font_size = 10
text "#{order[0].dining}", :size => self.header_font_size,:align => :center text "#{order[0].dining}", :size => self.header_font_size,:align => :center, :left_margin => -20
stroke_horizontal_rule stroke_horizontal_rule
move_down 5 move_down 5
@@ -35,17 +36,19 @@ class OrderSummaryPdf < Prawn::Document
def order_info(order_by, order_at) def order_info(order_by, order_at)
y_position = cursor y_position = cursor
bounding_box([0,y_position], :width => self.item_width - 20, :height => self.item_height) do bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
text "OrderBy:#{order_by} ", :size => self.item_font_size,:align => :left text "OrderBy: #{order_by} ", :size => self.item_font_size,:align => :left
end end
bounding_box([self.item_width - 20,y_position], :width => self.item_width + 20, :height => self.item_height) do move_down 5
text "Date:#{order_at.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left
bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
text "Date: #{order_at.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left
end end
stroke_horizontal_rule stroke_horizontal_rule
move_down 20 move_down 10
end end
# Write Order items to PDF # Write Order items to PDF
@@ -57,7 +60,7 @@ class OrderSummaryPdf < Prawn::Document
end end
bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do
text "Qty", :size => self.item_font_size,:align => :right text "Qty", :size => self.item_font_size,:align => :left
end end
stroke_horizontal_rule stroke_horizontal_rule
@@ -79,7 +82,7 @@ class OrderSummaryPdf < Prawn::Document
end end
bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do
text "#{odi.qty}", :size => self.item_font_size,:align => :right text "#{odi.qty}", :size => self.item_font_size,:align => :left
end end
end end

View File

@@ -64,14 +64,12 @@
<p class="card-text"> <p class="card-text">
Receipt No : Receipt No :
<span class="orders-receipt-no"> <span class="orders-receipt-no">
<%= cpo.receipt_no %> <%= cpo.sale_status %>
</span> </span>
</p> </p>
<p class="card-text"> <p class="card-text">
Order Status : Order Status :
<span class="orders-order-status"> <span class="orders-order-status"><%= cpo.order_status %></span>
<%= cpo.order_status %>
</span>
</small> </small>
</p> </p>
</div> </div>
@@ -88,6 +86,7 @@
<% <%
@booking_orders.each do |bko| @booking_orders.each do |bko|
# No Show completed # No Show completed
puts bko.sale_status
if bko.sale_status == 'completed' if bko.sale_status == 'completed'
next next
end end
@@ -132,9 +131,7 @@
</p> </p>
<p class="card-text"> <p class="card-text">
Order Status : Order Status :
<span class="orders-order-status"> <span class="orders-order-status"><%= bko.order_status %></span>
<%= bko.order_status %>
</span>
</small> </small>
</p> </p>
</div> </div>
@@ -196,9 +193,7 @@
</p> </p>
<p class="card-text"> <p class="card-text">
Order Status : Order Status :
<span class="orders-order-status"> <span class="orders-order-status"><%= rmo.order_status %></span>
<%= rmo.order_status %>
</span>
</small> </small>
</p> </p>
</div> </div>
@@ -214,6 +209,7 @@
<div class="card-columns" style="padding-top:10px; column-gap: 1.2rem;"> <div class="card-columns" style="padding-top:10px; column-gap: 1.2rem;">
<% <%
@orders.each do |odr| @orders.each do |odr|
puts odr
# No Show completed # No Show completed
if odr.sale_status == 'completed' if odr.sale_status == 'completed'
next next
@@ -258,9 +254,7 @@
</p> </p>
<p class="card-text"> <p class="card-text">
Order Status : Order Status :
<span class="orders-order-status"> <span class="orders-order-status"><%= odr.order_status %></span>
<%= odr.order_status %>
</span>
</small> </small>
</p> </p>
</div> </div>
@@ -330,7 +324,6 @@
<% <%
# For Order Items # For Order Items
sub_total = 0
if @selected_item_type == "Order" if @selected_item_type == "Order"
@selected_item.order_items.each do |order_item| @selected_item.order_items.each do |order_item|
sub_total += (order_item.qty*order_item.unit_price) sub_total += (order_item.qty*order_item.unit_price)
@@ -385,13 +378,12 @@
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Add Order</button> <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Add Order</button>
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Edit</button> <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Edit</button>
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Move</button> <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Move</button>
<button type="button" id="customer" class="btn btn-primary btn-lg btn-block" disabled>Customer</button> <button type="button" id="customer" class="btn btn-primary btn-lg btn-block">Customer</button>
<button type="button" id="request_bills" class="btn btn-primary btn-lg btn-block" disabled>Req.Bill</button> <button type="button" id="request_bills" class="btn btn-primary btn-lg btn-block">Req.Bill</button>
<button type="button" id="request_bills" class="btn btn-primary btn-lg btn-block" disabled>Req.Bill</button>
<!-- Cashier Buttons --> <!-- Cashier Buttons -->
<button type="button" id="discount" class="btn btn-primary btn-lg btn-block" disabled>Discount</button> <button type="button" id="discount" class="btn btn-primary btn-lg btn-block">Discount</button>
<!-- <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Tax</button> --> <!-- <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Tax</button> -->
<button type="button" id="pay-bill" class="btn btn-primary btn-lg btn-block" disabled>Pay</button> <button type="button" id="pay-bill" class="btn btn-primary btn-lg btn-block">Pay</button>
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Re.Print</button> <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Re.Print</button>
</div> </div>
</div> </div>