From 19a1474b561026cc16155944812b9c34d2271ae4 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 30 Sep 2021 09:28:29 +0100 Subject: [PATCH] [21.05.x] 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'. Signed-off-by: Tomas Cohen Arazi Signed-off-by: Andrew Fuerste-Henry Signed-off-by: Martin Renvoize --- Koha/Account/Line.pm | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/Koha/Account/Line.pm b/Koha/Account/Line.pm index bd233e3b36..770156fd27 100644 --- a/Koha/Account/Line.pm +++ b/Koha/Account/Line.pm @@ -132,8 +132,15 @@ Return the credit_offsets linked to this account line if some exist =cut sub credit_offsets { - my ( $self ) = @_; - my $rs = $self->_result->account_offsets_credits; + 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); } @@ -145,13 +152,19 @@ Return the debit_offsets linked to this account line if some exist =cut sub debit_offsets { - my ( $self ) = @_; - my $rs = $self->_result->account_offsets_debits; + 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.32.0