From b7f1a0a029424b7b4bc42cf9ef8d64fe14fd0884 Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 14 Jun 2017 10:15:35 +0630 Subject: [PATCH 1/8] print format updating --- app/assets/javascripts/origami.js | 22 +++++++--- app/models/order.rb | 59 ++++++++++++++++++--------- app/models/sale.rb | 2 +- app/pdf/order_item_pdf.rb | 58 ++++++++++++++------------ app/pdf/order_summary_pdf.rb | 35 ++++++++-------- app/views/origami/home/index.html.erb | 38 +++++++---------- 6 files changed, 123 insertions(+), 91 deletions(-) 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 @@
-
+
<% @booking_orders.each do |bko| # No Show completed + puts bko.sale_status if bko.sale_status == 'completed' next end @@ -132,9 +131,7 @@

Order Status : - - <%= bko.order_status %> - + <%= bko.order_status %>

@@ -196,9 +193,7 @@

Order Status : - - <%= rmo.order_status %> - + <%= rmo.order_status %>

@@ -214,6 +209,7 @@
<% @orders.each do |odr| + puts odr # No Show completed if odr.sale_status == 'completed' next @@ -258,9 +254,7 @@

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

@@ -310,14 +304,14 @@ Price - + <% # 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) - %> + %> <%= sale_item.product_name %> <%= sale_item.qty %> @@ -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 @@ - - - + + - + - +
From 74350e2b739f3085b0df416ee458f4c0500a7e8b Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 14 Jun 2017 10:38:57 +0630 Subject: [PATCH 2/8] nokogiri gem re-add --- Gemfile | 3 +++ dump.rdb | Bin 23048 -> 22659 bytes 2 files changed, 3 insertions(+) diff --git a/Gemfile b/Gemfile index 36be43b7..1ac2660c 100644 --- a/Gemfile +++ b/Gemfile @@ -57,6 +57,9 @@ gem 'bcrypt', '~> 3.1.7' gem 'sidekiq' +# XML parser +# gem 'nokogiri', '~> 1.6' + # Pagination gem 'kaminari', '~> 0.16.3' diff --git a/dump.rdb b/dump.rdb index 4f89d45d97d6e100481b552a620caeae3e319d8b..229959018b5ee64f15522772b00dd62167e6b492 100644 GIT binary patch delta 967 zcmX|A-)kII6ux&Rn`~pU{gGy~O)b0Ax}~Jf?wxz@{J2}x>?$D@iB(Z)6wKV2J0PTq z-Q5U2glO$beW{kot5RZ;HYU5!-r`HCWbKvTQqN0veuEw2-@LpnEuAfFVYos+lSX9~hV7}(Wnz3C!XqJ?yex~y9;&iERZ!sJF7oWy4H%cd zpKHk1?Vr>=9Y3NCsHXqF^@9ASumWWb7nLxjHRRK$ZbG?2$CNH zUW)mK!(6%{+b7na==kv2H7HYBQIXZRPbrD}m7{w~{~q0f2&8Luw_Xa|_h*G)!pN|7 zWW~|G4V2!C3t~ak6m|Y$tx>|xW7`)#HGI`at`p9`nh)Y9~){mDA%4~uyWRQYQm|@Tjc}sV05P2tPIZgB4zfkSuvb1Z^JiqX0EzUa)`(*h zH=u#Tx#gIM6VLW+$Mw7@)k-3xK$vA=CrUN1XMwFXL95&Z>(Oen&tSgrTpwv)L+)wK zA)n}u%Y<&*$Rj)mm`ACWiAqg?BfXh(4hibgfDj9ruIYKywF8%HmCn9*`%T7B0o&9@ zI2vf~fUIgR?l#L?owey~xY2VI3EMD)Vo=_Bei|5&zBNK!ZsWkm4mK$Z=EZ=$N5^%Llr!);%EU5=G!p*$eZw8o}n7YiN`RmZc zx#ehIv!5`N7BG`crA<*>d6_6=e3+4GzHq<#3VP1}H zwcK*!()n~XL#~)!y|!zqa`9l5QAjY7ePOf9P~Z>}c#h{9;}GsKZn(jimv=11qs~&3 z;Rseq01asBR7-Gle+Gv8bhMvf@l?$Z@`LBjY z5)=!PxmtsuQNExia|19K>s4E-cNs)D&#^?vEjKK#fV4$3i`G(QVYE7sluJf4^L0pJ zhXim&ItpiBvzhXGwk1s`T z_N=!=rG9h;bXz=AGIiFa%KT^zlG^y5hM75_{7k7zV@G(he^ZJ>AFCjcKG~gJJLJnW z5gQEgNPsbe)T6#nJRW#zu#y@DRQ4WDx}0$Mu;G<>M}khTmMRMe+QYYZcMJ^QOBh5{ zWygUB`7fG@r??wvSGb7DfRg^6q*M&k`wgjD8h*DsH&{yyc03rkPOnbFfN9b5?(h$l z!U0P@bWFmPSoMK=N&}Zrmv~Z;+<8D_1xpDmDd{zd2o8(d=$*ZV+UodAie(f2Gt?i} zjkLDJDPP`~s2Vqu<8O7}8EhFm8=fWaMa%V{g78}3`_Wj%Rs*!UF*x+ zpf$YSSB%c&7rWHhwl5(qDJ7NZvWIf%yF<8}WNecu*0e#0Ca zYzjXj#Ryk@20;5-cqVlfBw7bQ2+IS-XydxL-Vu)Fo(=Eq?Tl9JyC58IKOLRPTm;vj z@3TSM+7pg$TmX^Z*k?z_cJ|w`YqcgGY4hX=>$0oYENj9}96df!^Vqol{rTMbV)Wy4 Gzx@Z2n4wPq From 7e35850c69632d9940cf2db201503bc1d0380d2a Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 14 Jun 2017 10:53:37 +0630 Subject: [PATCH 3/8] comment nokogiri gem --- Gemfile | 2 +- Gemfile.lock | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 1ac2660c..93fe2014 100644 --- a/Gemfile +++ b/Gemfile @@ -58,7 +58,7 @@ gem 'bcrypt', '~> 3.1.7' gem 'sidekiq' # XML parser -# gem 'nokogiri', '~> 1.6' +#gem 'nokogiri', '~> 1.6' # Pagination gem 'kaminari', '~> 0.16.3' diff --git a/Gemfile.lock b/Gemfile.lock index a4441893..e96c8ee0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -250,6 +250,7 @@ DEPENDENCIES kaminari (~> 0.16.3) listen (~> 3.0.5) mysql2 (>= 0.3.18, < 0.5) + nokogiri (~> 1.6) pg prawn prawn-table From 7d7ac9fe06fd6064ba791ad9c021d5d779962f59 Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 14 Jun 2017 11:21:37 +0630 Subject: [PATCH 4/8] oqs print formatted --- app/pdf/order_item_pdf.rb | 2 +- app/pdf/order_summary_pdf.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/pdf/order_item_pdf.rb b/app/pdf/order_item_pdf.rb index 24293350..01c60ef0 100644 --- a/app/pdf/order_item_pdf.rb +++ b/app/pdf/order_item_pdf.rb @@ -41,7 +41,7 @@ class OrderItemPdf < Prawn::Document end move_down 5 - + y_position = cursor 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 diff --git a/app/pdf/order_summary_pdf.rb b/app/pdf/order_summary_pdf.rb index 9e3b1334..3ff6663e 100644 --- a/app/pdf/order_summary_pdf.rb +++ b/app/pdf/order_summary_pdf.rb @@ -41,7 +41,7 @@ class OrderSummaryPdf < Prawn::Document end move_down 5 - + y_position = cursor 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 From cd588d9b4fe1d9e9f6c1569fd55b39c5e247f5c1 Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 14 Jun 2017 14:37:23 +0630 Subject: [PATCH 5/8] print setting ui updated --- app/views/print_settings/_form.html.erb | 1 + app/views/print_settings/edit.html.erb | 15 +++- app/views/print_settings/index.html.erb | 94 ++++++++++++---------- app/views/print_settings/new.html.erb | 16 +++- app/views/print_settings/show.html.erb | 8 +- app/views/settings/employees/edit.html.erb | 14 ++-- app/views/settings/employees/new.html.erb | 14 ++-- 7 files changed, 96 insertions(+), 66 deletions(-) diff --git a/app/views/print_settings/_form.html.erb b/app/views/print_settings/_form.html.erb index e6ed306b..c5166103 100644 --- a/app/views/print_settings/_form.html.erb +++ b/app/views/print_settings/_form.html.erb @@ -18,5 +18,6 @@
<%= f.button :submit %> + <%= link_to 'Back', print_settings_path, :class => "btn btn-default" %>
<% end %> diff --git a/app/views/print_settings/edit.html.erb b/app/views/print_settings/edit.html.erb index fdae5f78..362dce39 100644 --- a/app/views/print_settings/edit.html.erb +++ b/app/views/print_settings/edit.html.erb @@ -1,6 +1,13 @@ -

