diff --git a/.gitignore b/.gitignore index f9e65957..91a498bc 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,6 @@ # Ignore all logfiles and tempfiles. .DS_Store -*.rdb *.rbc *.sassc .sass-cache @@ -46,3 +45,6 @@ config/deploy/config/* # Gem files #Gemfile #Gemfile.lock + +# For Redis Server log file +dump.rdb diff --git a/app/assets/javascripts/OQS.js b/app/assets/javascripts/OQS.js index 3674e235..9ad540ab 100644 --- a/app/assets/javascripts/OQS.js +++ b/app/assets/javascripts/OQS.js @@ -18,9 +18,9 @@ $(document).ready(function(){ // auto refresh every 10 seconds - setTimeout(function(){ - window.location.reload(1); - }, 10000); + // setTimeout(function(){ + // window.location.reload(1); + // }, 10000); $('.queue_station').on('click',function(){ var orderZone=$(this).children().children().children('.order-zone').text(); diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index 87b74809..b1dc732d 100644 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -157,10 +157,11 @@ $(document).ready(function(){ if(sale_item_id != null){ ajax_url = "/origami/" + sale_item_id + "/discount"; + sub_total = $("#"+sale_item_id).children().find("#item-total-price").text(); } // For Percentage Discount - if(discount_type == 1){ + if(discount_type == 1){ discount_amount=(sub_total*discount_value)/100; } diff --git a/app/controllers/origami/discounts_controller.rb b/app/controllers/origami/discounts_controller.rb index fb981a80..f5f7db9e 100644 --- a/app/controllers/origami/discounts_controller.rb +++ b/app/controllers/origami/discounts_controller.rb @@ -16,6 +16,7 @@ class Origami::DiscountsController < BaseOrigamiController discount_value = params[:discount_value] discount_amount = params[:discount_amount] grand_total = params[:grand_total] + product_name = "Overall Discount" if discount_type == 0 remark="Discount " + discount_amount + " as net" @@ -32,13 +33,14 @@ class Origami::DiscountsController < BaseOrigamiController #save sale item for discount if sale_item_id != nil origin_sale_item = SaleItem.find(sale_item_id) + product_name = origin_sale_item.product_name + "-Disocunt" end sale_item = SaleItem.new #pull sale_item.sale_id = sale_id sale_item.product_code = origin_sale_item != nil ? origin_sale_item.product_code : sale_id - sale_item.product_name = "Overall Discount" + sale_item.product_name = product_name sale_item.remark = remark sale_item.qty = 1 diff --git a/app/controllers/settings/order_queue_stations_controller.rb b/app/controllers/settings/order_queue_stations_controller.rb index 46fcb54d..e8b9bbe0 100644 --- a/app/controllers/settings/order_queue_stations_controller.rb +++ b/app/controllers/settings/order_queue_stations_controller.rb @@ -4,7 +4,8 @@ class Settings::OrderQueueStationsController < ApplicationController # GET /settings/order_queue_stations # GET /settings/order_queue_stations.json def index - @settings_order_queue_stations = OrderQueueStation.all.active + @settings_order_queue_stations = OrderQueueStation.all + @settings_order_queue_stations = Kaminari.paginate_array(@settings_order_queue_stations).page(params[:page]).per(50) end # GET /settings/order_queue_stations/1 diff --git a/app/controllers/transactions/sales_controller.rb b/app/controllers/transactions/sales_controller.rb index 82be6f59..c4666c5e 100644 --- a/app/controllers/transactions/sales_controller.rb +++ b/app/controllers/transactions/sales_controller.rb @@ -9,23 +9,30 @@ class Transactions::SalesController < ApplicationController receipt_no = params[:receipt_no] today = Date.today - if receipt_no.nil? - sales = Sale.order("sale_id desc") + if receipt_no.nil? && search_date.nil? + @sales = Sale.where("NOT sale_status = 'void' " ).order("sale_id desc").limit(500) + @sales = Kaminari.paginate_array(@sales).page(params[:page]).per(50) else - order = Sale.search(receipt_no) - if order.count > 0 - sales = order + if !search_date.blank? && receipt_no.blank? + sale = Sale.where("DATE_FORMAT(receipt_date,'%d-%m-%Y') = ? and NOT sale_status = 'void' ", search_date).order("sale_id desc").limit(500).page(params[:page]) + elsif !search_date.blank? && !receipt_no.blank? + sale = Sale.where("receipt_no LIKE ? or DATE_FORMAT(receipt_date,'%d-%m-%Y') = ? and NOT sale_status = 'void' ", "%#{receipt_no}%", search_date).order("sale_id desc").limit(500).page(params[:page]) + else + sale = Sale.where("receipt_no LIKE ? and NOT sale_status = 'void' ", receipt_no).order("sale_id desc").limit(500).page(params[:page]) + end + if sale.count > 0 + @sales = sale + @sales = Kaminari.paginate_array(@sales).page(params[:page]).per(50) else - sales = Sale.order("sale_id desc") - - end - end - @sales = Kaminari.paginate_array(sales).page(params[:page]).per(50) + @sales = 0 + end + end respond_to do |format| format.html # index.html.erb format.json { render json: @sales } end + end # GET /transactions/sales/1 @@ -108,11 +115,10 @@ class Transactions::SalesController < ApplicationController sale_id = params[:sale_id] reason = params[:reason] sale = Sale.find(sale_id) - sale.sales_status = 'void' - sale.remarks = reason - sale.void_by = current_user.id + sale.sale_status = 'void' + sale.requested_by = current_login_employee.id if sale.save - sale =SaleAudit.record_audit_void(sale_id, current_user.id, current_user.id, reason) + @sale = SaleAudit.record_audit_void(sale_id, current_login_employee.id, current_login_employee.id, reason) end respond_to do |format| format.html { redirect_to transactions_sales_url, notice: 'Sale was successfully void.' } diff --git a/app/models/order_item.rb b/app/models/order_item.rb index a85d1113..564aa939 100644 --- a/app/models/order_item.rb +++ b/app/models/order_item.rb @@ -35,23 +35,29 @@ class OrderItem < ApplicationRecord #logger.debug orderitem.to_yml orderitem.save! - - end - #Origami : Cashier : to show order items details + #Origami : Cashier : to show order items details def self.get_order_items_details(booking_id) - booking_orders = BookingOrder.where("booking_id=?",booking_id) - if booking_orders - booking_orders.each do |book_order| - order_details = OrderItem.select("order_items.item_name,order_items.qty,order_items.price,(order_items.qty*order_items.price) as total_price") + # booking_orders = BookingOrder.where("booking_id=?",booking.booking_id) + # if booking_orders + # booking_orders.each do |book_order| + # order_details = OrderItem.select("order_items.item_name,order_items.qty,order_items.price,(order_items.qty*order_items.price) as total_price") + # .joins("left join orders on orders.order_id = order_items.order_id") + # .where("order_items.order_id=?",book_order.order) + # return order_details + # end + # else + # return false + # end + + order_details = OrderItem.select("order_items.item_name,order_items.qty,order_items.price,(order_items.qty*order_items.price) as total_price") .joins("left join orders on orders.order_id = order_items.order_id") - .where("order_items.order_id=?",book_order.order) - return order_details - end - else - return false - end + .joins("left join booking_orders on booking_orders.order_id = order_items.order_id") + .joins("left join bookings on bookings.booking_id = booking_orders.booking_id") + .where("bookings.booking_id=?",booking_id) + + return order_details end private diff --git a/app/models/sale.rb b/app/models/sale.rb index dee4c2f7..9683c2b2 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -186,6 +186,7 @@ class Sale < ApplicationRecord end + # Tax Calculate def apply_tax(total_taxable) #if tax is not apply create new record diff --git a/app/models/sale_audit.rb b/app/models/sale_audit.rb index 29daa796..d369b8e1 100644 --- a/app/models/sale_audit.rb +++ b/app/models/sale_audit.rb @@ -6,7 +6,7 @@ class SaleAudit < ApplicationRecord belongs_to :sale - def record_audit_void(sale_id, void_by, approved_by, reason) + def self.record_audit_void(sale_id, void_by, approved_by, reason) #sale_audit sale_audit = SaleAudit.new() sale_audit.sale_id = sale_id diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index 71562277..9d5742d6 100644 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -165,16 +165,32 @@ class ReceiptBillPdf < Prawn::Document text "( " +"#{sale_data.total_discount}" +" )" , :size => self.item_font_size,:align => :right end - move_down 5 - y_position = cursor + if sale_data.sale_taxes.length > 1 + sale_data.sale_taxes.each do |st| + move_down 5 + y_position = cursor + + bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do + text "#{ st.tax_name }", :size => self.item_font_size,:align => :left + end + bounding_box([self.item_description_width,y_position], :width =>self.label_width) do + text "( " +"#{ st.tax_payable_amount }" +" )" , :size => self.item_font_size,:align => :right + end + end + else - bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do - text "Total Tax", :size => self.item_font_size,:align => :left - end - bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "( " +"#{sale_data.total_tax}" +" )" , :size => self.item_font_size,:align => :right end + # move_down 5 + # y_position = cursor + + # bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do + # text "Total Tax", :size => self.item_font_size,:align => :left + # end + # bounding_box([self.item_description_width,y_position], :width =>self.label_width) do + # text "( " +"#{sale_data.total_tax}" +" )" , :size => self.item_font_size,:align => :right + # end + move_down 5 y_position = cursor move_down 5 diff --git a/app/views/settings/order_queue_stations/index.html.erb b/app/views/settings/order_queue_stations/index.html.erb index c87ba5f7..03da3c23 100644 --- a/app/views/settings/order_queue_stations/index.html.erb +++ b/app/views/settings/order_queue_stations/index.html.erb @@ -42,5 +42,5 @@ <% end %> - + <%= paginate @settings_order_queue_stations %> diff --git a/app/views/transactions/sales/index.html.erb b/app/views/transactions/sales/index.html.erb index ee82eb8b..b7e73219 100644 --- a/app/views/transactions/sales/index.html.erb +++ b/app/views/transactions/sales/index.html.erb @@ -20,9 +20,9 @@ <%= form_tag transactions_sales_path, :method => :get do %>
- + - +
<% end %> @@ -41,23 +41,28 @@ - <% @sales.each do |sale| %> - - - <%= sale.sale_id %> - <%= sale.receipt_no %> - <%= sale.grand_total rescue '-' %> - <%= sale.total_tax %> - <%= sale.cashier_name rescue '-' %> - <%= sale.sale_status %> - <%= sale.receipt_date.strftime("%d-%m-%Y") %> - <%= link_to 'Show', transactions_sale_path(sale) %> - + <% if @sales != 0 %> + <% @sales.each do |sale| %> + + <%= sale.sale_id %> + <%= sale.receipt_no %> + <%= sale.grand_total rescue '-' %> + <%= sale.total_tax %> + <%= sale.cashier_name rescue '-' %> + <%= sale.sale_status %> + <%= sale.receipt_date.strftime("%d-%m-%Y") %> + <%= link_to 'Show', transactions_sale_path(sale) %> + + <% end %> + <% else %> +

