added customer report

This commit is contained in:
yarzar_code
2020-08-21 14:53:15 +06:30
parent 590b0aac3b
commit 87906989a3
8 changed files with 690 additions and 0 deletions

View File

@@ -1214,6 +1214,36 @@ def self.get_shift_sales_by_receipt_no(shift_sale_range, shift, from, to, paymen
return query
end
def self.get_shift_sales_by_customer(shift_sale_range, shift, from, to, membership_type, customer_filter)
## => left join -> show all sales although no orders
query = Sale.includes(:sale_items).select("sales.*, sale_payments.*")
.select("customers.customer_id, customers.name as customer_name,customers.membership_type as membership_type, dining_facilities.name, dining_facilities.type")
.joins("INNER JOIN sale_payments ON sale_payments.sale_id = sales.sale_id")
.joins("INNER JOIN bookings ON bookings.sale_id = sales.sale_id")
.joins("LEFT JOIN dining_facilities ON dining_facilities.id = bookings.dining_facility_id")
.completed.where.not(total_amount: 0)
.group("sales.sale_id")
if customer_filter.present?
query = query.joins(sanitize_sql_array(["INNER JOIN customers ON customers.customer_id = sales.customer_id AND " +
"customers.name LIKE :filter", filter: "%#{customer_filter}%"]))
else
query = query.joins(:customer)
end
if !membership_type.blank?
query = query.where("customers.membership_type = (?)", membership_type)
end
if shift.present?
query = query.where("sales.shift_sale_id in (?)", shift.to_a)
elsif shift_sale_range.present?
query = query.where("sales.shift_sale_id in (?)", shift_sale_range.to_a)
else
query = query.where("sales.receipt_date between ? and ?", from, to)
end
return query.group_by(&:membership_type)
end
def self.get_shift_sales_by_receipt_no_detail(shift_sale_range, shift, from, to, payment_type, customer_filter)
## => left join -> show all sales although no orders
puts customer_filter