Editing Print Setting

+
+ + <%= render 'form', print_setting: @print_setting %> +
+
-<%= render 'form', print_setting: @print_setting %> -<%= link_to 'Show', @print_setting %> | -<%= link_to 'Back', print_settings_path %> diff --git a/app/views/print_settings/index.html.erb b/app/views/print_settings/index.html.erb index 32d3dead..0db16892 100644 --- a/app/views/print_settings/index.html.erb +++ b/app/views/print_settings/index.html.erb @@ -1,49 +1,55 @@

<%= notice %>

+ -

Print Settings

- - - - - - - - - - - - - - - - - - - - - - <% @print_settings.each do |print_setting| %> +
+
+
NameUnique codeTemplateDb nameDb typeDb usernameDb passwordPrinter nameApi settingsPage widthPage heightPrint copies
+ - - - - - - - - - - - - - - - + + + + + + + + + + - <% end %> - -
<%= print_setting.name %><%= print_setting.unique_code %><%= print_setting.template %><%= print_setting.db_name %><%= print_setting.db_type %><%= print_setting.db_username %><%= print_setting.db_password %><%= print_setting.printer_name %><%= print_setting.api_settings %><%= print_setting.page_width %><%= print_setting.page_height %><%= print_setting.print_copies %><%= link_to 'Show', print_setting %><%= link_to 'Edit', edit_print_setting_path(print_setting) %><%= link_to 'Destroy', print_setting, method: :delete, data: { confirm: 'Are you sure?' } %>NameUnique codeTemplatePrinter nameApi settingsPage widthPage heightPrint copies
+ -
- -<%= link_to 'New Print Setting', new_print_setting_path %> + + <% @print_settings.each do |print_setting| %> + + <%= print_setting.name %> + <%= print_setting.unique_code %> + <%= print_setting.template %> + + <%= print_setting.printer_name %> + <%= print_setting.api_settings %> + <%= print_setting.page_width %> + <%= print_setting.page_height %> + <%= print_setting.print_copies %> + <%= link_to 'Show', print_setting %> + <%= link_to 'Edit', edit_print_setting_path(print_setting) %> + <%= link_to 'Destroy', print_setting, method: :delete, data: { confirm: 'Are you sure?' } %> + + <% end %> + + + diff --git a/app/views/print_settings/new.html.erb b/app/views/print_settings/new.html.erb index 810ad9c9..2521a16b 100644 --- a/app/views/print_settings/new.html.erb +++ b/app/views/print_settings/new.html.erb @@ -1,5 +1,15 @@ -

