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