Details
-
Type: New Feature
-
Status: Done/Fixed
-
Priority: Minor
-
Resolution: Fixed/Completed
-
Affects Version/s: 2.0
-
Fix Version/s: 2.0
-
Component/s: CiviMember
-
Labels:None
Description
Allow admin's to do a one-step offline renewal of an existing membership with options to record the corresponding contribution record and send a renewal/receipt email.
Also change the 'create membership' form to include option to record the corresponding contribution record and send a receipt email.
1. For "New/Create Membership" Form, new form elements are:
- Record Contribution for this membership? checkbox, default = false
(if checked, show a nested fieldset <legend>Contribution</legend>
-+ Contribution Type (pre-fill from membership type selected above)
-+ Amount (pre-fill from membership type selected above)
-+ Paid By - select
-+ Status - select (contribution status options, default = Completed)
Send Notice / Receipt? - checkbox, default=true for action=new And default=false for action=edit.
Message - textarea, shown if "Send Notice" is checked. (Optional field, allows admin to provide text for the receipt template's {$receipt_text} area.)
2. Edit Membership, should allow editing fields in step-1.
3. Add "Renew" action link to Membership selector as displayed at contact/view Membership tab, Membership Dashboard (civicrm/member) and Find Members.
4. Clicking "Renew" goes to a new "Renew Membership" form (New Membership form with action=renew). Form elements are:
- Renewal Membership Organization and Type (pre-filled)
- Current Membership Status (read-only display)
- Current Membership End Date (read-only display)
- Renewal Date (pre-fill with current day)
- Record Contribution for Renewal? checkbox, default = false
(if checked, show a nested fieldset <legend>Renewal Contribution</legend>
-+ Contribution Type (pre-fill from membership type selected above)
-+ Amount (pre-fill from membership type selected above)
-+ Paid By - select
-+ Status - select (contribution status options, default = Completed)
Send Renewal Notice / Receipt? - checkbox, default = true
Renewal Message - textarea, shown if "Send Renewal Notice" is checked. (Optional field, allows admin to provide text for the receipt template's {$receipt_text} area.)
Form Buttons: Renew / Cancel
5. Post Process when action=new/edit
- If "Record Contribution" - insert civicrm_contribution and civicrm_membership_payment records.
- If "Send Notice / Receipt" - send the Receipt as done for Online Renewals. Check Contribute/Form/Offline.php for example of doing receipting "offline" (receipt from name and email is derived from logged in user etc.)
- Status message (for action=new): "$membershipType membership for $displayName has been added. The new membership End Date is $endDate." If receipt sent + "A membership confirmation and receipt has been sent to $memberEmailAddress."
- Status message (for action=edit): "Membership for $displayName has been changed to $membershipType. The new membership End Date is $endDate." If receipt sent + "A confirmation for membership updation and receipt has been sent to $memberEmailAddress."
6. Post Process when action=renew
- Calculate new membership start and end dates using existing "renewal" business logic. If admin has changed membership type - use duration from new type in the calculations.
- Update civicrm_membership and insert civicrm_membership_log
- If "Record Contribution" - insert civicrm_contribution and civicrm_membership_payment records (use "Renewal Date" from form as "receive_date". If "Send Renewal/Receipt" set receipt_date to current date.
- If "Send Renewal Notice / Receipt" - send the Receipt as done for Online Renewals. But swap in "Renewal Message" for {$receipt_text}. Check Contribute/Form/Offline.php for example of doing receipting "offline" (receipt from name and email is derived from logged in user etc.)
- Status message: "$membershipType membership for $displayName has been renewed. The new membership End Date is $endDate." If receipt sent + "A renewal confirmation and receipt has been sent to $memberEmailAddress."