Uploaded image for project: 'CiviCRM'
  1. CiviCRM
  2. CRM-2239

One-step Membership Renewal with Contribution Record and Receipting

    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."

        Attachments

          Activity

            People

            • Assignee:
              kiran.jagtap Kiran Jagtap
              Reporter:
              dgg David Greenberg
            • Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: