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 @@

- + - <% 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 @@
+
- -
- +
+
- -
- - <% 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 + %> +
+
+ +

<%= 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 + %> +
+
+ +

<%= 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 + %> +
+
+ +

<%= odr.table_name %>

+

+ Receipt No : + + <%= odr.receipt_no %> + +

+

+ Order Status : + + <%= odr.order_status %> + + +

+
+
+ <% + end + %>
- - +
-
- - - +
+ + -
-
-
-
ORDER DETAILS -

-
-
-
-
- - +
+
+
+
ORDER DETAILS -
+
+
+
+
+

Receipt No:

+

Cashier:

+
+
+

Date:

+
+
+
+
+ + + + + + + + +
ItemsQTY + 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 @@ +
+
+ + + + + + +
+ + +
+ +
+ + <% 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 %> +
+
+ + +
+ +
+ + <% 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 %> +
+
+ + +
+ + +
+ + <% 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 %> +
+
+ +
+ +
+ +
+
+
+
ORDER DETAILS +

+
+
+
+
+ + + + + + +
ItemsQTY + Price +
+
+
+ + + + + + + + + +
+ + + + + +
+
+ + +
+
+
+ +
+ + + + + + + + + + + + +
+
+ + diff --git a/config/routes.rb b/config/routes.rb index ddf9275a..a57dc4dc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -73,7 +73,8 @@ Rails.application.routes.draw do resources :customers, only: [:index,:new, :create ] #add customer type end - resources :request_bills, only: [:print] + # resources :request_bills, only: [:print] + get "/request_bills/:id" => "request_bills#print" get 'sale/:sale_id/payment' => 'request_bills#show' get 'sale/:sale_id/payment/credit_payment' => "credit_payments#index"