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

@@ -18,9 +18,13 @@
//= require jquery-ui
//= 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
control_button("disabled");
control_button(order_status);
$(".orders").on('click', function(){
$("#order-sub-total").text('');
@@ -66,12 +70,15 @@ $(document).ready(function(){
for (i = 0; i < result.length; i++) {
var data = JSON.stringify(result[i]);
var parse_data = JSON.parse(data);
var show_date = "";
// Receipt Header
receipt_no = result[i].receipt_no;
cashier = result[i].cashier_name;
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()
if(result[i].receipt_date != null){
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()
}
$("#receipt_no").text(receipt_no);
$("#cashier").text(cashier == null ? "" : cashier);
@@ -274,18 +281,21 @@ $(document).ready(function(){
});
/* Button Control by Status */
function control_button(order_status){
if(order_status=="billed"){
function control_button(order_status){
if(order_status=="billed"){
$("#customer").prop('disabled', false);
$("#request_bills").prop('disabled', true);
$("#discount").prop('disabled', false);
$("#pay-bill").prop('disabled', false);
}
else if(order_status=="new") {
$("#customer").prop('disabled', false);
$("#request_bills").prop('disabled', false);
$("#discount").prop('disabled', true);
$("#pay-bill").prop('disabled', true);
}
else {
$("#customer").prop('disabled', true);
$("#request_bills").prop('disabled', true);
$("#discount").prop('disabled', true);
$("#pay-bill").prop('disabled', true);

View File

@@ -228,10 +228,13 @@ class Order < ApplicationRecord
bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name")
.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 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")
.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,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.order_id")
.where("(orders.status = 'new' or orders.status = 'billed')")
.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
#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 sales on sales.sale_id = bookings.sale_id")
.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
#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 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 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,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.customer_id,orders.order_id")
.joins("left join sales on sales.sale_id = bookings.sale_id")
.where("(orders.status = 'new' or orders.status = 'billed')")
.group("bookings.booking_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
#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")
.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")
end
#Origami: Cashier : to view orders
def self.get_orders
from = Time.now.beginning_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.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("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=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,
bookings.booking_id,orders.customer_id as customer_id,
sales.sale_id as sale_id,dining_facilities.name as table_name")
.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 orders on orders.order_id = booking_orders.order_id")
.joins("left join sales on sales.sale_id = bookings.sale_id")
.where("(orders.status = 'new' or orders.status = 'billed')")
# 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

View File

@@ -251,7 +251,7 @@ class Sale < ApplicationRecord
if self.receipt_no.nil?
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.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
Rails.logger.debug "Receipt No #{self.receipt_no} | Date #{ self.receipt_date.to_s}"

View File

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

View File

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

View File

@@ -64,14 +64,12 @@
<p class="card-text">
Receipt No :
<span class="orders-receipt-no">
<%= cpo.receipt_no %>
<%= cpo.sale_status %>
</span>
</p>
<p class="card-text">
Order Status :
<span class="orders-order-status">
<%= cpo.order_status %>
</span>
<span class="orders-order-status"><%= cpo.order_status %></span>
</small>
</p>
</div>
@@ -84,10 +82,11 @@
<!--- Panel 1 - Table Orders -->
<div class="tab-pane active" id="tables" role="tabpanel">
<div class="card-columns" style="padding-top:10px; column-gap: 1.2rem;">
<div class="card-columns" style="padding-top:10px; column-gap: 1.2rem;">
<%
@booking_orders.each do |bko|
# No Show completed
puts bko.sale_status
if bko.sale_status == 'completed'
next
end
@@ -132,9 +131,7 @@
</p>
<p class="card-text">
Order Status :
<span class="orders-order-status">
<%= bko.order_status %>
</span>
<span class="orders-order-status"><%= bko.order_status %></span>
</small>
</p>
</div>
@@ -196,9 +193,7 @@
</p>
<p class="card-text">
Order Status :
<span class="orders-order-status">
<%= rmo.order_status %>
</span>
<span class="orders-order-status"><%= rmo.order_status %></span>
</small>
</p>
</div>
@@ -214,6 +209,7 @@
<div class="card-columns" style="padding-top:10px; column-gap: 1.2rem;">
<%
@orders.each do |odr|
puts odr
# No Show completed
if odr.sale_status == 'completed'
next
@@ -258,9 +254,7 @@
</p>
<p class="card-text">
Order Status :
<span class="orders-order-status">
<%= odr.order_status %>
</span>
<span class="orders-order-status"><%= odr.order_status %></span>
</small>
</p>
</div>
@@ -310,14 +304,14 @@
<th class="item-attr">Price</td>
</tr>
</thead>
<tbody>
<tbody>
<%
# For Sale Items
sub_total = 0
if @selected_item_type == "Sale"
@selected_item.sale_items.each do |sale_item|
sub_total += (sale_item.qty*sale_item.unit_price)
%>
%>
<tr>
<td class='item-name'><%= sale_item.product_name %></td>
<td class='item-attr'><%= sale_item.qty %></td>
@@ -329,8 +323,7 @@
%>
<%
# For Order Items
sub_total = 0
# For Order Items
if @selected_item_type == "Order"
@selected_item.order_items.each do |order_item|
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>Edit</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="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" disabled>Req.Bill</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">Req.Bill</button>
<!-- 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" 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>
</div>
</div>