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

(-)a/C4/Circulation.pm (-16 / +32 lines)
Lines 1539-1549 sub AddIssue { Link Here
1539
        if ( $actualissue and $actualissue->borrowernumber eq $borrower->{'borrowernumber'}
1539
        if ( $actualissue and $actualissue->borrowernumber eq $borrower->{'borrowernumber'}
1540
                and not $switch_onsite_checkout ) {
1540
                and not $switch_onsite_checkout ) {
1541
            $datedue = AddRenewal(
1541
            $datedue = AddRenewal(
1542
                $borrower->{'borrowernumber'},
1542
                {
1543
                $item_object->itemnumber,
1543
                    borrowernumber => $borrower->{'borrowernumber'},
1544
                $branchcode,
1544
                    itemnumber     => $item_object->itemnumber,
1545
                $datedue,
1545
                    branch         => $branchcode,
1546
                $issuedate,    # here interpreted as the renewal date
1546
                    datedue        => $datedue,
1547
                    lastreneweddate =>
1548
                      $issuedate,    # here interpreted as the renewal date
1549
                }
1547
            );
1550
            );
1548
        }
1551
        }
1549
        else {
1552
        else {
Lines 3052-3060 sub CanBookBeRenewed { Link Here
3052
3055
3053
=head2 AddRenewal
3056
=head2 AddRenewal
3054
3057
3055
  &AddRenewal($borrowernumber, $itemnumber, $branch, [$datedue], [$lastreneweddate], [$seen], [$automatic]);
3058
  $new_date_due = AddRenewal({
3059
      borrowernumber   => $borrowernumber,
3060
      itemnumber       => $itemnumber,
3061
      branch           => $branch,
3062
      [datedue         => $datedue],
3063
      [lastreneweddate => $lastreneweddate],
3064
      [seen            => $seen],
3065
      [automatic       => $automatic],
3066
      [skip_record_index => $skip_record_index]
3067
  });
3056
3068
3057
Renews a loan.
3069
Renews a loan, returns the updated due date upon success.
3058
3070
3059
C<$borrowernumber> is the borrower number of the patron who currently
3071
C<$borrowernumber> is the borrower number of the patron who currently
3060
has the item.
3072
has the item.
Lines 3089-3103 should be skipped for this renewal. Link Here
3089
=cut
3101
=cut
3090
3102
3091
sub AddRenewal {
3103
sub AddRenewal {
3092
    my $borrowernumber  = shift;
3104
    my $params = shift;
3093
    my $itemnumber      = shift or return;
3105
3094
    my $branch          = shift;
3106
    my $borrowernumber  = $params->{borrowernumber};
3095
    my $datedue         = shift;
3107
    my $itemnumber      = $params->{itemnumber};
3096
    my $lastreneweddate = shift || dt_from_string();
3108
    return unless $itemnumber;
3097
    my $skipfinecalc    = shift;
3109
3098
    my $seen            = shift;
3110
    my $branch            = $params->{branch};
3099
    my $automatic       = shift;
3111
    my $datedue           = $params->{datedue};
3100
    my $skip_record_index = shift;
3112
    my $lastreneweddate   = $params->{lastreneweddate} // dt_from_string();
3113
    my $skipfinecalc      = $params->{skipfinecalc};
3114
    my $seen              = $params->{seen};
3115
    my $automatic         = $params->{automatic};
3116
    my $skip_record_index = $params->{skip_record_index};
3101
3117
3102
    # Fallback on a 'seen' renewal
3118
    # Fallback on a 'seen' renewal
3103
    $seen = defined $seen && $seen == 0 ? 0 : 1;
3119
    $seen = defined $seen && $seen == 0 ? 0 : 1;
(-)a/C4/ILSDI/Services.pm (-1 / +9 lines)
Lines 687-693 sub RenewLoan { Link Here
687
687
688
    # Add renewal if possible
688
    # Add renewal if possible
689
    my @renewal = CanBookBeRenewed( $borrowernumber, $itemnumber );
689
    my @renewal = CanBookBeRenewed( $borrowernumber, $itemnumber );
690
    if ( $renewal[0] ) { AddRenewal( $borrowernumber, $itemnumber, undef, undef, undef, undef, 0 ); }
690
    if ( $renewal[0] ) {
691
        AddRenewal(
692
            {
693
                borrowernumber => $borrowernumber,
694
                itemnumber     => $itemnumber,
695
                seen           => 0
696
            }
697
        );
698
    }
691
699
692
    my $issue = $item->checkout;
700
    my $issue = $item->checkout;
693
    return unless $issue; # FIXME should be handled
701
    return unless $issue; # FIXME should be handled
(-)a/Koha/Account/Line.pm (-7 / +6 lines)
Lines 1030-1042 sub renew_item { Link Here
1030
    );
1030
    );
1031
    if ( $can_renew ) {
1031
    if ( $can_renew ) {
1032
        my $due_date = C4::Circulation::AddRenewal(
1032
        my $due_date = C4::Circulation::AddRenewal(
1033
            $borrowernumber,
1033
            {
1034
            $itemnumber,
1034
                borrowernumber => $borrowernumber,
1035
            $self->{branchcode},
1035
                itemnumber     => $itemnumber,
1036
            undef,
1036
                branch         => $self->{branchcode},
1037
            undef,
1037
                seen           => 0
1038
            undef,
1038
            }
1039
            0
1040
        );
1039
        );
1041
        return {
1040
        return {
1042
            itemnumber => $itemnumber,
1041
            itemnumber => $itemnumber,
(-)a/Koha/REST/V1/Checkouts.pm (-6 / +6 lines)
Lines 170-181 sub renew { Link Here
170
        }
170
        }
171
171
172
        AddRenewal(
172
        AddRenewal(
173
            $borrowernumber,
173
            {
174
            $itemnumber,
174
                borrowernumber => $borrowernumber,
175
            $checkout->branchcode,
175
                itemnumber     => $itemnumber,
176
            undef,
176
                branch         => $checkout->branchcode,
177
            undef,
177
                seen           => $seen
178
            $seen
178
            }
179
        );
179
        );
180
        $checkout = Koha::Checkouts->find($checkout_id);
180
        $checkout = Koha::Checkouts->find($checkout_id);
181
181
(-)a/circ/renew.pl (-7 / +6 lines)
Lines 99-111 if ($barcode) { Link Here
99
                      : $cgi->param('renewonholdduedate');
99
                      : $cgi->param('renewonholdduedate');
100
100
101
                    $date_due = AddRenewal(
101
                    $date_due = AddRenewal(
102
                        undef,
102
                        {
103
                        $item->itemnumber(),
103
                            itemnumber => $item->itemnumber(),
104
                        $branchcode,
104
                            branch     => $branchcode,
105
                        $date_due,
105
                            datedue    => $date_due,
106
                        undef,
106
                            seen       => !$unseen
107
                        undef,
107
                        }
108
                        !$unseen
109
                    );
108
                    );
110
                    $template->param( date_due => $date_due );
109
                    $template->param( date_due => $date_due );
111
                }
110
                }
(-)a/misc/cronjobs/automatic_renewals.pl (-1 / +8 lines)
Lines 181-187 while ( my $auto_renew = $auto_renews->next ) { Link Here
181
              $auto_renew->issue_id, $auto_renew->borrowernumber, $auto_renew->itemnumber, $confirm ? 'will' : 'would';
181
              $auto_renew->issue_id, $auto_renew->borrowernumber, $auto_renew->itemnumber, $confirm ? 'will' : 'would';
182
        }
182
        }
183
        if ($confirm){
183
        if ($confirm){
184
            my $date_due = AddRenewal( $auto_renew->borrowernumber, $auto_renew->itemnumber, $auto_renew->branchcode, undef, undef, undef, 0, 1 );
184
            my $date_due = AddRenewal({
185
                borrowernumber => $auto_renew->borrowernumber,
186
                itemnumber => $auto_renew->itemnumber,
187
                branch => $auto_renew->branchcode,
188
                seen => 0,
189
                automatic => 1,
190
                skip_record_index => 1
191
            });
185
            push @item_renewal_ids, $auto_renew->itemnumber;
192
            push @item_renewal_ids, $auto_renew->itemnumber;
186
            $auto_renew->auto_renew_error(undef)->store;
193
            $auto_renew->auto_renew_error(undef)->store;
187
        }
194
        }
(-)a/offline_circ/process_koc.pl (-5 / +5 lines)
Lines 258-268 sub kocIssueItem { Link Here
258
            #warn "Item issued to this member already, renewing.";
258
            #warn "Item issued to this member already, renewing.";
259
259
260
            C4::Circulation::AddRenewal(
260
            C4::Circulation::AddRenewal(
261
                $issue->borrowernumber,        # borrowernumber
261
                {
262
                $item->itemnumber,             # itemnumber
262
                    borrowernumber  => $issue->borrowernumber,
263
                undef,                         # branch
263
                    itemnumber      => $item->itemnumber,
264
                undef,                         # datedue - let AddRenewal calculate it automatically
264
                    lastreneweddate => $circ->{'date'},
265
                $circ->{'date'},               # issuedate
265
                }
266
            ) unless (DEBUG);
266
            ) unless (DEBUG);
267
267
268
            push @output, {
268
            push @output, {
(-)a/opac/opac-renew.pl (-1 / +7 lines)
Lines 59-65 else { Link Here
59
        my ( $status, $error ) =
59
        my ( $status, $error ) =
60
          CanBookBeRenewed( $borrowernumber, $itemnumber );
60
          CanBookBeRenewed( $borrowernumber, $itemnumber );
61
        if ( $status == 1 && $opacrenew == 1 ) {
61
        if ( $status == 1 && $opacrenew == 1 ) {
62
            AddRenewal( $borrowernumber, $itemnumber, undef, undef, undef, undef, 0 );
62
            AddRenewal(
63
                {
64
                    borrowernumber => $borrowernumber,
65
                    itemnumber     => $itemnumber,
66
                    seen           => 0
67
                }
68
            );
63
            push( @renewed, $itemnumber );
69
            push( @renewed, $itemnumber );
64
        }
70
        }
65
        else {
71
        else {
(-)a/opac/sco/sco-main.pl (-1 / +7 lines)
Lines 281-287 if ( $patron && ( $op eq 'renew' ) ) { Link Here
281
    if ( $patron->checkouts->find( { itemnumber => $item->itemnumber } ) ) {
281
    if ( $patron->checkouts->find( { itemnumber => $item->itemnumber } ) ) {
282
        my ($status,$renewerror) = CanBookBeRenewed( $patron->borrowernumber, $item->itemnumber );
282
        my ($status,$renewerror) = CanBookBeRenewed( $patron->borrowernumber, $item->itemnumber );
283
        if ($status) {
283
        if ($status) {
284
            AddRenewal( $patron->borrowernumber, $item->itemnumber, undef, undef, undef, undef, 1 );
284
            AddRenewal(
285
                {
286
                    borrowernumber => $patron->borrowernumber,
287
                    itemnumber     => $item->itemnumber,
288
                    seen           => 1
289
                }
290
            );
285
            push @newissueslist, $barcode;
291
            push @newissueslist, $barcode;
286
            $template->param( renewed => 1 );
292
            $template->param( renewed => 1 );
287
        }
293
        }
(-)a/svc/renew (-1 / +9 lines)
Lines 69-75 if ( $data->{error} && $data->{error} eq 'on_reserve' && C4::Context->preference Link Here
69
69
70
if ( $data->{renew_okay} || ( $seen && $data->{error} eq 'too_unseen') ) {
70
if ( $data->{renew_okay} || ( $seen && $data->{error} eq 'too_unseen') ) {
71
    try{
71
    try{
72
        $date_due = AddRenewal( $borrowernumber, $itemnumber, $branchcode, $date_due, undef, undef, $seen );
72
        $date_due = AddRenewal(
73
            {
74
                borrowernumber => $borrowernumber,
75
                itemnumber     => $itemnumber,
76
                branch         => $branchcode,
77
                datedue        => $date_due,
78
                seen           => $seen
79
            }
80
        );
73
        $data->{date_due} = output_pref( { dt => $date_due, as_due_date => 1 } );
81
        $data->{date_due} = output_pref( { dt => $date_due, as_due_date => 1 } );
74
        $data->{renew_okay} = 1;
82
        $data->{renew_okay} = 1;
75
        $data->{error} = undef;
83
        $data->{error} = undef;
(-)a/t/db_dependent/Circulation.t (-14 / +115 lines)
Lines 783-789 subtest "CanBookBeRenewed tests" => sub { Link Here
783
    my $old_log_size = Koha::ActionLogs->count( \%params_renewal );
783
    my $old_log_size = Koha::ActionLogs->count( \%params_renewal );
784
    my $dt = dt_from_string();
784
    my $dt = dt_from_string();
785
    Time::Fake->offset( $dt->epoch );
785
    Time::Fake->offset( $dt->epoch );
786
    my $datedue1 = AddRenewal( $renewing_borrower->{borrowernumber}, $item_7->itemnumber, $branch );
786
    my $datedue1 = AddRenewal(
787
        {
788
            borrowernumber => $renewing_borrower->{borrowernumber},
789
            itemnumber     => $item_7->itemnumber,
790
            branch         => $branch
791
        }
792
    );
787
    my $new_log_size = Koha::ActionLogs->count( \%params_renewal );
793
    my $new_log_size = Koha::ActionLogs->count( \%params_renewal );
788
    is ($new_log_size, $old_log_size, 'renew log not added because of the syspref RenewalLog');
794
    is ($new_log_size, $old_log_size, 'renew log not added because of the syspref RenewalLog');
789
    isnt (DateTime->compare($datedue1, $dt), 0, "AddRenewal returned a good duedate");
795
    isnt (DateTime->compare($datedue1, $dt), 0, "AddRenewal returned a good duedate");
Lines 792-798 subtest "CanBookBeRenewed tests" => sub { Link Here
792
    t::lib::Mocks::mock_preference('RenewalLog', 1);
798
    t::lib::Mocks::mock_preference('RenewalLog', 1);
793
    $date = output_pref( { dt => dt_from_string(), dateonly => 1, dateformat => 'iso' } );
799
    $date = output_pref( { dt => dt_from_string(), dateonly => 1, dateformat => 'iso' } );
794
    $old_log_size = Koha::ActionLogs->count( \%params_renewal );
800
    $old_log_size = Koha::ActionLogs->count( \%params_renewal );
795
    AddRenewal( $renewing_borrower->{borrowernumber}, $item_7->itemnumber, $branch );
801
    AddRenewal(
802
        {
803
            borrowernumber => $renewing_borrower->{borrowernumber},
804
            itemnumber     => $item_7->itemnumber,
805
            branch         => $branch
806
        }
807
    );
796
    $new_log_size = Koha::ActionLogs->count( \%params_renewal );
808
    $new_log_size = Koha::ActionLogs->count( \%params_renewal );
797
    is ($new_log_size, $old_log_size + 1, 'renew log successfully added');
809
    is ($new_log_size, $old_log_size + 1, 'renew log successfully added');
798
810
Lines 4564-4570 subtest 'AddRenewal and AddIssuingCharge tests' => sub { Link Here
4564
    AddIssue( $patron->unblessed, $item->barcode );
4576
    AddIssue( $patron->unblessed, $item->barcode );
4565
4577
4566
    throws_ok {
4578
    throws_ok {
4567
        AddRenewal( $patron->borrowernumber, $item->itemnumber, $library->id, undef, {break=>"the_renewal"} );
4579
        AddRenewal(
4580
            {
4581
                borrowernumber  => $patron->borrowernumber,
4582
                itemnumber      => $item->itemnumber,
4583
                branch          => $library->id,
4584
                lastreneweddate => { break => "the_renewal" }
4585
            }
4586
        );
4568
    } 'Koha::Exceptions::Checkout::FailedRenewal', 'Exception is thrown when renewal update to issues fails';
4587
    } 'Koha::Exceptions::Checkout::FailedRenewal', 'Exception is thrown when renewal update to issues fails';
4569
4588
4570
    t::lib::Mocks::mock_preference( 'RenewalLog', 0 );
4589
    t::lib::Mocks::mock_preference( 'RenewalLog', 0 );
Lines 4575-4581 subtest 'AddRenewal and AddIssuingCharge tests' => sub { Link Here
4575
        action => "RENEWAL",
4594
        action => "RENEWAL",
4576
    );
4595
    );
4577
    my $old_log_size = Koha::ActionLogs->count( \%params_renewal );;
4596
    my $old_log_size = Koha::ActionLogs->count( \%params_renewal );;
4578
    AddRenewal( $patron->id, $item->id, $library->id );
4597
    AddRenewal(
4598
        {
4599
            borrowernumber => $patron->id,
4600
            itemnumber     => $item->id,
4601
            branch         => $library->id
4602
        }
4603
    );
4579
    my $new_log_size = Koha::ActionLogs->count( \%params_renewal );
4604
    my $new_log_size = Koha::ActionLogs->count( \%params_renewal );
4580
    is( $new_log_size, $old_log_size, 'renew log not added because of the syspref RenewalLog' );
4605
    is( $new_log_size, $old_log_size, 'renew log not added because of the syspref RenewalLog' );
4581
4606
Lines 4611-4617 subtest 'AddRenewal and AddIssuingCharge tests' => sub { Link Here
4611
    my $sth = $dbh->prepare("SELECT COUNT(*) FROM statistics WHERE itemnumber = ? AND branch = ?");
4636
    my $sth = $dbh->prepare("SELECT COUNT(*) FROM statistics WHERE itemnumber = ? AND branch = ?");
4612
    $sth->execute($item->id, $library->id);
4637
    $sth->execute($item->id, $library->id);
4613
    my ($old_stats_size) = $sth->fetchrow_array;
4638
    my ($old_stats_size) = $sth->fetchrow_array;
4614
    AddRenewal( $patron->id, $item->id, $library->id );
4639
    AddRenewal(
4640
        {
4641
            borrowernumber => $patron->id,
4642
            itemnumber     => $item->id,
4643
            branch         => $library->id
4644
        }
4645
    );
4615
    $new_log_size = Koha::ActionLogs->count( \%params_renewal );
4646
    $new_log_size = Koha::ActionLogs->count( \%params_renewal );
4616
    $sth->execute($item->id, $library->id);
4647
    $sth->execute($item->id, $library->id);
4617
    my ($new_stats_size) = $sth->fetchrow_array;
4648
    my ($new_stats_size) = $sth->fetchrow_array;
Lines 4620-4626 subtest 'AddRenewal and AddIssuingCharge tests' => sub { Link Here
4620
4651
4621
    AddReturn( $item->id, $library->id, undef, $date );
4652
    AddReturn( $item->id, $library->id, undef, $date );
4622
    AddIssue( $patron->unblessed, $item->barcode, $now );
4653
    AddIssue( $patron->unblessed, $item->barcode, $now );
4623
    AddRenewal( $patron->id, $item->id, $library->id, undef, undef, 1 );
4654
    AddRenewal(
4655
        {
4656
            borrowernumber => $patron->id,
4657
            itemnumber     => $item->id,
4658
            branch         => $library->id,
4659
            skipfinecalc   => 1
4660
        }
4661
    );
4624
    my $lines_skipped = Koha::Account::Lines->search({
4662
    my $lines_skipped = Koha::Account::Lines->search({
4625
        borrowernumber => $patron->id,
4663
        borrowernumber => $patron->id,
4626
        itemnumber     => $item->id
4664
        itemnumber     => $item->id
Lines 4647-4653 subtest 'AddRenewal() adds to renewals' => sub { Link Here
4647
    is(ref($issue), 'Koha::Checkout', 'Issue added');
4685
    is(ref($issue), 'Koha::Checkout', 'Issue added');
4648
4686
4649
    # Renew item
4687
    # Renew item
4650
    my $duedate = AddRenewal( $patron->id, $item->id, $library->id, undef, undef, undef, undef, 1 );
4688
    my $duedate = AddRenewal(
4689
        {
4690
            borrowernumber => $patron->id,
4691
            itemnumber     => $item->id,
4692
            branch         => $library->id,
4693
            automatic      => 1
4694
        }
4695
    );
4651
4696
4652
    ok( $duedate, "Renewal added" );
4697
    ok( $duedate, "Renewal added" );
4653
4698
Lines 4736-4742 subtest 'Incremented fee tests' => sub { Link Here
4736
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 0"
4781
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 0"
4737
    );
4782
    );
4738
    $accountline->delete();
4783
    $accountline->delete();
4739
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4784
    AddRenewal(
4785
        {
4786
            borrowernumber  => $patron->id,
4787
            itemnumber      => $item->id,
4788
            branch          => $library->id,
4789
            datedue         => $dt_to_renew,
4790
            lastreneweddate => $dt_to
4791
        }
4792
    );
4740
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4793
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4741
    is(
4794
    is(
4742
        $accountline->amount + 0,
4795
        $accountline->amount + 0,
Lines 4757-4763 subtest 'Incremented fee tests' => sub { Link Here
4757
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 1"
4810
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 1"
4758
    );
4811
    );
4759
    $accountline->delete();
4812
    $accountline->delete();
4760
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4813
    AddRenewal(
4814
        {
4815
            borrowernumber  => $patron->id,
4816
            itemnumber      => $item->id,
4817
            branch          => $library->id,
4818
            datedue         => $dt_to_renew,
4819
            lastreneweddate => $dt_to
4820
        }
4821
    );
4761
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4822
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4762
    is(
4823
    is(
4763
        $accountline->amount + 0,
4824
        $accountline->amount + 0,
Lines 4788-4794 subtest 'Incremented fee tests' => sub { Link Here
4788
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 1 and closed $closed_day_name"
4849
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 1 and closed $closed_day_name"
4789
    );
4850
    );
4790
    $accountline->delete();
4851
    $accountline->delete();
4791
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4852
    AddRenewal(
4853
        {
4854
            borrowernumber  => $patron->id,
4855
            itemnumber      => $item->id,
4856
            branch          => $library->id,
4857
            datedue         => $dt_to_renew,
4858
            lastreneweddate => $dt_to
4859
        }
4860
    );
4792
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4861
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4793
    is(
4862
    is(
4794
        $accountline->amount + 0,
4863
        $accountline->amount + 0,
Lines 4806-4812 subtest 'Incremented fee tests' => sub { Link Here
4806
      Koha::Account::Lines->search( { itemnumber => $item->id } );
4875
      Koha::Account::Lines->search( { itemnumber => $item->id } );
4807
    is( $accountlines->count, '2', "Fixed charge and accrued charge recorded distinctly" );
4876
    is( $accountlines->count, '2', "Fixed charge and accrued charge recorded distinctly" );
4808
    $accountlines->delete();
4877
    $accountlines->delete();
4809
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4878
    AddRenewal(
4879
        {
4880
            borrowernumber  => $patron->id,
4881
            itemnumber      => $item->id,
4882
            branch          => $library->id,
4883
            datedue         => $dt_to_renew,
4884
            lastreneweddate => $dt_to
4885
        }
4886
    );
4810
    $accountlines = Koha::Account::Lines->search( { itemnumber => $item->id } );
4887
    $accountlines = Koha::Account::Lines->search( { itemnumber => $item->id } );
4811
    is( $accountlines->count, '2', "Fixed charge and accrued charge recorded distinctly, for renewal" );
4888
    is( $accountlines->count, '2', "Fixed charge and accrued charge recorded distinctly, for renewal" );
4812
    $accountlines->delete();
4889
    $accountlines->delete();
Lines 4841-4847 subtest 'Incremented fee tests' => sub { Link Here
4841
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 0 (168h * 0.25u)"
4918
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 0 (168h * 0.25u)"
4842
    );
4919
    );
4843
    $accountline->delete();
4920
    $accountline->delete();
4844
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4921
    AddRenewal(
4922
        {
4923
            borrowernumber  => $patron->id,
4924
            itemnumber      => $item->id,
4925
            branch          => $library->id,
4926
            datedue         => $dt_to_renew,
4927
            lastreneweddate => $dt_to
4928
        }
4929
    );
4845
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4930
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4846
    is(
4931
    is(
4847
        $accountline->amount + 0,
4932
        $accountline->amount + 0,
Lines 4861-4867 subtest 'Incremented fee tests' => sub { Link Here
4861
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 1 and closed $closed_day_name (168h - 24h * 0.25u)"
4946
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 1 and closed $closed_day_name (168h - 24h * 0.25u)"
4862
    );
4947
    );
4863
    $accountline->delete();
4948
    $accountline->delete();
4864
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4949
    AddRenewal(
4950
        {
4951
            borrowernumber  => $patron->id,
4952
            itemnumber      => $item->id,
4953
            branch          => $library->id,
4954
            datedue         => $dt_to_renew,
4955
            lastreneweddate => $dt_to
4956
        }
4957
    );
4865
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4958
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4866
    is(
4959
    is(
4867
        $accountline->amount + 0,
4960
        $accountline->amount + 0,
Lines 4881-4887 subtest 'Incremented fee tests' => sub { Link Here
4881
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 1 (168h - 0h * 0.25u"
4974
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 1 (168h - 0h * 0.25u"
4882
    );
4975
    );
4883
    $accountline->delete();
4976
    $accountline->delete();
4884
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4977
    AddRenewal(
4978
        {
4979
            borrowernumber  => $patron->id,
4980
            itemnumber      => $item->id,
4981
            branch          => $library->id,
4982
            datedue         => $dt_to_renew,
4983
            lastreneweddate => $dt_to
4984
        }
4985
    );
4885
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4986
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4886
    is(
4987
    is(
4887
        $accountline->amount + 0,
4988
        $accountline->amount + 0,
(-)a/t/db_dependent/Circulation/issue.t (-9 / +52 lines)
Lines 223-229 $se->mock( 'interface', sub {return 'intranet'}); Link Here
223
# Mocking userenv with a different branchcode
223
# Mocking userenv with a different branchcode
224
t::lib::Mocks::mock_userenv({ patron => $patron_2, branchcode => $branchcode_3 });
224
t::lib::Mocks::mock_userenv({ patron => $patron_2, branchcode => $branchcode_3 });
225
225
226
my $datedue3 = AddRenewal( $borrower_id1, $item_id1, $branchcode_1, $datedue1, $daysago10 );
226
my $datedue3 = AddRenewal(
227
    {
228
        borrowernumber  => $borrower_id1,
229
        itemnumber      => $item_id1,
230
        branch          => $branchcode_1,
231
        datedue         => $datedue1,
232
        lastreneweddate => $daysago10
233
    }
234
);
227
235
228
# Restoring the userenv with the original branchcode
236
# Restoring the userenv with the original branchcode
229
t::lib::Mocks::mock_userenv({ patron => $patron_1});
237
t::lib::Mocks::mock_userenv({ patron => $patron_1});
Lines 265-272 subtest 'Show that AddRenewal respects OpacRenewalBranch and interface' => sub { Link Here
265
            my $opac_renew_issue =
273
            my $opac_renew_issue =
266
              C4::Circulation::AddIssue( $patron->unblessed, $item->barcode );
274
              C4::Circulation::AddIssue( $patron->unblessed, $item->barcode );
267
275
268
            AddRenewal( $patron->borrowernumber, $item->itemnumber,
276
            AddRenewal(
269
                "Stavromula", $datedue1, $daysago10 );
277
                {
278
                    borrowernumber  => $patron->borrowernumber,
279
                    itemnumber      => $item->itemnumber,
280
                    branch          => "Stavromula",
281
                    datedue         => $datedue1,
282
                    lastreneweddate => $daysago10
283
                }
284
            );
270
285
271
            my $stat = Koha::Statistics->search(
286
            my $stat = Koha::Statistics->search(
272
                { itemnumber => $item->itemnumber, type => 'renew' } )->next;
287
                { itemnumber => $item->itemnumber, type => 'renew' } )->next;
Lines 283-290 subtest 'Show that AddRenewal respects OpacRenewalBranch and interface' => sub { Link Here
283
            my $opac_renew_issue =
298
            my $opac_renew_issue =
284
              C4::Circulation::AddIssue( $patron->unblessed, $item->barcode );
299
              C4::Circulation::AddIssue( $patron->unblessed, $item->barcode );
285
300
286
            AddRenewal( $patron->borrowernumber, $item->itemnumber,
301
            AddRenewal(
287
                "Stavromula", $datedue1, $daysago10 );
302
                {
303
                    borrowernumber  => $patron->borrowernumber,
304
                    itemnumber      => $item->itemnumber,
305
                    branch          => "Stavromula",
306
                    datedue         => $datedue1,
307
                    lastreneweddate => $daysago10
308
                }
309
            );
288
310
289
            my $stat = Koha::Statistics->search(
311
            my $stat = Koha::Statistics->search(
290
                { itemnumber => $item->itemnumber, type => 'renew' } )->next;
312
                { itemnumber => $item->itemnumber, type => 'renew' } )->next;
Lines 357-364 is_deeply( Link Here
357
    "With issuing rules (renewal allowed) and with a valid parameter, Getrenewcount of item1 returns 3 renews left"
379
    "With issuing rules (renewal allowed) and with a valid parameter, Getrenewcount of item1 returns 3 renews left"
358
);
380
);
359
381
360
AddRenewal( $borrower_id1, $item_id1, $branchcode_1,
382
AddRenewal(
361
    $datedue3, $daysago10 );
383
    {
384
        borrowernumber  => $borrower_id1,
385
        itemnumber      => $item_id1,
386
        branch          => $branchcode_1,
387
        datedue         => $datedue3,
388
        lastreneweddate => $daysago10
389
    }
390
);
362
@renewcount = C4::Circulation::GetRenewCount($borrower_id1, $item_id1);
391
@renewcount = C4::Circulation::GetRenewCount($borrower_id1, $item_id1);
363
is_deeply(
392
is_deeply(
364
    \@renewcount,
393
    \@renewcount,
Lines 534-545 my $unseen_issue = C4::Circulation::AddIssue( $unseen_patron->unblessed, $unseen Link Here
534
563
535
# Does an unseen renewal increment the issue's count
564
# Does an unseen renewal increment the issue's count
536
my ( $unseen_before ) = ( C4::Circulation::GetRenewCount( $unseen_patron->borrowernumber, $unseen_item->itemnumber ) )[3];
565
my ( $unseen_before ) = ( C4::Circulation::GetRenewCount( $unseen_patron->borrowernumber, $unseen_item->itemnumber ) )[3];
537
AddRenewal( $unseen_patron->borrowernumber, $unseen_item->itemnumber, $branchcode_1, undef, undef, undef, 0 );
566
AddRenewal(
567
    {
568
        borrowernumber => $unseen_patron->borrowernumber,
569
        itemnumber     => $unseen_item->itemnumber,
570
        branch         => $branchcode_1,
571
        seen           => 0
572
    }
573
);
538
my ( $unseen_after ) = ( C4::Circulation::GetRenewCount( $unseen_patron->borrowernumber, $unseen_item->itemnumber ) )[3];
574
my ( $unseen_after ) = ( C4::Circulation::GetRenewCount( $unseen_patron->borrowernumber, $unseen_item->itemnumber ) )[3];
539
is( $unseen_after, $unseen_before + 1, 'unseen_renewals increments' );
575
is( $unseen_after, $unseen_before + 1, 'unseen_renewals increments' );
540
576
541
# Does a seen renewal reset the unseen count
577
# Does a seen renewal reset the unseen count
542
AddRenewal( $unseen_patron->borrowernumber, $unseen_item->itemnumber, $branchcode_1, undef, undef, undef, 1 );
578
AddRenewal(
579
    {
580
        borrowernumber => $unseen_patron->borrowernumber,
581
        itemnumber     => $unseen_item->itemnumber,
582
        branch         => $branchcode_1,
583
        seen           => 1
584
    }
585
);
543
my ( $unseen_reset ) = ( C4::Circulation::GetRenewCount( $unseen_patron->borrowernumber, $unseen_item->itemnumber ) )[3];
586
my ( $unseen_reset ) = ( C4::Circulation::GetRenewCount( $unseen_patron->borrowernumber, $unseen_item->itemnumber ) )[3];
544
is( $unseen_reset, 0, 'seen renewal resets the unseen count' );
587
is( $unseen_reset, 0, 'seen renewal resets the unseen count' );
545
588
(-)a/t/db_dependent/Koha/Plugins/Circulation_hooks.t (-1 / +9 lines)
Lines 87-93 subtest 'after_circ_action() hook tests' => sub { Link Here
87
    subtest 'AddRenewal' => sub {
87
    subtest 'AddRenewal' => sub {
88
        plan tests => 1;
88
        plan tests => 1;
89
89
90
        warning_like { AddRenewal( $patron->borrowernumber, $item_1->id, $patron->branchcode ); }
90
        warning_like {
91
            AddRenewal(
92
                {
93
                    borrowernumber => $patron->borrowernumber,
94
                    itemnumber     => $item_1->id,
95
                    branch         => $patron->branchcode
96
                }
97
            );
98
        }
91
                qr/after_circ_action called with action: renewal, ref: Koha::Checkout/,
99
                qr/after_circ_action called with action: renewal, ref: Koha::Checkout/,
92
                'AddRenewal calls the after_circ_action hook';
100
                'AddRenewal calls the after_circ_action hook';
93
    };
101
    };
(-)a/t/db_dependent/Koha/SearchEngine/Indexer.t (-3 / +17 lines)
Lines 284-293 subtest 'Test AddRenewal indexer call' => sub { Link Here
284
284
285
285
286
        warnings_are{
286
        warnings_are{
287
            AddRenewal($patron->borrowernumber, $item->itemnumber, $item->homebranch, undef, undef, undef, 0);
287
            AddRenewal(
288
                {
289
                    borrowernumber => $patron->borrowernumber,
290
                    itemnumber     => $item->itemnumber,
291
                    branch         => $item->homebranch,
292
                    seen           => 0
293
                }
294
            );
288
        } [$engine,"C4::Circulation"], "index_records is called for $engine when adding a renewal (AddRenewal())";
295
        } [$engine,"C4::Circulation"], "index_records is called for $engine when adding a renewal (AddRenewal())";
289
        warnings_are{
296
        warnings_are{
290
            AddRenewal($patron->borrowernumber, $item->itemnumber, undef, undef, undef, undef, 0, 1, 1);
297
            AddRenewal(
298
                {
299
                    borrowernumber    => $patron->borrowernumber,
300
                    itemnumber        => $item->itemnumber,
301
                    seen              => 0,
302
                    automatic         => 1,
303
                    skip_record_index => 1
304
                }
305
            );
291
        } undef, "index_records is not called for $engine when adding a renewal (AddRenewal()) with skip_record_index";
306
        } undef, "index_records is not called for $engine when adding a renewal (AddRenewal()) with skip_record_index";
292
307
293
    }
308
    }
294
- 

Return to bug 33444