|
|
|
|
@@ -725,6 +725,13 @@ class Sale < ApplicationRecord
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def self.daily_sales_list(from,to)
|
|
|
|
|
sub_query = "SELECT SUM(sale_payments.payment_amount)
|
|
|
|
|
FROM SXRestaurants_development.sale_payments
|
|
|
|
|
INNER JOIN SXRestaurants_development.sale_audits sa
|
|
|
|
|
ON SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id
|
|
|
|
|
INNER JOIN SXRestaurants_development.sales ON sa.sale_id = sales.sale_id
|
|
|
|
|
WHERE sales.sale_status='completed' AND sales.receipt_date between '#{from}' and '#{to}'"
|
|
|
|
|
|
|
|
|
|
payments_total = Sale.select("CAST((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')) AS DATE) as sale_date,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='mpu') then sale_payments.payment_amount else 0 end) as mpu_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='master') then sale_payments.payment_amount else 0 end) as master_amount,
|
|
|
|
|
@@ -737,7 +744,7 @@ def self.daily_sales_list(from,to)
|
|
|
|
|
SUM(case when (sale_payments.payment_method='dinga') then sale_payments.payment_amount else 0 end) as dinga_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='JunctionPay') then sale_payments.payment_amount else 0 end) as junctionpay_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='creditnote') then sale_payments.payment_amount else 0 end) - (#{sub_query})) as credit_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='giftvoucher') then sale_payments.payment_amount else 0 end) as giftvoucher_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='foc') then sale_payments.payment_amount else 0 end) as foc_amount")
|
|
|
|
|
.joins(" left join sale_payments on sale_payments.sale_id = sales.sale_id")
|
|
|
|
|
@@ -1129,12 +1136,20 @@ def self.get_by_shift_sale_credit_payment(shift_sale_range,shift,from,to,filter)
|
|
|
|
|
|
|
|
|
|
filter_check = ""
|
|
|
|
|
if filter == 'paid'
|
|
|
|
|
filter_check = " AND ss.credit_sales = 0"
|
|
|
|
|
filter_check = " AND (SELECT (CASE WHEN SUM(payment_amount) > 0 THEN SUM(payment_amount) ELSE 0 END)
|
|
|
|
|
FROM `sale_payments`
|
|
|
|
|
INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id
|
|
|
|
|
WHERE sale_audits.sale_id = s.sale_id) > 0"
|
|
|
|
|
elsif filter == 'unpaid'
|
|
|
|
|
filter_check = " AND ss.credit_sales > 0"
|
|
|
|
|
filter_check = " AND (SELECT (CASE WHEN SUM(payment_amount) > 0 THEN SUM(payment_amount) ELSE 0 END)
|
|
|
|
|
FROM `sale_payments`
|
|
|
|
|
INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id
|
|
|
|
|
WHERE sale_audits.sale_id = s.sale_id) = 0"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
query = SalePayment.select("s.receipt_no, sale_payments.*,s.receipt_date as sale_date,
|
|
|
|
|
query = SalePayment.select("s.receipt_no, sale_payments.*,
|
|
|
|
|
SUM(sale_payments.payment_amount) as payment_amount,
|
|
|
|
|
s.receipt_date as sale_date,
|
|
|
|
|
s.cashier_name as cashier_name,
|
|
|
|
|
(#{sub_query}) as credit_payment_receipt_date,
|
|
|
|
|
(#{sub_query1}) as credit_payment,
|
|
|
|
|
@@ -1150,7 +1165,7 @@ def self.get_by_shift_sale_credit_payment(shift_sale_range,shift,from,to,filter)
|
|
|
|
|
else
|
|
|
|
|
query = query.where("sale_payments.payment_method='creditnote' and s.sale_status = 'completed' #{filter_check} and s.receipt_date between ? and ? ",from,to)
|
|
|
|
|
end
|
|
|
|
|
query = query.group("sale_payments.sale_payment_id")
|
|
|
|
|
query = query.group("s.sale_id")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def self.get_void_sale(shift,from,to)
|
|
|
|
|
@@ -1212,10 +1227,38 @@ def self.get_separate_tax(shift_sale_range=nil,shift,from,to,payment_type)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def self.get_payment_method_by_shift(shift_sale_range,shift,from,to,payment_type)
|
|
|
|
|
sub_query = "SELECT SUM(sale_payments.payment_amount)
|
|
|
|
|
FROM SXRestaurants_development.sale_payments
|
|
|
|
|
INNER JOIN SXRestaurants_development.sale_audits sa
|
|
|
|
|
ON SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id
|
|
|
|
|
INNER JOIN SXRestaurants_development.sales ON sa.sale_id = sales.sale_id
|
|
|
|
|
WHERE sales.sale_status='completed' "
|
|
|
|
|
|
|
|
|
|
if shift.present?
|
|
|
|
|
shift_ids = shift.map(&:id).join(",")
|
|
|
|
|
sub_query += " AND sales.shift_sale_id in (#{shift_ids})"
|
|
|
|
|
elsif shift_sale_range.present?
|
|
|
|
|
shift_ids = shift_sale_range.map(&:id).join(",")
|
|
|
|
|
sub_query += " AND sales.shift_sale_id in (#{shift_ids})"
|
|
|
|
|
else
|
|
|
|
|
sub_query += " AND sales.receipt_date between #{from} and #{to}"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
sub_query1 = "CASE WHEN (SELECT SUM(sale_payments.payment_amount)
|
|
|
|
|
FROM SXRestaurants_development.sale_payments
|
|
|
|
|
WHERE sale_payments.payment_method = 'creditnote'
|
|
|
|
|
AND sale_payments.sale_id = s.sale_id
|
|
|
|
|
) - (SELECT SUM(sale_payments.payment_amount)
|
|
|
|
|
FROM SXRestaurants_development.sale_payments
|
|
|
|
|
INNER JOIN SXRestaurants_development.sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id
|
|
|
|
|
WHERE sale_payments.sale_id = s.sale_id) = 0
|
|
|
|
|
THEN sale_payments.sale_id = s.sale_id
|
|
|
|
|
AND sale_payments.payment_method!='creditnote' ELSE 1 END"
|
|
|
|
|
|
|
|
|
|
sale_payment = SalePayment.select("s.amount_changed as change_amount,s.receipt_no, sale_payments.*,s.receipt_date as sale_date,
|
|
|
|
|
s.cashier_name as cashier_name")
|
|
|
|
|
.joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id")
|
|
|
|
|
.where("(#{sub_query1}) ")
|
|
|
|
|
.order('s.receipt_no DESC')
|
|
|
|
|
|
|
|
|
|
payments_total = SalePayment.select("CAST((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')) AS DATE) as sale_date,
|
|
|
|
|
@@ -1231,7 +1274,7 @@ def self.get_payment_method_by_shift(shift_sale_range,shift,from,to,payment_type
|
|
|
|
|
SUM(case when (sale_payments.payment_method='JunctionPay') then sale_payments.payment_amount else 0 end) as junctionpay_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='cash') then sales.amount_changed else 0 end) as total_change_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='creditnote') then sale_payments.payment_amount else 0 end) - (#{sub_query})) as credit_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='giftvoucher') then sale_payments.payment_amount else 0 end) as giftvoucher_amount,
|
|
|
|
|
SUM(case when (sale_payments.payment_method='foc') then sale_payments.payment_amount else 0 end) as foc_amount")
|
|
|
|
|
.joins("join sales on sales.sale_id = sale_payments.sale_id")
|
|
|
|
|
@@ -1241,10 +1284,10 @@ def self.get_payment_method_by_shift(shift_sale_range,shift,from,to,payment_type
|
|
|
|
|
all_total = payments_total.where("sales.shift_sale_id in (?) and sale_status= 'completed' and sale_payments.payment_amount != 0", shift.to_a)
|
|
|
|
|
# .group("DATE_FORMAT((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')),'%Y-%m-%d')")
|
|
|
|
|
if payment_type.blank?
|
|
|
|
|
sale_type = sale_payment.where("s.sale_status = 'completed' and payment_amount != 0 and s.shift_sale_id in (?)",shift.to_a)
|
|
|
|
|
sale_type = sale_payment.where(" s.sale_status = 'completed' and payment_amount != 0 and s.shift_sale_id in (?)",shift.to_a)
|
|
|
|
|
.order("payment_method")
|
|
|
|
|
else
|
|
|
|
|
sale_type = sale_payment.where("payment_method= '#{payment_type}' and payment_amount != 0 and s.sale_status = 'completed' and s.shift_sale_id in (?)",shift.to_a)
|
|
|
|
|
sale_type = sale_payment.where(" payment_method= '#{payment_type}' and payment_amount != 0 and s.sale_status = 'completed' and s.shift_sale_id in (?)",shift.to_a)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
elsif shift_sale_range.present?
|
|
|
|
|
@@ -1252,10 +1295,10 @@ def self.get_payment_method_by_shift(shift_sale_range,shift,from,to,payment_type
|
|
|
|
|
all_total = payments_total.where("sales.shift_sale_id in (?) and sale_status= 'completed' and sale_payments.payment_amount != 0", shift_sale_range.to_a)
|
|
|
|
|
# .group("DATE_FORMAT((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')),'%Y-%m-%d')")
|
|
|
|
|
if payment_type.blank?
|
|
|
|
|
sale_type = sale_payment.where("s.sale_status = 'completed' and payment_amount != 0 and s.shift_sale_id in (?)",shift_sale_range.to_a)
|
|
|
|
|
sale_type = sale_payment.where(" s.sale_status = 'completed' and payment_amount != 0 and s.shift_sale_id in (?)",shift_sale_range.to_a)
|
|
|
|
|
.order("payment_method")
|
|
|
|
|
else
|
|
|
|
|
sale_type = sale_payment.where("payment_method='#{payment_type}' and payment_amount != 0 and s.sale_status = 'completed' and s.shift_sale_id in (?)",shift_sale_range.to_a)
|
|
|
|
|
sale_type = sale_payment.where(" payment_method='#{payment_type}' and payment_amount != 0 and s.sale_status = 'completed' and s.shift_sale_id in (?)",shift_sale_range.to_a)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
@@ -1263,10 +1306,10 @@ def self.get_payment_method_by_shift(shift_sale_range,shift,from,to,payment_type
|
|
|
|
|
all_total = payments_total.where("sales.receipt_date between ? and ? and sales.sale_status= 'completed' and sale_payments.payment_amount != 0", from,to)
|
|
|
|
|
# .group("DATE_FORMAT((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')),'%Y-%m-%d')")
|
|
|
|
|
if payment_type.blank?
|
|
|
|
|
sale_type = sale_payment.where("s.sale_status = 'completed' and payment_amount != 0 and s.receipt_date between ? and ? ",from,to)
|
|
|
|
|
sale_type = sale_payment.where(" s.sale_status = 'completed' and payment_amount != 0 and s.receipt_date between ? and ? ",from,to)
|
|
|
|
|
.order("payment_method")
|
|
|
|
|
else
|
|
|
|
|
sale_type = sale_payment.where("payment_method='#{payment_type}' and payment_amount != 0 and s.sale_status = 'completed' and s.receipt_date between ? and ? ",from,to)
|
|
|
|
|
sale_type = sale_payment.where(" payment_method='#{payment_type}' and payment_amount != 0 and s.sale_status = 'completed' and s.receipt_date between ? and ? ",from,to)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|