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) »
  • Support »
  • Using CiviCRM »
  • Using CiviMember (Moderator: Deepak Srivastava) »
  • Self-service Membership Renewal does not update all of the household members
Pages: [1]

Author Topic: Self-service Membership Renewal does not update all of the household members  (Read 732 times)

Arthans

  • I’m new here
  • *
  • Posts: 2
  • Karma: 0
  • CiviCRM version: 3.2.4
  • CMS version: Drupal-6.19
  • MySQL version: 5.0.75
  • PHP version: 5.2.6
Self-service Membership Renewal does not update all of the household members
January 15, 2011, 08:37:30 pm
Hi,

I believe we are experiencing the same issue reported in the following thread. 

http://forum.civicrm.org/index.php/topic,5102.msg22356.html#msg22356

We have confirmed that the UpdateMembershipRecord.php job is running as specified and the output shows as below in our logs:

Updating ......
Membership records updated. (Done)

The scenario:  We have a household contact which is named MyFamily with myemail-at-gmail.com as email address.  We have four members (man+wife+2 kids) in the family created as individual contacts.  One of these individuals also has myemail-at-gmail.com address.  Each of these individuals are related to the household as "Household member is".  The MyFamily household was set up with a 1 year FAMILY membership starting 1/1/2010 and ending at 12/31/2010.  We were able to confirm that all members of the household inherited the membership.  We also confirmed that there were total of 5 records in the membership table (1 household + 4 members) for this setup.  Currently, the household membership is in Grace status.  So far, everything is as expected.

Below is the 5 records from the table:


mysql> select * from civicrm_membership;
+----+------------+--------------------+------------+------------+------------+---------+-----------+-------------+---------------+---------------------+---------+--------------+
| id | contact_id | membership_type_id | join_date  | start_date | end_date   | source  | status_id | is_override | reminder_date | owner_membership_id | is_test | is_pay_later |
+----+------------+--------------------+------------+------------+------------+---------+-----------+-------------+---------------+---------------------+---------+--------------+
| 77 |         11 |                  3 | 2010-01-01 | 2010-01-01 | 2010-12-31 | testing |         3 |        NULL | 2010-11-30    |                NULL |       0 |            0 |
| 78 |         13 |                  3 | 2010-01-01 | 2010-01-01 | 2010-12-31 | testing |         3 |        NULL | NULL          |                  77 |       0 |            0 |
| 79 |         15 |                  3 | 2010-01-01 | 2010-01-01 | 2010-12-31 | testing |         3 |        NULL | NULL          |                  77 |       0 |            0 |
| 80 |         12 |                  3 | 2010-01-01 | 2010-01-01 | 2010-12-31 | testing |         3 |        NULL | NULL          |                  77 |       0 |            0 |
| 81 |         14 |                  3 | 2010-01-01 | 2010-01-01 | 2010-12-31 | testing |         3 |        NULL | NULL          |                  77 |       0 |            0 |
+----+------------+--------------------+------------+------------+------------+---------+-----------+-------------+---------------+---------------------+---------+--------------+
5 rows in set (0.00 sec)


We have a Renewal Page which allows the user to select the membership level and a field for the email address.  It does not require the user to be logged in.  User selects FAMILY from radio button, and then enters myemail-at-gmail.com.  The user is directed to PAYPAL SANDBOX and makes the appropriate payment.  We also "accept" the payment in PayPal.  Still everything is as expected. 

The EXPECTATION then is that the family membership at the MyFamily household is updated such that the date is now 1/1/2010 to 12/31/2011, along with each individual contact.  The membership status is expected to be "current" for all.

The ACTUAL behavior is that the membership for the INDIVIDUAL contact who had myemail-at-gmail.com as email address is updated as 1/1/2010 to 12/31/2011 and the status of that individual changed to "current'.  However, the membership status for the other members and MyFamily household record remains in GRACE status with 1/1/2010-12/31/2010 as the date range.

Below is how the data looks now:

