- Receipt No <% if @sale_data%>- <%=@sale_data.receipt_no%><% end %>
+ Receipt No : <%=@sale_data.receipt_no rescue ' '%>
+ Receipt Date : <%=@sale_data.receipt_date rescue '-'%>Table No <% if @sale_data%>- <%=@sale_data.receipt_no%><% end %>
\ No newline at end of file
From d058b1b1b8d82c1b564e7656e7c1b1e01e2d5525 Mon Sep 17 00:00:00 2001
From: Aung Myo
Date: Sun, 4 Jun 2017 16:42:18 +0630
Subject: [PATCH 03/17] fixed conflict gem
---
Gemfile | 8 +++-----
Gemfile.lock | 2 --
app/pdf/receipt_bill_pdf.rb | 2 +-
3 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/Gemfile b/Gemfile
index 985d976c..9d9e469b 100644
--- a/Gemfile
+++ b/Gemfile
@@ -9,19 +9,17 @@ end
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.1.0'
# Use mysql as the database for Active Record
-<<<<<<< HEAD
+
#gem 'mysql2', '>= 0.3.18', '< 0.5'
-gem 'pg'
-=======
+
gem 'mysql2', '>= 0.3.18', '< 0.5'
#Use PosgreSQL
-gem 'pg'
+#gem 'pg'
# redis server for cable
# gem 'redis', '~> 3.0'
->>>>>>> a2c9996b765666db4cbcbef188fcfa2d27a7a6e2
# Use Puma as the app server
gem 'puma', '~> 3.0'
# Use SCSS for stylesheets
diff --git a/Gemfile.lock b/Gemfile.lock
index 5dce67dc..e2c1dd73 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -119,7 +119,6 @@ GEM
nokogiri (1.7.2)
mini_portile2 (~> 2.1.0)
pdf-core (0.7.0)
- pg (0.20.0)
prawn (2.2.2)
pdf-core (~> 0.7.0)
ttfunk (~> 1.5)
@@ -253,7 +252,6 @@ DEPENDENCIES
kaminari!
listen (~> 3.0.5)
mysql2 (>= 0.3.18, < 0.5)
- pg
prawn
prawn-table
puma (~> 3.0)
diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb
index 2f559403..ffce7da2 100644
--- a/app/pdf/receipt_bill_pdf.rb
+++ b/app/pdf/receipt_bill_pdf.rb
@@ -23,7 +23,7 @@ class ReceiptBillPdf < Prawn::Document
header( printer_settings.printer_name, printer_settings.name)
stroke_horizontal_rule
- cashier_info(sale.receipt_no,sale.customer.name, sale.receipt_date)
+ cashier_info(sale.receipt_no,sale.customer, sale.receipt_date)
line_items(sale_items)
all_total(sale_data)
From c4e6f917f4c301f948547089cde6711a212da4a2 Mon Sep 17 00:00:00 2001
From: Yan
Date: Mon, 5 Jun 2017 10:22:12 +0630
Subject: [PATCH 04/17] modified in order model
---
app/models/order.rb | 2 --
1 file changed, 2 deletions(-)
diff --git a/app/models/order.rb b/app/models/order.rb
index 9133e907..ecdfd51a 100644
--- a/app/models/order.rb
+++ b/app/models/order.rb
@@ -215,7 +215,6 @@ class Order < ApplicationRecord
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
left join order_items on order_items.order_id = orders.id")
.where("dining_facilities.type=? and orders.order_type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,"dine_in",true)
-
.group("orders.id")
end
@@ -240,7 +239,6 @@ class Order < ApplicationRecord
left join bookings on bookings.id = booking_orders.id
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
left join order_items on order_items.order_id = orders.id")
-
.where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to)
.group("orders.id")
end
From 1dbe133b79667cdbdafdae42bb74e98f0bd640ae Mon Sep 17 00:00:00 2001
From: Yan
Date: Mon, 5 Jun 2017 13:28:40 +0630
Subject: [PATCH 05/17] update for db changed
---
app/controllers/oqs/home_controller.rb | 10 +++++-----
app/controllers/oqs/print_controller.rb | 4 ++--
app/models/printer/order_queue_printer.rb | 18 +++++++++---------
app/models/seed_generator.rb | 2 +-
app/views/oqs/home/index.html.erb | 6 +++---
5 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/app/controllers/oqs/home_controller.rb b/app/controllers/oqs/home_controller.rb
index 1292a5e6..49c496a8 100644
--- a/app/controllers/oqs/home_controller.rb
+++ b/app/controllers/oqs/home_controller.rb
@@ -35,15 +35,15 @@ class Oqs::HomeController < BaseOqsController
# Query for OQS with status
def queue_items_query(status)
- AssignedOrderItem.select("assigned_order_items.id, oqs.station_name, oqs.is_active, df.name as zone, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, cus.name as customer_name, odt.created_at")
+ AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.station_name, oqs.is_active, df.name as zone, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, cus.name as customer_name, odt.created_at")
.joins("join order_queue_process_by_zones as oqpz ON oqpz.order_queue_station_id = assigned_order_items.order_queue_station_id
left join dining_facilities as df on df.zone_id = oqpz.zone_id
- left join order_queue_stations as oqs ON oqs.id = assigned_order_items.order_queue_station_id
- left join orders as od ON od.id = assigned_order_items.order_id
+ left join order_queue_stations as oqs ON oqs.order_queue_stations_id = assigned_order_items.order_queue_station_id
+ left join orders as od ON od.order_id = assigned_order_items.order_id
left join order_items as odt ON odt.item_code = assigned_order_items.item_code
- left join customers as cus ON cus.id = od.customer_id")
+ left join customers as cus ON cus.customer_id = od.customer_id")
.where("assigned_order_items.delivery_status = #{status}")
- .group("assigned_order_items.id")
+ .group("assigned_order_items.assigned_order_item_id")
.order("odt.item_name DESC")
end
end
diff --git a/app/controllers/oqs/print_controller.rb b/app/controllers/oqs/print_controller.rb
index e0b729c3..1b48fae6 100644
--- a/app/controllers/oqs/print_controller.rb
+++ b/app/controllers/oqs/print_controller.rb
@@ -2,7 +2,7 @@ class Oqs::PrintController < ApplicationController
def print
unique_code="OrderItemPdf"
assigned_item_id=params[:id]
- assigned_order_item=AssignedOrderItem.select("order_id, item_code").where('id='+assigned_item_id)
+ assigned_order_item=AssignedOrderItem.select("order_id, item_code").where('assigned_order_item_id='+assigned_item_id)
print_settings=PrintSetting.find_by_unique_code(unique_code)
order_queue_printer= Printer::OrderQueuePrinter.new(print_settings)
@@ -17,7 +17,7 @@ class Oqs::PrintController < ApplicationController
def print_order_summary
unique_code="OrderSummaryPdf"
assigned_item_id=params[:id]
- assigned_order_item=AssignedOrderItem.select("order_id").where('id='+assigned_item_id)
+ assigned_order_item=AssignedOrderItem.select("order_id").where('assigned_order_item_id='+assigned_item_id)
print_settings=PrintSetting.find_by_unique_code(unique_code)
order_queue_printer= Printer::OrderQueuePrinter.new(print_settings)
diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb
index 2440f176..3428bb98 100644
--- a/app/models/printer/order_queue_printer.rb
+++ b/app/models/printer/order_queue_printer.rb
@@ -26,21 +26,21 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
def print_query(type, code)
if type == 'order_item'
OrderItem.select("order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.item_order_by as order_by, order_items.created_at as order_at, cus.name as customer, df.name as dining")
- .joins("left join orders ON orders.id = order_items.order_id
+ .joins("left join orders ON orders.order_id = order_items.order_id
left join booking_orders AS bo ON bo.order_id=order_items.order_id
- left join bookings AS b ON b.id = bo.booking_id
- left join dining_facilities AS df ON df.id = b.dining_facility_id
- left join customers as cus ON cus.id = orders.customer_id")
+ left join bookings AS b ON b.booking_id = bo.booking_id
+ left join dining_facilities AS df ON df.dining_facility_id = b.dining_facility_id
+ left join customers as cus ON cus.customer_id = orders.customer_id")
.where("order_items.item_code=" + code)
.group("order_items.item_code")
else
OrderItem.select("order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.item_order_by as order_by, order_items.created_at as order_at, cus.name as customer, df.name as dining")
- .joins("left join orders ON orders.id = order_items.order_id
+ .joins("left join orders ON orders.order_id = order_items.order_id
left join booking_orders AS bo ON bo.order_id=order_items.order_id
- left join bookings AS b ON b.id = bo.booking_id
- left join dining_facilities AS df ON df.id = b.dining_facility_id
- left join customers as cus ON cus.id = orders.customer_id")
- .where("orders.id=" + code.to_s)
+ left join bookings AS b ON b.booking_id = bo.booking_id
+ left join dining_facilities AS df ON df.dining_facility_id = b.dining_facility_id
+ left join customers as cus ON cus.customer_id = orders.customer_id")
+ .where("orders.order_id=" + code.to_s)
.group("order_items.item_code")
end
diff --git a/app/models/seed_generator.rb b/app/models/seed_generator.rb
index 02a9fb64..ff025b6f 100644
--- a/app/models/seed_generator.rb
+++ b/app/models/seed_generator.rb
@@ -14,7 +14,7 @@ class SeedGenerator < ApplicationRecord
seed.current = current_no
seed.save
end
- padding_len = 16 - prefix.len
+ padding_len = 16 - prefix.length
return prefix +"-"+ seed.current.to_s.to_s.rjust((16-prefix.length)+1,'0')
end
diff --git a/app/views/oqs/home/index.html.erb b/app/views/oqs/home/index.html.erb
index 88c606da..47d80f38 100644
--- a/app/views/oqs/home/index.html.erb
+++ b/app/views/oqs/home/index.html.erb
@@ -61,7 +61,7 @@
<%= qid.customer_name %>
-
<%= qid.id %>
+
<%= qid.assigned_order_item_id %>
<%= qid.customer_name %>
-
<%= qid.id %>
+
<%= qid.assigned_order_item_id %>
<%
From b332d6a52508e76e1c9868fa2af00dc4e8708cdb Mon Sep 17 00:00:00 2001
From: Yan
Date: Mon, 5 Jun 2017 13:37:07 +0630
Subject: [PATCH 06/17] postfix length 16 to 12 for limit 16
---
app/models/seed_generator.rb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/models/seed_generator.rb b/app/models/seed_generator.rb
index ff025b6f..da1e6284 100644
--- a/app/models/seed_generator.rb
+++ b/app/models/seed_generator.rb
@@ -14,9 +14,9 @@ class SeedGenerator < ApplicationRecord
seed.current = current_no
seed.save
end
- padding_len = 16 - prefix.length
+ padding_len = 12 - prefix.length
- return prefix +"-"+ seed.current.to_s.to_s.rjust((16-prefix.length)+1,'0')
+ return prefix +"-"+ seed.current.to_s.to_s.rjust((12-prefix.length)+1,'0')
end
def self.new_receipt_no
From f004db9b193bb4868ea57b9b1b0e5b87fa1c5a1b Mon Sep 17 00:00:00 2001
From: Yan
Date: Mon, 5 Jun 2017 15:06:34 +0630
Subject: [PATCH 07/17] updated migration code
---
app/controllers/api/orders_controller.rb | 2 +-
app/controllers/oqs/home_controller.rb | 2 +-
app/models/order.rb | 2 +-
app/models/order_item.rb | 2 +-
app/models/seed_generator.rb | 4 ++--
db/migrate/20170403135121_create_customers.rb | 4 ++--
db/migrate/20170403135934_create_orders.rb | 4 ++--
db/migrate/20170403140820_create_order_items.rb | 4 ++--
db/migrate/20170403160742_create_sales.rb | 4 ++--
db/migrate/20170403161857_create_sale_items.rb | 4 ++--
db/migrate/20170403163219_create_sale_taxes.rb | 4 ++--
db/migrate/20170403163734_create_sale_payments.rb | 4 ++--
db/migrate/20170403174029_create_sale_orders.rb | 8 ++++----
db/migrate/20170403174111_create_sale_audits.rb | 4 ++--
db/migrate/20170404034234_create_bookings.rb | 4 ++--
db/migrate/20170414110918_create_booking_orders.rb | 10 +++++-----
16 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/app/controllers/api/orders_controller.rb b/app/controllers/api/orders_controller.rb
index 443a754b..df9b1542 100644
--- a/app/controllers/api/orders_controller.rb
+++ b/app/controllers/api/orders_controller.rb
@@ -28,7 +28,7 @@ class Api::OrdersController < Api::ApiController
@order = Order.new
@order.source = params[:order_source]
@order.order_type = params[:order_type]
- @order.customer_id = params[:customer_id]
+ @order.customer_id = params[:customer_id] == ""? "CUS-000000000001" : params[:customer_id] # for no customer id from mobile
@order.items = params[:order_items]
@order.guest = params[:guest_info]
@order.table_id = params[:table_id]
diff --git a/app/controllers/oqs/home_controller.rb b/app/controllers/oqs/home_controller.rb
index 49c496a8..0c680624 100644
--- a/app/controllers/oqs/home_controller.rb
+++ b/app/controllers/oqs/home_controller.rb
@@ -38,7 +38,7 @@ class Oqs::HomeController < BaseOqsController
AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.station_name, oqs.is_active, df.name as zone, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, cus.name as customer_name, odt.created_at")
.joins("join order_queue_process_by_zones as oqpz ON oqpz.order_queue_station_id = assigned_order_items.order_queue_station_id
left join dining_facilities as df on df.zone_id = oqpz.zone_id
- left join order_queue_stations as oqs ON oqs.order_queue_stations_id = assigned_order_items.order_queue_station_id
+ left join order_queue_stations as oqs ON oqs.id = assigned_order_items.order_queue_station_id
left join orders as od ON od.order_id = assigned_order_items.order_id
left join order_items as odt ON odt.item_code = assigned_order_items.item_code
left join customers as cus ON cus.customer_id = od.customer_id")
diff --git a/app/models/order.rb b/app/models/order.rb
index ecdfd51a..3b54315c 100644
--- a/app/models/order.rb
+++ b/app/models/order.rb
@@ -40,7 +40,7 @@ class Order < ApplicationRecord
self.adding_line_items
#Add Order Table and Room relation afrer order creation
- BookingOrder.create({:booking_id => booking.id, :order => self})
+ BookingOrder.create({:booking_id => booking.booking_id, :order => self})
#Send order to queue one it done!
process_order_queue
diff --git a/app/models/order_item.rb b/app/models/order_item.rb
index 1cd83dc1..92992f90 100644
--- a/app/models/order_item.rb
+++ b/app/models/order_item.rb
@@ -46,6 +46,6 @@ class OrderItem < ApplicationRecord
private
def generate_custom_id
- self.order_item_id = SeedGenerator.generate_id(self.class.name, "ODI")
+ self.order_items_id = SeedGenerator.generate_id(self.class.name, "ODI")
end
end
diff --git a/app/models/seed_generator.rb b/app/models/seed_generator.rb
index da1e6284..d55af84d 100644
--- a/app/models/seed_generator.rb
+++ b/app/models/seed_generator.rb
@@ -14,9 +14,9 @@ class SeedGenerator < ApplicationRecord
seed.current = current_no
seed.save
end
- padding_len = 12 - prefix.length
+ padding_len = 15 - prefix.length
- return prefix +"-"+ seed.current.to_s.to_s.rjust((12-prefix.length)+1,'0')
+ return prefix +"-"+ seed.current.to_s.to_s.rjust((14-prefix.length)+1,'0')
end
def self.new_receipt_no
diff --git a/db/migrate/20170403135121_create_customers.rb b/db/migrate/20170403135121_create_customers.rb
index 17c104cd..8094f035 100644
--- a/db/migrate/20170403135121_create_customers.rb
+++ b/db/migrate/20170403135121_create_customers.rb
@@ -1,7 +1,7 @@
class CreateCustomers < ActiveRecord::Migration[5.0]
def change
- create_table :customers, :id => false, :primary_key => :customer_id do |t|
- t.string :customer_id, :limit => 16, :null => false, :index => true, :unique => true #custom foreign_key to prevent conflict during sync
+ create_table :customers, :id => false do |t|
+ t.string :customer_id, :limit => 16, :primary_key => true #custom foreign_key to prevent conflict during sync
t.string :name, :null => false
t.string :company
t.string :contact_no
diff --git a/db/migrate/20170403135934_create_orders.rb b/db/migrate/20170403135934_create_orders.rb
index 7fe7eb12..a80e2760 100644
--- a/db/migrate/20170403135934_create_orders.rb
+++ b/db/migrate/20170403135934_create_orders.rb
@@ -1,7 +1,7 @@
class CreateOrders < ActiveRecord::Migration[5.0]
def change
- create_table :orders, :id => false, :primary_key => :order_id do |t|
- t.string :order_id, :limit => 16, :null => false, :index => true, :unique => true #custom foreign_key to prevent conflict during sync
+ create_table :orders, :id => false do |t|
+ t.string :order_id, :limit => 16, :primary_key => true #custom foreign_key to prevent conflict during sync
t.datetime :date, :null => false
t.string :source, :null => false, :default => "emenu"
t.string :order_type, :null => false, :default => "dine-in"
diff --git a/db/migrate/20170403140820_create_order_items.rb b/db/migrate/20170403140820_create_order_items.rb
index 45a0f8fa..32760907 100644
--- a/db/migrate/20170403140820_create_order_items.rb
+++ b/db/migrate/20170403140820_create_order_items.rb
@@ -1,7 +1,7 @@
class CreateOrderItems < ActiveRecord::Migration[5.0]
def change
- create_table :order_items, :id => false, :primary_key => :order_items_id do |t|
- t.string :order_items_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
+ create_table :order_items, :id => false do |t|
+ t.string :order_items_id, :limit => 16, :primary_key => true #custom primary key - to ensure consistence for cloud syncing
t.string :order_id, foreign_key: true, :null => false, :limit => 16
t.string :order_item_status, :null => false, :default => "new"
t.string :item_order_by #person who order this
diff --git a/db/migrate/20170403160742_create_sales.rb b/db/migrate/20170403160742_create_sales.rb
index 8d653421..c2bb718a 100644
--- a/db/migrate/20170403160742_create_sales.rb
+++ b/db/migrate/20170403160742_create_sales.rb
@@ -1,7 +1,7 @@
class CreateSales < ActiveRecord::Migration[5.0]
def change
- create_table :sales, :id => false, :primary_key => :sale_id do |t|
- t.string :sale_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
+ create_table :sales, :id => false do |t|
+ t.string :sale_id, :limit => 16, :primary_key => true #custom primary key - to ensure consistence for cloud syncing
t.integer :cashier_id, :index => true
t.string :cashier_name
diff --git a/db/migrate/20170403161857_create_sale_items.rb b/db/migrate/20170403161857_create_sale_items.rb
index 7f58c5bb..aaf1dac3 100644
--- a/db/migrate/20170403161857_create_sale_items.rb
+++ b/db/migrate/20170403161857_create_sale_items.rb
@@ -1,7 +1,7 @@
class CreateSaleItems < ActiveRecord::Migration[5.0]
def change
- create_table :sale_items, :id => false, :primary_key => :sale_item_id do |t|
- t.string :sale_item_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
+ create_table :sale_items, :id => false do |t|
+ t.string :sale_item_id, :limit => 16, :primary_key => true#custom primary key - to ensure consistence for cloud syncing
t.string :sale_id, foreign_key: true, :limit => 16
t.string :product_code, :null => false
t.string :product_name, :null => false
diff --git a/db/migrate/20170403163219_create_sale_taxes.rb b/db/migrate/20170403163219_create_sale_taxes.rb
index d12ab367..3d28381a 100644
--- a/db/migrate/20170403163219_create_sale_taxes.rb
+++ b/db/migrate/20170403163219_create_sale_taxes.rb
@@ -1,7 +1,7 @@
class CreateSaleTaxes < ActiveRecord::Migration[5.0]
def change
- create_table :sale_taxes, :id => false, :primary_key => :sale_tax_id do |t|
- t.string :sale_tax_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
+ create_table :sale_taxes, :id => false do |t|
+ t.string :sale_tax_id, :limit => 16, :primary_key => true #custom primary key - to ensure consistence for cloud syncing
t.string :sale_id, foreign_key: true, :limit => 16
t.string :tax_name, :null => false
diff --git a/db/migrate/20170403163734_create_sale_payments.rb b/db/migrate/20170403163734_create_sale_payments.rb
index fc625e44..3badca93 100644
--- a/db/migrate/20170403163734_create_sale_payments.rb
+++ b/db/migrate/20170403163734_create_sale_payments.rb
@@ -1,7 +1,7 @@
class CreateSalePayments < ActiveRecord::Migration[5.0]
def change
- create_table :sale_payments, :id => false, :primary_key => :sale_payment_id do |t|
- t.string :sale_payment_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
+ create_table :sale_payments, :id => false do |t|
+ t.string :sale_payment_id, :limit => 16, :primary_key => true #custom primary key - to ensure consistence for cloud syncing
t.string :sale_id, foreign_key: true, :limit => 16
t.string :payment_method, :null => false, :default => "cash"
diff --git a/db/migrate/20170403174029_create_sale_orders.rb b/db/migrate/20170403174029_create_sale_orders.rb
index 420e4b13..3da13e60 100644
--- a/db/migrate/20170403174029_create_sale_orders.rb
+++ b/db/migrate/20170403174029_create_sale_orders.rb
@@ -1,10 +1,10 @@
class CreateSaleOrders < ActiveRecord::Migration[5.0]
def change
- create_table :sale_orders, :id => false, :primary_key => :sale_order_id do |t|
- t.string :sale_order_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
+ create_table :sale_orders, :id => false do |t|
+ t.primary_key :sale_order_id #custom primary key - to ensure consistence for cloud syncing
- t.string :sale, foreign_key: true,:limit => 16
- t.string :order, foreign_key: true, :limit => 16
+ t.string :sale_id, foreign_key: true,:limit => 16
+ t.string :order_id, foreign_key: true, :limit => 16
t.timestamps
end
diff --git a/db/migrate/20170403174111_create_sale_audits.rb b/db/migrate/20170403174111_create_sale_audits.rb
index 38af14ab..ae6ba3f4 100644
--- a/db/migrate/20170403174111_create_sale_audits.rb
+++ b/db/migrate/20170403174111_create_sale_audits.rb
@@ -1,7 +1,7 @@
class CreateSaleAudits < ActiveRecord::Migration[5.0]
def change
- create_table :sale_audits, :id => false, :primary_key => :sale_audit_id do |t|
- t.string :sale_audit_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
+ create_table :sale_audits, :id => false do |t|
+ t.string :sale_audit_id, :limit => 16, :primary_key => true #custom primary key - to ensure consistence for cloud syncing
t.string :sale_id, foreign_key: true, :limit => 16
t.string :action, :null => false
diff --git a/db/migrate/20170404034234_create_bookings.rb b/db/migrate/20170404034234_create_bookings.rb
index a9e7c21f..f41e8fb4 100644
--- a/db/migrate/20170404034234_create_bookings.rb
+++ b/db/migrate/20170404034234_create_bookings.rb
@@ -1,7 +1,7 @@
class CreateBookings < ActiveRecord::Migration[5.0]
def change
- create_table :bookings, :id => false, :primary_key => :booking_id do |t|
- t.string :booking_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
+ create_table :bookings, :id => false do |t|
+ t.string :booking_id, :limit => 16, :primary_key => true #custom primary key - to ensure consistence for cloud syncing
t.references :dining_facility, foreign_key: true
t.string :type, :null => false, :default => "Table"
diff --git a/db/migrate/20170414110918_create_booking_orders.rb b/db/migrate/20170414110918_create_booking_orders.rb
index 50277de9..e9bf7cc0 100644
--- a/db/migrate/20170414110918_create_booking_orders.rb
+++ b/db/migrate/20170414110918_create_booking_orders.rb
@@ -1,10 +1,10 @@
class CreateBookingOrders < ActiveRecord::Migration[5.0]
def change
- create_table :booking_orders, :id => false, :primary_key => :booking_order_id do |t|
- t.string :booking_order_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
-
- t.string :booking, foreign_key: true, :limit => 16
- t.string :order, foreign_key: true, :limit => 16
+ create_table :booking_orders, :id => false do |t|
+ #t.string :booking_order_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
+ t.primary_key :booking_order_id
+ t.string :booking_id, foreign_key: true, :limit => 16
+ t.string :order_id, foreign_key: true, :limit => 16
t.timestamps
end
From 68e51c98c32aff51f5584c1e5ec13ed4dddec44c Mon Sep 17 00:00:00 2001
From: Aung Myo
Date: Mon, 5 Jun 2017 15:07:44 +0630
Subject: [PATCH 08/17] update origamitable,room query
---
Gemfile.lock | 6 +-
app/controllers/origami/home_controller.rb | 1 +
app/models/customer.rb | 3 +
app/models/menu_item.rb | 2 +-
app/models/order.rb | 67 ++++++++++++----------
app/models/order_item.rb | 11 ++--
app/models/sale_item.rb | 9 +--
app/models/seed_generator.rb | 4 +-
app/views/origami/home/index.html.erb | 21 +++++--
9 files changed, 75 insertions(+), 49 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index e2c1dd73..badb3aa4 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,6 +1,6 @@
GIT
remote: git://github.com/amatsuda/kaminari.git
- revision: c3c853a944cd2bff072ae05e48c563b2c9a29597
+ revision: bc52ae73d41386d344b5d1b18e689e5a988f1a03
branch: master
specs:
kaminari (1.0.1)
@@ -92,7 +92,7 @@ GEM
railties (>= 3.2, < 5.2)
globalid (0.4.0)
activesupport (>= 4.2.0)
- i18n (0.8.1)
+ i18n (0.8.4)
jbuilder (2.6.4)
activesupport (>= 3.0.0)
multi_json (>= 1.2)
@@ -124,7 +124,7 @@ GEM
ttfunk (~> 1.5)
prawn-table (0.2.2)
prawn (>= 1.3.0, < 3.0.0)
- puma (3.8.2)
+ puma (3.9.1)
rack (2.0.3)
rack-cors (0.4.1)
rack-protection (2.0.0)
diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb
index e27013e5..18a5819c 100644
--- a/app/controllers/origami/home_controller.rb
+++ b/app/controllers/origami/home_controller.rb
@@ -6,6 +6,7 @@ class Origami::HomeController < BaseOrigamiController
end
def show
str = []
+
if !params[:sale_id].nil?
@order_details = SaleItem.get_order_items_details(params[:sale_id])
@order_details.each do |ord_detail|
diff --git a/app/models/customer.rb b/app/models/customer.rb
index a9ffbfc5..625e8fb2 100644
--- a/app/models/customer.rb
+++ b/app/models/customer.rb
@@ -1,4 +1,7 @@
class Customer < ApplicationRecord
+
+ #self.primary_key = :customer_id
+
before_create :generate_custom_id
has_many :orders
has_many :sales
diff --git a/app/models/menu_item.rb b/app/models/menu_item.rb
index 2a4e86be..0eafa612 100644
--- a/app/models/menu_item.rb
+++ b/app/models/menu_item.rb
@@ -1,5 +1,5 @@
class MenuItem < ApplicationRecord
- belongs_to :account
+ #belongs_to :account
belongs_to :menu_category, :optional => true
has_many :menu_item_instances
belongs_to :parent, :class_name => "MenuItem", foreign_key: "menu_item_id", :optional => true
diff --git a/app/models/order.rb b/app/models/order.rb
index 45d92462..1ba50ed6 100644
--- a/app/models/order.rb
+++ b/app/models/order.rb
@@ -209,54 +209,63 @@ class Order < ApplicationRecord
#Origami: Cashier : to view order type Table
def self.get_booking_order_table
- booking_orders = Booking.select("sales.receipt_no,orders.status as order_status,bookings.id,sales.id as sale_id,dining_facilities.name as table_name")
- .joins("left join booking_orders on booking_orders.booking_id = bookings.id")
+ 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")
+ .joins("left join booking_orders on booking_orders.booking = bookings.booking_id")
.joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id")
- .joins("left join orders on orders.id = booking_orders.order_id")
- .joins("left join sale_orders on sale_orders.order_id = orders.id")
- .joins("left join sales on sales.id = sale_orders.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.id")
+ .joins("left join orders on orders.order_id = booking_orders.order")
+ .joins("left join sale_orders on sale_orders.order = orders.order_id")
+ .joins("left join sales on sales.sale_id = sale_orders.sale")
+ .where("booking_orders.order IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true)
+ .group("bookings.booking_id")
end
#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.id,sales.id as sale_id,dining_facilities.name as room_name")
- .joins("left join booking_orders on booking_orders.booking_id = bookings.id")
+ 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 = bookings.booking_id")
.joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id")
- .joins("left join orders on orders.id = booking_orders.order_id")
- .joins("left join sale_orders on sale_orders.order_id = orders.id")
- .joins("left join sales on sales.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.id")
-
+ .joins("left join orders on orders.order_id = booking_orders.order")
+ .joins("left join sale_orders on sale_orders.order = orders.order_id")
+ .joins("left join sales on sales.sale_id = sale_orders.sale")
+ .where("booking_orders.order IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true)
+ .group("bookings.booking_id")
+ end
#Origami: Cashier : to view order type Room
def self.get_order_rooms
- order_rooms = Order.select("orders.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")
- .joins("left join booking_orders on booking_orders.order_id = orders.id
- left join bookings on bookings.id = booking_orders.id
+ order_rooms = Order.select("orders.order_id as order_id,
+ sum(order_items.qty*order_items.price) as total_price,
+ order_items.order_items_id as order_items_id,dining_facilities.name as room_name")
+ .joins("left join booking_orders on booking_orders.order = orders.order_id
+ left join bookings on bookings.booking_id = booking_orders.booking_order_id
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
- left join order_items on order_items.order_id = orders.id")
+ 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.id,order_items.id,dining_facilities.name")
+ .group("orders.order_id,order_items.order_items_id,dining_facilities.name")
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.id as order_id,sales.receipt_no,orders.status as order_status,bookings.id,sales.id as sale_id,dining_facilities.name as table_name")
- .joins("left join booking_orders on booking_orders.order_id = orders.id
- left join bookings on bookings.id = booking_orders.id
+ 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 = orders.order_id
+ left join bookings on bookings.booking_id = booking_orders.booking_order_id
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
- left join order_items on order_items.order_id = orders.id
- left join sale_orders on sale_orders.order_id = orders.id
- left join sales on sales.id = sale_orders.sale_id")
-
+ left join order_items on order_items.order_id = orders.order_id
+ left join sale_orders on sale_orders.order = orders.order_id
+ left join sales on sales.sale_id = sale_orders.sale")
.where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to)
- .group("orders.id")
+ .group("orders.order_id")
# Booking.select("sales.receipt_no,orders.status as order_status,bookings.id,sales.id as sale_id,dining_facilities.name as table_name")
# .joins("left join booking_orders on booking_orders.booking_id = bookings.id")
diff --git a/app/models/order_item.rb b/app/models/order_item.rb
index a1cf25c3..94ec7a1c 100644
--- a/app/models/order_item.rb
+++ b/app/models/order_item.rb
@@ -39,18 +39,21 @@ class OrderItem < ApplicationRecord
#Origami : Cashier : to show order items details
def self.get_order_items_details(booking_id)
- booking_orders = BookingOrder.where("booking_id=?",booking_id)
+ booking_orders = BookingOrder.where("booking=?",booking_id)
+puts booking_orders.to_json
if booking_orders
booking_orders.each do |book_order|
+ puts "booooooooo"
+ puts book_order.booking_order_id
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.id = order_items.order_id")
- .where("order_items.order_id=?",book_order.order_id)
+ .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
-
+ end
private
def generate_custom_id
diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb
index b7e4e6dd..a94785ff 100644
--- a/app/models/sale_item.rb
+++ b/app/models/sale_item.rb
@@ -10,18 +10,19 @@ class SaleItem < ApplicationRecord
def self.get_order_items_details(sale_id)
- sale_orders = SaleOrder.where("sale_id=?",sale_id)
+ sale_orders = SaleOrder.where("sale=?",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)
+ .joins("left join sales on sales.sale_id = sale_items.sale_id")
+ .where("sale_items.sale_id=?",sale_order.sale)
return order_details
end
else
return false
end
-
+ end
+
private
def generate_custom_id
self.sale_item_id = SeedGenerator.generate_id(self.class.name, "SLI")
diff --git a/app/models/seed_generator.rb b/app/models/seed_generator.rb
index 02a9fb64..da1e6284 100644
--- a/app/models/seed_generator.rb
+++ b/app/models/seed_generator.rb
@@ -14,9 +14,9 @@ class SeedGenerator < ApplicationRecord
seed.current = current_no
seed.save
end
- padding_len = 16 - prefix.len
+ padding_len = 12 - prefix.length
- return prefix +"-"+ seed.current.to_s.to_s.rjust((16-prefix.length)+1,'0')
+ return prefix +"-"+ seed.current.to_s.to_s.rjust((12-prefix.length)+1,'0')
end
def self.new_receipt_no
diff --git a/app/views/origami/home/index.html.erb b/app/views/origami/home/index.html.erb
index 9bfd80ac..eb325bbf 100644
--- a/app/views/origami/home/index.html.erb
+++ b/app/views/origami/home/index.html.erb
@@ -31,13 +31,15 @@
<%=booking_order.table_name%>Receipt No : <%=booking_order.receipt_no%> Order Status : <%=booking_order.order_status %>
+ sale_<%=booking_order.sale_id %>
<% else %>
-
+
-
<%=booking_order.table_name%>
+
<%=booking_order.table_name%>
Order Status : <%=booking_order.order_status %>
+ sale_<%=booking_order.sale_id %>
<% end %>
@@ -53,18 +55,18 @@
<% if @booking_rooms %>
<% @booking_rooms.each do |booking_room| %>
<% if !booking_room.order_status = 'new'%>
-
+
- <%=booking_room.room_name%>
+ <%=booking_room.room_name%>Receipt No : <%=booking_room.receipt_no%> Order Status : <%=booking_room.order_status %>
<% else %>
-
+
-
<%=booking_room.room_name%>ddd
\
+
<%=booking_room.room_name%>ddd
\
Order Status : <%=booking_room.order_status %>
@@ -203,21 +205,26 @@
var table_or_order_id = 0
function callOrderDetails(sale_order_id){
+
var order_id = 0
var data_val = ""
sale_order = sale_order_id.split("_")[0]
if (sale_order == 'sale') {
order_id = sale_order_id.split("_")[1]
url = "origami/"+sale_order_id.split("_")[1]
+
data_val = { sale_id: sale_order_id.split("_")[1]}
}else{
order_id = sale_order_id.split("_")[1]
url = "origami/"+order_id
+
data_val = { order_id: sale_order_id.split("_")[1]}
+
}
table_or_order_id = order_id
+
var tbody = ""
$("#append-table").html("")
if (old_order_id != order_id){
@@ -230,8 +237,10 @@ function callOrderDetails(sale_order_id){
$("#sub-total").html("")
$.ajax({type: "GET",
url: url,
+
data: data_val,
success:function(result){
+
var sub_total = 0
var discount_amount = 0
var receipt_no = ""
From faca7295f7d84bc1404c12df81d67ee9d488c2bb Mon Sep 17 00:00:00 2001
From: Nweni
Date: Mon, 5 Jun 2017 17:14:07 +0630
Subject: [PATCH 09/17] added new image upload file
---
app/assets/javascripts/origami/payment.js | 113 +++++++++++++++++
app/assets/stylesheets/orgiami.scss | 18 +++
app/controllers/api/bill_controller.rb | 2 +-
app/controllers/origami/home_controller.rb | 9 +-
.../origami/payments_controller.rb | 8 ++
.../origami/request_bills_controller.rb | 21 +++-
app/models/booking.rb | 2 +-
app/models/order.rb | 6 +-
app/models/sale.rb | 3 +-
app/views/origami/home/index.html.erb | 64 +++++-----
app/views/origami/request_bills/show.html.erb | 116 +++++++++++++++++-
config/routes.rb | 3 +-
spec/models/print_setting_spec.rb~HEAD | 5 +
spec/models/print_setting_spec.rb~crm | 5 +
14 files changed, 325 insertions(+), 50 deletions(-)
create mode 100644 app/assets/javascripts/origami/payment.js
create mode 100644 spec/models/print_setting_spec.rb~HEAD
create mode 100644 spec/models/print_setting_spec.rb~crm
diff --git a/app/assets/javascripts/origami/payment.js b/app/assets/javascripts/origami/payment.js
new file mode 100644
index 00000000..e21a369e
--- /dev/null
+++ b/app/assets/javascripts/origami/payment.js
@@ -0,0 +1,113 @@
+// $(document).on('touchstart click', '.keypad', function(event){
+// event.stopPropagation();
+// event.preventDefault();
+// if(event.handled !== true) {
+//
+// // Do your magic here.
+// var input_value = $(this).attr("data-value");
+// switch (input_value) {
+//
+// case 'delete':
+// process_delete_payment();
+// break;
+//
+// case 'foc':
+// remove_input_action();
+// $(".foc").attr("data-action","true");
+// if(customerName.toString() != " "){ //if already chosen customer
+// if($("#foc_reason_lists").attr("foc_reason") == ' '){
+// alert("Please! Choose or Add FOC reason");
+// foc_additional_form();
+// }
+// else{
+// process_foc_payment();
+// }
+// }
+// else{
+// alert("Please! Choose or Save Customer");
+// foc_additional_form();
+// }
+// break;
+//
+// case 'nett':
+// remove_input_action();
+// $(".nett").attr("data-action","true");
+// if($(".credit_note_payment").hasClass("payment_selected")){
+// if(customerName == " "){
+// alert("Please! Choose or Save Customer");
+// showCustomer();
+// }
+// else{
+// $("#accept_payment_btn").attr("data-payment","credit");
+// process_nett_payment();
+// }
+// }
+// else{
+// process_nett_payment();
+// }
+// break;
+//
+// case 'edit':
+// process_edit_invoice();
+// break;
+//
+// case 'cancel':
+// remove_input_action();
+// var status = $("#label_amountdue").attr("data-status");
+// if (status != 'completed' && status != 'void'){
+// $(".cancel").attr("data-action","true");
+// var message = confirm("Are you sure to void? Please, add reason!");
+// if (message == true) {
+// $(".additional_form").hide();
+// $("#void_sale_additional_form").show();
+// process_cancel_payment();
+// }
+// }
+// else{
+// $(".cancel").addClass("dim");
+// }
+// break;
+//
+// case 'ent':
+// amount_due = parseFloat($("#label_amountdue").attr("data-original"));
+// other_amt = parseFloat($("#label_cash_amount").attr("data-value"));
+// credit_amount = parseFloat($("#label_credit_note").text());
+// if ($(".credit_note_payment").hasClass("payment_selected") && credit_amount > 0){
+// if(customerName.toString() != " "){
+// if(credit_amount > (amount_due - other_amt)){
+// alert("You shouldn't exceed the amount due.");
+// }
+// else{
+// $("#accept_payment_btn").attr("data-payment","credit");
+// update_balance_due();
+// }
+// }
+// else{
+// alert("Please! Choose or Save Customer");
+// }
+// }
+// else{
+// update_balance_due();
+// }
+//
+// break;
+// case 'clear':
+// process_clear_payment();
+// break;
+//
+// default:
+//
+// var existing_value = $(".payment_selected span").text();
+//
+// if (existing_value == "0" || existing_value == "0.00") { existing_value = ""; }
+// existing_value = existing_value + input_value;
+// $(".payment_selected span").text(existing_value);
+//
+// }
+//
+//
+// event.handled = true;
+// } else {
+// return false;
+// }
+// });
diff --git a/app/assets/stylesheets/orgiami.scss b/app/assets/stylesheets/orgiami.scss
index b0f802f1..70e1fe8b 100644
--- a/app/assets/stylesheets/orgiami.scss
+++ b/app/assets/stylesheets/orgiami.scss
@@ -7,3 +7,21 @@
// min-height: 75rem;
// padding-top: 4.5rem;
// }
+
+.cashier_number{
+ height:76px;
+ line-height:80px;
+ text-align:center;
+ background:#54A5AF;
+ float:left;
+ margin:2px;
+ font-size:20px;
+ color:white;
+ cursor:pointer;
+}
+.cashier_number:hover{
+ background:#A9F5F2;
+}
+.long{
+ width:100%
+}
diff --git a/app/controllers/api/bill_controller.rb b/app/controllers/api/bill_controller.rb
index d4940907..a98c8f3d 100644
--- a/app/controllers/api/bill_controller.rb
+++ b/app/controllers/api/bill_controller.rb
@@ -10,7 +10,7 @@ class Api::BillController < Api::ApiController
if (params[:booking_id])
@sale = Sale.new
@status = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee.name)
-
+
elsif (params[:order_id])
@sale = Sale.new
@status = @sale.generate_invoice_from_order(params[:order_id], current_login_employee.name)
diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb
index cbca1424..be5045d9 100644
--- a/app/controllers/origami/home_controller.rb
+++ b/app/controllers/origami/home_controller.rb
@@ -4,12 +4,13 @@ class Origami::HomeController < BaseOrigamiController
@order_rooms = Order.get_order_rooms()
@orders = Order.get_orders()
end
+
def show
str = []
- @order_details = OrderItem.get_order_items_details(params[:order_id])
- @order_details.each do |ord_detail|
+ @order_details = OrderItem.get_order_items_details(params[:order_id])
+ @order_details.each do |ord_detail|
str.push(ord_detail)
- end
- render :json => str.to_json
+ end
+ render :json => str.to_json
end
end
diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb
index 447d1282..a09b81fe 100644
--- a/app/controllers/origami/payments_controller.rb
+++ b/app/controllers/origami/payments_controller.rb
@@ -1,6 +1,14 @@
class Origami::PaymentsController < BaseOrigamiController
+
+
def index
+
end
+
def create
end
+
+ def show
+
+ end
end
diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb
index 9f971289..40fc27f1 100644
--- a/app/controllers/origami/request_bills_controller.rb
+++ b/app/controllers/origami/request_bills_controller.rb
@@ -1,22 +1,33 @@
class Origami::RequestBillsController < BaseOrigamiController
- def show
+
+ def create
@sale = Sale.new
check_order = Order.find_by_id(params[:id])
+
if check_order
- @order_details = OrderItem.get_order_items_details(check_order.id)
- @order_details = OrderItem.get_order_items_details(check_order.id)
+ @order_details = OrderItem.get_order_items_details(check_order.id)
+ @order_details = OrderItem.get_order_items_details(check_order.id)
@status, @sale_id = @sale.generate_invoice_from_order(check_order.id, nil,current_login_employee.name)
@sale_data = Sale.find_by_id(@sale_id)
@sale_items = SaleItem.where("sale_id=?",@sale_id)
- end
+ end
+
unique_code="ReceiptBillPdf"
+
print_settings=PrintSetting.find_by_unique_code(unique_code)
printer = Printer::ReceiptPrinter.new(print_settings)
printer.print_receipt_bill(print_settings,@sale_items,@sale)
-
+ end
+
+
+ def show
+ sale_id = params[:sale_id]
+ if Sale.exists?(sale_id)
+ @sale_data = Sale.find_by_id(sale_id)
+ end
end
end
diff --git a/app/models/booking.rb b/app/models/booking.rb
index c34ecf42..fcd0c909 100644
--- a/app/models/booking.rb
+++ b/app/models/booking.rb
@@ -1,6 +1,6 @@
class Booking < ApplicationRecord
#primary key - need to be unique
-
+
belongs_to :dining_facility, :optional => true
belongs_to :sale, :optional => true
has_many :booking_orders
diff --git a/app/models/order.rb b/app/models/order.rb
index f571faa9..dc969187 100644
--- a/app/models/order.rb
+++ b/app/models/order.rb
@@ -223,8 +223,7 @@ class Order < ApplicationRecord
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
left join order_items on order_items.order_id = orders.id")
.where("dining_facilities.type=? and orders.order_type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,"dine_in",true)
-
- .group("orders.id")
+ .group("orders.id, order_items.id,dining_facilities.name")
end
#Origami: Cashier : to view order type Room
@@ -248,8 +247,7 @@ class Order < ApplicationRecord
left join bookings on bookings.id = booking_orders.id
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
left join order_items on order_items.order_id = orders.id")
-
.where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to)
- .group("orders.id")
+ .group("orders.id,order_items.id,dining_facilities.name")
end
end
diff --git a/app/models/sale.rb b/app/models/sale.rb
index ca3bd631..1a1c4b67 100644
--- a/app/models/sale.rb
+++ b/app/models/sale.rb
@@ -28,7 +28,8 @@ class Sale < ApplicationRecord
end
booking.sale_id = sale_id
end
-
+ order = booking.booking_orders.take.order
+ link_order_sale(order.id)
return status
end
end
diff --git a/app/views/origami/home/index.html.erb b/app/views/origami/home/index.html.erb
index 7dcc1ba8..cb11da1d 100644
--- a/app/views/origami/home/index.html.erb
+++ b/app/views/origami/home/index.html.erb
@@ -24,7 +24,7 @@
<% if @order_table %>
<% @order_table.each do |order_table| %>
-
+
<%=order_table.table_name%>
<%=order_table.total_price%>
@@ -40,9 +40,9 @@
- <% @order_rooms.each do |order_room| %>
+ <% @order_rooms.each do |order_room| %>
-
+
<% tablename = order_room.room_name%>
<%=order_room.room_name%>
@@ -60,9 +60,9 @@
- <% @orders.each do |order| %>
+ <% @orders.each do |order| %>
-
+
<%=order.table_or_room_name%>
<%=order.total_price%>
@@ -110,8 +110,8 @@
-
-
+
+
@@ -138,72 +138,80 @@
+ Req.Bill
+
-
+
-
\ No newline at end of file
+
diff --git a/app/views/origami/request_bills/show.html.erb b/app/views/origami/request_bills/show.html.erb
index 7fd5de39..c3f99980 100644
--- a/app/views/origami/request_bills/show.html.erb
+++ b/app/views/origami/request_bills/show.html.erb
@@ -1,3 +1,4 @@
+
@@ -23,8 +24,7 @@
<% sub_total = 0 %>
- <% if @sale_items %>
- <% @sale_items.each do |sale_item| %>
+ <% @sale_data.sale_items.each do |sale_item| %>
<% sub_total += sale_item.qty*sale_item.unit_price%>
@@ -36,9 +36,8 @@
<%=(sale_item.qty*sale_item.unit_price)%>
-
+
<%end %>
- <%end %>
@@ -66,4 +65,111 @@
-
\ No newline at end of file
+
+
+
AMOUNT DUE
+
<%= @sale_data.grand_total %>
+
+
+
+
CASH
+
0.0
+
+
+
+
CREDIT
+
0.0
+
+
+
+
CARD
+
0.0
+
+
+
+
BALANCE
+
0.0
+
+
+
+
+
+
+
+
1
+
2
+
3
+
+
+
+
1000
+
+
+
+
+
+
4
+
5
+
6
+
+
+
+
5000
+
+
+
+
+
+
7
+
8
+
9
+
+
+
+
10000
+
+
+
+
+
+
0
+
.
+
00
+
+
+
+
50000
+
+
+
+
+
+
+
DEL
+
CLR
+
+
+
+
ENTER
+
+
+
+
+
+
+
+
diff --git a/config/routes.rb b/config/routes.rb
index 7ba039b0..8951a571 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -72,7 +72,8 @@ Rails.application.routes.draw do
resources :discounts, only: [:index,:new, :create ] #add discount type
resources :customers, only: [:index,:new, :create ] #add customer type
end
- resources :request_bills, only: [:show]
+ resources :request_bills, only: [:show]
+ get 'sale/:sale_id/payment' => 'request_bills#show'
end
#--------- Waiter/Ordering Station ------------#
diff --git a/spec/models/print_setting_spec.rb~HEAD b/spec/models/print_setting_spec.rb~HEAD
new file mode 100644
index 00000000..d2ee515b
--- /dev/null
+++ b/spec/models/print_setting_spec.rb~HEAD
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe PrintSetting, type: :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/print_setting_spec.rb~crm b/spec/models/print_setting_spec.rb~crm
new file mode 100644
index 00000000..d2ee515b
--- /dev/null
+++ b/spec/models/print_setting_spec.rb~crm
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe PrintSetting, type: :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
From 7b457400b2625f020b48435d81ff8c8c88552ca7 Mon Sep 17 00:00:00 2001
From: PhyoTheingi
Date: Mon, 5 Jun 2017 18:31:56 +0630
Subject: [PATCH 10/17] Delete Fix for parent child process in Menu
---
.../settings/menu_categories_controller.rb | 7 +++
.../menu_item_instances_controller.rb | 30 ++++++++----
app/controllers/settings/menus_controller.rb | 3 +-
.../settings/set_menu_items_controller.rb | 2 +-
.../settings/simple_menu_items_controller.rb | 2 +-
app/models/menu.rb | 9 ++++
app/models/menu_category.rb | 24 +++++++++
app/models/menu_item.rb | 29 ++++++++++-
app/models/menu_item_instance.rb | 8 +++
.../settings/menu_categories/index.html.erb | 2 +-
.../menu_item_instances/_form.html.erb | 4 +-
.../settings/menu_item_instances/new.html.erb | 3 +-
.../menu_item_instances/show.html.erb | 49 +------------------
app/views/settings/menus/index.html.erb | 3 +-
config/routes.rb | 2 +-
15 files changed, 110 insertions(+), 67 deletions(-)
diff --git a/app/controllers/settings/menu_categories_controller.rb b/app/controllers/settings/menu_categories_controller.rb
index d7f373aa..c2a521ae 100644
--- a/app/controllers/settings/menu_categories_controller.rb
+++ b/app/controllers/settings/menu_categories_controller.rb
@@ -63,7 +63,14 @@ class Settings::MenuCategoriesController < ApplicationController
# DELETE /settings/menu_categories/1
# DELETE /settings/menu_categories/1.json
def destroy
+ # instances = MenuItemInstance.where("menu_item_id=?",@settings_menu_item.id)
+ # instances.each do |instance|
+ # instance.destroy
+ # end
+ # @settings_menu_item.destroy
+
# @settings_menu_category.destroy
+ abc = MenuCategory.destroyCategory(@settings_menu_category)
respond_to do |format|
format.html { redirect_to settings_menu_categories_path, notice: 'Menu category was successfully destroyed.' }
format.json { head :no_content }
diff --git a/app/controllers/settings/menu_item_instances_controller.rb b/app/controllers/settings/menu_item_instances_controller.rb
index 6bd00638..2b1fcecf 100644
--- a/app/controllers/settings/menu_item_instances_controller.rb
+++ b/app/controllers/settings/menu_item_instances_controller.rb
@@ -11,18 +11,21 @@ class Settings::MenuItemInstancesController < ApplicationController
# GET /settings/menu_item_instances/1
# GET /settings/menu_item_instances/1.json
def show
- @category = MenuCategory.find(@item.menu_category_id)
+ id = MenuItemInstance.findParentCategory(@item)
+ @category = MenuCategory.find(id)
end
# GET /settings/menu_item_instances/new
def new
- @category = MenuCategory.find(@item.menu_category_id)
+ id = MenuItemInstance.findParentCategory(@item)
+ @category = MenuCategory.find(id)
@settings_menu_item_instances = MenuItemInstance.new
end
# GET /settings/menu_item_instances/1/edit
def edit
- @category = MenuCategory.find(@item.menu_category_id)
+ id = MenuItemInstance.findParentCategory(@item)
+ @category = MenuCategory.find(id)
end
# POST /settings/menu_item_instances
@@ -30,6 +33,7 @@ class Settings::MenuItemInstancesController < ApplicationController
def create
@settings_menu_item_instances = MenuItemInstance.new(settings_menu_item_instance_params)
+ #check if the menu item type is simple or not( not only the diff of status .. here is different routes)
if params[:simple_menu_item_id]
@settings_menu_item_instances.menu_item_id = params[:simple_menu_item_id]
catID = MenuItem.find(params[:simple_menu_item_id])
@@ -38,10 +42,11 @@ class Settings::MenuItemInstancesController < ApplicationController
catID = MenuItem.find(params[:set_menu_item_id])
end
- category = MenuCategory.find(catID.menu_category_id)
+ id = MenuItemInstance.findParentCategory(catID)
+ category = MenuCategory.find(id)
respond_to do |format|
if @settings_menu_item_instances.save
- @settings_menu_item_instances.item_attributes = params[:menu_item_instance][:item_attributes]
+ @settings_menu_item_instances.item_attributes = params[:menu_item_instance][:item_attributes].reject(&:blank?)
@settings_menu_item_instances.save
format.html { redirect_to settings_menu_category_simple_menu_item_path(category,catID), notice: 'Menu item instance was successfully created.' }
format.json { render :show, status: :created, location: @settings_menu_item_instances }
@@ -55,14 +60,15 @@ class Settings::MenuItemInstancesController < ApplicationController
# PATCH/PUT /settings/menu_item_instances/1
# PATCH/PUT /settings/menu_item_instances/1.json
def update
- puts "params[:menu_item_instance][:item_attributes]"
- puts params[:menu_item_instance][:item_attributes]
+ #check if the menu item type is simple or not( not only the diff of status .. here is different routes)
if params[:simple_menu_item_id]
catID = MenuItem.find(params[:simple_menu_item_id])
else
catID = MenuItem.find(params[:set_menu_item_id])
end
- category = MenuCategory.find(catID.menu_category_id)
+
+ id = MenuItemInstance.findParentCategory(catID)
+ category = MenuCategory.find(id)
respond_to do |format|
if @settings_menu_item_instances.update(settings_menu_item_instance_params)
@@ -86,7 +92,13 @@ class Settings::MenuItemInstancesController < ApplicationController
else
catID = MenuItem.find(params[:set_menu_item_id])
end
- category = MenuCategory.find(catID.menu_category_id)
+ # check if the menu item is sub of another menu item
+ if catID.menu_category_id
+ category = MenuCategory.find(catID.menu_category_id)
+ else
+ item = MenuItem.find(catID.menu_item_id)
+ category = MenuCategory.find(item.menu_category_id)
+ end
respond_to do |format|
format.html { redirect_to settings_menu_category_simple_menu_item_path(category,catID), notice: 'Menu item instance was successfully destroyed.' }
format.json { head :no_content }
diff --git a/app/controllers/settings/menus_controller.rb b/app/controllers/settings/menus_controller.rb
index e0ecde30..fa6ac158 100644
--- a/app/controllers/settings/menus_controller.rb
+++ b/app/controllers/settings/menus_controller.rb
@@ -55,7 +55,8 @@ class Settings::MenusController < ApplicationController
# DELETE /settings/menus/1
# DELETE /settings/menus/1.json
def destroy
- @settings_menu.destroy
+ # @settings_menu.destroy
+ abc = Menu.destroyMenu(@settings_menu)
respond_to do |format|
format.html { redirect_to settings_menus_path, notice: 'Menu was successfully destroyed.' }
format.json { head :no_content }
diff --git a/app/controllers/settings/set_menu_items_controller.rb b/app/controllers/settings/set_menu_items_controller.rb
index f6771548..1c3e2247 100644
--- a/app/controllers/settings/set_menu_items_controller.rb
+++ b/app/controllers/settings/set_menu_items_controller.rb
@@ -62,7 +62,7 @@ class Settings::SetMenuItemsController < ApplicationController
# DELETE /settings/menu_items/1
# DELETE /settings/menu_items/1.json
def destroy
- # @settings_menu_item.destroy
+ abc = MenuItem.deleteRecursive(@settings_menu_item)
respond_to do |format|
format.html { redirect_to settings_menu_category_set_menu_items_path, notice: 'Menu item was successfully destroyed.' }
format.json { head :no_content }
diff --git a/app/controllers/settings/simple_menu_items_controller.rb b/app/controllers/settings/simple_menu_items_controller.rb
index e0d45fcb..b02310dc 100644
--- a/app/controllers/settings/simple_menu_items_controller.rb
+++ b/app/controllers/settings/simple_menu_items_controller.rb
@@ -59,7 +59,7 @@ class Settings::SimpleMenuItemsController < ApplicationController
# DELETE /settings/menu_items/1
# DELETE /settings/menu_items/1.json
def destroy
- # @settings_menu_item.destroy
+ abc = MenuItem.deleteRecursive(@settings_menu_item)
respond_to do |format|
format.html { redirect_to settings_menu_category_simple_menu_items_path, notice: 'Menu item was successfully destroyed.' }
format.json { head :no_content }
diff --git a/app/models/menu.rb b/app/models/menu.rb
index 0c956a1e..05adfac4 100644
--- a/app/models/menu.rb
+++ b/app/models/menu.rb
@@ -22,4 +22,13 @@ class Menu < ApplicationRecord
return current_menu
end
+
+ def self.destroyMenu(menu)
+ cats = MenuCategory.where("menu_id=?",menu.id)
+ cats.each do |cat|
+ abc = MenuCategory.destroyCategory(cat)
+ end
+ menu.destroy
+ return false
+ end
end
diff --git a/app/models/menu_category.rb b/app/models/menu_category.rb
index 474990f2..e660b4b5 100644
--- a/app/models/menu_category.rb
+++ b/app/models/menu_category.rb
@@ -8,5 +8,29 @@ class MenuCategory < ApplicationRecord
default_scope { order('order_by asc') }
+ def self.destroyCategory(menu_category)
+ # find the sub menu item of current item
+ sub_menu_cat = MenuCategory.where("menu_category_id=?",menu_category.id)
+ if sub_menu_cat.length != 0
+ sub_menu_cat.each do |sub|
+ if destroyCategory(sub)
+ end
+ end
+ # find the items of current menu item
+ items = MenuItem.where("menu_category_id=?",menu_category.id)
+ items.each do |item|
+ abc = MenuItem.deleteRecursive(item)
+ end
+ menu_category.destroy
+ return true
+ else
+ items = MenuItem.where("menu_category_id=?",menu_category.id)
+ items.each do |item|
+ abc = MenuItem.deleteRecursive(item)
+ end
+ menu_category.destroy
+ return false
+ end
+ end
end
diff --git a/app/models/menu_item.rb b/app/models/menu_item.rb
index 2a4e86be..22ec36de 100644
--- a/app/models/menu_item.rb
+++ b/app/models/menu_item.rb
@@ -1,5 +1,5 @@
class MenuItem < ApplicationRecord
- belongs_to :account
+ # belongs_to :account
belongs_to :menu_category, :optional => true
has_many :menu_item_instances
belongs_to :parent, :class_name => "MenuItem", foreign_key: "menu_item_id", :optional => true
@@ -38,4 +38,31 @@ class MenuItem < ApplicationRecord
return nil
end
+
+ def self.deleteRecursive(menu_item)
+
+ # find the sub menu item of current item
+ sub_menu_items = MenuItem.where("menu_item_id=?",menu_item.id)
+ if sub_menu_items.length != 0
+ sub_menu_items.each do |subitem|
+ if deleteRecursive(subitem)
+ end
+ end
+ # find the instances of current menu item
+ instances = MenuItemInstance.where("menu_item_id=?",menu_item.id)
+ instances.each do |instance|
+ instance.destroy
+ end
+ menu_item.destroy
+ return true
+ else
+ instances = MenuItemInstance.where("menu_item_id=?",menu_item.id)
+ instances.each do |instance|
+ instance.destroy
+ end
+ menu_item.destroy
+ return false
+ end
+
+ end
end
diff --git a/app/models/menu_item_instance.rb b/app/models/menu_item_instance.rb
index e7f7775e..09225a23 100644
--- a/app/models/menu_item_instance.rb
+++ b/app/models/menu_item_instance.rb
@@ -1,4 +1,12 @@
class MenuItemInstance < ApplicationRecord
belongs_to :menu_item
+ def self.findParentCategory(item)
+ if item.menu_category_id
+ return item.menu_category_id
+ else
+ parentitem = MenuItem.find(item.menu_item_id)
+ findParentCategory(parentitem)
+ end
+ end
end
diff --git a/app/views/settings/menu_categories/index.html.erb b/app/views/settings/menu_categories/index.html.erb
index 495addcc..8ac80a16 100644
--- a/app/views/settings/menu_categories/index.html.erb
+++ b/app/views/settings/menu_categories/index.html.erb
@@ -33,7 +33,7 @@