remove confilct data
This commit is contained in:
@@ -126,6 +126,7 @@ class Ability
|
||||
# can :overall_void, :void
|
||||
can :index, :home
|
||||
can :show, :home
|
||||
can :check_emp_access_code, :home
|
||||
can :read, Order
|
||||
can :update, Order
|
||||
can :manage, Booking
|
||||
@@ -151,6 +152,7 @@ class Ability
|
||||
can :create, :payment
|
||||
can :reprint, :payment
|
||||
can :rounding_adj, :payment
|
||||
can :foc, :payment
|
||||
can :print, :payment
|
||||
|
||||
can :move_dining, :movetable
|
||||
@@ -183,6 +185,16 @@ class Ability
|
||||
|
||||
can :print, :print
|
||||
can :print_order_summary, :print
|
||||
|
||||
can :edit, :sale_edit
|
||||
can :item_void, :sale_edit
|
||||
can :item_void_cancel, :sale_edit
|
||||
can :cancel_all_void, :sale_edit
|
||||
can :apply_void, :sale_edit
|
||||
can :item_foc, :sale_edit
|
||||
can :item_edit, :sale_edit
|
||||
|
||||
can :overall_void, :void
|
||||
|
||||
elsif user.role == "account"
|
||||
|
||||
@@ -236,6 +248,7 @@ class Ability
|
||||
can :reprint, :payment
|
||||
can :rounding_adj, :payment
|
||||
can :print, :payment
|
||||
can :foc, :payment
|
||||
|
||||
can :manage, Commission
|
||||
can :manage, Commissioner
|
||||
|
||||
@@ -352,28 +352,6 @@ class Customer < ApplicationRecord
|
||||
|
||||
end
|
||||
|
||||
#new customer for doemal
|
||||
def self.addCustomer(params)
|
||||
if params[:gender] == "female"
|
||||
gender = "Female"
|
||||
else
|
||||
gender = "Male"
|
||||
end
|
||||
customer = Customer.new
|
||||
customer.name = params[:name]
|
||||
customer.email = params[:email]
|
||||
customer.contact_no = params[:contact_no]
|
||||
customer.gender = params[:gender]
|
||||
customer.address = params[:address]
|
||||
customer.date_of_birth = params[:date_of_birth] ? Time.parse(params[:date_of_birth]).strftime("%Y-%m-%d") : ''
|
||||
customer.membership_id = params[:membership_id]
|
||||
customer.customer_type = "Takeaway"
|
||||
customer.tax_profiles = ["2"]
|
||||
customer.save
|
||||
|
||||
return customer
|
||||
end
|
||||
|
||||
WALKIN = "CUS-000000000001"
|
||||
TAKEAWAY = "CUS-000000000002"
|
||||
|
||||
|
||||
@@ -45,16 +45,21 @@ class MenuCategory < ApplicationRecord
|
||||
from_t = Time.parse(menu.valid_time_from.strftime("%H:%M:%S"))
|
||||
to_t = Time.parse(menu.valid_time_to.strftime("%H:%M:%S"))
|
||||
current_t = Time.parse(Time.now.utc.getlocal.strftime("%H:%M:%S"))
|
||||
|
||||
|
||||
from = from_t.hour * 3600 + from_t.min*60 + from_t.sec
|
||||
to = to_t.hour * 3600 + to_t.min* 60 + to_t.sec
|
||||
current = current_t.hour * 3600 + current_t.min*60+current_t.sec
|
||||
|
||||
if from > to
|
||||
h = to_t.hour
|
||||
if h < 12 # before noon
|
||||
if h == 0
|
||||
to = 24
|
||||
to = to * 3600 + to_t.min* 60 + to_t.sec
|
||||
else
|
||||
|
||||
h += 24
|
||||
to = h*3600 + to_t.min* 60 + to_t.sec
|
||||
end
|
||||
else # (after) noon
|
||||
if h > 12
|
||||
@@ -64,13 +69,9 @@ class MenuCategory < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
# from = from.split(':').map { |a| a.to_i }.inject(0) { |a, b| a * 60 + b}
|
||||
# to = to.split(':').map { |a| a.to_i }.inject(0) { |a, b| a * 60 + b}
|
||||
# current = current.split(':').map { |a| a.to_i }.inject(0) { |a, b| a * 60 + b}
|
||||
|
||||
day = Date.today.wday
|
||||
dayresult = menu.valid_days.include?(day.to_s)
|
||||
|
||||
|
||||
if current.between?(from, to) && menu.valid_days.include?(day.to_s)
|
||||
return true
|
||||
else
|
||||
@@ -80,7 +81,7 @@ class MenuCategory < ApplicationRecord
|
||||
|
||||
def get_sub_category
|
||||
menu_category = MenuCategory.find_by_menu_category_id(self.id)
|
||||
if menu_category
|
||||
if !menu_category.nil?
|
||||
return true
|
||||
end
|
||||
return false
|
||||
|
||||
@@ -64,7 +64,7 @@ class MyAesCrypt
|
||||
shop_json["data"].each do |j|
|
||||
if j["lookup"] == from
|
||||
# add [0...44] for production cloud for remove \n
|
||||
if(j["value"]["key"] == token)
|
||||
if(j["value"]["key"].gsub(/\s+/, "") == token)
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
@@ -57,7 +57,11 @@ class OrderQueueStation < ApplicationRecord
|
||||
|
||||
if oqs.auto_print && order_source != "quick_service"
|
||||
if oqs_order_items.length > 0
|
||||
print_slip(oqs, order, oqs_order_items)
|
||||
if oqs.cut_per_item
|
||||
print_slip_item(oqs, order, oqs_order_items)
|
||||
else
|
||||
print_slip(oqs, order, oqs_order_items)
|
||||
end
|
||||
is_auto_printed = true
|
||||
end
|
||||
end
|
||||
@@ -91,8 +95,12 @@ class OrderQueueStation < ApplicationRecord
|
||||
end
|
||||
|
||||
if oqs.auto_print && order_source != "quick_service"
|
||||
if oqs_order_items.length > 0
|
||||
print_slip(oqs, order, oqs_order_items)
|
||||
if oqs_order_items.length > 0
|
||||
if oqs.cut_per_item
|
||||
print_slip_item(oqs, order, oqs_order_items)
|
||||
else
|
||||
print_slip(oqs, order, oqs_order_items)
|
||||
end
|
||||
is_auto_printed = true
|
||||
end
|
||||
end
|
||||
@@ -137,8 +145,12 @@ class OrderQueueStation < ApplicationRecord
|
||||
end
|
||||
|
||||
if oqs.auto_print
|
||||
if oqs_order_items.length > 0
|
||||
print_slip(oqs, order, oqs_order_items)
|
||||
if oqs_order_items.length > 0
|
||||
if oqs.cut_per_item
|
||||
print_slip_item(oqs, order, oqs_order_items)
|
||||
else
|
||||
print_slip(oqs, order, oqs_order_items)
|
||||
end
|
||||
is_auto_printed = true
|
||||
end
|
||||
end
|
||||
@@ -165,8 +177,12 @@ class OrderQueueStation < ApplicationRecord
|
||||
end
|
||||
|
||||
if oqs.auto_print
|
||||
if oqs_order_items.length > 0
|
||||
print_slip(oqs, order, oqs_order_items)
|
||||
if oqs_order_items.length > 0
|
||||
if oqs.cut_per_item
|
||||
print_slip_item(oqs, order, oqs_order_items)
|
||||
else
|
||||
print_slip(oqs, order, oqs_order_items)
|
||||
end
|
||||
is_auto_printed = true
|
||||
end
|
||||
end
|
||||
@@ -211,7 +227,7 @@ class OrderQueueStation < ApplicationRecord
|
||||
end
|
||||
|
||||
#Print order_item in 1 slip per item
|
||||
def print_slip_item(oqs, assigned_item)
|
||||
def print_slip_item(oqs, order, assigned_items)
|
||||
order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf
|
||||
unique_code="OrderItemPdf"
|
||||
if !order_slim_pdf.empty?
|
||||
@@ -232,14 +248,17 @@ class OrderQueueStation < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
order_item = OrderItem.where("order_id='#{assigned_item.order_id}' AND item_instance_code='#{assigned_item.instance_code}'").first()
|
||||
# order_item = OrderItem.where("order_id='#{assigned_item.order_id}' AND item_instance_code='#{assigned_item.instance_code}'").first()
|
||||
# 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, oqs,item.order_id, order_item.order_items_id, print_status="" )
|
||||
|
||||
if !assigned_items.nil?
|
||||
assigned_items.each do |order_item|
|
||||
order_queue_printer.print_order_item(print_settings, oqs,order_item.order_id, order_item.order_items_id, print_status="" )
|
||||
end
|
||||
end
|
||||
# update print status for completed same order items
|
||||
assigned_order_item.each do |ai|
|
||||
AssignedOrderItem.where("order_id = '#{ order.order_id }'").find_each do |ai|
|
||||
ai.print_status=true
|
||||
ai.save
|
||||
end
|
||||
|
||||
@@ -7,6 +7,7 @@ class OrderReservation < ApplicationRecord
|
||||
has_many :order_reservation_items
|
||||
has_one :delivery
|
||||
|
||||
scope :active, -> { where("created_at BETWEEN '#{DateTime.now.utc.beginning_of_day}' AND '#{DateTime.now.utc.end_of_day}'") }
|
||||
scope :latest_order, -> { order("order_reservation_id desc, created_at desc") }
|
||||
|
||||
SEND_TO_KITCHEN = "send_to_kitchen"
|
||||
@@ -14,6 +15,28 @@ class OrderReservation < ApplicationRecord
|
||||
DELIVERED = "delivered"
|
||||
COMPLETED = "completed"
|
||||
|
||||
#new customer for doemal
|
||||
def self.addCustomer(params)
|
||||
if params[:gender] == "female"
|
||||
gender = "Female"
|
||||
else
|
||||
gender = "Male"
|
||||
end
|
||||
customer = Customer.new
|
||||
customer.name = params[:name]
|
||||
customer.email = params[:email]
|
||||
customer.contact_no = params[:contact_no] ? params[:contact_no] : ''
|
||||
customer.gender = gender
|
||||
customer.address = params[:address] ? params[:address] : ''
|
||||
customer.date_of_birth = params[:date_of_birth] ? Time.parse(params[:date_of_birth]).strftime("%Y-%m-%d") : ''
|
||||
customer.membership_id = params[:membership_id]
|
||||
customer.customer_type = "Takeaway"
|
||||
customer.tax_profiles = ["2"]
|
||||
customer.save
|
||||
|
||||
return customer
|
||||
end
|
||||
|
||||
def self.addOrderReservationInfo(order_reserve)
|
||||
Rails.logger.debug order_reserve.to_s
|
||||
check_order_reservation = OrderReservation.where("transaction_ref = ?",order_reserve[:reference])
|
||||
@@ -29,7 +52,7 @@ class OrderReservation < ApplicationRecord
|
||||
order_reservation.payment_type = order_reserve[:payment_info][:payment_type]
|
||||
order_reservation.payment_status = order_reserve[:payment_info][:payment_status]
|
||||
order_reservation.payment_ref = order_reserve[:payment_info][:payment_ref]
|
||||
order_reservation.taxes = order_reserve[:payment_info][:taxes]
|
||||
order_reservation.taxes = order_reserve[:payment_info][:taxes].to_json
|
||||
order_reservation.total_amount = order_reserve[:payment_info][:sub_total]
|
||||
order_reservation.total_tax = order_reserve[:payment_info][:total_tax]
|
||||
order_reservation.discount_amount = order_reserve[:payment_info][:discount_amount]
|
||||
@@ -39,7 +62,7 @@ class OrderReservation < ApplicationRecord
|
||||
end
|
||||
if order_reserve[:reservation_info]
|
||||
order_reservation.total_customer = order_reserve[:reservation_info][:total_user]
|
||||
order_reservation.reservation_remark = order_reserve[:reservation_info][:reservation_note]
|
||||
order_reservation.order_remark = order_reserve[:reservation_info][:reservation_note]
|
||||
end
|
||||
order_reservation.save!
|
||||
if order_reserve[:order_info][:items]
|
||||
@@ -70,9 +93,6 @@ class OrderReservation < ApplicationRecord
|
||||
count += 1
|
||||
items_arr.push(items)
|
||||
}
|
||||
|
||||
puts items_arr.to_json
|
||||
puts "sssssssssssssssssssssss"
|
||||
customer_id = order.customer_id
|
||||
|
||||
@order = Order.new
|
||||
@@ -101,9 +121,12 @@ class OrderReservation < ApplicationRecord
|
||||
#order reservation status updated
|
||||
update_order_reservation(order.id, @sale.sale_id, SEND_TO_KITCHEN)
|
||||
|
||||
result = {:status=> @status, :data => @sale, :message => "created" }
|
||||
return result
|
||||
result = {:status=> @status, :data => @sale, :message => "send to kitchen" }
|
||||
else
|
||||
result = {:status=> @status, :message => "No current shift open for this employee!" }
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
def self.update_doemal_payment(order,current_user)
|
||||
@@ -137,7 +160,7 @@ class OrderReservation < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
def self.send_status_to_ordering(url,ref_no,status,waiting_time=nil)
|
||||
def self.send_status_to_ordering(url,ref_no,status,waiting_time=nil,min_type=nil,reason=nil)
|
||||
base_url = 'https://api.doemal.com'
|
||||
token = '3T-tnlYtFJ-5Z1vY6XQqxQ'
|
||||
order_reservation = Lookup.collection_of("order_reservation")
|
||||
@@ -155,9 +178,10 @@ class OrderReservation < ApplicationRecord
|
||||
end
|
||||
Rails.logger.debug "Doemal URL" + base_url
|
||||
post_url = base_url + url
|
||||
|
||||
if !waiting_time.nil?
|
||||
send_params = {id: ref_no, waiting_time: waiting_time, status: status}
|
||||
if waiting_time != ""
|
||||
send_params = {id: ref_no,type: min_type, waiting_time: waiting_time, status: status}
|
||||
elsif reason != ""
|
||||
send_params = {id: ref_no, status: status, reason: reason}
|
||||
else
|
||||
send_params = {id: ref_no, status: status}
|
||||
end
|
||||
@@ -184,29 +208,161 @@ class OrderReservation < ApplicationRecord
|
||||
return response
|
||||
end
|
||||
|
||||
def self.update_order_reservation(id, sale_id, status, expected_waiting_time=nil)
|
||||
def self.update_order_reservation(id, sale_id, status, expected_waiting_time=nil, remark=nil, access_code=nil, current_user=nil)
|
||||
order_reservation = OrderReservation.find(id)
|
||||
if sale_id.present?
|
||||
order_reservation.sale_id = sale_id
|
||||
end
|
||||
if !expected_waiting_time.nil?
|
||||
order_reservation.expected_waiting_time = DateTime.parse(expected_waiting_time).utc
|
||||
order_reservation.expected_waiting_time = expected_waiting_time
|
||||
end
|
||||
if !status.nil?
|
||||
order_reservation.status = status
|
||||
end
|
||||
if !remark.nil?
|
||||
order_reservation.order_remark = remark
|
||||
end
|
||||
if status == "delivered"
|
||||
order_reservation.payment_status = "paid"
|
||||
end
|
||||
order_reservation.status = status
|
||||
order_reservation.save
|
||||
|
||||
# if !order_reservation.sale_id.nil? && status == "rejected"
|
||||
# void_doemal_payment(order_reservation.sale_id, remark, access_code, current_user)
|
||||
# end
|
||||
end
|
||||
|
||||
def self.void_doemal_payment(sale_id, remark, access_code, current_user)
|
||||
if Sale.exists?(sale_id)
|
||||
sale = Sale.find_by_sale_id(sale_id)
|
||||
# update count for shift sale
|
||||
if(sale.sale_status == "completed")
|
||||
if sale.shift_sale_id != nil
|
||||
shift = ShiftSale.find(sale.shift_sale_id)
|
||||
shift.calculate(sale_id, "void")
|
||||
end
|
||||
else
|
||||
# void before sale payment complete
|
||||
if sale.shift_sale_id != nil
|
||||
shift = ShiftSale.find(sale.shift_sale_id)
|
||||
shift.total_void = shift.total_void + sale.grand_total
|
||||
shift.save
|
||||
end
|
||||
end
|
||||
|
||||
sale.payment_status = 'void'
|
||||
sale.sale_status = 'void'
|
||||
sale.save
|
||||
|
||||
# FOr Sale Audit
|
||||
action_by = current_user.name
|
||||
approved_by = Employee.find_by_emp_id(access_code)
|
||||
# remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}"
|
||||
sale_audit = SaleAudit.record_audit_for_edit(sale_id,sale.cashier_id, approved_by.name,remark,"SALEVOID" )
|
||||
|
||||
# update complete order items in oqs
|
||||
SaleOrder.where("sale_id = '#{ sale_id }'").find_each do |sodr|
|
||||
AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi|
|
||||
aoi.delivery_status = 1
|
||||
aoi.save
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.get_count_on_order
|
||||
order_reservation = OrderReservation.select("COUNT(order_reservation_id) as count, status").group("status")
|
||||
order_reservation = OrderReservation.select("COUNT(order_reservation_id) as count, status")
|
||||
.where("status != 'delivered'")
|
||||
.group("status")
|
||||
end
|
||||
|
||||
def self.get_count_on_completed
|
||||
order_reservation = OrderReservation.select("COUNT(order_reservation_id) as count")
|
||||
.where("created_at BETWEEN '#{DateTime.now.beginning_of_day}' AND '#{DateTime.now.end_of_day}' AND status = 'delivered'").first()
|
||||
end
|
||||
|
||||
def self.get_pending_orders
|
||||
order_reservation = OrderReservation.select("order_reservations.*,deliveries.provider,deliveries.delivery_type")
|
||||
order_reservation = OrderReservation.select("order_reservations.*,del.provider,del.delivery_type")
|
||||
.joins(" JOIN deliveries as del on del.order_reservation_id=order_reservations.order_reservation_id")
|
||||
.where("order_reservations.status='new'")
|
||||
.order("order_reservations.order_reservation_id desc, order_reservations.created_at desc")
|
||||
end
|
||||
|
||||
def self.check_new_order
|
||||
shop = Shop.find_by_id(1)
|
||||
if !shop.shop_code.nil?
|
||||
shop_code = shop.shop_code
|
||||
else
|
||||
shop_code = ''
|
||||
end
|
||||
order_reservation = OrderReservation.where("status='new'")
|
||||
if order_reservation.length > 0
|
||||
if ENV["SERVER_MODE"] == 'cloud'
|
||||
ActionCable.server.broadcast "check_new_order_channel",data: order_reservation, shop_code: shop_code
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.check_order_send_to_kitchen
|
||||
shop = Shop.find_by_id(1)
|
||||
if !shop.shop_code.nil?
|
||||
shop_code = shop.shop_code
|
||||
else
|
||||
shop_code = ''
|
||||
end
|
||||
order_reservation = OrderReservation.where("status='accepted' and requested_time <= '#{Time.now.utc}'")
|
||||
if order_reservation.length > 0
|
||||
if ENV["SERVER_MODE"] == 'cloud'
|
||||
ActionCable.server.broadcast "check_order_send_to_kitchen_channel",data: order_reservation, shop_code: shop_code
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.check_order_ready_to_delivery
|
||||
shop = Shop.find_by_id(1)
|
||||
if !shop.shop_code.nil?
|
||||
shop_code = shop.shop_code
|
||||
else
|
||||
shop_code = ''
|
||||
end
|
||||
order_reservation = OrderReservation.where("status='send_to_kitchen' and requested_time <= '#{Time.now.utc}'")
|
||||
if order_reservation.length > 0
|
||||
if ENV["SERVER_MODE"] == 'cloud'
|
||||
ActionCable.server.broadcast "check_order_ready_to_delivery_channel",data: order_reservation, shop_code: shop_code
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.get_order_reservation_by_shift(shift_sale_range,shift,from,to,provider)
|
||||
## => left join -> show all sales although no orders
|
||||
if provider.blank?
|
||||
provider = ''
|
||||
else
|
||||
if provider.present?
|
||||
provider = " and deliveries.provider = '#{provider}'"
|
||||
end
|
||||
end
|
||||
|
||||
query = OrderReservation.select("order_reservations.*, deliveries.provider, deliveries.delivery_fee, customers.name, customers.email")
|
||||
.joins(" JOIN deliveries on deliveries.order_reservation_id = order_reservations.order_reservation_id")
|
||||
.joins(" JOIN customers on customers.customer_id = order_reservations.customer_id")
|
||||
.joins(" JOIN sales on sales.sale_id = order_reservations.sale_id")
|
||||
if shift.present?
|
||||
query = query.where("sales.shift_sale_id in (?) #{provider} and sales.sale_status= 'completed' and sale_payments.payment_amount != 0", shift.to_a)
|
||||
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
|
||||
.group("sales.sale_id")
|
||||
elsif shift_sale_range.present?
|
||||
query = query.where("sales.sale_status='completed' #{provider} and sale_payments.payment_amount != 0 and sales.shift_sale_id in (?)",shift_sale_range.to_a)
|
||||
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
|
||||
.group("sales.sale_id")
|
||||
else
|
||||
query = query.where("sales.sale_status='completed' and sales.receipt_date between ? and ? #{provider} and sale_payments.payment_amount != 0",from,to)
|
||||
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
|
||||
.group("sales.sale_id")
|
||||
end
|
||||
return query
|
||||
end
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.order_reservation_id = SeedGenerator.generate_id(self.class.name, "ODRS")
|
||||
|
||||
@@ -475,11 +475,9 @@ class Sale < ApplicationRecord
|
||||
if shop.calc_tax_order
|
||||
total_taxable = total_taxable + sale_tax.tax_payable_amount
|
||||
end
|
||||
|
||||
sale_tax.inclusive = tax.inclusive
|
||||
sale_tax.save
|
||||
end
|
||||
|
||||
end
|
||||
# end
|
||||
# end
|
||||
@@ -1195,8 +1193,14 @@ def self.get_wastes_and_spoilages(from,to,status)
|
||||
else
|
||||
type = "and sales.sale_status = 'waste'"
|
||||
end
|
||||
query = Sale.all.where("sales.receipt_date between ? and ? #{type}",from,to)
|
||||
.group("sales.receipt_no")
|
||||
query = Sale.select("sales.sale_id,sales.receipt_no,sales.created_at,sales.total_amount,sales.grand_total,sales.rounding_adjustment,sales.shift_sale_id,sale_items.product_name,sale_items.product_code,sale_items.item_instance_code,sale_items.qty,sale_items.price,sale_items.unit_price,menu_categories.name")
|
||||
.joins("JOIN sale_items ON sales.sale_id = sale_items.sale_id" +
|
||||
" JOIN menu_item_instances ON sale_items.item_instance_code = menu_item_instances.item_instance_code" +
|
||||
" JOIN menu_items ON menu_item_instances.menu_item_id = menu_items.id" +
|
||||
" JOIN menu_categories ON menu_items.menu_category_id = menu_categories.id")
|
||||
.where("sales.receipt_date between ? and ? #{type}",from,to)
|
||||
.group("sales.receipt_no,menu_categories.id,sale_items.item_instance_code")
|
||||
.order("sales.sale_id,menu_categories.name,sale_items.product_name")
|
||||
end
|
||||
|
||||
# def self.get_separate_tax(from,to,payment_method=nil)
|
||||
@@ -2660,6 +2664,13 @@ end
|
||||
query = query.where("bookings.booking_status = 'assign' AND orders.status = 'new' AND orders.source =? ","quick_service")
|
||||
.group("bookings.booking_id")
|
||||
end
|
||||
def self.completed_sale
|
||||
query = Sale.all
|
||||
query = query.joins("join sale_orders as sale_orders on sale_orders.sale_id = sales.sale_id")
|
||||
.joins("join orders as orders on orders.order_id = sale_orders.order_id")
|
||||
query = query.where("sales.sale_status != 'new' AND orders.status = 'billed' AND orders.source =? ","quick_service")
|
||||
.group("sales.sale_id")
|
||||
end
|
||||
|
||||
def self.all_receipts
|
||||
query = Sale.select("sales.*,sale_payments.created_at as receipt_close_time,
|
||||
|
||||
@@ -98,7 +98,6 @@ class SaleItem < ApplicationRecord
|
||||
discount_accounts = []
|
||||
Account.all.each do |a|
|
||||
discount_account = {:name => a.title, :price => 0}
|
||||
|
||||
# Check for actual sale items
|
||||
sale_items.where("status = 'Discount'").each do |si|
|
||||
if si.account_id == a.id
|
||||
|
||||
Reference in New Issue
Block a user