VRFS-1693 copy canceled RSVP for slot if none were chosen
This commit is contained in:
parent
d07e649c7b
commit
8cc14b1ede
|
|
@ -87,6 +87,8 @@ module JamRuby
|
|||
new_session.open_rsvps = self.open_rsvps
|
||||
new_session.save
|
||||
|
||||
chosen_slots = []
|
||||
|
||||
# copy rsvp_slots, rsvp_requests, and rsvp_requests_rsvp_slots
|
||||
RsvpSlot.find_each(:conditions => "music_session_id = '#{self.id}'") do |slot|
|
||||
new_slot = RsvpSlot.new
|
||||
|
|
@ -99,6 +101,8 @@ module JamRuby
|
|||
rsvp_request_slot = RsvpRequestRsvpSlot.where("chosen = true AND rsvp_slot_id = ?", slot.id).first
|
||||
|
||||
unless rsvp_request_slot.nil?
|
||||
chosen_slots << rsvp_request_slot
|
||||
|
||||
rsvp = RsvpRequest.find_by_id(rsvp_request_slot.rsvp_request_id)
|
||||
new_rsvp = RsvpRequest.new
|
||||
new_rsvp.user_id = rsvp.user_id
|
||||
|
|
@ -109,22 +113,28 @@ module JamRuby
|
|||
new_rsvp_req_slot.rsvp_slot_id = new_slot.id
|
||||
new_rsvp_req_slot.chosen = true
|
||||
new_rsvp_req_slot.save
|
||||
end
|
||||
|
||||
# now get any RSVPs that were 1-time cancellations and copy those
|
||||
rejected_req_slots = RsvpRequestRsvpSlot.where("chosen = false AND rsvp_slot_id = ?", slot.id)
|
||||
rejected_req_slots.each do |req_slot|
|
||||
rsvp = RsvpRequest.find_by_id(req_slot.rsvp_request_id)
|
||||
if rsvp.canceled && !rsvp.cancel_all
|
||||
new_rsvp = RsvpRequest.new
|
||||
new_rsvp.user_id = rsvp.user_id
|
||||
new_rsvp.save
|
||||
# if this slot was not chosen, try to get any RSVPs that were 1-time cancellations and copy those
|
||||
else
|
||||
rejected_req_slots = RsvpRequestRsvpSlot.where("(chosen = false OR chosen is null) AND rsvp_slot_id = ?", slot.id).order("created_at ASC")
|
||||
|
||||
new_rsvp_req_slot = RsvpRequestRsvpSlot.new
|
||||
new_rsvp_req_slot.rsvp_request_id = new_rsvp.id
|
||||
new_rsvp_req_slot.rsvp_slot_id = new_slot.id
|
||||
new_rsvp_req_slot.chosen = true
|
||||
new_rsvp_req_slot.save
|
||||
rejected_req_slots.each do |req_slot|
|
||||
# get RsvpRequest corresponding to this RsvpRequestRsvpSlot
|
||||
rsvp = RsvpRequest.find_by_id(req_slot.rsvp_request_id)
|
||||
|
||||
# if the RSVP was canceled (but all future sessions were NOT canceled), then copy this one and break
|
||||
if rsvp.canceled && !rsvp.cancel_all
|
||||
new_rsvp = RsvpRequest.new
|
||||
new_rsvp.user_id = rsvp.user_id
|
||||
new_rsvp.save
|
||||
|
||||
new_rsvp_req_slot = RsvpRequestRsvpSlot.new
|
||||
new_rsvp_req_slot.rsvp_request_id = new_rsvp.id
|
||||
new_rsvp_req_slot.rsvp_slot_id = new_slot.id
|
||||
new_rsvp_req_slot.chosen = true
|
||||
new_rsvp_req_slot.save
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue