Commit graph

299 commits

Author SHA1 Message Date
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
Bradley M. Kuhn
8b233299c8 Properly use these strings. 2015-12-31 00:00:11 -08:00
Bradley M. Kuhn
8cc77b8dec mode change on file 2015-12-30 22:48:19 -08:00
Bradley M. Kuhn
a4eb7ac8ac First draft at add script. 2015-12-30 22:47:55 -08:00
Bradley M. Kuhn
b174fec8c3 Add FIXME for API call I want. 2015-12-30 21:47:29 -08:00
Bradley M. Kuhn
39faafcab6 supporterExpirationDate: fix reverse sort bug.
These two new tests:
  ok 222 - supporterExpirationDate(): same donation amount in year...
  ok 223 - supporterExpirationDate(): ...returns the latter date.

did not pass without this change.  The list for annuals in
supporterExpirationDate() was sorted in the wrong order, producing
erroneous results.
2015-12-30 21:26:48 -08:00
Bradley M. Kuhn
dbeb98d0f2 findDonor: empty criteria finds everyone.
Rather than die() when the criteria list is empty, instead return the
entire list.
2015-12-30 20:53:28 -08:00
Bradley M. Kuhn
97f08a7bd8 supporterExpirationDate: tests & implementation 2015-12-30 20:11:57 -08:00
Bradley M. Kuhn
7e424200c7 donorFirstGave: tests and initial implementation. 2015-12-30 19:32:31 -08:00
Bradley M. Kuhn
7d4ca1f746 Correct id in this test. 2015-12-30 19:01:19 -08:00
Bradley M. Kuhn
a57415ff6d donorLastGave: initial implementation. 2015-12-30 19:01:03 -08:00