New Print Setting

+
+ + <%= render 'form', print_setting: @print_setting %> +
+
+ + -<%= render 'form', print_setting: @print_setting %> -<%= link_to 'Back', print_settings_path %> diff --git a/app/views/print_settings/show.html.erb b/app/views/print_settings/show.html.erb index 12d15696..b15e4650 100644 --- a/app/views/print_settings/show.html.erb +++ b/app/views/print_settings/show.html.erb @@ -1,5 +1,11 @@

<%= notice %>

- +

Name: <%= @print_setting.name %> diff --git a/app/views/settings/employees/edit.html.erb b/app/views/settings/employees/edit.html.erb index 6948734c..a6c0a4aa 100644 --- a/app/views/settings/employees/edit.html.erb +++ b/app/views/settings/employees/edit.html.erb @@ -1,11 +1,11 @@

- + <%= render 'form', employee: @employee %>
diff --git a/app/views/settings/employees/new.html.erb b/app/views/settings/employees/new.html.erb index 7c6498f5..430df9f2 100644 --- a/app/views/settings/employees/new.html.erb +++ b/app/views/settings/employees/new.html.erb @@ -1,11 +1,11 @@
- + <%= render 'form', employee: @employee %>
From c1e8f3ffb2eccaa7b98ad0d5bba690b05a3f2beb Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 14 Jun 2017 15:30:28 +0630 Subject: [PATCH 6/8] updated printer for each stations --- app/controllers/oqs/print_controller.rb | 10 ++++++++-- app/models/printer/order_queue_printer.rb | 12 ++++++------ app/pdf/order_item_pdf.rb | 2 +- app/pdf/order_summary_pdf.rb | 2 +- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/controllers/oqs/print_controller.rb b/app/controllers/oqs/print_controller.rb index 1731f69c..ecbc94e7 100644 --- a/app/controllers/oqs/print_controller.rb +++ b/app/controllers/oqs/print_controller.rb @@ -6,10 +6,13 @@ class Oqs::PrintController < ApplicationController assigned_item=AssignedOrderItem.find(assigned_item_id) assigned_items=AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'"); + # printer for each stations + printer_name = assigned_item.order_queue_station.printer_name + # print when complete click print_settings=PrintSetting.find_by_unique_code(unique_code) order_queue_printer= Printer::OrderQueuePrinter.new(print_settings) - order_queue_printer.print_order_item(print_settings,assigned_item.order_id, assigned_item.item_code ) + order_queue_printer.print_order_item(printer_name,assigned_item.order_id, assigned_item.item_code ) # update print status for completed same order items assigned_items.each do |ai| @@ -25,10 +28,13 @@ class Oqs::PrintController < ApplicationController assigned_item=AssignedOrderItem.find(assigned_item_id) assigned_items=AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'"); + # printer for each stations + printer_name = assigned_item.order_queue_station.printer_name + # print when complete click print_settings=PrintSetting.find_by_unique_code(unique_code) order_queue_printer= Printer::OrderQueuePrinter.new(print_settings) - order_queue_printer.print_order_summary(print_settings,assigned_item.order_id) + order_queue_printer.print_order_summary(printer_name,assigned_item.order_id) # update print status for completed same order items assigned_items.each do |ai| diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb index 9c928593..9b3f5205 100644 --- a/app/models/printer/order_queue_printer.rb +++ b/app/models/printer/order_queue_printer.rb @@ -1,25 +1,25 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker - def print_order_item(printer_settings,order_id, item_code) + def print_order_item(printer_name,order_id, item_code) #Use CUPS service #Generate PDF #Print order_item= print_query('order_item', item_code) #OrderItem.find_by_item_code(item_code) - pdf = OrderItemPdf.new(order_item[0],printer_settings) + pdf = OrderItemPdf.new(order_item[0]) pdf.render_file "tmp/receipt.pdf" - self.print("tmp/receipt.pdf") + self.print("tmp/receipt.pdf", printer_name) end - def print_order_summary(printer_settings,order_id) + def print_order_summary(printer_name,order_id) #Use CUPS service #Generate PDF #Print order=print_query('order_summary',order_id) filename = "tmp/order_summary_#{order_id}" + ".pdf" - pdf = OrderSummaryPdf.new(order,printer_settings) + pdf = OrderSummaryPdf.new(order) pdf.render_file filename - self.print(filename) + self.print(filename, printer_name) end # Query for OQS with status diff --git a/app/pdf/order_item_pdf.rb b/app/pdf/order_item_pdf.rb index 01c60ef0..96008dfd 100644 --- a/app/pdf/order_item_pdf.rb +++ b/app/pdf/order_item_pdf.rb @@ -1,6 +1,6 @@ class OrderItemPdf < Prawn::Document 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) + def initialize(order_item) self.page_width = 254 self.page_height = 1450 self.margin = 10 diff --git a/app/pdf/order_summary_pdf.rb b/app/pdf/order_summary_pdf.rb index 3ff6663e..47c1f6a5 100644 --- a/app/pdf/order_summary_pdf.rb +++ b/app/pdf/order_summary_pdf.rb @@ -1,6 +1,6 @@ class OrderSummaryPdf < Prawn::Document 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) + def initialize(order) self.page_width = 254 self.page_height = 1450 self.margin = 10 From 7d6414cce6e7961f861c3dcf7cf41e0aab3e064b Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 14 Jun 2017 15:59:08 +0630 Subject: [PATCH 7/8] auto reload page for oqs 5sec and origami 10sec --- app/assets/javascripts/OQS.js | 12 ++++++++++-- app/assets/javascripts/origami.js | 11 ++++++++--- app/assets/stylesheets/OQS.scss | 1 + 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/OQS.js b/app/assets/javascripts/OQS.js index 2cddf699..cb0b997a 100644 --- a/app/assets/javascripts/OQS.js +++ b/app/assets/javascripts/OQS.js @@ -17,6 +17,11 @@ //= require cable $(document).ready(function(){ + // auto refresh every 5 seconds + setTimeout(function(){ + window.location.reload(1); + }, 5000); + $('.queue_station').on('click',function(){ var orderZone=$(this).children().children().children('.order-zone').text(); var orderItem=$(this).children().children().children('.order-item').text(); @@ -39,7 +44,8 @@ $(document).ready(function(){ }); // complete for queue item - $('.order-complete').on('click',function(){ + $('.order-complete').on('click',function(e){ + //e.preventDefault(); var _self = $(this); // To know in ajax return var assigned_item_id=$(this).attr('id').substr(15); var params = { 'id':assigned_item_id }; @@ -72,8 +78,10 @@ $(document).ready(function(){ $("#completed_count").text(parseInt($("#completed_count").text()) + data.length); alert("updated!"); + // Page reload + location.reload(); } - }); + }); }); $('#print_order_item').on('click',function(){ diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index b5bcb827..9e967e54 100644 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -18,11 +18,16 @@ //= require jquery-ui //= require bootstrap-datepicker -$(document).ready(function(){ +$(document).ready(function(){ + // auto refresh every 10 seconds + setTimeout(function(){ + window.location.reload(1); + }, 10000); + // 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) ; + order_status = $(".selected-item").children().find(".orders-order-status").text().substr(0,6).trim(); + // Enable/Disable Button control_button(order_status); diff --git a/app/assets/stylesheets/OQS.scss b/app/assets/stylesheets/OQS.scss index 07c98b85..b516836a 100644 --- a/app/assets/stylesheets/OQS.scss +++ b/app/assets/stylesheets/OQS.scss @@ -16,5 +16,6 @@ } .selected-item { + color: #fff !important; background-color: blue; } From 41e9aec389bb403247a541e335c5ff7e7ab307cc Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 14 Jun 2017 16:51:25 +0630 Subject: [PATCH 8/8] add cashier in sale and origami ui updated --- app/assets/javascripts/origami.js | 4 -- app/controllers/origami/home_controller.rb | 3 +- .../origami/request_bills_controller.rb | 2 +- app/models/order.rb | 2 +- app/models/sale.rb | 7 +- app/views/origami/home/index.html.erb | 72 +++++++++---------- 6 files changed, 45 insertions(+), 45 deletions(-) diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index 9e967e54..83646c92 100644 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -47,10 +47,6 @@ $(document).ready(function(){ // Enable/Disable Button control_button(order_status); - //for customer button - $("#customer").removeAttr('disabled'); - - var customer_id=$(this).find(".customer-id").text(); show_customer_details(customer_id); diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb index 22c0c119..3f453565 100644 --- a/app/controllers/origami/home_controller.rb +++ b/app/controllers/origami/home_controller.rb @@ -11,8 +11,7 @@ class Origami::HomeController < BaseOrigamiController @selected_item = Order.find(params[:booking_id]) @selected_item_type="Order" end - end - puts params[:booking_id] + end @completed_orders = Order.get_completed_order() @booking_orders = Order.get_booking_order_table() diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb index 58ba0b11..b6bfdfaa 100644 --- a/app/controllers/origami/request_bills_controller.rb +++ b/app/controllers/origami/request_bills_controller.rb @@ -9,7 +9,7 @@ class Origami::RequestBillsController < BaseOrigamiController check_booking = Booking.find_by_booking_id(booking_id) if check_booking.sale_id.nil? # Create Sale if it doesn't exist - @status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee.name) + @status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee) @sale_data = Sale.find_by_sale_id(@sale_id) @sale_items = SaleItem.where("sale_id=?",@sale_id) else diff --git a/app/models/order.rb b/app/models/order.rb index 397bd2f3..aa6cb26f 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -239,7 +239,7 @@ class Order < ApplicationRecord #Origami: Cashier : to view booking order Table def self.get_completed_order - completed_orders = Booking.select("sales.receipt_no,orders.status as order_status,orders.order_id, + completed_orders = Booking.select("sales.receipt_no, sales.sale_status, orders.status as order_status,orders.order_id, bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name,sales.customer_id as sale_customer_id,orders.customer_id as order_customer_id") .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") diff --git a/app/models/sale.rb b/app/models/sale.rb index 5adb8a33..426ece2d 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -56,7 +56,12 @@ class Sale < ApplicationRecord #Default Tax - Values self.tax_type = "exclusive" - self.requested_by = requested_by + # set cashier by current login + self.cashier_id = requested_by.id + self.cashier_name = requested_by.name + + + self.requested_by = requested_by.name self.requested_at = DateTime.now.utc Rails.logger.debug "Order -> #{order.id} | order_status -> #{order.status}" diff --git a/app/views/origami/home/index.html.erb b/app/views/origami/home/index.html.erb index 43ee0ada..09d9b7ef 100644 --- a/app/views/origami/home/index.html.erb +++ b/app/views/origami/home/index.html.erb @@ -31,28 +31,28 @@ customer_id = "" # For CSS- Class for Order? Sale? - sale_status="" - if cpo.order_status == 'new' - unique_id=cpo.booking_id + # sale_status="" + # if cpo.order_status == 'new' + # unique_id=cpo.booking_id - customer_id=cpo.order_customer_id - # check selected item and assign - if @selected_item != nil - if cpo.order_id == @selected_item.order_id - sale_status = sale_status + " selected-item" - end - end - else - unique_id=cpo.sale_id - customer_id=cpo.sale_customer_id - sale_status="paid" - # check selected item and assign - if @selected_item != nil - if unique_id == @selected_item.sale_id - sale_status = sale_status + " selected-item" - end + # customer_id=cpo.order_customer_id + # # check selected item and assign + # if @selected_item_type == "Sale" + # if cpo.order_id == @selected_item.order_id + # sale_status = sale_status + " selected-item" + # end + # end + # else + unique_id=cpo.sale_id + customer_id=cpo.sale_customer_id + sale_status="paid" + # check selected item and assign + if @selected_item != nil + if unique_id == @selected_item.sale_id + sale_status = sale_status + " selected-item" end end + # end %>
@@ -64,12 +64,12 @@

Receipt No : - <%= cpo.sale_status %> + <%= cpo.receipt_no %>

Order Status : - <%= cpo.order_status %> + <%= cpo.sale_status %>

@@ -100,11 +100,11 @@ unique_id=bko.booking_id customer_id=bko.order_customer_id # check selected item and assign - if !@selected_item.nil? - if bko.order_id == @selected_item.order_id - sale_status = sale_status + " selected-item" - end - end + # if @selected_item != nil + # if bko.order_id == @selected_item.order_id + # sale_status = sale_status + " selected-item" + # end + # end else unique_id=bko.sale_id customer_id=bko.sale_customer_id @@ -162,11 +162,11 @@ unique_id=rmo.booking_id customer_id=rmo.order_customer_id # check selected item and assign - if @selected_item != nil - if rmo.order_id == @selected_item.order_id - sale_status = sale_status + " selected-item" - end - end + # if @selected_item != nil + # if rmo.order_id == @selected_item.order_id + # sale_status = sale_status + " selected-item" + # end + # end else unique_id=rmo.sale_id customer_id=rmo.sale_customer_id @@ -223,11 +223,11 @@ if odr.order_status == 'new' unique_id=odr.booking_id customer_id = odr.order_customer_id - if @selected_item != nil - if odr.order_id == @selected_item.order_id - sale_status = sale_status + " selected-item" - end - end + # if @selected_item != nil + # if odr.order_id == @selected_item.order_id + # sale_status = sale_status + " selected-item" + # end + # end else unique_id=odr.sale_id customer_id = odr.sale_customer_id