Details
Description
If you create an event and register for the event with the following properties:
A price set is included
Pay later is enabled
The user selects pay later
.. you cannot properly change the payment from pending. If there are required fields in the price set, you can't save the record since the missing required fields cause validation to fail. If there are no required fields, the record can be saved and the registration is updated, however the payment is not recorded since there are no options selected.
Reproducible on drupal.demo.civicrm.org – see the "Test Pay Later Bug" event. Register for the event with the pay later option, then try to edit participant record to record the payment.