Lines 34-40
BEGIN {
Link Here
|
34 |
use_ok('Koha::Charges::Fees'); |
34 |
use_ok('Koha::Charges::Fees'); |
35 |
} |
35 |
} |
36 |
|
36 |
|
|
|
37 |
my $schema = Koha::Database->new->schema; |
37 |
my $builder = t::lib::TestBuilder->new(); |
38 |
my $builder = t::lib::TestBuilder->new(); |
|
|
39 |
$schema->storage->txn_begin; |
38 |
|
40 |
|
39 |
my $patron_category = $builder->build_object( |
41 |
my $patron_category = $builder->build_object( |
40 |
{ |
42 |
{ |
Lines 59-68
my $itemtype = $builder->build_object(
Link Here
|
59 |
{ |
61 |
{ |
60 |
class => 'Koha::ItemTypes', |
62 |
class => 'Koha::ItemTypes', |
61 |
value => { |
63 |
value => { |
62 |
rentalcharge_daily => '0.00', |
64 |
rentalcharge_daily => '0.00', |
63 |
rentalcharge => '0.00', |
65 |
rentalcharge_hourly => '0.00', |
64 |
processfee => '0.00', |
66 |
rentalcharge => '0.00', |
65 |
defaultreplacecost => '0.00', |
67 |
processfee => '0.00', |
|
|
68 |
defaultreplacecost => '0.00', |
66 |
}, |
69 |
}, |
67 |
} |
70 |
} |
68 |
); |
71 |
); |
Lines 304-310
subtest 'from_date accessor' => sub {
Link Here
|
304 |
}; |
307 |
}; |
305 |
|
308 |
|
306 |
subtest 'accumulate_rentalcharge tests' => sub { |
309 |
subtest 'accumulate_rentalcharge tests' => sub { |
307 |
plan tests => 4; |
310 |
plan tests => 5; |
308 |
|
311 |
|
309 |
my $fees = Koha::Charges::Fees->new( |
312 |
my $fees = Koha::Charges::Fees->new( |
310 |
{ |
313 |
{ |
Lines 316-321
subtest 'accumulate_rentalcharge tests' => sub {
Link Here
|
316 |
} |
319 |
} |
317 |
); |
320 |
); |
318 |
|
321 |
|
|
|
322 |
# Daily tests |
319 |
$itemtype->rentalcharge_daily(1.00); |
323 |
$itemtype->rentalcharge_daily(1.00); |
320 |
$itemtype->store(); |
324 |
$itemtype->store(); |
321 |
is( $itemtype->rentalcharge_daily, |
325 |
is( $itemtype->rentalcharge_daily, |
Lines 343-348
subtest 'accumulate_rentalcharge tests' => sub {
Link Here
|
343 |
is( $charge, 5.00, |
347 |
is( $charge, 5.00, |
344 |
'Daily rental charge calculated correctly with finesCalendar = noFinesWhenClosed and closed Wednesdays' |
348 |
'Daily rental charge calculated correctly with finesCalendar = noFinesWhenClosed and closed Wednesdays' |
345 |
); |
349 |
); |
|
|
350 |
|
351 |
# Hourly tests |
352 |
my $issuingrule = Koha::IssuingRules->get_effective_issuing_rule( |
353 |
{ |
354 |
categorycode => $patron->categorycode, |
355 |
itemtype => $itemtype->id, |
356 |
branchcode => $library->id |
357 |
} |
358 |
); |
359 |
$issuingrule->lengthunit('hours'); |
360 |
$issuingrule->store(); |
361 |
$itemtype->rentalcharge_hourly("2.50"); |
362 |
$itemtype->store(); |
363 |
$dt_from = dt_from_string(); |
364 |
$dt_to = dt_from_string()->add( hours => 4 ); |
365 |
$fees = Koha::Charges::Fees->new( |
366 |
{ |
367 |
patron => $patron, |
368 |
library => $library, |
369 |
item => $item, |
370 |
to_date => $dt_to, |
371 |
from_date => $dt_from, |
372 |
} |
373 |
); |
374 |
|
375 |
$charge = $fees->accumulate_rentalcharge(); |
376 |
is( $charge, 10.00, 'Hourly rental charge calculated correctly' ); |
346 |
}; |
377 |
}; |
347 |
|
378 |
|
|
|
379 |
$schema->storage->txn_rollback; |
348 |
Time::Fake->reset; |
380 |
Time::Fake->reset; |
349 |
- |
|
|