View | Details | Raw Unified | Return to bug 22456
Collapse All | Expand All

(-)a/Koha/Hold/CancellationRequest.pm (+67 lines)
Line 0 Link Here
1
package Koha::Hold::CancellationRequest;
2
3
# This file is part of Koha.
4
#
5
# Koha is free software; you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3 of the License, or
8
# (at your option) any later version.
9
#
10
# Koha is distributed in the hope that it will be useful, but
11
# WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
# GNU General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License
16
# along with Koha; if not, see <http://www.gnu.org/licenses>.
17
18
use Modern::Perl;
19
20
use Koha::Database;
21
22
use base qw(Koha::Object);
23
24
=head1 NAME
25
26
Koha::Hold::CancellationRequest - Koha hold cancellation request Object class
27
28
=head1 API
29
30
=head2 Class methods
31
32
=head3 store
33
34
    $request->store;
35
36
Overloaded I<store> method that performs some checks.
37
38
=cut
39
40
sub store {
41
    my ($self) = @_;
42
43
    if ( !$self->in_storage ) { # new request
44
        $self->creation_date( \'NOW()' )
45
          unless $self->creation_date;
46
    }
47
48
    return $self->SUPER::store;
49
}
50
51
=head2 Internal methods
52
53
=head3 _type
54
55
=cut
56
57
sub _type {
58
    return 'HoldCancellationRequest';
59
}
60
61
=head1 AUTHORS
62
63
Tomas Cohen Arazi <tomascohen@theke.io>
64
65
=cut
66
67
1;
(-)a/Koha/Hold/CancellationRequests.pm (+57 lines)
Line 0 Link Here
1
package Koha::Hold::CancellationRequests;
2
3
# This file is part of Koha.
4
#
5
# Koha is free software; you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3 of the License, or
8
# (at your option) any later version.
9
#
10
# Koha is distributed in the hope that it will be useful, but
11
# WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
# GNU General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License
16
# along with Koha; if not, see <http://www.gnu.org/licenses>.
17
18
use Modern::Perl;
19
20
21
use Koha::Database;
22
23
use Koha::Hold::CancellationRequest;
24
25
use base qw(Koha::Objects);
26
27
=head1 NAME
28
29
Koha::Hold::CancellationRequests - Koha hold cancellation requests Object set class
30
31
=head1 API
32
33
=head2 Internal methods
34
35
=head3 _type
36
37
=cut
38
39
sub _type {
40
    return 'HoldCancellationRequest';
41
}
42
43
=head3 object_class
44
45
=cut
46
47
sub object_class {
48
    return 'Koha::Hold::CancellationRequest';
49
}
50
51
=head1 AUTHORS
52
53
Tomas Cohen Arazi <tomascohen@theke.io>
54
55
=cut
56
57
1;
(-)a/t/db_dependent/Koha/Hold/CancellationRequest.t (-1 / +67 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
3
# This file is part of Koha.
4
#
5
# Koha is free software; you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3 of the License, or
8
# (at your option) any later version.
9
#
10
# Koha is distributed in the hope that it will be useful, but
11
# WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
# GNU General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License
16
# along with Koha; if not, see <http://www.gnu.org/licenses>.
17
18
use Modern::Perl;
19
20
use Test::More tests => 1;
21
22
use Koha::Hold::CancellationRequests;
23
24
use t::lib::TestBuilder;
25
26
my $schema  = Koha::Database->new->schema;
27
my $builder = t::lib::TestBuilder->new;
28
29
subtest 'store() tests' => sub {
30
31
    plan tests => 2;
32
33
    $schema->storage->txn_begin;
34
35
    my $item = $builder->build_sample_item;
36
    my $hold = $builder->build_object(
37
        {
38
            class => 'Koha::Holds',
39
            value => {
40
                found      => 'W', # waiting hold
41
                itemnumber => $item->id,
42
            }
43
        }
44
    );
45
46
    my $creation_date = '2021-06-25 14:05:35';
47
48
    my $request = Koha::Hold::CancellationRequest->new(
49
        {
50
            creation_date => undef,
51
            hold_id       => $hold->id
52
        }
53
    )->store;
54
55
    isnt( $request->creation_date, undef, 'creation_date is always set' );
56
57
    $request = Koha::Hold::CancellationRequest->new(
58
        {
59
            creation_date => $creation_date,
60
            hold_id       => $hold->id
61
        }
62
    )->store;
63
64
    is( $request->creation_date, $creation_date, 'Passed creation_date set' );
65
66
    $schema->storage->txn_rollback;
67
};

Return to bug 22456