Lines 1-5
Link Here
|
1 |
use Modern::Perl; |
1 |
use Modern::Perl; |
2 |
use Test::More tests => 5; |
2 |
use Test::More tests => 10; |
3 |
|
3 |
|
4 |
use MARC::Record; |
4 |
use MARC::Record; |
5 |
use MARC::Field; |
5 |
use MARC::Field; |
Lines 152-155
is(
Link Here
|
152 |
); |
152 |
); |
153 |
DelDebarment( $debarments->[0]->{borrower_debarment_id} ); |
153 |
DelDebarment( $debarments->[0]->{borrower_debarment_id} ); |
154 |
|
154 |
|
|
|
155 |
# 2 hours before => 0 day of suspension |
156 |
my $hoursafter2= dt_from_string->add_duration(DateTime::Duration->new(hours => 2)); |
157 |
AddIssue( $borrower, $barcode, $hoursafter2); |
158 |
AddReturn( $barcode, $branchcode ); |
159 |
$debarments = GetDebarments({borrowernumber => $borrower->{borrowernumber}}); |
160 |
is_deeply( |
161 |
$debarments, |
162 |
[], |
163 |
'No debarment if in time' |
164 |
); |
165 |
DelDebarment( $debarments->[0]->{borrower_debarment_id} ); |
166 |
|
167 |
Koha::IssuingRules->search->delete; |
168 |
# Add 1 day every 2 days |
169 |
$builder->build( |
170 |
{ |
171 |
source => 'Issuingrule', |
172 |
value => { |
173 |
categorycode => '*', |
174 |
itemtype => '*', |
175 |
branchcode => '*', |
176 |
firstremind => 0, |
177 |
finedays => 1, |
178 |
lengthunit => 'hours', |
179 |
suspension_chargeperiod => 2, |
180 |
maxsuspensiondays => 100, |
181 |
} |
182 |
} |
183 |
); |
184 |
|
185 |
# 20 days late => 20/2 * 1 => 10 days of suspension |
186 |
AddIssue( $borrower, $barcode, $daysago20 ); |
187 |
AddReturn( $barcode, $branchcode ); |
188 |
$debarments = GetDebarments({borrowernumber => $borrower->{borrowernumber}}); |
189 |
is( |
190 |
$debarments->[0]->{expiration}, |
191 |
output_pref({ dt => $daysafter10, dateformat => 'iso', dateonly => 1 }), |
192 |
'calculate suspension with lengthunit hours.' |
193 |
); |
194 |
DelDebarment( $debarments->[0]->{borrower_debarment_id} ); |
195 |
|
196 |
# 1 day late => ceil(1/2) * 1 => 1 day of suspension |
197 |
my $tomorrow = dt_from_string->add_duration(DateTime::Duration->new( days => 1 )); |
198 |
AddIssue( $borrower, $barcode, $yesterday); |
199 |
AddReturn( $barcode, $branchcode ); |
200 |
$debarments = GetDebarments({borrowernumber => $borrower->{borrowernumber}}); |
201 |
is( |
202 |
$debarments->[0]->{expiration}, |
203 |
output_pref({ dt => $tomorrow, dateformat => 'iso', dateonly => 1 }), |
204 |
'calculate suspension with lengthunit hours.' |
205 |
); |
206 |
DelDebarment( $debarments->[0]->{borrower_debarment_id} ); |
207 |
|
208 |
# 2 hours late => ceil(.x/2) * 1 => 1 day of suspension |
209 |
AddIssue( $borrower, $barcode, $hoursago2); |
210 |
AddReturn( $barcode, $branchcode ); |
211 |
$debarments = GetDebarments({borrowernumber => $borrower->{borrowernumber}}); |
212 |
is( |
213 |
$debarments->[0]->{expiration}, |
214 |
output_pref({ dt => $tomorrow, dateformat => 'iso', dateonly => 1 }), |
215 |
'calculate suspension with lengthunit hours.' |
216 |
); |
217 |
DelDebarment( $debarments->[0]->{borrower_debarment_id} ); |
218 |
|
219 |
# 2 hours before => 0 day of suspension |
220 |
AddIssue( $borrower, $barcode, $hoursafter2); |
221 |
AddReturn( $barcode, $branchcode ); |
222 |
$debarments = GetDebarments({borrowernumber => $borrower->{borrowernumber}}); |
223 |
is_deeply( |
224 |
$debarments, |
225 |
[], |
226 |
'No debarment if in time' |
227 |
); |
228 |
DelDebarment( $debarments->[0]->{borrower_debarment_id} ); |
229 |
|
155 |
$schema->storage->txn_rollback; |
230 |
$schema->storage->txn_rollback; |
156 |
- |
|
|