Bug 22435: Fix _set_found_trigger
The _set_found_trigger utilised the 'Writeoff' offset type to distinguish between the application of a writeoff and any other form of offset application. This patch updates the trigger to use the full link through from offset to account credit line to get the credit type being offset. Test plan 1/ Run t/db_dependent/Koha/Items.t and prove it fails before the patch, but passes after applying this patch. 2/ Run t/db_dependent/Koha/Account/Offsets.t and prove it passes both before and after applying this patch. Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
c188ec1567
commit
dec9f754f8
|
|
@ -131,8 +131,8 @@ 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 ) = @_;
|
||||
my $rs = $self->_result->search_related( 'account_offsets_credits', $cond, $attr);
|
||||
return unless $rs;
|
||||
return Koha::Account::Offsets->_new_from_dbic($rs);
|
||||
}
|
||||
|
|
@ -144,8 +144,8 @@ 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 ) = @_;
|
||||
my $rs = $self->_result->search_related( 'account_offsets_debits', $cond, $attr);
|
||||
return unless $rs;
|
||||
return Koha::Account::Offsets->_new_from_dbic($rs);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ sub total {
|
|||
my $offsets = $self->search(
|
||||
{},
|
||||
{
|
||||
select => [ { sum => 'amount' } ],
|
||||
select => [ { sum => 'me.amount' } ],
|
||||
as => ['total_amount'],
|
||||
}
|
||||
);
|
||||
|
|
|
|||
15
Koha/Item.pm
15
Koha/Item.pm
|
|
@ -1004,17 +1004,16 @@ sub _set_found_trigger {
|
|||
# some amount has been cancelled. collect the offsets that are not writeoffs
|
||||
# this works because the only way to subtract from this kind of a debt is
|
||||
# using the UI buttons 'Pay' and 'Write off'
|
||||
my $credits_offsets = Koha::Account::Offsets->search(
|
||||
my $credit_offsets = $lost_charge->debit_offsets(
|
||||
{
|
||||
debit_id => $lost_charge->id,
|
||||
credit_id => { '!=' => undef }, # it is not the debit itself
|
||||
type => { '!=' => 'Writeoff' },
|
||||
amount => { '<' => 0 } # credits are negative on the DB
|
||||
}
|
||||
'credit_id' => { '!=' => undef },
|
||||
'credit.credit_type_code' => { '!=' => 'Writeoff' }
|
||||
},
|
||||
{ join => 'credit' }
|
||||
);
|
||||
|
||||
$total_to_refund = ( $credits_offsets->count > 0 )
|
||||
? $credits_offsets->total * -1 # credits are negative on the DB
|
||||
$total_to_refund = ( $credit_offsets->count > 0 )
|
||||
? $credit_offsets->total * -1 # credits are negative on the DB
|
||||
: 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ use t::lib::TestBuilder;
|
|||
my $schema = Koha::Database->new->schema;
|
||||
my $builder = t::lib::TestBuilder->new;
|
||||
|
||||
subtest 'total_outstanding() tests' => sub {
|
||||
subtest 'total() tests' => sub {
|
||||
|
||||
plan tests => 4;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue