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 |
- |
|
|