There is no data for search....

<% end %>
- <%= paginate @sales %> + <% if @sales != 0 %> + <%= paginate @sales %> + <% end %> diff --git a/app/views/transactions/sales/show.html.erb b/app/views/transactions/sales/show.html.erb index 05514c7b..6fc4dd03 100644 --- a/app/views/transactions/sales/show.html.erb +++ b/app/views/transactions/sales/show.html.erb @@ -171,11 +171,11 @@ - diff --git a/app/views/transactions/sales/void.html.erb b/app/views/transactions/sales/void.html.erb index aef0aa40..9d18cca1 100644 --- a/app/views/transactions/sales/void.html.erb +++ b/app/views/transactions/sales/void.html.erb @@ -61,18 +61,16 @@ var reason = $('input[type="radio"]:checked').val(); console.log(reason) - var url = '<% transactions_manual_void_sale_path()%>'; + var url = 'manual_void_sale';alert(url) var sale_id = $(this).find(".customer-id").text(); $.ajax({ type: 'POST', - url: 'sales/manual_void_sale', + url: 'manual_void_sale', data: {reason: reason, sale_id: sale_id}, success: function(data){ - window.location.href = "transactions/sales" + // window.location.href = "transactions/sales" } }); - - }); }); diff --git a/config/routes.rb b/config/routes.rb index 299c1b87..f1ad9961 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -199,7 +199,7 @@ Rails.application.routes.draw do resources :sales resources :orders get "/sales/:sale_id/void" =>"sales#void", :as => "void" - post "sales/manual_void_sale", to: "sales#manual_void_sale", :as => "manual_void_sale" + post "sales/:sale_id/manual_void_sale", to: "sales#manual_void_sale", :as => "manual_void_sale" end #--------- Reports Controller Sections ------------# diff --git a/db/seeds.rb b/db/seeds.rb index cfbcd914..f6323d48 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -132,13 +132,13 @@ menu_item_attribute_size_large = MenuItemAttribute.create({attribute_type:"size" #Default Order Queue stations -order_queue_station1 = OrderQueueStation.create({station_name: "Queue Station 1", is_active: true,printer_name: "kitchen_printer", processing_items: JSON.generate(['01001','01002','01003','01004']), print_copy:true, cut_per_item: false, use_alternate_name: false, created_by: "SYSTEM DEFAULT"}) -order_queue_station2 = OrderQueueStation.create({station_name: "Queue Station 2", is_active: true,printer_name: "drink_printer", processing_items: JSON.generate(['02005','02006','02007','02008']), print_copy:true, cut_per_item: true, use_alternate_name: true, created_by: "SYSTEM DEFAULT"}) -zone_order_queue_station = OrderQueueStation.create({station_name: "Zone 1 Queue Station 2", is_active: true, printer_name: "print_station", processing_items: JSON.generate(['01001','01002','01003','01004','02005','02006','02007','02008']), print_copy: true, cut_per_item: true, use_alternate_name: false, created_by: "SYSTEM DEFAULT"}) +# order_queue_station1 = OrderQueueStation.create({station_name: "Queue Station 1", is_active: true,printer_name: "kitchen_printer", processing_items: JSON.generate(['01001','01002','01003','01004']), print_copy:true, cut_per_item: false, use_alternate_name: false, created_by: "SYSTEM DEFAULT"}) +# order_queue_station2 = OrderQueueStation.create({station_name: "Queue Station 2", is_active: true,printer_name: "drink_printer", processing_items: JSON.generate(['02005','02006','02007','02008']), print_copy:true, cut_per_item: true, use_alternate_name: true, created_by: "SYSTEM DEFAULT"}) +# zone_order_queue_station = OrderQueueStation.create({station_name: "Zone 1 Queue Station 2", is_active: true, printer_name: "print_station", processing_items: JSON.generate(['01001','01002','01003','01004','02005','02006','02007','02008']), print_copy: true, cut_per_item: true, use_alternate_name: false, created_by: "SYSTEM DEFAULT"}) #Default Order Queue Process By Zone -#zone_queue_station = OrderQueueProcessByZone.create({order_queue_station: zone_order_queue_station, zone: zone2}) +# zone_queue_station = OrderQueueProcessByZone.create({order_queue_station: zone_order_queue_station, zone: zone2}) #Create Adminstrator employee diff --git a/dump.rdb b/dump.rdb index 3c281110..656b5df8 100644 Binary files a/dump.rdb and b/dump.rdb differ diff --git a/lib/tasks/menu_import.rake b/lib/tasks/menu_import.rake index d715daf2..a444a3d4 100644 --- a/lib/tasks/menu_import.rake +++ b/lib/tasks/menu_import.rake @@ -615,5 +615,15 @@ zone3 = Zone.create({id:3, name: "H3", is_active:true, created_by: "SYSTEM DEFAU table = Table.create({name:"76", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) table = Table.create({name:"77", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) table = Table.create({name:"78", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + +#Default Order Queue stations +order_queue_station1 = OrderQueueStation.create({station_name: "K1", is_active: true,printer_name: "kitchen_printer", processing_items: JSON.generate(['01001','01002','01003','01004']), print_copy:true, cut_per_item: false, use_alternate_name: false, created_by: "SYSTEM DEFAULT"}) +order_queue_station2 = OrderQueueStation.create({station_name: "K2", is_active: true,printer_name: "drink_printer", processing_items: JSON.generate(['02005','02006','02007','02008']), print_copy:true, cut_per_item: true, use_alternate_name: true, created_by: "SYSTEM DEFAULT"}) +zone_order_queue_station = OrderQueueStation.create({station_name: "K3", is_active: true, printer_name: "print_station", processing_items: JSON.generate(['01001','01002','01003','01004','02005','02006','02007','02008']), print_copy: true, cut_per_item: true, use_alternate_name: false, created_by: "SYSTEM DEFAULT"}) + +# QueueStationZone +zone_queue_station1 = OrderQueueProcessByZone.create({order_queue_station: order_queue_station1, zone: zone}) +zone_queue_station2 = OrderQueueProcessByZone.create({order_queue_station: order_queue_station2, zone: zone2}) +zone_queue_station3 = OrderQueueProcessByZone.create({order_queue_station: zone_order_queue_station, zone: zone3}) end end