Advertisement
Guest User

Untitled

a guest
Oct 28th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. def stats( params )
  2. params = params.with_indifferent_access
  3. group_by = params[:group_by] || 'week'
  4. cruise_name = params['cruise_name']
  5. query = "SELECT cruises.name,
  6. DATE_TRUNC('#{group_by}', tours.departure) AS #{group_by},
  7. COUNT(enquiries.id) AS count_enquiries,
  8. SUM(enquiries.pax) AS count_paxes,
  9. SUM(CASE WHEN enquiries.booking_status='Confirmed' THEN enquiries.pax END) AS count_confirmed_paxes
  10. FROM cruises
  11. INNER JOIN enquiries ON cruises.id = enquiries.cruise_id
  12. INNER JOIN tours ON enquiries.tour_id = tours.id\n"
  13. cruise_name.present? ? query += "WHERE cruises.name = '#{ cruise_name }'\n" : ""
  14. query += "GROUP BY #{group_by}, cruises.name ORDER BY week;"
  15.  
  16. ActiveRecord::Base.connection.execute( query )
  17. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement