diff --git a/Gemfile b/Gemfile index 479b1325..23a6a823 100644 --- a/Gemfile +++ b/Gemfile @@ -57,7 +57,11 @@ gem 'bcrypt', '~> 3.1.7' gem 'sidekiq' # Pagination +<<<<<<< HEAD gem 'kaminari', '~> 0.16.3' #:git => "git://github.com/amatsuda/kaminari.git", :branch => 'master' +======= +gem 'kaminari', '~> 0.16.3' +>>>>>>> ea4f50e77942a7ccaa988af4dedd8cb4665b59c7 # Use Capistrano for deployment # gem 'capistrano-rails', group: :development diff --git a/Gemfile.lock b/Gemfile.lock index b191df57..936c5de6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -244,6 +244,7 @@ DEPENDENCIES kaminari (~> 0.16.3) listen (~> 3.0.5) mysql2 (>= 0.3.18, < 0.5) + pg prawn prawn-table puma (~> 3.0) diff --git a/app/assets/javascripts/orgiami.js b/app/assets/javascripts/orgiami.js index a12ed790..92bdcbf3 100644 --- a/app/assets/javascripts/orgiami.js +++ b/app/assets/javascripts/orgiami.js @@ -26,6 +26,13 @@ $(document).ready(function(){ // Enable/Disable Button control_button(order_status); + //for customer button + if(unique_id.charAt(0) == 'S'){ + $("#customer").removeAttr('disabled'); + }else{ + $("#customer").attr('disabled','disabled'); + } + var cashier=""; var receipt_date=""; var sub_total=0; @@ -147,6 +154,12 @@ $(document).ready(function(){ return false; }); + + $('#customer').click(function() { + var sale_id=$(".selected-item").find(".orders-id").text(); + window.location.href = '/crm/customers/'+ sale_id + "/assign_sale_id" + return false; + }); }); /* For Receipt - Calculate discount or tax */ diff --git a/app/controllers/crm/home_controller.rb b/app/controllers/crm/home_controller.rb index f3e82e41..9ae2b413 100644 --- a/app/controllers/crm/home_controller.rb +++ b/app/controllers/crm/home_controller.rb @@ -13,13 +13,28 @@ class Crm::HomeController < BaseCrmController def print_order @booking = Booking.find(params[:id]) + + @total_amount = 0.00 + @total_tax = 0.00 + + if @booking.booking_orders + order_items = [] + @booking.booking_orders.each do |bo| + order = Order.find(bo.order_id) + #if (order.status == "new") + order_items = order_items + order.order_items + #end + end + + end + unique_code="CrmOrderPdf" print_settings = PrintSetting.find_by_unique_code(unique_code) printer = Printer::ReceiptPrinter.new(print_settings) - printer.print_crm_order(@booking,print_settings) + printer.print_crm_order(@booking,order_items,print_settings) end diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb index 2681bfcb..d1aa9e61 100644 --- a/app/controllers/origami/request_bills_controller.rb +++ b/app/controllers/origami/request_bills_controller.rb @@ -27,3 +27,5 @@ class Origami::RequestBillsController < BaseOrigamiController redirect_to origami_root_path end end + + diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index 523b9ec9..d203568f 100644 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -74,11 +74,11 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker end #Bill Receipt Print - def print_crm_order(booking,setting) + def print_crm_order(booking,order_items,setting) #Use CUPS service #Generate PDF #Print - pdf = CrmOrderPdf.new(booking,setting) + pdf = CrmOrderPdf.new(booking,order_items,setting) pdf.render_file "tmp/print_crm_order.pdf" self.print("tmp/print_crm_order.pdf") end diff --git a/app/pdf/crm_order_pdf.rb b/app/pdf/crm_order_pdf.rb index 36aed0a1..94fc5503 100644 --- a/app/pdf/crm_order_pdf.rb +++ b/app/pdf/crm_order_pdf.rb @@ -1,71 +1,106 @@ class CrmOrderPdf < 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(booking,order_items,print_settings) + self.p_width = 200 + self.page_height = 1450 + self.margin = 10 + # self.price_width = self.p_width / 2 + self.price_width=80 + self.item_width = self.p_width - self.price_width + self.item_height = self.item_height + self.qty_column_width = self.p_width / 2 + self.item_description_width=self.p_width - self.price_width + self.receipt_width=130 - def initialize(order_item, print_settings) - super(:margin => [10, 5, 30, 5], :page_size => [200,400]) + @item_width = self.p_width.to_i / 2 + @qty_width = @item_width.to_i / 3 + @double = @qty_width * 1.3 + @half_qty = @qty_width / 2 + #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 = 7 + self.item_font_size = 9 - # font "public/fonts/#{font_name}".to_s + ".ttf".to_s - # font "public/fonts/Zawgyi-One.ttf" - # font "public/fonts/padauk.ttf" - font_size 9 - text "#{order_item.type}", :size => 15 - stroke_horizontal_rule - move_down 5 + header( booking.type, booking.dining_facility.name) + stroke_horizontal_rule + order_detail(booking.checkin_by,booking.checkin_at,booking.dining_facility.name) + line_items(order_items) + #all_total(order_items) - #order_info - order_info(order_item.checkin_by,order_item.checkin_at, order_item.customer_id) - - # order items - order_items(order_item) + end - # Write Order Information to PDF - def order_info(order_by, order_at, customer) - y_position = cursor + def header (type, name) + text "#{type}", :size => self.header_font_size,:align => :center + move_down 5 + text "#{name}", :size => self.header_font_size,:align => :center + # move_down self.item_height + move_down 5 - bounding_box([0,y_position], :width => 200, :height => 15) do - text "OrderBy:#{order_by} Customer:#{customer} Date:#{order_at.strftime("%Y-%m-%d")}", :size => 7,:align => :left - end - - stroke_horizontal_rule - - move_down 20 - end - - # Write Order items to PDF - def order_items(order_item) - y_position = cursor - - bounding_box([0,y_position], :width => 180, :height => 15) do - text "Item", :size => 7,:align => :left - end - - bounding_box([160,y_position], :width => 20, :height => 15) do - text "Qty", :size => 7,:align => :right - end - - stroke_horizontal_rule - move_down 5 - - #Add Order Item - add_order_items(order_item) - end - - # Add order items under order info - def add_order_items(order_item) - y_position = cursor - - move_down 5 - - bounding_box([0,y_position], :width => 180, :height => 20) do - text "#{order_item.sale_id}", :size => 7,:align => :left - end - - bounding_box([160,y_position], :width => 20, :height => 20) do - text "#{order_item.sale_id}", :size => 7,:align => :right - end - - move_down 5 + stroke_horizontal_rule end + def order_detail(order_by,order_at,customer) + move_down 5 + move_down 2 + y_position = cursor + qty_column_width = self.p_width * 0.2 + item_description_width = self.p_width * 0.5 + price_column_width = self.p_width * 0.3 + + + + stroke_horizontal_rule + move_down 5 + y_position = cursor + pad_top(15) { + # @item_width.to_i + @half_qty.to_i + text_box "Order By", :at =>[0,y_position], :width => @item_width.to_i - @half_qty.to_i , :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size + text_box "Order At", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + text_box "Customer", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + + } + + move_down 5 + stroke_horizontal_rule +y_position = cursor + pad_top(15) { + + text_box "#{order_by}", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + text_box "#{order_at.to_i}", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + text_box "#{customer}", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @double, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + + } + end + + def line_items(order_items) + y_position = cursor + qty_column_width = self.p_width * 0.2 + item_description_width = self.p_width * 0.5 + price_column_width = self.p_width * 0.3 + + + + stroke_horizontal_rule + move_down 5 + y_position = cursor + pad_top(15) { + # @item_width.to_i + @half_qty.to_i + text_box "Items", :at =>[0,y_position], :width => @item_width.to_i - @half_qty.to_i , :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size + text_box "Price", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + text_box "Qty", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + text_box "Total", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @double, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + + } + + move_down 5 + stroke_horizontal_rule + + + + end + + + end diff --git a/app/views/crm/home/_booking.html.erb b/app/views/crm/home/_booking.html.erb index 18b0a83e..3a2a7684 100644 --- a/app/views/crm/home/_booking.html.erb +++ b/app/views/crm/home/_booking.html.erb @@ -6,7 +6,8 @@ <% @booking.each do |booking| %> <% if booking.booking_status == "new" %>
-
+
+

<%= @i += 1 %> . <%= booking.dining_facility.name %> - <%= booking.id %> @@ -36,37 +37,50 @@ diff --git a/app/views/layouts/_header_crm.html.erb b/app/views/layouts/_header_crm.html.erb index 7e497f1e..31dee08d 100644 --- a/app/views/layouts/_header_crm.html.erb +++ b/app/views/layouts/_header_crm.html.erb @@ -4,7 +4,7 @@ CRM

- Queue | Bookings | Online Orders | Customers + Queue | Bookings | Online Orders | <%= link_to 'Customer', crm_customers_path, :html=>":color:white" %>
diff --git a/app/views/origami/home/index.html.erb b/app/views/origami/home/index.html.erb index 58478998..35a46907 100644 --- a/app/views/origami/home/index.html.erb +++ b/app/views/origami/home/index.html.erb @@ -214,11 +214,13 @@ + +