mysql> select * from civicrm_membership;
+----+------------+--------------------+------------+------------+------------+---------+-----------+-------------+---------------+---------------------+---------+--------------+
| id | contact_id | membership_type_id | join_date  | start_date | end_date   | source  | status_id | is_override | reminder_date | owner_membership_id | is_test | is_pay_later |
+----+------------+--------------------+------------+------------+------------+---------+-----------+-------------+---------------+---------------------+---------+--------------+
| 77 |         11 |                  3 | 2010-01-01 | 2010-01-01 | 2010-12-31 | testing |         3 |        NULL | NULL          |                NULL |       0 |            0 |
| 78 |         13 |                  3 | 2010-01-01 | 2010-01-01 | 2010-12-31 | testing |         3 |        NULL | NULL          |                  77 |       0 |            0 |
| 79 |         15 |                  3 | 2010-01-01 | 2010-01-01 | 2010-12-31 | testing |         3 |        NULL | NULL          |                  77 |       0 |            0 |
| 80 |         12 |                  3 | 2010-01-01 | 2010-01-01 | 2011-12-31 | testing |         2 |           0 | 2011-11-30    |                  77 |       0 |            0 |
| 81 |         14 |                  3 | 2010-01-01 | 2010-01-01 | 2010-12-31 | testing |         3 |        NULL | NULL          |                  77 |       0 |            0 |
+----+------------+--------------------+------------+------------+------------+---------+-----------+-------------+---------------+---------------------+---------+--------------+
5 rows in set (0.00 sec)


So, what are we doing wrong?  If we update/renew the membership at the MyFamily household manuall in ADMIN mode, all members are updated as expected.

CiviCRM version 3.2.4
Drupal 6.1.9
MySQL 5.0.75
PHP 5.2.6

We really appreciate any response in this regard. We are new to CiviCRM.

Thank you

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: Self-service Membership Renewal does not update all of the household members
January 16, 2011, 06:10:34 am

Thanx for the detailed analysis and description

Civi is associating the "renewed" membership with the individual due to the match in email address. We assume its only people that can login and do not associate an online renewal with a household or org

It does not detect (or promote) that this individual membership was inherited and hence potentially should be assigned to the household. Not sure if this is true for all cases, but does make sense

I currently cannot think of a workaround. Your one option would be to do it as a postProcess hook and once civi renews the individual, to roll that back and assign it to the household. This is very hackish, IMO

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

mramaswamy

  • I’m new here
  • *
  • Posts: 1
  • Karma: 0
Re: Self-service Membership Renewal does not update all of the household members
January 16, 2011, 07:20:11 am
Lobo,

You are right in that only individuals can login...however, "family" membership is not anything special and someone in the family should have a way to renew.  Are you stating that if a membership is at the household level, then only the "admin" can update it then?  There is no other way?

Also, in regards to your statement "not detect (or promote) that this individual membership was inherited", I have two doubts that needs clarification. 
1.  Is it not possible to detect the "inheritance" by checking if the owner_membership_id is null or not? 
2.  It seems when the renewal was done, the "household" membership record was updated.  Not sure if the renewal process updated it or some other process (may be Arthans can confirm that).

Arthans

  • I’m new here
  • *
  • Posts: 2
  • Karma: 0
  • CiviCRM version: 3.2.4
  • CMS version: Drupal-6.19
  • MySQL version: 5.0.75
  • PHP version: 5.2.6
Re: Self-service Membership Renewal does not update all of the household members
January 18, 2011, 12:20:58 pm
Thanks for the quick response. We have put some workaround for this issue. We have a php that "syncs" statuses among all members of the household membership.
The following code is run periodically by a cron job.

This appears to be working fine. Please let us know if you see any issues updating this way.

Code is attached.

Thank you

Pages: [1]
  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Support »
  • Using CiviCRM »
  • Using CiviMember (Moderator: Deepak Srivastava) »
  • Self-service Membership Renewal does not update all of the household members

This forum was archived on 2017-11-26.