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) »
  • Discussion (deprecated) »
  • Alpha and Beta Release Testing »
  • 2.1 Release Testing »
  • CiviPledge - so close
Pages: [1]

Author Topic: CiviPledge - so close  (Read 4956 times)

psagers

  • Guest
CiviPledge - so close
August 13, 2008, 04:08:03 pm
I was delighted to see pledges added to 2.1, as it would mean one less custom app to maintain alongside CiviCRM for one of my clients. Unfortunately, CiviPledge is missing two main things that may prevent us from using it until a future (hopefully near future) version. I've also found some frightening behavior that might scare me off in any case.

The first and perhaps more minor issue is that multiple nonprofits that I work with accept quarterly pledges, which is not an available frequency. That may even be minor enough to get into 2.1. Every time I've implemented a solution to track pledges, I've stored the frequency with quantity and units (every n months/quarters/years) for maximum flexibility.

The larger issue is that CiviPledge seems designed firmly around the idea of fixed-length pledges. This organization (as well as others I've worked with) are increasingly gathering open-ended pledges. i.e. "charge my credit card $25 every month indefinitely." If only a pledge had a notes field, we might get away with noting which pledges needed to be renewed. Although given the ascendency of open-ended pledges, this would only become increasingly awkward over time. If I can't find a way around this, it may be a deal-breaker.

The frightening behavior I see may center around the fact that we currently deploy CiviCRM for internal use only. Along these lines, the first thing I noticed is that pledges are set to send reminders by default. I haven't played with that much yet, but I assume it means that it will send email reminders. This must have been designed with user-initiated pledges in mind; in our situation, it's a very dangerous default. With a backoffice-only deployment, I would expect CiviCRM to never send email to any contact without explicit direction to do so. Perhaps the default should vary depending on the source of the pledge (internal vs. external)? This may be a larger issue with the tug-of-war between the needs of outward-facing and inward-facing deployments.

The other behavior that makes me nervous is the apparent inability to record pledged contributions even a single day in the past. All of our contributions are recorded manually, generally by a single person. Not necessarily on the exact day that they are made (even the board member doing data entry gets to go on vacation occasionally). On top of which, many of our pledges involve us running the credit cards on a particular day. The charges might actually be made a few days later, depending on schedules, cards being rejected, and any number of other things. I think the rigidity of recording pledged contributions is going to be confusing and awkward. At best, whoever's doing data entry will become very familiar with the "Edit Schedule" link (in a loathing kind of way). At worst, we'll have to choose between conforming to CiviPledge's expectations and recording accurate contribution data. As a general rule, I would submit that recording true and accurate information about a contribution is paramount and everything else needs to be flexible enough to accommodate that.

Thanks for the great work. I hope we can use this someday soon.

Dave Greenberg

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 5760
  • Karma: 226
    • My CiviCRM Blog
Re: CiviPledge - so close
August 14, 2008, 11:13:15 am
Thanks for the detailed feedback. Some responses and questions inline below (in hopes we can get to the point where you are comfortable with the 2.1 feature set). :-)

Quote from: psagers on August 13, 2008, 04:08:03 pm
The first and perhaps more minor issue is that multiple nonprofits that I work with accept quarterly pledges, which is not an available frequency. That may even be minor enough to get into 2.1. Every time I've implemented a solution to track pledges, I've stored the frequency with quantity and units (every n months/quarters/years) for maximum flexibility.
Is there a difference between "Every 3 months" and "Every 1 quarter" ?

