use Modern::Perl;
-use Test::More tests => 2;
+use Test::More tests => 6;
use t::lib::TestBuilder;
use t::lib::Mocks;
-use C4::Accounts qw( manualinvoice );
use C4::Circulation qw( CanBookBeIssued );
+use Koha::Account;
+use Koha::Account::Lines;
+use Koha::Account::Offsets;
+use Koha::Patron::Relationship;
my $schema = Koha::Database->new->schema;
$schema->storage->txn_begin;
{
source => 'Item',
value => {
+ biblionumber => $builder->build( { source => 'Biblioitem' } )->{biblionumber},
notforloan => 0,
withdrawn => 0
}
}
);
-my $patron = $builder->build(
+my $patron_category = $builder->build({ source => 'Category', value => { categorycode => 'NOT_X', category_type => 'P', enrolmentfee => 0 } });
+my $patron = $builder->build_object(
{
- source => 'Borrower',
+ class => 'Koha::Patrons',
+ value => {
+ categorycode => $patron_category->{categorycode},
+ }
}
);
-my $guarantee = $builder->build(
+
+my $guarantee = $builder->build_object(
{
- source => 'Borrower',
- value => {
- guarantorid => $patron->{borrowernumber},
+ class => 'Koha::Patrons',
+ value => {
+ patron_category => $patron_category->{categorycode},
+ }
+ }
+);
+
+my $r = $builder->build_object(
+ {
+ class => 'Koha::Patron::Relationships',
+ value => {
+ guarantor_id => $patron->id,
+ guarantee_id => $guarantee->id,
+ relationship => 'parent',
}
}
);
my ( $issuingimpossible, $needsconfirmation ) = CanBookBeIssued( $patron, $item->{barcode} );
is( $issuingimpossible->{DEBT_GUARANTEES}, undef, "Patron can check out item" );
-manualinvoice( $guarantee->{borrowernumber}, undef, undef, 'L', 10.00 );
+my $account = Koha::Account->new( { patron_id => $guarantee->id } );
+$account->add_debit({ amount => 10.00, type => 'lost_item', interface => 'test' });
( $issuingimpossible, $needsconfirmation ) = CanBookBeIssued( $patron, $item->{barcode} );
is( $issuingimpossible->{DEBT_GUARANTEES} + 0, '10.00' + 0, "Patron cannot check out item due to debt for guarantee" );
+my $accountline = Koha::Account::Lines->search({ borrowernumber => $guarantee->id })->next();
+is( $accountline->amountoutstanding, "10.000000", "Found 10.00 amount outstanding" );
+is( $accountline->debit_type_code, "LOST", "Debit type is LOST" );
+
+my $offset = Koha::Account::Offsets->search({ debit_id => $accountline->id })->next();
+is( $offset->type, 'Lost Item', 'Got correct offset type' );
+is( $offset->amount, '10.000000', 'Got amount of $10.00' );
+
$schema->storage->txn_rollback;