Details
-
Type: Bug
-
Status: Done/Fixed
-
Priority: Major
-
Resolution: Fixed/Completed
-
Affects Version/s: 4.2.9, 4.3.3
-
Fix Version/s: 4.3.4
-
Component/s: Accounting Integration, CiviEvent
-
Labels:None
Description
NOTE: This is a regression related to the implementation of quick-config price sets for 4.2.
=============
Prior to 4.2, if an event was configured with 'Discounts by signup date' - admins where able to select whether or not the discount was applied when registering participants via back-office form, regardless of the current date. This was done by including a 'Discount Set' dropdown in the form. The dropdown would default to the appropriate discount (or No discount) based on current date compared to discount set date range - AND allow admin to override that default. See screenshots from 4.1 attached.
We need to restore that functionality for quick-config price-set based event discounts. We have retained the civicrm_discount table entries - which allow us to identify the related 'discount' price sets - and most of the code is still present in CRM_Event_Form_EventFees::buildQuickForm, but is bypassed since it's in the 'non price-set' section which is obsolete code AFAIK.
This regression becomes critical for folks using pay-later. If an admin tries to edit a participant who registers with Pending Pay Later status AND has a fee belonging to a date-specific discount price set, they will be forced to charge the current fee (over-write the saved discounted fee) - since the discounted fee price fields are no longer available to the participant form. The fix to this should ensure that the originally used discount price set is loaded by setDefaults with the originally selected fee set as default value.