CiviCRM Community Forums (archive)

*

News:

Have a question about CiviCRM?
Get it answered quickly at the new
CiviCRM Stack Exchange Q+A site

This forum was archived on 25 November 2017. Learn more.
How to get involved.
What to do if you think you've found a bug.



  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Developer Discussion (Moderator: Donald Lobo) »
  • Membership Modifications: Looking to contribute
Pages: [1]

Author Topic: Membership Modifications: Looking to contribute  (Read 1353 times)

duwease

  • I’m new here
  • *
  • Posts: 15
  • Karma: 1
  • CiviCRM version: 4.2.4
  • CMS version: Drupal 7
  • MySQL version: 5.1
  • PHP version: 5
Membership Modifications: Looking to contribute
January 14, 2014, 09:56:39 am
Hi all,

We've made a series of modifications to how Memberships are handled to add additional functionality, and responses to them seem to be positive when describing them at meetups @ events like DrupalCon.  What I'm curious to know is, is Core interested in having us contribute these changes, and if so, what release/timeframe would they go in?  We'd like to contribute, but those looking to manage our devs need to have information about the schedule of the release they'd be contributing to.

The changes are basically that we have contacts buy individual memberships with a fixed length (1 year, but length doesn't matter).  Each new year, they buy a new membership (new record), instead of renewing.  We do this so that we can track various things:
- Each membership can have a payment associated with it (renewing an existing m'ship with an existing payment makes this difficult currently)
- We often have members who lapse certain years.. this allows us to track that a person was, say, a member in 2014 and 2011, but not 2012 and 2013

For the most part, the system allows this, but certain things have to be overridden or updated.  Some examples:
- Join/Renew workflows have to override the base logic of renewing an existing membership record, so that a new one is always created
- Prompts to staff indicating that they should renew an existing membership instead of creating a new one have been removed
- Reports and search logic have to be optimized (few real changes, just more optimizations so that, say, 500,000 records aren't pulled when only 10,000 are needed)
- The job which updates membership statuses at year end needs an update

Looking forward to your feedback!

Dave Greenberg

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 5760
  • Karma: 226
    • My CiviCRM Blog
Re: Membership Modifications: Looking to contribute
January 14, 2014, 05:31:03 pm
Hi - First a few questions about the requirements ...

- Each membership can have a payment associated with it (renewing an existing m'ship with an existing payment makes this difficult currently)
Core code does create a new contribution record and a new membership_payment record when memberships are renewed - so I'm not sure I understand how this is different from your requirement??

- We often have members who lapse certain years.. this allows us to track that a person was, say, a member in 2014 and 2011, but not 2012 and 2013

Core code behavior is to update the membership start date for non-continuous memberships. For example:
* Jane Doe signs up for 1 year membership on Jan 1, 2011 - Join Date and Start Date are both set to that date. End Date is Dec 31, 2011.
* Jane doesn't renew before he membership expires on Dec 31, 2011
* Jane renews on Jan 1, 2013. Her Join Date is still Jan 1, 2011, but the Start Date is now set to Jan 1, 2013 (to indicate the membership gap).


Assuming the above behaviors do NOT meet your requirements :-) - have you looked at implementing the modifications as an extension? This might be the best approach as it would make this 'special' non-renewing behavior available to folks who need it w/o complicating things for other folks.

If there are core changes needed to support implementing your requirements as an extension, we'd be happy to discuss how to move forward on that.

Separately - we'd definitely be interested in reviewing the report and search optimizations if you think they're applicable regardless of whether the renewing rules are modified. Is there a public repository that you could point us to, or some other way to review the improvements?
Protect your investment in CiviCRM by  becoming a Member!

duwease

  • I’m new here
  • *
  • Posts: 15
  • Karma: 1
  • CiviCRM version: 4.2.4
  • CMS version: Drupal 7
  • MySQL version: 5.1
  • PHP version: 5
Re: Membership Modifications: Looking to contribute
January 15, 2014, 07:59:58 am
Yeah, on re-reading, I think I was unclear on a couple of points  :)

To illustrate the difference, I think the example I need to use is someone with *multiple* lapsed years.  Let's say they were active in 2009, 2010, 2012, and 2014.  That's fairly common among our member base.

With the base Civi functionality, the final record would show 4 payments, a Join Date of 2009, a Start Date of 1/1/2014 and End Date of 12/31/2014.

The problems we had with that are the following:
- It's a bit tricky to figure out which payments are for which years of membership.  A person can manually figure it out for the most part, but it becomes difficult in some cases because people can buy next year's membership this year.. so the date of payment does not necessarily indicate the year of the membership.
- The data only tracks that a person joined in 2009, there was a gap (or multiple somewhere), and they're a 2014 member.  The details of being a 2010 and 2012 member (but not 2011 or 2013) are mostly lost, so when we try to report on trends in previous years' membership we wouldn't have the data to do so.

Our solution results in 4 memberships (from 1/1 to 12/31 on 2009, 2010, 2012, and 2014), each with a payment tied directly to it.. so if, for instance, someone bought the 2012 membership on 12/10/2011, we can easily know that.  We can also report easily on membership trends over the years this way.  It also enables reports/queries like, "Who re-joined as a member this year who was lapsed the two years before that?", which are a bit iffy with the base functionality if there are multiple lapses.

So basically, my thought is that anyone in an organization that allows members to lapse will probably experience the same problems we have, and they might appreciate the changes (and some have expressed that they would).  However, I also understand that without some sort of transitional idea it could be a fairly big change for people who have adapted to the current system and find it to suffice.  I have no idea whether the amount of people in the former camp is comparable to the amount of people in the latter, but I figured you guys might have some idea, or at least know how to find out  :)

As for the extension, I floated the idea to the devs and they're a bit skeptical that it might work, as they're not sure they can hijack certain processes (such as membership renewal and extension of the end date in the registration workflow) by using extensions.  Do you think it's possible?

As for the report optimizations, I know we've contributed the ones that we think are universal so far and plan to continue.
« Last Edit: January 15, 2014, 08:01:33 am by duwease »

petednz

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4899
  • Karma: 193
    • Fuzion
  • CiviCRM version: 3.x - 4.x
  • CMS version: Drupal 6 and 7
Re: Membership Modifications: Looking to contribute
January 15, 2014, 05:02:06 pm
hi - this has come up for some of our clients too. For example we have a client currently who in their legacy system did exactly as described above - when we pulled them in to civi, eileen did some magic so although it is only a single membership record, it returns a count of the number of years the person was a member for

i realise that doesn't go as far as is being discussed here. other clients have also asked about being able to see a separate row for each year of membership

i have no idea what is possible in terms of having the option for the alternative approach only on 'some' membership types for example as eg a monthly recurring membership (which I know some users have) would quickly generate a very long table.

keen to follow where this discussion goes and have poked eileen in case she has some thoughts.
Sign up to StackExchange and get free expert advice: https://civicrm.org/blogs/colemanw/get-exclusive-access-free-expert-help

pete davis : www.fuzion.co.nz : connect + campaign + communicate

Dave Greenberg

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 5760
  • Karma: 226
    • My CiviCRM Blog
Re: Membership Modifications: Looking to contribute
January 15, 2014, 05:24:02 pm
One way to flush out if others would be interested in this approach would be to put up a blog post describing what you've done and the benefits (ideally including some of the reporting outputs). We'll tweet the post and hopefully we'll get some feedback from others in the community.

Not sure if your devs had checkout out the civicrm_membership_log table which does contain a record for each renewal action.

Separately, my initial guess is that these changes could be implemented as an extension given the large number of hooks available these days. AND if there's was a process that can't be "hijacked" yet - we would be quite open to putting in a core change to facilitate customization of that process.
Protect your investment in CiviCRM by  becoming a Member!

Robyn

  • I’m new here
  • *
  • Posts: 21
  • Karma: 0
  • CiviCRM version: 4.4.5
  • CMS version: Drupal 7
Re: Membership Modifications: Looking to contribute
January 15, 2014, 07:15:48 pm
Hi

I'm more than keen.. I really struggle with not having an option to have memberships for a fixed period..  I tried in the past   http://(http://forum.civicrm.org/index.php?action=post;quote=115812;topic=27190.0;last_msg=115852).. but no-one seemed to be having the same problem.  In summary, I'd like it for 2 reasons:

1 the ability to have custom data for each membership period.  Surely it's not unusual to give members something each "year" and to want/need to have that recorded?
2 the ability to have an accurate count on a period by period basis (ie year by year) of the number of members..

and  I'm happy to help pay for the time to achieve it...

duwease

  • I’m new here
  • *
  • Posts: 15
  • Karma: 1
  • CiviCRM version: 4.2.4
  • CMS version: Drupal 7
  • MySQL version: 5.1
  • PHP version: 5
Re: Membership Modifications: Looking to contribute
January 16, 2014, 10:18:05 am
Dave, thanks for the advice.. I'll put together a blog post describing our changes, and see if we can get a discussion going.

Pete, our memberships are yearly, so luckily we don't have quite the clutter that we'd have with monthly memberships (which I imagine would certainly require some extra UI and logic to make manageable).  We do have over 250,000 records however (about 10,000 members a year, going back >20 years), and once we made some tweaks to certain queries to limit results returned from the DB, it hasn't been a strain on the server.  Not sure whether one could limit the logic by membership type, however.. I know some of the hooks can be restrictive in the information passed, although if what you need isn't it does sound like you can make the case to have it passed.

Robyn, what you described will work great in our solution (in fact, those are two of the reasons we implemented it).  If you'd like to talk about helping us turn our modifications into an extension you can use, just PM me your contact information.

lolas

  • I post frequently
  • ***
  • Posts: 134
  • Karma: 9
    • Freeform Solutions
  • CiviCRM version: Several
  • CMS version: Drupal
  • MySQL version: 5.1+
  • PHP version: Several
Re: Membership Modifications: Looking to contribute
January 20, 2014, 10:44:58 am
Quote from: Robyn on January 15, 2014, 07:15:48 pm
Hi

I'm more than keen.. I really struggle with not having an option to have memberships for a fixed period..  I tried in the past   http://(http://forum.civicrm.org/index.php?action=post;quote=115812;topic=27190.0;last_msg=115852).. but no-one seemed to be having the same problem.  In summary, I'd like it for 2 reasons:

1 the ability to have custom data for each membership period.  Surely it's not unusual to give members something each "year" and to want/need to have that recorded?
2 the ability to have an accurate count on a period by period basis (ie year by year) of the number of members..

and  I'm happy to help pay for the time to achieve it...

We have had clients who would like the ability to easily attach custom data to each membership renewal as well. I would love to see the information in the membership log table migrated to a full entity called something like "Membership Period" to which the civicrm_membership_payment links would be attached. It would make certain types of reporting a lot easier.

Since that is probably not going to happen soon then the modifications you described sound like they would be very useful as an extension.
Freeform Solutions provides technology and management consulting, website and database development, and managed internet hosting solutions for not-for-profit organizations (NFPs).

Dave Greenberg

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 5760
  • Karma: 226
    • My CiviCRM Blog
Re: Membership Modifications: Looking to contribute
January 21, 2014, 10:48:35 am
Lola - I think extending the membership_log table to provide more complete info about each membership period makes a lot of sense. Any chance FreeForm would be interested in pushing that forward?
Protect your investment in CiviCRM by  becoming a Member!

lolas

  • I post frequently
  • ***
  • Posts: 134
  • Karma: 9
    • Freeform Solutions
  • CiviCRM version: Several
  • CMS version: Drupal
  • MySQL version: 5.1+
  • PHP version: Several
Re: Membership Modifications: Looking to contribute
January 22, 2014, 05:46:15 am
Quote from: Dave Greenberg on January 21, 2014, 10:48:35 am
Lola - I think extending the membership_log table to provide more complete info about each membership period makes a lot of sense. Any chance FreeForm would be interested in pushing that forward?

That is probably not possible right now. However, I did a bit of work this morning on one of the small issues assigned to me in the queue. I'll have a couple of questions in another thread about that.
Freeform Solutions provides technology and management consulting, website and database development, and managed internet hosting solutions for not-for-profit organizations (NFPs).

duwease

  • I’m new here
  • *
  • Posts: 15
  • Karma: 1
  • CiviCRM version: 4.2.4
  • CMS version: Drupal 7
  • MySQL version: 5.1
  • PHP version: 5
Re: Membership Modifications: Looking to contribute
February 03, 2014, 02:49:28 pm
Hi all,

A more detailed blog post has been posted at: https://civicrm.org/blogs/roberttdev/improving-civis-membership-history

Looking forward to discussing with all those who would like to use this, and turning it into an extension.

Robyn

  • I’m new here
  • *
  • Posts: 21
  • Karma: 0
  • CiviCRM version: 4.4.5
  • CMS version: Drupal 7
Re: Membership Modifications: Looking to contribute
April 27, 2014, 03:30:06 am
Hi

Has there been any progress on this? I know there was some discussion but its all gone quiet.. happy to help where I can

Donald Lobo

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 15963
  • Karma: 470
    • CiviCRM site
  • CiviCRM version: 4.2+
  • CMS version: Drupal 7, Joomla 2.5+
  • MySQL version: 5.5.x
  • PHP version: 5.4.x
Re: Membership Modifications: Looking to contribute
April 27, 2014, 10:37:54 am

Dont think so. You might need to take ownership and try to move it along

lobo
A new CiviCRM Q&A resource needs YOUR help to get started. Visit our StackExchange proposed site, sign up and vote on 5 questions

Pages: [1]
  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Developer Discussion (Moderator: Donald Lobo) »
  • Membership Modifications: Looking to contribute

This forum was archived on 2017-11-26.