|
Lines 75-80
the date set by the preference.
Link Here
|
| 75 |
Optional parameter to extend the selection with a number of days AFTER |
75 |
Optional parameter to extend the selection with a number of days AFTER |
| 76 |
the date set by the preference. |
76 |
the date set by the preference. |
| 77 |
|
77 |
|
|
|
78 |
=item B<-letter> |
| 79 |
|
| 80 |
Optional parameter to use another notice than the default one. |
| 81 |
|
| 78 |
=back |
82 |
=back |
| 79 |
|
83 |
|
| 80 |
=head1 CONFIGURATION |
84 |
=head1 CONFIGURATION |
|
Lines 134-140
my $help = 0;
Link Here
|
| 134 |
my $man = 0; |
138 |
my $man = 0; |
| 135 |
my $before = 0; |
139 |
my $before = 0; |
| 136 |
my $after = 0; |
140 |
my $after = 0; |
| 137 |
my $branch; |
141 |
my ( $branch, $letter_type ); |
| 138 |
|
142 |
|
| 139 |
GetOptions( |
143 |
GetOptions( |
| 140 |
'help|?' => \$help, |
144 |
'help|?' => \$help, |
|
Lines 145-150
GetOptions(
Link Here
|
| 145 |
'branch:s' => \$branch, |
149 |
'branch:s' => \$branch, |
| 146 |
'before:i' => \$before, |
150 |
'before:i' => \$before, |
| 147 |
'after:i' => \$after, |
151 |
'after:i' => \$after, |
|
|
152 |
'letter:s' => \$letter_type, |
| 148 |
) or pod2usage(2); |
153 |
) or pod2usage(2); |
| 149 |
|
154 |
|
| 150 |
pod2usage( -verbose => 2 ) if $man; |
155 |
pod2usage( -verbose => 2 ) if $man; |
|
Lines 167-218
warn 'found ' . scalar( @$upcoming_mem_expires ) . ' soon expiring members'
Link Here
|
| 167 |
if $verbose; |
172 |
if $verbose; |
| 168 |
|
173 |
|
| 169 |
# main loop |
174 |
# main loop |
|
|
175 |
$letter_type = 'MEMBERSHIP_EXPIRY' if !$letter_type; |
| 170 |
foreach my $recent ( @$upcoming_mem_expires ) { |
176 |
foreach my $recent ( @$upcoming_mem_expires ) { |
| 171 |
my $from_address = $recent->{'branchemail'} || $admin_adress; |
177 |
my $from_address = $recent->{'branchemail'} || $admin_adress; |
| 172 |
my $letter_type = 'MEMBERSHIP_EXPIRY'; |
178 |
my $letter = C4::Letters::GetPreparedLetter( |
| 173 |
my $letter = C4::Letters::getletter( 'members', $letter_type, |
179 |
module => 'members', |
| 174 |
$recent->{'branchcode'} ); |
180 |
letter_code => $letter_type, |
| 175 |
die "no letter of type '$letter_type' found. Please see sample_notices.sql" |
181 |
branchcode => $recent->{'branchcode'}, |
| 176 |
unless $letter; |
182 |
tables => { |
| 177 |
|
183 |
borrowers => $recent->{'borrowernumber'}, |
| 178 |
$letter = parse_letter({ |
184 |
branches => $recent->{'branchcode'}, |
| 179 |
letter => $letter, |
|
|
| 180 |
borrowernumber => $recent->{'borrowernumber'}, |
| 181 |
firstname => $recent->{'firstname'}, |
| 182 |
categorycode => $recent->{'categorycode'}, |
| 183 |
branchcode => $recent->{'branchcode'}, |
| 184 |
}); |
| 185 |
if ($letter) { |
| 186 |
if ($nomail) { |
| 187 |
print $letter->{'content'}."\n"; |
| 188 |
} else { |
| 189 |
C4::Letters::EnqueueLetter({ |
| 190 |
letter => $letter, |
| 191 |
borrowernumber => $recent->{'borrowernumber'}, |
| 192 |
from_address => $from_address, |
| 193 |
message_transport_type => 'email', |
| 194 |
}); |
| 195 |
} |
| 196 |
} |
| 197 |
} |
| 198 |
|
| 199 |
=head1 SUBROUTINES |
| 200 |
|
| 201 |
=head2 parse_letter |
| 202 |
|
| 203 |
=cut |
| 204 |
|
| 205 |
sub parse_letter { |
| 206 |
my $params = shift; |
| 207 |
foreach my $required ( qw( letter borrowernumber ) ) { |
| 208 |
return unless exists $params->{$required}; |
| 209 |
} |
| 210 |
my $letter = C4::Letters::GetPreparedLetter ( |
| 211 |
module => 'members', |
| 212 |
letter_code => 'MEMBERSHIP_EXPIRY', |
| 213 |
tables => { |
| 214 |
'borrowers', $params->{'borrowernumber'}, |
| 215 |
'branches', $params->{'branchcode'} |
| 216 |
}, |
185 |
}, |
| 217 |
); |
186 |
); |
|
|
187 |
last if !$letter; # Letters.pm already warned, just exit |
| 188 |
if( $nomail ) { |
| 189 |
print $letter->{'content'}."\n"; |
| 190 |
} else { |
| 191 |
C4::Letters::EnqueueLetter({ |
| 192 |
letter => $letter, |
| 193 |
borrowernumber => $recent->{'borrowernumber'}, |
| 194 |
from_address => $from_address, |
| 195 |
message_transport_type => 'email', |
| 196 |
}); |
| 197 |
} |
| 218 |
} |
198 |
} |
| 219 |
- |
|
|