From 9e964f8efeb2a8e3102f23c75de260bc0d8a4cc2 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 30 Sep 2021 09:28:29 +0100 Subject: [PATCH] Bug 29139: Add exceptions to relation accessors We already had exceptions on the many-to-many links, but we didn't have them for the middle table. The underlying dbic relations make it clear which id's are being used for linking. A 'credit' has 'credit_offsets', a 'debit' has 'debit_offsets'. --- Koha/Account/Line.pm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Koha/Account/Line.pm b/Koha/Account/Line.pm index c0964fc006..4605cc2ff5 100644 --- a/Koha/Account/Line.pm +++ b/Koha/Account/Line.pm @@ -145,6 +145,13 @@ Return the credit_offsets linked to this account line if some exist sub credit_offsets { my ( $self, $cond, $attr ) = @_; + + unless ( $self->is_credit ) { + Koha::Exceptions::Account::IsNotCredit->throw( + error => 'Account line ' . $self->id . ' is not a credit' + ); + } + my $rs = $self->_result->search_related( 'account_offsets_credits', $cond, $attr); return unless $rs; return Koha::Account::Offsets->_new_from_dbic($rs); @@ -158,12 +165,18 @@ Return the debit_offsets linked to this account line if some exist sub debit_offsets { my ( $self, $cond, $attr ) = @_; + + unless ( $self->is_debit ) { + Koha::Exceptions::Account::IsNotDebit->throw( + error => 'Account line ' . $self->id . ' is not a debit' + ); + } + my $rs = $self->_result->search_related( 'account_offsets_debits', $cond, $attr); return unless $rs; return Koha::Account::Offsets->_new_from_dbic($rs); } - =head3 credits my $credits = $accountline->credits; -- 2.20.1