Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def stats( params )
- params = params.with_indifferent_access
- group_by = params[:group_by] || 'week'
- cruise_name = params['cruise_name']
- query = "SELECT cruises.name,
- DATE_TRUNC('#{group_by}', tours.departure) AS #{group_by},
- COUNT(enquiries.id) AS count_enquiries,
- SUM(enquiries.pax) AS count_paxes,
- SUM(CASE WHEN enquiries.booking_status='Confirmed' THEN enquiries.pax END) AS count_confirmed_paxes
- FROM cruises
- INNER JOIN enquiries ON cruises.id = enquiries.cruise_id
- INNER JOIN tours ON enquiries.tour_id = tours.id\n"
- cruise_name.present? ? query += "WHERE cruises.name = '#{ cruise_name }'\n" : ""
- query += "GROUP BY #{group_by}, cruises.name ORDER BY week;"
- ActiveRecord::Base.connection.execute( query )
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement