";
+
+ $("#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 afefe4c7..d94bc702 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 9ccce028..62289c89 100644
--- a/app/controllers/origami/request_bills_controller.rb
+++ b/app/controllers/origami/request_bills_controller.rb
@@ -1,29 +1,28 @@
class Origami::RequestBillsController < BaseOrigamiController
- def show
+ def print
@sale = Sale.new
-
+ sale_order=SaleOrder.new
booking_id = params[:id]
check_booking = Booking.find_by_booking_id(booking_id)
if check_booking.sale_id.nil?
- #check if it doesn't exist
- @status = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee.name)
- @sale_data = Sale.find_by_sale_id(check_booking.sale_id)
- @sale_items = SaleItem.where("sale_id=?",check_booking.sale_id)
+ # 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)
else
@sale_data = Sale.find_by_sale_id(check_booking.sale_id)
- @sale_items = SaleItem.where("sale_id=?",check_booking.sale_id)
+ @sale_items = SaleItem.where("sale_id=?",@sale_id)
end
- unique_code="ReceiptBillPdf"
+ unique_code = "ReceiptBillPdf"
+ customer_name = Customer.select("name").where('customer_id=' + @sale_data.customer_id)
print_settings=PrintSetting.find_by_unique_code(unique_code)
- printer = Printer::ReceiptPrinter.new(print_settings)
-
- printer.print_receipt_bill(print_settings,@sale_items,@sale,@sale_data)
-
+ 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/account.rb b/app/models/account.rb
index a950865c..dc2e7cf8 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -4,6 +4,6 @@ class Account < ApplicationRecord
has_many :menu_items
# belongs_to :lookup , :class_name => "Lookup"
def self.collection
- Account.select("id, title").map { |e| [e.title, e.id] }
- end
+ Account.select("id, title").map { |e| [e.title, e.id] }
+ end
end
diff --git a/app/models/order.rb b/app/models/order.rb
index a8a6a3ef..04c9645e 100644
--- a/app/models/order.rb
+++ b/app/models/order.rb
@@ -222,12 +222,11 @@ class Order < ApplicationRecord
end
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")
@@ -235,7 +234,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")
@@ -248,7 +248,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
@@ -262,7 +262,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/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb
index 86d43190..d0819529 100644
--- a/app/models/printer/receipt_printer.rb
+++ b/app/models/printer/receipt_printer.rb
@@ -64,12 +64,12 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker
self.print(filename)
end
#Bill Receipt Print
- def print_receipt_bill(printer_settings,sale_items,sale,sale_data)
+ def print_receipt_bill(printer_settings,sale_items,sale_data, customer_name)
#Use CUPS service
#Generate PDF
#Print
- pdf = ReceiptBillPdf.new(printer_settings,sale_items,sale,sale_data)
- pdf.render_file "tmp/receipt_bill.pdf"
+ pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name)
+ pdf.render_file "tmp/receipt_bill.pdf"
self.print("tmp/receipt_bill.pdf")
end
end
diff --git a/app/models/sale.rb b/app/models/sale.rb
index bd7e5668..1a9c9a28 100644
--- a/app/models/sale.rb
+++ b/app/models/sale.rb
@@ -35,7 +35,7 @@ class Sale < ApplicationRecord
order = booking.booking_orders.take.order
puts "add sale order"
link_order_sale(order.id)
- return status
+ return status, sale_id
end
end
@@ -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/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb
index ffce7da2..5853b946 100644
--- a/app/pdf/receipt_bill_pdf.rb
+++ b/app/pdf/receipt_bill_pdf.rb
@@ -1,6 +1,6 @@
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, sale_data)
+ def initialize(printer_settings, sale_items, sale_data, customer_name)
self.p_width = 200
self.page_height = 1450
self.margin = 10
@@ -19,11 +19,11 @@ 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
- cashier_info(sale.receipt_no,sale.customer, sale.receipt_date)
+ cashier_info(sale_data, customer_name)
line_items(sale_items)
all_total(sale_data)
@@ -41,7 +41,7 @@ class ReceiptBillPdf < Prawn::Document
end
- def cashier_info(receipt_no, customer, receipt_date)
+ def cashier_info(sale_data, customer_name)
move_down 5
move_down 2
y_position = cursor
@@ -50,7 +50,7 @@ class ReceiptBillPdf < Prawn::Document
end
bounding_box([self.price_width, y_position], :width =>self.receipt_width) do
- text "#{receipt_no}" , :size => self.item_font_size, :align => :left
+ text "#{sale_data.receipt_no}" , :size => self.item_font_size, :align => :left
end
move_down 5
@@ -59,7 +59,7 @@ class ReceiptBillPdf < Prawn::Document
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
+ text "#{customer_name}" , :size => self.item_font_size,:align => :left
end
move_down 5
@@ -68,7 +68,7 @@ class ReceiptBillPdf < Prawn::Document
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
+ text "#{sale_data.receipt_date.strftime('%Y %m %d %h:%m')}" , :size => self.item_font_size,:align => :left
end
# stroke_horizontal_rule
move_down 5
@@ -139,7 +139,6 @@ class ReceiptBillPdf < Prawn::Document
end
def all_total(sale_data)
-
move_down 5
y_position =cursor
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 7a955a8d..a8301f52 100644
--- a/app/views/origami/home/index.html.erb
+++ b/app/views/origami/home/index.html.erb
@@ -1,6 +1,6 @@
+
-
@@ -16,318 +16,210 @@
-
-
+
+
-
-
-
- <% 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 %>
+
+
+