diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index 0079142f..2a618214 100644 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -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); diff --git a/app/models/order.rb b/app/models/order.rb index 9a1afe5d..feb49cfa 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -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 diff --git a/app/models/sale.rb b/app/models/sale.rb index b9ce13d2..c1e1d262 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -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}" diff --git a/app/pdf/order_item_pdf.rb b/app/pdf/order_item_pdf.rb index f322de64..24293350 100644 --- a/app/pdf/order_item_pdf.rb +++ b/app/pdf/order_item_pdf.rb @@ -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 diff --git a/app/pdf/order_summary_pdf.rb b/app/pdf/order_summary_pdf.rb index 63d75a78..9e3b1334 100644 --- a/app/pdf/order_summary_pdf.rb +++ b/app/pdf/order_summary_pdf.rb @@ -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 diff --git a/app/views/origami/home/index.html.erb b/app/views/origami/home/index.html.erb index 24410ef8..2288dec5 100644 --- a/app/views/origami/home/index.html.erb +++ b/app/views/origami/home/index.html.erb @@ -64,14 +64,12 @@
Receipt No : - <%= cpo.receipt_no %> + <%= cpo.sale_status %>
Order Status : - - <%= cpo.order_status %> - + <%= cpo.order_status %>
@@ -84,10 +82,11 @@Order Status : - - <%= bko.order_status %> - + <%= bko.order_status %>
Order Status : - - <%= rmo.order_status %> - + <%= rmo.order_status %>
Order Status : - - <%= odr.order_status %> - + <%= odr.order_status %>