Commit graph

259 commits

Author SHA1 Message Date
Bradley M. Kuhn
279c3e33f9 Add lapsed count to output for status report. 2016-03-07 10:36:28 -08:00
Bradley M. Kuhn
6137907548 Rework to create status report for staff.
This script now also sends an email to the staff (via the $FROM_ADDRESS)
about the status of Supporter renewals.
2016-03-07 10:29:18 -08:00
Bradley M. Kuhn
a0c5936e1c Send renewal notices one week before expiration. 2016-03-07 08:25:46 -08:00
Bradley M. Kuhn
76f4e3f4ef Only tell them it'll come later if post. 2016-02-29 17:58:37 -08:00
Bradley M. Kuhn
475f8a8a1d Allow no email address when adding supporter. 2016-02-29 17:58:23 -08:00
Bradley M. Kuhn
f8d145c3a7 Create find-supporter script. 2016-01-24 16:18:29 -08:00
Bradley M. Kuhn
ae0b7000ae Add verbose argument. 2016-01-22 17:12:22 -08:00
Bradley M. Kuhn
376075e549 Skip lapsed supporters. 2016-01-22 17:12:05 -08:00
Bradley M. Kuhn
922e8f279e Add additional parameters. 2016-01-22 17:10:58 -08:00
Bradley M. Kuhn
6986796a7d Correct variable name. 2016-01-22 17:10:45 -08:00
Bradley M. Kuhn
8f5c3b8d1f This error checking condition is now meaningless. 2016-01-22 17:10:30 -08:00
Bradley M. Kuhn
167d8c9520 checklist is the proper has value throughout. 2016-01-22 17:10:17 -08:00
Bradley M. Kuhn
1039f6f6d2 Allow for undef. 2016-01-22 17:09:41 -08:00
Bradley M. Kuhn
ef21af7afd holdRequest: revise tests to shake out the API.
First of all, I originally thought about releaseDate all wrong.  We want
to store the date that the hold was released, which is the indicator
that the request is no longer on hold and can be fulfilled.

We also need tests that assure a request is not fulfilled while on
hold.  Those are added here.

I shook out a few other changes to the test ordering that are necessary
for the change to testing holdRequest().
2016-01-19 17:49:20 -08:00
Bradley M. Kuhn
18e08833d5 Typo fix. 2016-01-19 17:44:34 -08:00
Bradley M. Kuhn
e2291f777c holdRequest: basic tests that define API.
This is the basic API definition for holdRequest and the changes to
getRequest that will occur because of it.
2016-01-18 21:34:03 -08:00
Bradley M. Kuhn
40eb4b32c9 getRequest: unit test w/ ignoreFulfilledRequests
There was no unit test using ignoreFulfilledRequests.  This adds it.
2016-01-18 21:29:45 -08:00
Bradley M. Kuhn
02dd863c53 getPostalAddresses: implementation
It's straightforward but has no unit tests, and should have some.
2016-01-18 21:20:43 -08:00
Bradley M. Kuhn
82ec41cc33 Verify getRequest works after failed fulfill.
getRequest() should return expected values after failed fulfillRequest()
call
2016-01-18 21:13:21 -08:00
Bradley M. Kuhn
ded2028069 Allow missing entityId in Ledger output.
The ledger data can, in fact, sometimes have a missing entityId for
various reasons.  For now, these donations should just be ignored.
Perhaps in future a warning of some sort should be generated.
2016-01-18 21:10:47 -08:00
Bradley M. Kuhn
cf8cc36045 Giving limit for donor to receive t-shirt.
Analysis of IRS rules indicate that sometimes, a thank-you gift can't be
sent unless the percentage the gift is of the donation meets a certain
threshold.

This change allows the caller of this script to implement that sort of
threshold.
2016-01-08 13:10:20 -08:00
Bradley M. Kuhn
e43b6e34ae donorTotalGaveInPeriod: First implementation.
This passes all tests:

