Lines 272-278
subtest 'apply() tests' => sub {
Link Here
|
272 |
|
272 |
|
273 |
subtest 'adjust() tests' => sub { |
273 |
subtest 'adjust() tests' => sub { |
274 |
|
274 |
|
275 |
plan tests => 19; |
275 |
plan tests => 33; |
276 |
|
276 |
|
277 |
$schema->storage->txn_begin; |
277 |
$schema->storage->txn_begin; |
278 |
|
278 |
|
Lines 352-357
subtest 'adjust() tests' => sub {
Link Here
|
352 |
|
352 |
|
353 |
is( $schema->resultset('ActionLog')->count(), $action_logs + 1, 'Log was added' ); |
353 |
is( $schema->resultset('ActionLog')->count(), $action_logs + 1, 'Log was added' ); |
354 |
|
354 |
|
|
|
355 |
# Decrement the partially paid fine, less than what was paid |
356 |
$debit_2->adjust( { amount => 50, type => 'fine_increment' } )->discard_changes; |
357 |
|
358 |
is( $debit_2->amount * 1, 50, 'Fine amount was updated in full' ); |
359 |
is( $debit_2->amountoutstanding * 1, 10, 'Fine amountoutstanding was updated by difference' ); |
360 |
is( $debit_2->lastincrement * 1, -110, 'lastincrement is the to the right value' ); |
361 |
|
362 |
$offsets = Koha::Account::Offsets->search( { debit_id => $debit_2->id } ); |
363 |
is( $offsets->count, 4, 'An offset is generated for the decrement' ); |
364 |
$THIS_offset = $offsets->last; |
365 |
is( $THIS_offset->amount * 1, -110, 'Amount was calculated correctly (decrement by 110)' ); |
366 |
is( $THIS_offset->type, 'Fine Update', 'Adjust type stored correctly' ); |
367 |
|
368 |
# Decrement the partially paid fine, more than what was paid |
369 |
$debit_2->adjust( { amount => 30, type => 'fine_increment' } )->discard_changes; |
370 |
is( $debit_2->amount * 1, 30, 'Fine amount was updated in full' ); |
371 |
is( $debit_2->amountoutstanding * 1, 0, 'Fine amountoutstanding was zeroed (payment was 40)' ); |
372 |
is( $debit_2->lastincrement * 1, -20, 'lastincrement is the to the right value' ); |
373 |
|
374 |
$offsets = Koha::Account::Offsets->search( { debit_id => $debit_2->id } ); |
375 |
is( $offsets->count, 5, 'An offset is generated for the decrement' ); |
376 |
$THIS_offset = $offsets->last; |
377 |
is( $THIS_offset->amount * 1, -20, 'Amount was calculated correctly (decrement by 20)' ); |
378 |
is( $THIS_offset->type, 'Fine Update', 'Adjust type stored correctly' ); |
379 |
|
380 |
my $overpayment_refund = $account->lines->last; |
381 |
is( $overpayment_refund->amount * 1, -10, 'A new credit has been added' ); |
382 |
is( $overpayment_refund->description, 'Overpayment refund', 'Credit generated with the expected description' ); |
383 |
|
355 |
$schema->storage->txn_rollback; |
384 |
$schema->storage->txn_rollback; |
356 |
}; |
385 |
}; |
357 |
|
386 |
|
358 |
- |
|
|