From a301716263914d1e1fc8cc2c9f649bc928d13448 Mon Sep 17 00:00:00 2001 From: "Bradley M. Kuhn" Date: Tue, 21 Aug 2018 10:09:40 -0700 Subject: [PATCH] New script: t-shirt-print-need Just prints a list of t-shirts we need. --- scripts/t-shirt-print-need.plx | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 scripts/t-shirt-print-need.plx diff --git a/scripts/t-shirt-print-need.plx b/scripts/t-shirt-print-need.plx new file mode 100644 index 0000000..d4d4cef --- /dev/null +++ b/scripts/t-shirt-print-need.plx @@ -0,0 +1,63 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use autodie qw(open close chdir); +use DBI; +use Encode qw(encode decode); + +use LaTeX::Encode; + +use Supporters; + +my $LEDGER_CMD = "/usr/bin/ledger"; +if (@ARGV < 2) { + + print STDERR "usage: $0 \n"; + exit 1; +} +my @typeList = qw/t-shirt-0 t-shirt-1 t-shirt-extra-0 t-shirt-fy2018design-0/; +my %requests = ( soon => {}, now => {} ); +%{$requests{now}} = map( { ($_, {}) }, @typeList); +%{$requests{soon}} = map( { ($_, {}) }, @typeList); + + +my($SUPPORTERS_SQLITE_DB_FILE, $GIVING_LIMIT, $VERBOSE, @LEDGER_CMD_LINE) = @ARGV; +foreach my $id (sort { sortFunction($a, $b); } @supporterIds) { + my $sizeNeeded; + my $type; + foreach $type (keys %requests) { + my $request = $sp->getRequest({ donorId => $id, requestType => $type, + ignoreHeldRequests => 1, ignoreFulfilledRequests => 1 }); + if (defined $request and defined $request->{requestType}) { + $sizeNeeded = $request->{requestConfiguration}; + last; + } + } + next if not defined $sizeNeeded; # If we don't need a size, we don't have a request. + my $amount = $sp->donorTotalGaveInPeriod(donorId => $id); + if ($amount < $GIVING_LIMIT) { + $requests{soon}{$type}{$sizeNeeded}++; + } else { + $requests{now}{$type}{$sizeNeeded}++; + } +} + +foreach my $key ('now', 'soon') { + print "\n\nREQUESTS READY FOR FUFILLMENT", uc($key), ":\n"; +} +foreach my $type (keys %{$requests{$key}}) { + if (scalar(keys %{$requests{$key}{$type}}) > 0) { + print " $type:\n"; + foreach my $size (keys %{$requests{$key}{$type}}) { + print " $size: $request{$key}{$type}{$size}\n"; + } + } +} +############################################################################### +# +# Local variables: +# compile-command: "perl -c t-shirt-print-need.plx" +# End: +