Open matthijskooijman opened 5 years ago
One thing to keep in mind is that when a registration is cancelled, the amount of payment refunded might vary. The current implementation does not treat CANCELLED specially, so this means Arta assumes the full price is owed on cancellation still. In practice, all or a part of the price will be refunded. This probably needs some way to add additional entries to the priced option list, unique for this registration (unlike regular priced options, which are linked to the event). A simple way to do this is to just add a "Extra price" and "Extra price description" to the registration, which can then be used for cancellations but also other price exceptions for active registrations (though things become a bit more cloudy when you'd need both).
Since the originally selected options should IMHO remain selected, this means that either the extra price for a cancelled registration should be negative (i.e. show how much will be refunded), or cancelled registrations should have their regular price set to zero and only apply the extra price. Not sure which is better yet, though.
Since the originally selected options should IMHO remain selected, this means that either the extra price for a cancelled registration should be negative (i.e. show how much will be refunded), or cancelled registrations should have their regular price set to zero and only apply the extra price. Not sure which is better yet, though.
The latter is now implemented.
In commit 3ef5c07 some logic was implemented to give cancelled registrations a zero price, since that is the common case with our current policies. Then in 2f2d05a8d3a0fa1e734e31742fa298536fcafdbb, price corrections were implemented, which can be used to add one-off price corrections to active registrations, or be used to add a cancellation fee, giving full control to the organizer to set the cancellation costs.
When cancelling, the full status should be adapted according to https://github.com/evolution-events/Artaxerxes/issues/9#issuecomment-551114902. This can probably be done in the
Registration.save
method.Initially, registrations can only be cancelled by organizers through the admin.