|
|
|
|
@@ -149,12 +149,12 @@ class Sale < ApplicationRecord
|
|
|
|
|
if !booking.dining_facility_id.nil?
|
|
|
|
|
table = DiningFacility.find(booking.dining_facility_id)
|
|
|
|
|
cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id)
|
|
|
|
|
shift = ShiftSale.where("shop_code='#{order.shop_code}' and shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{cashier_zone.cashier_terminal_id}").first
|
|
|
|
|
shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{cashier_zone.cashier_terminal_id}").first
|
|
|
|
|
#for multiple zone with terminal
|
|
|
|
|
if shift.nil?
|
|
|
|
|
multiple_zone = CashierTerminalByZone.where("zone_id = #{table.zone_id}")
|
|
|
|
|
multiple_zone.each do |zone|
|
|
|
|
|
shift = ShiftSale.where("shop_code='#{order.shop_code}' and shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{zone.cashier_terminal_id}").first
|
|
|
|
|
shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{zone.cashier_terminal_id}").first
|
|
|
|
|
if !shift.nil? then
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
@@ -192,7 +192,7 @@ class Sale < ApplicationRecord
|
|
|
|
|
self.requested_by = requested_by.name
|
|
|
|
|
|
|
|
|
|
self.requested_at = DateTime.now.utc.getlocal
|
|
|
|
|
self.shop_code = order.shop_code
|
|
|
|
|
self.shop_code = Shop.current_shop.shop_code
|
|
|
|
|
Rails.logger.debug "Order -> #{order.id} | order_status -> #{order.status}"
|
|
|
|
|
if order
|
|
|
|
|
self.customer_id = order.customer_id
|
|
|
|
|
@@ -255,7 +255,7 @@ class Sale < ApplicationRecord
|
|
|
|
|
# @sale_data.save
|
|
|
|
|
|
|
|
|
|
# Promotion Activation
|
|
|
|
|
Promotion.promo_activate(@sale_data,order.shop_code)
|
|
|
|
|
Promotion.promo_activate(@sale_data)
|
|
|
|
|
@status = true
|
|
|
|
|
return @status, @sale_data
|
|
|
|
|
else
|
|
|
|
|
@@ -1053,19 +1053,19 @@ def self.get_by_shift_items(shift_sale_range, shift, from, to, status,type,accou
|
|
|
|
|
product = self.get_product_sale()
|
|
|
|
|
|
|
|
|
|
if shift.present?
|
|
|
|
|
query = query.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) #{account_type} and sale_status='completed'",shift.to_a)
|
|
|
|
|
query = query.where("sales.shift_sale_id IN (?) #{account_type} and sale_status='completed'",shift.to_a)
|
|
|
|
|
if type.nil? || type == 'all' || type == "other"
|
|
|
|
|
other_charges = other_charges.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status='completed'",shift.to_a)
|
|
|
|
|
other_charges = other_charges.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift.to_a)
|
|
|
|
|
end
|
|
|
|
|
product = product.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status='completed'",shift.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:amount_changed)
|
|
|
|
|
product = product.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:amount_changed)
|
|
|
|
|
sale_cash = Sale.select("SUM(case when (sale_payments.payment_method ='mpu' or sale_payments.payment_method = 'visa' or sale_payments.payment_method = 'master' or sale_payments.payment_method = 'jcb' or sale_payments.payment_method = 'paypar' or sale_payments.payment_method = 'unionpay' or sale_payments.payment_method = 'alipay' or sale_payments.payment_method = 'paymal' or sale_payments.payment_method = 'dinga' or sale_payments.payment_method = 'JunctionPay' or sale_payments.payment_method = 'giftvoucher') then (sale_payments.payment_amount) else 0 end) as card_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='cash') then (sale_payments.payment_amount) else 0 end) as cash_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='creditnote') then (sale_payments.payment_amount) else 0 end) as credit_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount")
|
|
|
|
|
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
|
|
|
|
|
.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift.to_a)
|
|
|
|
|
.where("sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift.to_a)
|
|
|
|
|
sale_cash.each do |s_c|
|
|
|
|
|
total_cash_amount += s_c.cash_amount.to_f
|
|
|
|
|
total_card_amount += s_c.card_amount.to_f
|
|
|
|
|
@@ -1076,19 +1076,19 @@ def self.get_by_shift_items(shift_sale_range, shift, from, to, status,type,accou
|
|
|
|
|
|
|
|
|
|
### => get all sales range in shift_sales
|
|
|
|
|
elsif shift_sale_range.present?
|
|
|
|
|
query = query.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) #{account_type} and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
query = query.where("sales.shift_sale_id IN (?) #{account_type} and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
if type.nil? || type == 'all' || type == "other"
|
|
|
|
|
other_charges = other_charges.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
other_charges = other_charges.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
end
|
|
|
|
|
product = product.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status ='completed'", shift_sale_range.to_a).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status ='completed'", shift_sale_range.to_a).sum(:amount_changed)
|
|
|
|
|
product = product.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shift_sale_id IN (?) and sale_status ='completed'", shift_sale_range.to_a).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shift_sale_id IN (?) and sale_status ='completed'", shift_sale_range.to_a).sum(:amount_changed)
|
|
|
|
|
sale_cash = Sale.select("SUM(case when (sale_payments.payment_method = 'mpu' or sale_payments.payment_method = 'visa' or sale_payments.payment_method = 'master' or sale_payments.payment_method = 'jcb' or sale_payments.payment_method = 'paypar' or sale_payments.payment_method = 'unionpay' or sale_payments.payment_method = 'alipay' sale_payments.payment_method = 'paymal' or sale_payments.payment_method = 'dinga' or sale_payments.payment_method = 'JunctionPay' or sale_payments.payment_method = 'giftvoucher') then (sale_payments.payment_amount) else 0 end) as card_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='cash') then (sale_payments.payment_amount) else 0 end) as cash_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='creditnote') then (sale_payments.payment_amount) else 0 end) as credit_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount")
|
|
|
|
|
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
|
|
|
|
|
.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift_sale_range.to_a)
|
|
|
|
|
.where("sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift_sale_range.to_a)
|
|
|
|
|
sale_cash.each do |s_c|
|
|
|
|
|
total_cash_amount += s_c.cash_amount.to_f
|
|
|
|
|
total_card_amount += s_c.card_amount.to_f
|
|
|
|
|
@@ -1099,20 +1099,20 @@ def self.get_by_shift_items(shift_sale_range, shift, from, to, status,type,accou
|
|
|
|
|
total_grand_total = total_cash_amount.to_f + total_card_amount.to_f + total_credit_amount.to_f
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
query = query.where("sales.shop_code='#{shop_code}' and sales.receipt_date between ? and ? #{account_type} and sale_status='completed'",from,to)
|
|
|
|
|
query = query.where("sales.receipt_date between ? and ? #{account_type} and sale_status='completed'",from,to)
|
|
|
|
|
if type.nil? || type == 'all' || type == "other"
|
|
|
|
|
other_charges = other_charges.where("sales.shop_code='#{shop_code}' and sales.receipt_date between ? and ? and sale_status='completed'",from,to)
|
|
|
|
|
other_charges = other_charges.where("sales.receipt_date between ? and ? and sale_status='completed'",from,to)
|
|
|
|
|
end
|
|
|
|
|
product = product.where("sales.receipt_date between ? and ? and sale_status='completed'",from,to)
|
|
|
|
|
|
|
|
|
|
discount_query = Sale.where("sales.shop_code='#{shop_code}' and sales.receipt_date between ? and ? and sale_status ='completed'", from,to).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shop_code='#{shop_code}' and sales.receipt_date between ? and ? and sale_status ='completed'", from,to).sum(:amount_changed)
|
|
|
|
|
discount_query = Sale.where("sales.receipt_date between ? and ? and sale_status ='completed'", from,to).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.receipt_date between ? and ? and sale_status ='completed'", from,to).sum(:amount_changed)
|
|
|
|
|
sale_cash = Sale.select("SUM(case when (sale_payments.payment_method = 'mpu' or sale_payments.payment_method = 'visa' or sale_payments.payment_method = 'master' or sale_payments.payment_method = 'jcb' or sale_payments.payment_method = 'paypar' or sale_payments.payment_method = 'unionpay' or sale_payments.payment_method = 'alipay' or sale_payments.payment_method = 'paymal' or sale_payments.payment_method = 'dinga' or sale_payments.payment_method = 'JunctionPay' or sale_payments.payment_method = 'giftvoucher') then (sale_payments.payment_amount) else 0 end) as card_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='cash') then (sale_payments.payment_amount) else 0 end) as cash_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='creditnote') then (sale_payments.payment_amount) else 0 end) as credit_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount")
|
|
|
|
|
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
|
|
|
|
|
.where("sales.shop_code='#{shop_code}' and sales.receipt_date between ? and ? and sale_status = 'completed' and sale_payments.payment_amount != 0 ", from,to)
|
|
|
|
|
.where("sales.receipt_date between ? and ? and sale_status = 'completed' and sale_payments.payment_amount != 0 ", from,to)
|
|
|
|
|
sale_cash.each do |s_c|
|
|
|
|
|
total_cash_amount += s_c.cash_amount.to_f
|
|
|
|
|
total_card_amount += s_c.card_amount.to_f
|
|
|
|
|
@@ -1158,19 +1158,19 @@ def self.get_staff_meal_items(shift_sale_range, shift, from, to, status,account_
|
|
|
|
|
product = self.get_product_sale()
|
|
|
|
|
|
|
|
|
|
if shift.present?
|
|
|
|
|
query = query.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) #{account_type} and sale_status='completed' and sales.customer_id IN(#{customer_id})",shift.to_a)
|
|
|
|
|
query = query.where("sales.shift_sale_id IN (?) #{account_type} and sale_status='completed' and sales.customer_id IN(#{customer_id})",shift.to_a)
|
|
|
|
|
# if type.nil? || type == 'all' || type == "other"
|
|
|
|
|
# other_charges = other_charges.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift.to_a)
|
|
|
|
|
# end
|
|
|
|
|
product = product.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status='completed'",shift.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:amount_changed)
|
|
|
|
|
product = product.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:amount_changed)
|
|
|
|
|
sale_cash = Sale.select("SUM(case when (sale_payments.payment_method ='mpu' or sale_payments.payment_method = 'visa' or sale_payments.payment_method = 'master' or sale_payments.payment_method = 'jcb' or sale_payments.payment_method = 'paypar' or sale_payments.payment_method = 'unionpay' or sale_payments.payment_method = 'alipay' or sale_payments.payment_method = 'paymal' or sale_payments.payment_method = 'dinga' or sale_payments.payment_method = 'JunctionPay' or sale_payments.payment_method = 'giftvoucher') then (sale_payments.payment_amount) else 0 end) as card_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='cash') then (sale_payments.payment_amount) else 0 end) as cash_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='creditnote') then (sale_payments.payment_amount) else 0 end) as credit_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount")
|
|
|
|
|
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
|
|
|
|
|
.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift.to_a)
|
|
|
|
|
.where("sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift.to_a)
|
|
|
|
|
sale_cash.each do |s_c|
|
|
|
|
|
total_cash_amount += s_c.cash_amount.to_f
|
|
|
|
|
total_card_amount += s_c.card_amount.to_f
|
|
|
|
|
@@ -1181,12 +1181,12 @@ def self.get_staff_meal_items(shift_sale_range, shift, from, to, status,account_
|
|
|
|
|
|
|
|
|
|
### => get all sales range in shift_sales
|
|
|
|
|
elsif shift_sale_range.present?
|
|
|
|
|
query = query.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) #{account_type} and sale_status='completed' and sales.customer_id IN(#{customer_id})",shift_sale_range.to_a)
|
|
|
|
|
query = query.where("sales.shift_sale_id IN (?) #{account_type} and sale_status='completed' and sales.customer_id IN(#{customer_id})",shift_sale_range.to_a)
|
|
|
|
|
# if type.nil? || type == 'all' || type == "other"
|
|
|
|
|
# other_charges = other_charges.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
# end
|
|
|
|
|
product = product.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status ='completed'", shift_sale_range.to_a).sum(:total_discount)
|
|
|
|
|
product = product.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shift_sale_id IN (?) and sale_status ='completed'", shift_sale_range.to_a).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status ='completed'", shift_sale_range.to_a).sum(:amount_changed)
|
|
|
|
|
sale_cash = Sale.select("SUM(case when (sale_payments.payment_method = 'mpu' or sale_payments.payment_method = 'visa' or sale_payments.payment_method = 'master' or sale_payments.payment_method = 'jcb' or sale_payments.payment_method = 'paypar' or sale_payments.payment_method = 'unionpay' or sale_payments.payment_method = 'alipay' sale_payments.payment_method = 'paymal' or sale_payments.payment_method = 'dinga' or sale_payments.payment_method = 'JunctionPay' or sale_payments.payment_method = 'giftvoucher') then (sale_payments.payment_amount) else 0 end) as card_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='cash') then (sale_payments.payment_amount) else 0 end) as cash_amount,
|
|
|
|
|
@@ -2063,7 +2063,7 @@ end
|
|
|
|
|
else
|
|
|
|
|
type = "and orders.source = '#{type}'"
|
|
|
|
|
end
|
|
|
|
|
query = Sale.where("sales.shop_code='#{Shop.current_shop.shop_code}'")
|
|
|
|
|
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' #{type}")
|
|
|
|
|
@@ -2126,7 +2126,7 @@ def self.get_sale_data_for_other_payment_credit(sale_id)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def unique_tax_profiles(order_source, customer_id)
|
|
|
|
|
tax_data = TaxProfile.where(group_type: order_source,shop_code: self.shop_code)
|
|
|
|
|
tax_data = TaxProfile.where(group_type: order_source)
|
|
|
|
|
customer_tax_profiles = Customer.select(:tax_profiles).where(customer_id: customer_id).first
|
|
|
|
|
if customer_tax_profiles.present?
|
|
|
|
|
tax_data = tax_data.where(id: customer_tax_profiles.tax_profiles)
|
|
|
|
|
@@ -2140,7 +2140,7 @@ def self.employee_sale(shift=nil,from=nil,to=nil,from_time=nil,to_time=nil, curr
|
|
|
|
|
|
|
|
|
|
query = Sale.joins(:cashier)
|
|
|
|
|
.joins(:sale_payments)
|
|
|
|
|
.paid.completed.where("sales.shop_code='#{current_shop.shop_code}'")
|
|
|
|
|
.paid.completed
|
|
|
|
|
if !from.nil? && !to.nil?
|
|
|
|
|
query = query.receipt_date_between(from, to)
|
|
|
|
|
else
|
|
|
|
|
@@ -2179,19 +2179,19 @@ def self.get_by_hourly_items(shift_sale_range, shift, from, to, status,type,acco
|
|
|
|
|
product = self.get_product_sale()
|
|
|
|
|
|
|
|
|
|
if shift.present?
|
|
|
|
|
query = query.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) #{account_type} and sale_status='completed'",shift.to_a)
|
|
|
|
|
query = query.where("sales.shift_sale_id IN (?) #{account_type} and sale_status='completed'",shift.to_a)
|
|
|
|
|
if type.nil? || type == 'all' || type == "other"
|
|
|
|
|
other_charges = other_charges.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status='completed'",shift.to_a)
|
|
|
|
|
other_charges = other_charges.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift.to_a)
|
|
|
|
|
end
|
|
|
|
|
product = product.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status='completed'",shift.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:amount_changed)
|
|
|
|
|
product = product.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shift_sale_id in (?) and sale_status= 'completed' ", shift.to_a).sum(:amount_changed)
|
|
|
|
|
sale_cash = Sale.select("SUM(case when (sale_payments.payment_method ='mpu' or sale_payments.payment_method = 'visa' or sale_payments.payment_method = 'master' or sale_payments.payment_method = 'jcb' or sale_payments.payment_method = 'paypar' or sale_payments.payment_method = 'unionpay' or sale_payments.payment_method = 'alipay' or sale_payments.payment_method = 'paymal' or sale_payments.payment_method = 'dinga' or sale_payments.payment_method = 'JunctionPay' or sale_payments.payment_method = 'giftvoucher') then (sale_payments.payment_amount) else 0 end) as card_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='cash') then (sale_payments.payment_amount) else 0 end) as cash_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='creditnote') then (sale_payments.payment_amount) else 0 end) as credit_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount")
|
|
|
|
|
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
|
|
|
|
|
.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift.to_a)
|
|
|
|
|
.where("sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift.to_a)
|
|
|
|
|
sale_cash.each do |s_c|
|
|
|
|
|
total_cash_amount += s_c.cash_amount.to_f
|
|
|
|
|
total_card_amount += s_c.card_amount.to_f
|
|
|
|
|
@@ -2202,19 +2202,19 @@ def self.get_by_hourly_items(shift_sale_range, shift, from, to, status,type,acco
|
|
|
|
|
|
|
|
|
|
### => get all sales range in shift_sales
|
|
|
|
|
elsif shift_sale_range.present?
|
|
|
|
|
query = query.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) #{account_type} and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
query = query.where("sales.shift_sale_id IN (?) #{account_type} and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
if type.nil? || type == 'all' || type == "other"
|
|
|
|
|
other_charges = other_charges.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
other_charges = other_charges.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
end
|
|
|
|
|
product = product.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status ='completed'", shift_sale_range.to_a).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id IN (?) and sale_status ='completed'", shift_sale_range.to_a).sum(:amount_changed)
|
|
|
|
|
product = product.where("sales.shift_sale_id IN (?) and sale_status='completed'",shift_sale_range.to_a)
|
|
|
|
|
discount_query = Sale.where("sales.shift_sale_id IN (?) and sale_status ='completed'", shift_sale_range.to_a).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shift_sale_id IN (?) and sale_status ='completed'", shift_sale_range.to_a).sum(:amount_changed)
|
|
|
|
|
sale_cash = Sale.select("SUM(case when (sale_payments.payment_method = 'mpu' or sale_payments.payment_method = 'visa' or sale_payments.payment_method = 'master' or sale_payments.payment_method = 'jcb' or sale_payments.payment_method = 'paypar' or sale_payments.payment_method = 'unionpay' or sale_payments.payment_method = 'alipay' sale_payments.payment_method = 'paymal' or sale_payments.payment_method = 'dinga' or sale_payments.payment_method = 'JunctionPay' or sale_payments.payment_method = 'giftvoucher') then (sale_payments.payment_amount) else 0 end) as card_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='cash') then (sale_payments.payment_amount) else 0 end) as cash_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='creditnote') then (sale_payments.payment_amount) else 0 end) as credit_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount")
|
|
|
|
|
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
|
|
|
|
|
.where("sales.shop_code='#{shop_code}' and sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift_sale_range.to_a)
|
|
|
|
|
.where("sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift_sale_range.to_a)
|
|
|
|
|
sale_cash.each do |s_c|
|
|
|
|
|
total_cash_amount += s_c.cash_amount.to_f
|
|
|
|
|
total_card_amount += s_c.card_amount.to_f
|
|
|
|
|
@@ -2225,20 +2225,20 @@ def self.get_by_hourly_items(shift_sale_range, shift, from, to, status,type,acco
|
|
|
|
|
total_grand_total = total_cash_amount.to_f + total_card_amount.to_f + total_credit_amount.to_f
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
query = query.where("sales.shop_code='#{shop_code}' and sales.receipt_date between ? and ? #{account_type} and sale_status='completed'",from,to)
|
|
|
|
|
query = query.where("sales.receipt_date between ? and ? #{account_type} and sale_status='completed'",from,to)
|
|
|
|
|
if type.nil? || type == 'all' || type == "other"
|
|
|
|
|
other_charges = other_charges.where("sales.shop_code='#{shop_code}' and sales.receipt_date between ? and ? and sale_status='completed'",from,to)
|
|
|
|
|
other_charges = other_charges.where("sales.receipt_date between ? and ? and sale_status='completed'",from,to)
|
|
|
|
|
end
|
|
|
|
|
product = product.where("sales.shop_code='#{shop_code}' and sales.receipt_date between ? and ? and sale_status='completed'",from,to)
|
|
|
|
|
product = product.where("sales.receipt_date between ? and ? and sale_status='completed'",from,to)
|
|
|
|
|
|
|
|
|
|
discount_query = Sale.where("sales.shop_code='#{shop_code}' and sales.receipt_date between ? and ? and sale_status ='completed'", from,to).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.shop_code='#{shop_code}' and sales.receipt_date between ? and ? and sale_status ='completed'", from,to).sum(:amount_changed)
|
|
|
|
|
discount_query = Sale.where("sales.receipt_date between ? and ? and sale_status ='completed'", from,to).sum(:total_discount)
|
|
|
|
|
change_amount = Sale.where("sales.receipt_date between ? and ? and sale_status ='completed'", from,to).sum(:amount_changed)
|
|
|
|
|
sale_cash = Sale.select("SUM(case when (sale_payments.payment_method = 'mpu' or sale_payments.payment_method = 'visa' or sale_payments.payment_method = 'master' or sale_payments.payment_method = 'jcb' or sale_payments.payment_method = 'paypar' or sale_payments.payment_method = 'unionpay' or sale_payments.payment_method = 'alipay' or sale_payments.payment_method = 'paymal' or sale_payments.payment_method = 'dinga' or sale_payments.payment_method = 'JunctionPay' or sale_payments.payment_method = 'giftvoucher') then (sale_payments.payment_amount) else 0 end) as card_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='cash') then (sale_payments.payment_amount) else 0 end) as cash_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='creditnote') then (sale_payments.payment_amount) else 0 end) as credit_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount")
|
|
|
|
|
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
|
|
|
|
|
.where("sales.shop_code='#{shop_code}' and sales.receipt_date between ? and ? and sale_status = 'completed' and sale_payments.payment_amount != 0 ", from,to)
|
|
|
|
|
.where("sales.receipt_date between ? and ? and sale_status = 'completed' and sale_payments.payment_amount != 0 ", from,to)
|
|
|
|
|
sale_cash.each do |s_c|
|
|
|
|
|
total_cash_amount += s_c.cash_amount.to_f
|
|
|
|
|
total_card_amount += s_c.card_amount.to_f
|
|
|
|
|
|