Additional staff report for renewal notice report.
This commit is contained in:
		
							parent
							
								
									413f63ea43
								
							
						
					
					
						commit
						dc5f959259
					
				
					 1 changed files with 34 additions and 10 deletions
				
			
		|  | @ -17,12 +17,12 @@ my $ONE_MONTH = UnixDate(DateCalc(ParseDate("today"), "+ 1 month"), '%Y-%m-%d'); | |||
| my $TWO_YEARS_AGO = UnixDate(DateCalc(ParseDate("today"), "- 2 years"), '%Y-%m-%d'); | ||||
| my $THREE_YEARS_AGO = UnixDate(DateCalc(ParseDate("today"), "- 3 years"), '%Y-%m-%d'); | ||||
| 
 | ||||
| if (@ARGV < 7 ) { | ||||
|   print STDERR "usage: $0 <SUPPORTERS_SQLITE_DB_FILE> <REQUEST_NAME> <FROM_ADDRESS> <EMAIL_TEMPLATE> <MONTHLY_SEARCH_REGEX> <ANNUAL_SEARCH_REGEX>  <VERBOSE> <LEDGER_CMD_LINE>\n"; | ||||
| if (@ARGV < 8 ) { | ||||
|   print STDERR "usage: $0 <SUPPORTERS_SQLITE_DB_FILE> <REQUEST_NAME> <FROM_ADDRESS> <ALL_STAFF_ADDRESS> <EMAIL_TEMPLATE> <MONTHLY_SEARCH_REGEX> <ANNUAL_SEARCH_REGEX>  <VERBOSE> <LEDGER_CMD_LINE>\n"; | ||||
|   exit 1; | ||||
| } | ||||
| 
 | ||||
| my($SUPPORTERS_SQLITE_DB_FILE, $REQUEST_NAME, $FROM_ADDRESS, $EMAIL_TEMPLATE, $MONTHLY_SEARCH_REGEX, $ANNUAL_SEARCH_REGEX, $VERBOSE, | ||||
| my($SUPPORTERS_SQLITE_DB_FILE, $REQUEST_NAME, $FROM_ADDRESS, $ALL_STAFF_ADDRESS, $EMAIL_TEMPLATE, $MONTHLY_SEARCH_REGEX, $ANNUAL_SEARCH_REGEX, $VERBOSE, | ||||
|    @LEDGER_CMN_LINE) = @ARGV; | ||||
| 
 | ||||
| 
 | ||||
|  | @ -117,15 +117,29 @@ foreach my $supporterId (@supporterIds) { | |||
| 
 | ||||
| my $subject = "Supporter lapsed report for $TODAY"; | ||||
| my $per = ( ($lapsedCount / scalar(@supporterIds)) * 100.00); | ||||
| my $emailText = "$subject\n" . ("=" x length($subject)) . | ||||
| my $headerInfo = "$subject\n" . ("=" x length($subject)) . | ||||
|   "\n\nWe have " . scalar(@supporterIds) . " supporters and $lapsedCount are lapsed.  That's " . | ||||
|   sprintf("%.2f", $per) . "%.\nActive supporter count: " . (scalar(@supporterIds) - $lapsedCount) . "\n\n"; | ||||
| my $emailText .= $headerInfo; | ||||
| my $allStaffEmailText = $headerInfo; | ||||
| $emailText .= "\n     RENEWAL DUE COUNT BY MONTH\n"; | ||||
| $emailText .= "\n     ==========================\n"; | ||||
| $allStaffEmailText .= "\n     RENEWAL DUE COUNT BY MONTH\n"; | ||||
| $allStaffEmailText .= "\n     ==========================\n"; | ||||
| 
 | ||||
| foreach my $month (sort { $a cmp $b } keys %monthExpirations) { | ||||
|   my $xx = sprintf("$month: %5d\n", $monthExpirations{$month}); | ||||
|   $emailText .=  $xx; | ||||
|   $allStaffEmailText .= $xx; | ||||
| } | ||||
| $emailText .= "\n"; | ||||
| 
 | ||||
| foreach my $cat (sort { $a cmp $b } @lapseCategories) { | ||||
|   my $heading = scalar(@{$expireReport{$cat}{list}}) . " " . $expireReport{$cat}{description}; | ||||
|   $emailText .= "$heading\n"; | ||||
|   $emailText .= "-" x length($heading); | ||||
|   $emailText .= "\n"; | ||||
|   $allStaffEmailText .= "$heading\n"; | ||||
|   foreach my $sup (sort { ($cat eq '02-lapsed') ? ($b->{expiresOn} cmp $a->{expiresOn}) | ||||
|                             : ($a->{expiresOn} cmp $b->{expiresOn}) } | ||||
|               @{$expireReport{$cat}{list}}) { | ||||
|  | @ -141,12 +155,6 @@ foreach my $cat (sort { $a cmp $b } @lapseCategories) { | |||
|   } | ||||
|   $emailText .=  "\n"; | ||||
| } | ||||
| $emailText .= "\n     RENEWAL DUE COUNT BY MONTH\n"; | ||||
| $emailText .= "\n     ==========================\n"; | ||||
| 
 | ||||
| foreach my $month (sort { $a cmp $b } keys %monthExpirations) { | ||||
|   $emailText .=  sprintf("$month: %5d\n", $monthExpirations{$month}); | ||||
| } | ||||
| 
 | ||||
| my $email = Email::MIME->create( | ||||
|     header_str => [ | ||||
|  | @ -163,3 +171,19 @@ open(SENDMAIL, "|/usr/lib/sendmail -f \"$FROM_ADDRESS\" -oi -oem -- $FROM_ADDRES | |||
|   die "unable to run sendmail: $!"; | ||||
| print SENDMAIL $email->as_string; | ||||
| close SENDMAIL; | ||||
| 
 | ||||
| my $allStaffEmail = Email::MIME->create( | ||||
|     header_str => [ | ||||
|        To => $ALL_STAFF_ADDRESS, | ||||
|        From => $FROM_ADDRESS, | ||||
|        Subject => $subject ], | ||||
|     attributes => { | ||||
|                    content_type => 'text/plain', | ||||
|                    charset => 'utf-8', | ||||
|                    encoding     => "quoted-printable", | ||||
|                    disposition => 'inline' }, | ||||
|     body_str => $allStaffEmailText); | ||||
| open(SENDMAIL, "|/usr/lib/sendmail -f \"$FROM_ADDRESS\" -oi -oem -- $ALL_STAFF_ADDRESS") or | ||||
|   die "unable to run sendmail: $!"; | ||||
| print SENDMAIL $allStaffEmail->as_string; | ||||
| close SENDMAIL; | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Bradley M. Kuhn
						Bradley M. Kuhn