ok 224 - donorTotalGaveInPeriod(): dies with undefined donorId
ok 225 - donorTotalGaveInPeriod(): dies with non-numeric donorId
ok 226 - donorTotalGaveInPeriod(): dies with non-existent id
ok 227 - donorTotalGaveInPeriod():  dies with non ISO-8601 string in startDate
ok 228 - donorTotalGaveInPeriod():  dies with non ISO-8601 string in endDate
ok 229 - donorTotalGaveInPeriod(): dies if given an argument that is not recognized
ok 230 - donorTotalGaveInPeriod(): total for a donor with no period named succeeds...
ok 231 - donorTotalGaveInPeriod(): ...and returned value is correct.
ok 232 - donorTotalGaveInPeriod(): check for total with both start and end date succeeds...
ok 233 - donorTotalGaveInPeriod(): ...and returned value is correct.
ok 234 - donorTotalGaveInPeriod(): check for total with just a start date succeeds...
ok 235 - donorTotalGaveInPeriod(): ...and returned value is correct.
ok 236 - donorTotalGaveInPeriod(): check for total with just a end date succeeds...
ok 237 - donorTotalGaveInPeriod(): ...and returned value is correct.
2016-01-07 13:36:21 -08:00
Bradley M. Kuhn
00da4c3cd8 Commit forgotten test! 2016-01-07 13:35:13 -08:00
Bradley M. Kuhn
c7d11b8593 Correct totals again.
I am pretty sure these are right now.
2016-01-07 13:35:01 -08:00
Bradley M. Kuhn
965fe7a022 Correct test count. 2016-01-07 13:34:48 -08:00
Bradley M. Kuhn
dba498c528 donorTotalGaveInPeriod: test badly formatted dates
It should die if the dates aren't formatted right.
2016-01-07 13:07:04 -08:00
Bradley M. Kuhn
003af81ce7 donorTotalGaveInPeriod: improve tests.
Actually, the amount on that one test was wrong, and I think we actually
do want to test the border cases a bit better.
2016-01-07 13:06:40 -08:00
Bradley M. Kuhn
e14c0b048d donorTotalGaveInPeriod: tests defining basic API. 2016-01-07 12:53:04 -08:00
Bradley M. Kuhn
5901e567d3 Date test was written should not be hard coded.
The date should use the today, while that still has the "run the tests
at almost midnight UTC" race condition, at least it will usually be
right. :)
2016-01-07 12:52:29 -08:00
Bradley M. Kuhn
97e772b89c Parallel hashes made no sense here.
Since the main index is size, no reason not to have a single hash that
is so-keyed, and have subhash with two keys for checklist and labels.
2016-01-07 12:42:51 -08:00
Bradley M. Kuhn
dd8d8cba37 Reverse shortened postal address printed.
Packers find that reversing the postal address makes people easier to
find when matching up labels.
2016-01-07 12:38:53 -08:00
Bradley M. Kuhn
a4fdb4ea99 Correct sorting to print by size.
Packers indicate that packing by size rather than any other method is
better.
2016-01-07 12:33:52 -08:00
Bradley M. Kuhn
ed6b1decb0 This should really be input to the script.
But changing it here for the moment.
2016-01-06 22:22:44 -08:00
Bradley M. Kuhn
dbea255aee Properly handle counting.
Fix an off-by-one error on the size counts and otherwise handle counting
well.
2016-01-06 21:46:58 -08:00
Bradley M. Kuhn
e35ee8b953 Script to calculate our renewal rate. 2016-01-03 14:14:04 -08:00
Bradley M. Kuhn
da75edccf2 Handle other donor info. 2016-01-03 13:17:00 -08:00
Bradley M. Kuhn
6d7bae7e02 Correct printout of email addresses for renewal. 2016-01-03 12:26:49 -08:00
Bradley M. Kuhn
d151b992c4 First past script to print t-shirt labels. 2016-01-02 11:21:17 -08:00
Bradley M. Kuhn
f985b1c1ef Modifications to the email notification. 2016-01-02 10:47:29 -08:00
Bradley M. Kuhn
a57ed11bd5 Additional verbosity that says what we did. 2016-01-02 10:47:22 -08:00
Bradley M. Kuhn
b85575c625 Don't warn, just print to STDERR with verbosity. 2016-01-02 10:47:09 -08:00
Bradley M. Kuhn
964755c3e3 This takes a hash as argument. 2016-01-02 10:36:35 -08:00
Bradley M. Kuhn
215ac05484 Fixed spelling on hash key. 2016-01-02 10:35:05 -08:00
Bradley M. Kuhn
2d52ce2cd1 Need to use Supporters! 2016-01-02 10:33:57 -08:00
Bradley M. Kuhn
09f25e9fc9 send-t-shirt.plx: First hack at it. 2016-01-02 10:33:35 -08:00
Bradley M. Kuhn
dcbc823f0b need $emailTo variable. 2015-12-31 02:24:32 -08:00
Bradley M. Kuhn
5e226a3483 Rename variable. 2015-12-31 02:24:26 -08:00
Bradley M. Kuhn
db43a3ed71 First draft of renewal-notices script. 2015-12-31 02:16:30 -08:00
Bradley M. Kuhn
f3b7ebc6e3 getEmailAddresses: tests and implementation. 2015-12-31 01:59:50 -08:00
Bradley M. Kuhn
4bd5ab4fd1 Wrote add-email-address.plx script. 2015-12-31 00:38:59 -08:00