- Kurund - Let's discuss why this was coded like this before you fix it. I want to verify that we're not breaking some cases / conditions with the fix. dgg
Currently, when creating or editing a membership - the value of the Start Date is forced equal to the Join Date for any "rolling" type membership. This happens in CRM_Member_BAO_MembershipType::getDatesForMembershipType line 285:
$startDate = $actualStartDate = $joinDate;
I think this was meant to handle the "create" case where ONLY the Join Date field is populated. ??
However, if a Start Date value is entered, or is present in the record being edited - it SHOULD be used to calculate the End Date. But due to the above line, we always calculate End Date based on the Join Date. I think the code should set startDate = joinDate ONLY if startDate is null.