change credit payment query

This commit is contained in:
phyusin
2018-07-13 14:44:29 +06:30
parent dd4db6d2e7
commit 533a3999fb
5 changed files with 99 additions and 20 deletions

View File

@@ -1099,18 +1099,56 @@ def self.get_shift_sales_by_receipt_no_detail(shift_sale_range,shift,from,to,pay
return query
end
def self.get_by_shift_sale_credit_payment(shift_sale_range,shift,from,to)
query = SalePayment.select("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")
def self.get_by_shift_sale_credit_payment(shift_sale_range,shift,from,to,filter)
puts "filter"
puts filter
sub_query = "SELECT (CASE WHEN SUM(payment_amount) > 0
THEN DATE_FORMAT(CONVERT_TZ(sale_payments.created_at,'+00:00','+06:30'),'%d %b %y %h:%i%p') ELSE '-' END)
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_audits.sale_id = s.sale_id"
if shift.present?
query = query.where("payment_method= 'creditnote' and s.sale_status = 'completed' and s.shift_sale_id in (?)",shift.to_a)
elsif shift_sale_range.present?
query = query.where("payment_method='creditnote' and s.sale_status = 'completed' and s.shift_sale_id in (?)",shift_sale_range.to_a)
else
query = query.where("payment_method='creditnote' and s.sale_status = 'completed' and s.receipt_date between ? and ? ",from,to)
end
sub_query1 = "SELECT (CASE WHEN SUM(payment_amount) > 0 THEN SUM(payment_amount) ELSE 0 END)
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_audits.sale_id = s.sale_id"
sub_query2 = "SELECT (CASE WHEN shift_closed_at IS NOT NULL AND credit_payment > 0
THEN CONCAT(DATE_FORMAT(CONVERT_TZ(shift_started_at,'+00:00','+06:30'),'%d %b %y %h:%i%p'),' - ',DATE_FORMAT(CONVERT_TZ(shift_closed_at,'+00:00','+06:30'),'%d %b %y %h:%i%p'))
ELSE '-' END)
FROM SXRestaurants_development.shift_sales
WHERE shift_sales.id = s.shift_sale_id"
sub_query3 = "SELECT (CASE WHEN shift_closed_at IS NOT NULL AND credit_payment > 0
THEN employees.name ELSE '-' END)
FROM SXRestaurants_development.shift_sales
INNER JOIN SXRestaurants_development.employees ON employees.id=shift_sales.employee_id
WHERE shift_sales.id = s.shift_sale_id"
filter_check = ""
if filter == 'paid'
filter_check = " AND ss.credit_sales = 0"
elsif filter == 'unpaid'
filter_check = " AND ss.credit_sales > 0"
end
query = SalePayment.select("s.receipt_no, sale_payments.*,s.receipt_date as sale_date,
s.cashier_name as cashier_name,
(#{sub_query}) as credit_payment_receipt_date,
(#{sub_query1}) as credit_payment,
(#{sub_query3}) as credit_payment_cashier_name,
(#{sub_query2}) as credit_payment_shift_name")
.joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id")
.joins("INNER JOIN shift_sales ss ON ss.id = s.shift_sale_id")
if shift.present?
query = query.where("sale_payments.payment_method= 'creditnote' and s.sale_status = 'completed' #{filter_check} and s.shift_sale_id in (?)",shift.to_a)
elsif shift_sale_range.present?
query = query.where("sale_payments.payment_method='creditnote' and s.sale_status = 'completed' #{filter_check} and s.shift_sale_id in (?)",shift_sale_range.to_a)
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")
end
def self.get_void_sale(shift,from,to)