Quote from: psagers on August 13, 2008, 04:08:03 pm
The larger issue is that CiviPledge seems designed firmly around the idea of fixed-length pledges. This organization (as well as others I've worked with) are increasingly gathering open-ended pledges. i.e. "charge my credit card $25 every month indefinitely." If only a pledge had a notes field, we might get away with noting which pledges needed to be renewed. Although given the ascendency of open-ended pledges, this would only become increasingly awkward over time. If I can't find a way around this, it may be a deal-breaker.
We had gotten mixed feedback on open-ended pledges. Several people said that due to accounting rules they needed the pledge to have a fixed total amount / end date. We're open to revisiting this / making it configurable in the future - although I'd like to understand how open-ended pledges are handled from an accounting point of view.

For the short / medium term you could create a renewal work flow by adding custom field(s) to the Pledge records which indicate whether a pledge should be renewed. This could be a simple Note field, or an optional note plus date and radio button:

Renew this pledge on: [ date ]
Pledge renewed?: [  ] Yes  [  ] No
Pledge notes: [                              ]

You would then be able to create a Smart Group (saved search) which finds all contacts with "Renewal Date" <= today and "Pledge Renewed" = No.

Quote from: psagers on August 13, 2008, 04:08:03 pm
The frightening behavior I see may center around the fact that we currently deploy CiviCRM for internal use only. Along these lines, the first thing I noticed is that pledges are set to send reminders by default. I haven't played with that much yet, but I assume it means that it will send email reminders.
Reminder emails are generated by a separate php script - which must be configured to run via cron job. This script has 2 tasks:
1. Updates Pledge and Pledge Payment statuses
2. Generates Reminder emails as configured for a given pledge.

Based on your feedback, we've updated the script so that it ONLY does the status updates by default and does NOT do the reminder email part. There's a line in the script that can be uncommented for sites that want the automated reminder feature. (Of course we will be posting documentation for how this works on the wiki as the release is finalized).

For user-initiated pledges, we allow the admin to configure the Reminders parameters - so they can be set to 0 reminders. As a longer term solution, I've added a task for the next release to allow "New Pledge" defaults to be configured for back-office recorded pledges.

Quote from: psagers on August 13, 2008, 04:08:03 pm
The other behavior that makes me nervous is the apparent inability to record pledged contributions even a single day in the past.
I'm a bit confused about this comment. We track both the Scheduled Payment Date and the actual Paid Date. When your staff person clicks "Record Payment" from the pledge payments listing, they get to a form which includes an editable "Received" date field. It does default to the current date, but is easily changed to a past date. The date entered here is the date that will be recorded as the Paid Date and also in the contribution record." Am I missing something here?
http://sandbox.civicrm.org/civicrm/contact/view/contribution?reset=1&action=add&cid=32&context=dashboard&ppid=8
Protect your investment in CiviCRM by  becoming a Member!

psagers

  • Guest
Re: CiviPledge - so close
August 14, 2008, 12:29:58 pm
Quote from: Dave Greenberg on August 14, 2008, 11:13:15 am
Is there a difference between "Every 3 months" and "Every 1 quarter" ?

Nope, that would be fine. I don't see a way to do "n months" in 2.1a2. I'm not missing it, am I?

Quote from: Dave Greenberg on August 14, 2008, 11:13:15 am
For the short / medium term you could create a renewal work flow by adding custom field(s) to the Pledge records which indicate whether a pledge should be renewed.

D'oh. Quite right. We use custom fields fairly liberally, but I completely spaced on it in this case. That should do it. Custom field groups for pledges don't seem to work in 2.1a2, but it looks like it's fixed in sandbox.

Quote from: Dave Greenberg on August 14, 2008, 11:13:15 am
Quote from: psagers on August 13, 2008, 04:08:03 pm
The other behavior that makes me nervous is the apparent inability to record pledged contributions even a single day in the past.
I'm a bit confused about this comment.

That's my fault; I didn't express that clearly at all. I actually just checked the sandbox site and it looks like the behavior is fixed. The bug I was describing in 2.1a2 can easily be seen by entering a pledge with a start and next payment date of yesterday. If you then go to the payment schedule, there's no link to record the first payment. You're stuck. On the current sandbox site, the payment is marked overdue, but the link is still there, so it's cool.

There is still one oddity on sandbox: the next payment date is still set to yesterday (as it probably should be), but the next payment amount is the amount of two payments. Apparently the Next Payment Amount is actually showing the amount due by the first scheduled payment date in the future, which is a bit different.

I'm feeling much more optimistic about pledges now. I'll do another pass on a3/b1 to make sure I can duplicate the behavior I see in the sandbox.

Thanks!

Dave Greenberg

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 5760
  • Karma: 226
    • My CiviCRM Blog
Re: CiviPledge - so close
August 14, 2008, 06:55:46 pm
Quote
Nope, that would be fine. I don't see a way to do "n months" in 2.1a2. I'm not missing it, am I?
Wow - so glad you're helping to review stuff. The "feature" of allowing "N" months was omitted from the backend Pledge creation form for some reason (possibly mental "burp" on my part?) - even though it is optionally supported for self-service pledges and supported in the data model. I've implemented this for the back-end and updated the sandbox. Would be great if you could try it out / bang on it a bit.

Quote
There is still one oddity on sandbox: the next payment date is still set to yesterday (as it probably should be), but the next payment amount is the amount of two payments. Apparently the Next Payment Amount is actually showing the amount due by the first scheduled payment date in the future, which is a bit different.

I had noticed this and thought it was a bit odd, but didn't "push it". However, now that 2 of us agree it's odd - I've posted a fix request. Hopefully it's not too tricky to fix.
http://wiki.civicrm.org/confluence/display/CRM/Issues+Just+Noticed
Protect your investment in CiviCRM by  becoming a Member!

FatherShawn

  • Ask me questions
  • ****
  • Posts: 372
  • Karma: 25
    • C3 Design
  • CiviCRM version: 4.2.11
  • CMS version: Drupal 7.23
  • MySQL version: 5.5.32
  • PHP version: 5.3.10
Re: CiviPledge - so close
August 15, 2008, 04:15:09 am
Quote from: Dave Greenberg on August 14, 2008, 11:13:15 am
For user-initiated pledges, we allow the admin to configure the Reminders parameters - so they can be set to 0 reminders. As a longer term solution, I've added a task for the next release to allow "New Pledge" defaults to be configured for back-office recorded pledges.

I didn't realize that user-initiated pledges made it into 2.1.  Where are the configuration pages in the back-end of the sandbox to set that up?

Great job psagers catching the missing "every x period"!!  Since it was there earlier, I just didn't notice it was gone either...
Lead Developer, C3 Design.
Twitter: @FatherShawn

psagers

  • Guest
Re: CiviPledge - so close
August 17, 2008, 02:51:05 pm
I've been putting a3 through its paces and it looks like everything is fixed. I haven't actually found the cron script to update pledge status, but perhaps it's not in the builds yet.

One usability note: it might be a good idea for someone to look at the default sort orders for pledge-related record lists. In particular, CiviPledge search results (including the main page) are sorted by Pledge Made ASC, whereas it should probably be DESC. This would be much more useful and also more consistent with CiviContribute. I might also suggest that the results for Balance Due and Past Due be sorted by Next Payment Date ASC, although that's certainly more debatable.

Looking great overall. Thanks!

Kurund Jalmi

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4169
  • Karma: 128
    • CiviCRM
  • CiviCRM version: 4.x, future
  • CMS version: Drupal 7, Joomla 3.x
  • MySQL version: 5.5.x
  • PHP version: 5.4.x
Re: CiviPledge - so close
August 17, 2008, 08:50:04 pm
Quote
I've been putting a3 through its paces and it looks like everything is fixed. I haven't actually found the cron script to update pledge status, but perhaps it's not in the builds yet.

Cron files is in bin/UpdatePledgeRecord.php.txt, you will have to rename it to UpdatePledgeRecord.php

Quote
One usability note: it might be a good idea for someone to look at the default sort orders for pledge-related record lists. In particular, CiviPledge search results (including the main page) are sorted by Pledge Made ASC, whereas it should probably be DESC. This would be much more useful and also more consistent with CiviContribute.

Done. Should be part next alpha.

thanx for the feedback..

kurund


Found this reply helpful? Support CiviCRM

psagers

  • Guest
Re: CiviPledge - so close
August 18, 2008, 06:25:23 pm
Quote from: Kurund Jalmi on August 17, 2008, 08:50:04 pm
Cron files is in bin/UpdatePledgeRecord.php.txt, you will have to rename it to UpdatePledgeRecord.php

Based on empirical evidence and reading the source, it appears that this script must be run as an authenticated user, as determined by 'name' and 'pass' URL query parameters. Also that this user need not have any particular permissions. In fact, I was even able to execute the script with the credentials of a blocked user (I'm using Drupal). This is all accurate and by design? Is ACL integration planned for a future release?

Thanks

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: CiviPledge - so close
August 19, 2008, 01:37:51 am
Quote from: psagers on August 18, 2008, 06:25:23 pm
This is all accurate and by design?

yes

Quote from: psagers on August 18, 2008, 06:25:23 pm
Is ACL integration planned for a future release?

not for 2.2. However a code contribution can help make this happen in 2.2 :)

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

Dave Greenberg

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 5760
  • Karma: 226
    • My CiviCRM Blog
Re: CiviPledge - so close
August 19, 2008, 03:41:09 pm
Modified the authentication routine to deny access to "blocked" users - as this was an easy change.

http://issues.civicrm.org/jira/browse/CRM-3418

I've added an item to the 2.2 candidate features list to explore checking for specific permissions (e.g. 'access CiviPledge' for UpdatePledgeRecord.php script, etc.).

http://wiki.civicrm.org/confluence/display/CRM/CiviCRM+v2.2

As lobo mentioned, a patch / code contribution in this area would move this to "reality" in 2.2 :-)
Protect your investment in CiviCRM by  becoming a Member!

Pages: [1]
  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Discussion (deprecated) »
  • Alpha and Beta Release Testing »
  • 2.1 Release Testing »
  • CiviPledge - so close

This forum was archived on 2017-11-26.