From d28449a9c9f7249aea22208daab8074db7b09180 Mon Sep 17 00:00:00 2001
From: Yan
Date: Tue, 6 Jun 2017 14:34:24 +0630
Subject: [PATCH 1/7] updated for bill print
---
app/controllers/origami/request_bills_controller.rb | 10 +---------
app/models/printer/receipt_printer.rb | 2 +-
db/seeds.rb | 6 ++++++
3 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb
index 3fd7ffea..152f0fb0 100644
--- a/app/controllers/origami/request_bills_controller.rb
+++ b/app/controllers/origami/request_bills_controller.rb
@@ -1,6 +1,6 @@
class Origami::RequestBillsController < BaseOrigamiController
- def create
+ def show
@sale = Sale.new
@@ -26,12 +26,4 @@ class Origami::RequestBillsController < BaseOrigamiController
end
-
- def show
- sale_id = params[:sale_id]
- if Sale.exists?(sale_id)
- @sale_data = Sale.find_by_id(sale_id)
- end
- end
-
end
diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb
index 86d43190..93ab277c 100644
--- a/app/models/printer/receipt_printer.rb
+++ b/app/models/printer/receipt_printer.rb
@@ -69,7 +69,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker
#Generate PDF
#Print
pdf = ReceiptBillPdf.new(printer_settings,sale_items,sale,sale_data)
- pdf.render_file "tmp/receipt_bill.pdf"
+ pdf.render_file "tmp/receipt_bill.pdf"
self.print("tmp/receipt_bill.pdf")
end
end
diff --git a/db/seeds.rb b/db/seeds.rb
index 4d7799db..6ba7d6b2 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -137,3 +137,9 @@ admin_employee = Employee.create({name: "Administrator", role: "Administrator",
#Account for Menu Item Type (eg: Food, Beverage)
food = Account.create({title: "Food", account_type: "0"})
beverage = Account.create({title: "Beverage", account_type: "1"})
+
+shop = Shop.create(
+ {name: "Beauty In The Pot", address: "address", township: "Yangon", city: "Yangon", state: "Yangon",
+ country: "Myanmar", phone_no: "09123456789", reservation_no: "bip000001", license: "license",
+ activated_at: "2017-06-06", license_data: "license_data", base_currency: "Ks", id_prefix: "abc"}
+ )
From fbf312f71c7c834494736a194587c3546927f0ec Mon Sep 17 00:00:00 2001
From: Yan
Date: Tue, 6 Jun 2017 17:01:15 +0630
Subject: [PATCH 2/7] change show to print method in req bills controller
---
app/controllers/origami/request_bills_controller.rb | 2 +-
app/pdf/receipt_bill_pdf.rb | 2 +-
config/routes.rb | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb
index 7906c854..cb2f1b83 100644
--- a/app/controllers/origami/request_bills_controller.rb
+++ b/app/controllers/origami/request_bills_controller.rb
@@ -1,6 +1,6 @@
class Origami::RequestBillsController < BaseOrigamiController
- def show
+ def print
@sale = Sale.new
booking_id = params[:id]
diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb
index cc0f44de..5853b946 100644
--- a/app/pdf/receipt_bill_pdf.rb
+++ b/app/pdf/receipt_bill_pdf.rb
@@ -19,7 +19,7 @@ class ReceiptBillPdf < Prawn::Document
#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
+ self.item_font_size = 9
header( printer_settings.printer_name, printer_settings.name)
stroke_horizontal_rule
diff --git a/config/routes.rb b/config/routes.rb
index df652e6b..42813ed8 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -72,8 +72,8 @@ Rails.application.routes.draw do
resources :discounts, only: [:index,:new, :create ] #add discount type
resources :customers, only: [:index,:new, :create ] #add customer type
end
- resources :request_bills, only: [:show]
- get 'sale/:sale_id/payment' => 'request_bills#show'
+ resources :request_bills, only: [:print]
+ get 'sale/:sale_id/payment' => 'request_bills#print'
end
#--------- Waiter/Ordering Station ------------#
From 114c4ee14ddfe232fb09db3fafbec3cdc5597cb3 Mon Sep 17 00:00:00 2001
From: Yan
Date: Wed, 7 Jun 2017 17:13:27 +0630
Subject: [PATCH 3/7] all changed for index in origami
---
app/assets/javascripts/orgiami.js | 85 ++++
app/assets/stylesheets/orgiami.scss | 32 ++
app/controllers/origami/home_controller.rb | 10 +-
.../origami/request_bills_controller.rb | 5 +-
app/models/order.rb | 15 +-
app/models/sale.rb | 4 +-
app/models/sale_item.rb | 27 +-
app/views/oqs/home/index.html.erb | 5 +-
app/views/origami/home/index.html.erb | 464 +++++++-----------
app/views/origami/home/index_old.html.erb | 328 +++++++++++++
config/routes.rb | 3 +-
11 files changed, 666 insertions(+), 312 deletions(-)
create mode 100644 app/views/origami/home/index_old.html.erb
diff --git a/app/assets/javascripts/orgiami.js b/app/assets/javascripts/orgiami.js
index fc91e269..cd8622c3 100644
--- a/app/assets/javascripts/orgiami.js
+++ b/app/assets/javascripts/orgiami.js
@@ -15,3 +15,88 @@
//= require jquery_ujs
//= require turbolinks
//= require cable
+
+$(document).ready(function(){
+ $(".orders").on('click', function(){
+ var zone_name=$(this).find(".orders-table").text();
+ var receipt_no=$(this).find(".orders-receipt-no").text();
+ var unique_id=$(this).find(".orders-id").text();
+
+ var cashier="";
+ var receipt_date="";
+ var sub_total=0;
+ var discount_amount=0;
+ var tax_amount=0;
+ var grand_total_amount=0;
+
+ $("#order-title").text("ORDER DETAILS - " + zone_name);
+ // clear order items
+ $("#order-items-table").children("tbody").empty();
+
+ // AJAX call for order
+ $.ajax({
+ type: "GET",
+ url: "origami/" + unique_id,
+ data: { 'id' : unique_id },
+ success:function(result){
+ for (i = 0; i < result.length; i++) {
+ var data = JSON.stringify(result[i]);
+ var parse_data = JSON.parse(data);
+
+ // Receipt Header
+ receipt_no = result[i].receipt_no;
+ cashier = result[i].cashier_name;
+ receipt_date = result[i].receipt_date;
+
+ $("#receipt_no").text(receipt_no);
+ $("#cashier").text(cashier==null?"":cashier);
+ $("#receipt_date").text(receipt_date);
+
+
+ //Receipt Charges
+ sub_total += (parse_data.qty*parse_data.price);
+ discount_amount = parse_data.discount_amount;
+ tax_amount = parse_data.tax_amount;
+ grand_total_amount = parse_data.grand_total_amount;
+
+ $("#order-sub-total").text(sub_total);
+ $("#order-food").text('');
+ $("#order-beverage").text('');
+ $("#order-discount").text(discount_amount);
+ $("#order-Tax").text(tax_amount);
+ $("#order-grand-total").text(grand_total_amount);
+
+ // Ordered Items
+ var order_items_rows = "
" +
+ "
" + parse_data.item_name + "
" +
+ "
" + parse_data.qty + "
" +
+ "
" + parse_data.qty*parse_data.price + "
" +
+ "
";
+
+ $("#order-items-table").children("tbody").append(order_items_rows);
+ }
+ }
+ });
+ // End AJAX Call
+
+ $('.orders').removeClass('selected-item');
+ $(this).addClass('selected-item');
+ });
+
+ // Bill Request
+ $('#request_bills').click(function() {
+ var order_id=$(".selected-item").find(".orders-id").text();
+ window.location.href = '/origami/request_bills/'+ order_id
+ return false;
+ });
+
+ // Payment for Bill
+ $('#pay').click(function() {
+ var sale_id=$(".selected-item").find(".orders-id").text();
+ window.location.href = '/origami/sale/'+ sale_id + "/payment"
+ return false;
+ });
+});
+
+
+
diff --git a/app/assets/stylesheets/orgiami.scss b/app/assets/stylesheets/orgiami.scss
index 327c5897..392f7700 100644
--- a/app/assets/stylesheets/orgiami.scss
+++ b/app/assets/stylesheets/orgiami.scss
@@ -19,13 +19,45 @@
color:white;
cursor:pointer;
}
+
.cashier_number:hover{
background:#A9F5F2;
}
+
.long{
width:100%
}
+.sold {
+ background-color: red;
+}
+
+.selected-item {
+ background-color: blue;
+}
+
+/* Reciept Style */
+#order-charges-table td {
+ border-top: none !important;
+}
+
+.charges-name {
+ width: 80%;
+ text-align: left;
+}
+
+.item-name {
+ width: 60%;
+ text-align: left;
+}
+
+.item-attr {
+ width: 20%;
+ text-align: right;
+}
+
+
+/* Colors */
.purple {
background-color:#7a62d3;
}
diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb
index 480e9204..9733e488 100644
--- a/app/controllers/origami/home_controller.rb
+++ b/app/controllers/origami/home_controller.rb
@@ -7,16 +7,18 @@ class Origami::HomeController < BaseOrigamiController
def show
str = []
+ type=params[:id].split('-')[0];
-
- if !params[:sale_id].nil?
- @order_details = SaleItem.get_order_items_details(params[:sale_id])
+ # Sale
+ if type == "SAL"
+ @order_details = SaleItem.get_order_items_details(params[:id])
@order_details.each do |ord_detail|
str.push(ord_detail)
end
render :json => str.to_json
+ # Booking
else
- @order_details = OrderItem.get_order_items_details(params[:order_id])
+ @order_details = OrderItem.get_order_items_details(params[:id])
@order_details.each do |ord_detail|
str.push(ord_detail)
end
diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb
index cb2f1b83..62289c89 100644
--- a/app/controllers/origami/request_bills_controller.rb
+++ b/app/controllers/origami/request_bills_controller.rb
@@ -2,6 +2,7 @@ class Origami::RequestBillsController < BaseOrigamiController
def print
@sale = Sale.new
+ sale_order=SaleOrder.new
booking_id = params[:id]
check_booking = Booking.find_by_booking_id(booking_id)
@@ -9,7 +10,7 @@ class Origami::RequestBillsController < BaseOrigamiController
# Create Sale if it doesn't exist
@status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee.name)
@sale_data = Sale.find_by_sale_id(@sale_id)
- @sale_items = SaleItem.where("sale_id=?",@sale_id)
+ @sale_items = SaleItem.where("sale_id=?",@sale_id)
else
@sale_data = Sale.find_by_sale_id(check_booking.sale_id)
@sale_items = SaleItem.where("sale_id=?",@sale_id)
@@ -22,6 +23,6 @@ class Origami::RequestBillsController < BaseOrigamiController
printer = Printer::ReceiptPrinter.new(print_settings)
printer.print_receipt_bill(print_settings,@sale_items,@sale_data,customer_name)
-
+ redirect_to origami_root_path
end
end
diff --git a/app/models/order.rb b/app/models/order.rb
index 036f9006..16d22d57 100644
--- a/app/models/order.rb
+++ b/app/models/order.rb
@@ -223,12 +223,11 @@ class Order < ApplicationRecord
def self.get_booking_order_table
booking_orders = Booking.select("sales.receipt_no,orders.status as order_status,
- bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name")
+ 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 sale_orders on sale_orders.order_id = orders.order_id")
- .joins("left join sales on sales.sale_id = sale_orders.sale_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")
@@ -236,7 +235,8 @@ class Order < ApplicationRecord
#Origami: Cashier : to view order type Room
def self.get_booking_order_rooms
- booking_rooms = Booking.select("sales.receipt_no,orders.status as order_status,bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as room_name")
+ booking_rooms = Booking.select("sales.receipt_no,orders.status as order_status,bookings.booking_id,
+ sales.sale_id as sale_id,dining_facilities.name as room_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")
@@ -249,7 +249,7 @@ class Order < ApplicationRecord
#Origami: Cashier : to view order type Room
def self.get_order_rooms
order_rooms = Order.select("orders.order_id as order_id,sum(order_items.qty*order_items.price) as total_price,
- order_items.id as order_items_id,dining_facilities.name as room_name")
+ order_items.id as order_items_id,dining_facilities.name as room_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
@@ -263,7 +263,8 @@ class Order < ApplicationRecord
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,bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name")
+ orders = Order.select("orders.order_id as order_id,sales.receipt_no,orders.status as order_status,
+ 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
diff --git a/app/models/sale.rb b/app/models/sale.rb
index db1eedcf..1a9c9a28 100644
--- a/app/models/sale.rb
+++ b/app/models/sale.rb
@@ -76,7 +76,8 @@ class Sale < ApplicationRecord
self.save!
- #compute summary
+
+ #compute sales summary
compute
#Update the order items that is billed
@@ -218,6 +219,7 @@ class Sale < ApplicationRecord
private
+
def product_get_unit_price(item_code)
menu_item_hash =MenuItem.search_by_item_code(item_code)
if (menu_instance_code)
diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb
index 52ab480b..1ebd1632 100644
--- a/app/models/sale_item.rb
+++ b/app/models/sale_item.rb
@@ -12,17 +12,22 @@ class SaleItem < ApplicationRecord
def self.get_order_items_details(sale_id)
- sale_orders = SaleOrder.where("sale_id=?",sale_id)
- if sale_orders
- sale_orders.each do |sale_order|
- order_details = SaleItem.select("sales.total_discount as discount_amount,DATE_FORMAT(sales.receipt_date,'%Y-%m-%d %h:%m') as receipt_date,sales.cashier_name,sales.receipt_no,sale_items.product_name as item_name,sale_items.qty,sale_items.price,sale_items.unit_price as total_price")
- .joins("left join sales on sales.id = sale_items.sale_id")
- .where("sale_items.sale_id=?",sale_order.sale_id)
- return order_details
- end
- else
- return false
- end
+ order_details = SaleItem.select("sales.total_discount as discount_amount,DATE_FORMAT(sales.receipt_date,'%Y-%m-%d %h:%m') as receipt_date,
+ sales.cashier_name,sales.receipt_no,sale_items.product_name as item_name,sale_items.qty,sale_items.price,sale_items.unit_price as total_price")
+ .joins("left join sales on sales.sale_id = sale_items.sale_id")
+ .where("sale_items.sale_id=?",sale_id)
+
+ # sale_orders = SaleOrder.where("sale_id=?",sale_id)
+ # if sale_orders
+ # sale_orders.each do |sale_order|
+ # order_details = SaleItem.select("sales.total_discount as discount_amount,DATE_FORMAT(sales.receipt_date,'%Y-%m-%d %h:%m') as receipt_date,sales.cashier_name,sales.receipt_no,sale_items.product_name as item_name,sale_items.qty,sale_items.price,sale_items.unit_price as total_price")
+ # .joins("left join sales on sales.id = sale_items.sale_id")
+ # .where("sale_items.sale_id=?",sale_order.sale_id)
+ # return order_details
+ # end
+ # else
+ # return false
+ # end
end
private
diff --git a/app/views/oqs/home/index.html.erb b/app/views/oqs/home/index.html.erb
index 47d80f38..f2120cde 100644
--- a/app/views/oqs/home/index.html.erb
+++ b/app/views/oqs/home/index.html.erb
@@ -61,11 +61,8 @@
<%= qid.customer_name %>
-
<%= qid.assigned_order_item_id %>
+
<%= qid.assigned_order_item_id %>
-
<%
end
diff --git a/app/views/origami/home/index.html.erb b/app/views/origami/home/index.html.erb
index ac8c7678..45bfe596 100644
--- a/app/views/origami/home/index.html.erb
+++ b/app/views/origami/home/index.html.erb
@@ -1,6 +1,6 @@
+
-
@@ -16,318 +16,218 @@
-
-
+
+
-
-
-
- <% if @booking_orders %>
- <% @booking_orders.each do |booking_order| %>
- <% if booking_order.order_status != "new" %>
-
-
-
- <%=booking_order.table_name%>
- Receipt No : <%=booking_order.receipt_no%>
- Order Status : <%=booking_order.order_status %>
-
-
- <% else %>
-
-
-
<%=booking_order.table_name%>
- Order Status : <%=booking_order.order_status %>
-
-
- <% end %>
- <%end %>
- <%end %>
+
+ <%
+ @booking_orders.each do |bko|
+ # Assigned Id for new Order? Sale?
+ unique_id=""
+ # For CSS- Class for Order? Sale?
+ sale_status=""
+ if bko.order_status == 'new'
+ unique_id=bko.booking_id
+ else
+ unique_id=bko.sale_id
+ sale_status="sold"
+ end
+ %>
+
+
+
<%= unique_id %>
+
<%= bko.table_name %>
+
+ Receipt No :
+
+ <%= bko.receipt_no %>
+
+
+
+ Order Status :
+
+ <%= bko.order_status %>
+
+
+
+
+
+ <%
+ end
+ %>
-
-
-
-
-
-
- <% if @booking_rooms %>
- <% @booking_rooms.each do |booking_room| %>
- <% if !booking_room.order_status = 'new'%>
-
-
-
- <%=booking_room.room_name%>
- Receipt No : <%=booking_room.receipt_no%>
- Order Status : <%=booking_room.order_status %>
-
-
- <% else %>
-
-
-
<%=booking_room.room_name%>ddd
\
- Order Status : <%=booking_room.order_status %>
-
-
- <% end %>
- <%end %>
- <%end %>
+
+
+
+ <%
+ @booking_rooms.each do |rmo|
+ # Assigned Id for new Order? Sale?
+ unique_id=""
+ # For CSS- Class for Order? Sale?
+ sale_status=""
+ if rmo.order_status == 'new'
+ unique_id=rmo.booking_id
+ else
+ unique_id=rmo.sale_id
+ sale_status="sold"
+ end
+ %>
+
+
+
<%= unique_id %>
+
<%= rmo.room_name %>
+
+ Receipt No :
+
+ <%= rmo.receipt_no %>
+
+
+
+ Order Status :
+
+ <%= rmo.order_status %>
+
+
+
+
+
+ <%
+ end
+ %>
-
-
-
-
-
-
-
-
-
- <% if @orders %>
- <% @orders.each do |order| %>
- <% if !order.order_status = 'new'%>
-
-
-
- Order No:<%=order.order_id%>
- Receipt No : <%=order.receipt_no%>
- Order Status : <%=order.order_status %>
-
-
- <% else %>
-
-
-
Order No:<%=order.order_id%>
- Order Status : <%=order.order_status %>
-
-
- <% end %>
- <%end %>
- <%end %>
-
+
+
+
+ <%
+ @orders.each do |odr|
+ # Assigned Id for new Order? Sale?
+ unique_id=""
+ # For CSS- Class for Order? Sale?
+ sale_status=""
+ if odr.order_status == 'new'
+ unique_id=odr.booking_id
+ else
+ unique_id=odr.sale_id
+ sale_status="sold"
+ end
+ %>
+
+
+
<%= unique_id %>
+
<%= odr.table_name %>
+
+ Receipt No :
+
+ <%= odr.receipt_no %>
+
+
+
+ Order Status :
+
+ <%= odr.order_status %>
+
+
+
+
+
+ <%
+ end
+ %>
-
-
+
-
-
-
-
+
+
+
-
-
-
-
ORDER DETAILS
-
-
-
-
-
-
-
+
+
+
+
ORDER DETAILS -
+
+
+
+
+
Receipt No:
+
Cashier:
+
+
+
Date:
+
+
+
+
+
+
+
Items
+
QTY
+
Price
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
-
-
+
-
-
+
+
-
-
+
\ No newline at end of file
diff --git a/app/views/origami/home/index_old.html.erb b/app/views/origami/home/index_old.html.erb
new file mode 100644
index 00000000..d480cf8d
--- /dev/null
+++ b/app/views/origami/home/index_old.html.erb
@@ -0,0 +1,328 @@
+