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

(-)a/C4/Circulation.pm (-16 / +32 lines)
Lines 1540-1550 sub AddIssue { Link Here
1540
        if ( $actualissue and $actualissue->borrowernumber eq $borrower->{'borrowernumber'}
1540
        if ( $actualissue and $actualissue->borrowernumber eq $borrower->{'borrowernumber'}
1541
                and not $switch_onsite_checkout ) {
1541
                and not $switch_onsite_checkout ) {
1542
            $datedue = AddRenewal(
1542
            $datedue = AddRenewal(
1543
                $borrower->{'borrowernumber'},
1543
                {
1544
                $item_object->itemnumber,
1544
                    borrowernumber => $borrower->{'borrowernumber'},
1545
                $branchcode,
1545
                    itemnumber     => $item_object->itemnumber,
1546
                $datedue,
1546
                    branch         => $branchcode,
1547
                $issuedate,    # here interpreted as the renewal date
1547
                    datedue        => $datedue,
1548
                    lastreneweddate =>
1549
                      $issuedate,    # here interpreted as the renewal date
1550
                }
1548
            );
1551
            );
1549
            $issue = $item_object->checkout;
1552
            $issue = $item_object->checkout;
1550
        }
1553
        }
Lines 3094-3102 sub CanBookBeRenewed { Link Here
3094
3097
3095
=head2 AddRenewal
3098
=head2 AddRenewal
3096
3099
3097
  &AddRenewal($borrowernumber, $itemnumber, $branch, [$datedue], [$lastreneweddate], [$seen], [$automatic]);
3100
  $new_date_due = AddRenewal({
3101
      borrowernumber   => $borrowernumber,
3102
      itemnumber       => $itemnumber,
3103
      branch           => $branch,
3104
      [datedue         => $datedue],
3105
      [lastreneweddate => $lastreneweddate],
3106
      [seen            => $seen],
3107
      [automatic       => $automatic],
3108
      [skip_record_index => $skip_record_index]
3109
  });
3098
3110
3099
Renews a loan.
3111
Renews a loan, returns the updated due date upon success.
3100
3112
3101
C<$borrowernumber> is the borrower number of the patron who currently
3113
C<$borrowernumber> is the borrower number of the patron who currently
3102
has the item.
3114
has the item.
Lines 3131-3145 should be skipped for this renewal. Link Here
3131
=cut
3143
=cut
3132
3144
3133
sub AddRenewal {
3145
sub AddRenewal {
3134
    my $borrowernumber  = shift;
3146
    my $params = shift;
3135
    my $itemnumber      = shift or return;
3147
3136
    my $branch          = shift;
3148
    my $borrowernumber  = $params->{borrowernumber};
3137
    my $datedue         = shift;
3149
    my $itemnumber      = $params->{itemnumber};
3138
    my $lastreneweddate = shift || dt_from_string();
3150
    return unless $itemnumber;
3139
    my $skipfinecalc    = shift;
3151
3140
    my $seen            = shift;
3152
    my $branch            = $params->{branch};
3141
    my $automatic       = shift;
3153
    my $datedue           = $params->{datedue};
3142
    my $skip_record_index = shift;
3154
    my $lastreneweddate   = $params->{lastreneweddate} // dt_from_string();
3155
    my $skipfinecalc      = $params->{skipfinecalc};
3156
    my $seen              = $params->{seen};
3157
    my $automatic         = $params->{automatic};
3158
    my $skip_record_index = $params->{skip_record_index};
3143
3159
3144
    # Fallback on a 'seen' renewal
3160
    # Fallback on a 'seen' renewal
3145
    $seen = defined $seen && $seen == 0 ? 0 : 1;
3161
    $seen = defined $seen && $seen == 0 ? 0 : 1;
(-)a/C4/ILSDI/Services.pm (-2 / +9 lines)
Lines 691-698 sub RenewLoan { Link Here
691
691
692
    # Add renewal if possible
692
    # Add renewal if possible
693
    my @renewal = CanBookBeRenewed( $patron, $issue );
693
    my @renewal = CanBookBeRenewed( $patron, $issue );
694
    if ( $renewal[0] ) { AddRenewal( $borrowernumber, $itemnumber, undef, undef, undef, undef, 0 ); }
694
    if ( $renewal[0] ) {
695
695
        AddRenewal(
696
            {
697
                borrowernumber => $borrowernumber,
698
                itemnumber     => $itemnumber,
699
                seen           => 0
700
            }
701
        );
702
    }
696
703
697
    # Hashref building
704
    # Hashref building
698
    my $out;
705
    my $out;
(-)a/Koha/Account/Line.pm (-7 / +6 lines)
Lines 1027-1039 sub renew_item { Link Here
1027
    if ( $can_renew ) {
1027
    if ( $can_renew ) {
1028
        my $borrowernumber = $self->patron->borrowernumber;
1028
        my $borrowernumber = $self->patron->borrowernumber;
1029
        my $due_date = C4::Circulation::AddRenewal(
1029
        my $due_date = C4::Circulation::AddRenewal(
1030
            $borrowernumber,
1030
            {
1031
            $itemnumber,
1031
                borrowernumber => $borrowernumber,
1032
            $self->{branchcode},
1032
                itemnumber     => $itemnumber,
1033
            undef,
1033
                branch         => $self->{branchcode},
1034
            undef,
1034
                seen           => 0
1035
            undef,
1035
            }
1036
            0
1037
        );
1036
        );
1038
        return {
1037
        return {
1039
            itemnumber => $itemnumber,
1038
            itemnumber => $itemnumber,
(-)a/Koha/REST/V1/Checkouts.pm (-6 / +6 lines)
Lines 350-361 sub renew { Link Here
350
        }
350
        }
351
351
352
        AddRenewal(
352
        AddRenewal(
353
            $checkout->borrowernumber,
353
            {
354
            $checkout->itemnumber,
354
                borrowernumber => $checkout->borrowernumber,
355
            $checkout->branchcode,
355
                itemnumber     => $checkout->itemnumber,
356
            undef,
356
                branch         => $checkout->branchcode,
357
            undef,
357
                seen           => $seen
358
            $seen
358
            }
359
        );
359
        );
360
        $checkout = Koha::Checkouts->find($checkout_id);
360
        $checkout = Koha::Checkouts->find($checkout_id);
361
361
(-)a/circ/renew.pl (-7 / +6 lines)
Lines 98-110 if ($barcode) { Link Here
98
                      : $cgi->param('renewonholdduedate');
98
                      : $cgi->param('renewonholdduedate');
99
99
100
                    $date_due = AddRenewal(
100
                    $date_due = AddRenewal(
101
                        undef,
101
                        {
102
                        $item->itemnumber(),
102
                            itemnumber => $item->itemnumber(),
103
                        $branchcode,
103
                            branch     => $branchcode,
104
                        $date_due,
104
                            datedue    => $date_due,
105
                        undef,
105
                            seen       => !$unseen
106
                        undef,
106
                        }
107
                        !$unseen
108
                    );
107
                    );
109
                    $template->param( date_due => $date_due );
108
                    $template->param( date_due => $date_due );
110
                }
109
                }
(-)a/misc/cronjobs/automatic_renewals.pl (-1 / +7 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
            });
185
            push @item_renewal_ids, $auto_renew->itemnumber;
191
            push @item_renewal_ids, $auto_renew->itemnumber;
186
            $auto_renew->auto_renew_error(undef)->store;
192
            $auto_renew->auto_renew_error(undef)->store;
187
        }
193
        }
(-)a/offline_circ/process_koc.pl (-5 / +5 lines)
Lines 202-212 sub kocIssueItem { Link Here
202
            #warn "Item issued to this member already, renewing.";
202
            #warn "Item issued to this member already, renewing.";
203
203
204
            C4::Circulation::AddRenewal(
204
            C4::Circulation::AddRenewal(
205
                $issue->borrowernumber,        # borrowernumber
205
                {
206
                $item->itemnumber,             # itemnumber
206
                    borrowernumber  => $issue->borrowernumber,
207
                undef,                         # branch
207
                    itemnumber      => $item->itemnumber,
208
                undef,                         # datedue - let AddRenewal calculate it automatically
208
                    lastreneweddate => $circ->{'date'},
209
                $circ->{'date'},               # issuedate
209
                }
210
            ) unless (DEBUG);
210
            ) unless (DEBUG);
211
211
212
            push @output, {
212
            push @output, {
(-)a/opac/opac-renew.pl (-1 / +7 lines)
Lines 66-72 else { Link Here
66
        my ( $status, $error ) =
66
        my ( $status, $error ) =
67
          CanBookBeRenewed( $patron, $issue );
67
          CanBookBeRenewed( $patron, $issue );
68
        if ( $status == 1 && $opacrenew == 1 ) {
68
        if ( $status == 1 && $opacrenew == 1 ) {
69
            AddRenewal( $borrowernumber, $issue->itemnumber, undef, undef, undef, undef, 0 );
69
            AddRenewal(
70
                {
71
                    borrowernumber => $borrowernumber,
72
                    itemnumber     => $issue->itemnumber,
73
                    seen           => 0
74
                }
75
            );
70
            push( @renewed, $issue->itemnumber );
76
            push( @renewed, $issue->itemnumber );
71
        }
77
        }
72
        else {
78
        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, $item->checkout );
282
        my ($status,$renewerror) = CanBookBeRenewed( $patron, $item->checkout );
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 72-78 if ( $data->{error} && $data->{error} eq 'on_reserve' && C4::Context->preference Link Here
72
72
73
if ( $data->{renew_okay} || ( $seen && $data->{error} eq 'too_unseen') ) {
73
if ( $data->{renew_okay} || ( $seen && $data->{error} eq 'too_unseen') ) {
74
    try{
74
    try{
75
        $date_due = AddRenewal( $borrowernumber, $itemnumber, $branchcode, $date_due, undef, undef, $seen );
75
        $date_due = AddRenewal(
76
            {
77
                borrowernumber => $borrowernumber,
78
                itemnumber     => $itemnumber,
79
                branch         => $branchcode,
80
                datedue        => $date_due,
81
                seen           => $seen
82
            }
83
        );
76
        $data->{date_due} = output_pref( { dt => $date_due, as_due_date => 1 } );
84
        $data->{date_due} = output_pref( { dt => $date_due, as_due_date => 1 } );
77
        $data->{renew_okay} = 1;
85
        $data->{renew_okay} = 1;
78
        $data->{error} = undef;
86
        $data->{error} = undef;
(-)a/t/db_dependent/Circulation.t (-14 / +115 lines)
Lines 779-785 subtest "CanBookBeRenewed tests" => sub { Link Here
779
    my $old_log_size = Koha::ActionLogs->count( \%params_renewal );
779
    my $old_log_size = Koha::ActionLogs->count( \%params_renewal );
780
    my $dt = dt_from_string();
780
    my $dt = dt_from_string();
781
    Time::Fake->offset( $dt->epoch );
781
    Time::Fake->offset( $dt->epoch );
782
    my $datedue1 = AddRenewal( $renewing_borrower_obj->borrowernumber, $item_7->itemnumber, $branch );
782
    my $datedue1 = AddRenewal(
783
        {
784
            borrowernumber => $renewing_borrower_obj->borrowernumber,
785
            itemnumber     => $item_7->itemnumber,
786
            branch         => $branch
787
        }
788
    );
783
    my $new_log_size = Koha::ActionLogs->count( \%params_renewal );
789
    my $new_log_size = Koha::ActionLogs->count( \%params_renewal );
784
    is ($new_log_size, $old_log_size, 'renew log not added because of the syspref RenewalLog');
790
    is ($new_log_size, $old_log_size, 'renew log not added because of the syspref RenewalLog');
785
    isnt (DateTime->compare($datedue1, $dt), 0, "AddRenewal returned a good duedate");
791
    isnt (DateTime->compare($datedue1, $dt), 0, "AddRenewal returned a good duedate");
Lines 788-794 subtest "CanBookBeRenewed tests" => sub { Link Here
788
    t::lib::Mocks::mock_preference('RenewalLog', 1);
794
    t::lib::Mocks::mock_preference('RenewalLog', 1);
789
    $date = output_pref( { dt => dt_from_string(), dateonly => 1, dateformat => 'iso' } );
795
    $date = output_pref( { dt => dt_from_string(), dateonly => 1, dateformat => 'iso' } );
790
    $old_log_size = Koha::ActionLogs->count( \%params_renewal );
796
    $old_log_size = Koha::ActionLogs->count( \%params_renewal );
791
    AddRenewal( $renewing_borrower_obj->borrowernumber, $item_7->itemnumber, $branch );
797
    AddRenewal(
798
        {
799
            borrowernumber => $renewing_borrower_obj->borrowernumber,
800
            itemnumber     => $item_7->itemnumber,
801
            branch         => $branch
802
        }
803
    );
792
    $new_log_size = Koha::ActionLogs->count( \%params_renewal );
804
    $new_log_size = Koha::ActionLogs->count( \%params_renewal );
793
    is ($new_log_size, $old_log_size + 1, 'renew log successfully added');
805
    is ($new_log_size, $old_log_size + 1, 'renew log successfully added');
794
806
Lines 4557-4563 subtest 'AddRenewal and AddIssuingCharge tests' => sub { Link Here
4557
    AddIssue( $patron->unblessed, $item->barcode );
4569
    AddIssue( $patron->unblessed, $item->barcode );
4558
4570
4559
    throws_ok {
4571
    throws_ok {
4560
        AddRenewal( $patron->borrowernumber, $item->itemnumber, $library->id, undef, {break=>"the_renewal"} );
4572
        AddRenewal(
4573
            {
4574
                borrowernumber  => $patron->borrowernumber,
4575
                itemnumber      => $item->itemnumber,
4576
                branch          => $library->id,
4577
                lastreneweddate => { break => "the_renewal" }
4578
            }
4579
        );
4561
    } 'Koha::Exceptions::Checkout::FailedRenewal', 'Exception is thrown when renewal update to issues fails';
4580
    } 'Koha::Exceptions::Checkout::FailedRenewal', 'Exception is thrown when renewal update to issues fails';
4562
4581
4563
    t::lib::Mocks::mock_preference( 'RenewalLog', 0 );
4582
    t::lib::Mocks::mock_preference( 'RenewalLog', 0 );
Lines 4568-4574 subtest 'AddRenewal and AddIssuingCharge tests' => sub { Link Here
4568
        action => "RENEWAL",
4587
        action => "RENEWAL",
4569
    );
4588
    );
4570
    my $old_log_size = Koha::ActionLogs->count( \%params_renewal );;
4589
    my $old_log_size = Koha::ActionLogs->count( \%params_renewal );;
4571
    AddRenewal( $patron->id, $item->id, $library->id );
4590
    AddRenewal(
4591
        {
4592
            borrowernumber => $patron->id,
4593
            itemnumber     => $item->id,
4594
            branch         => $library->id
4595
        }
4596
    );
4572
    my $new_log_size = Koha::ActionLogs->count( \%params_renewal );
4597
    my $new_log_size = Koha::ActionLogs->count( \%params_renewal );
4573
    is( $new_log_size, $old_log_size, 'renew log not added because of the syspref RenewalLog' );
4598
    is( $new_log_size, $old_log_size, 'renew log not added because of the syspref RenewalLog' );
4574
4599
Lines 4604-4610 subtest 'AddRenewal and AddIssuingCharge tests' => sub { Link Here
4604
    my $sth = $dbh->prepare("SELECT COUNT(*) FROM statistics WHERE itemnumber = ? AND branch = ?");
4629
    my $sth = $dbh->prepare("SELECT COUNT(*) FROM statistics WHERE itemnumber = ? AND branch = ?");
4605
    $sth->execute($item->id, $library->id);
4630
    $sth->execute($item->id, $library->id);
4606
    my ($old_stats_size) = $sth->fetchrow_array;
4631
    my ($old_stats_size) = $sth->fetchrow_array;
4607
    AddRenewal( $patron->id, $item->id, $library->id );
4632
    AddRenewal(
4633
        {
4634
            borrowernumber => $patron->id,
4635
            itemnumber     => $item->id,
4636
            branch         => $library->id
4637
        }
4638
    );
4608
    $new_log_size = Koha::ActionLogs->count( \%params_renewal );
4639
    $new_log_size = Koha::ActionLogs->count( \%params_renewal );
4609
    $sth->execute($item->id, $library->id);
4640
    $sth->execute($item->id, $library->id);
4610
    my ($new_stats_size) = $sth->fetchrow_array;
4641
    my ($new_stats_size) = $sth->fetchrow_array;
Lines 4613-4619 subtest 'AddRenewal and AddIssuingCharge tests' => sub { Link Here
4613
4644
4614
    AddReturn( $item->id, $library->id, undef, $date );
4645
    AddReturn( $item->id, $library->id, undef, $date );
4615
    AddIssue( $patron->unblessed, $item->barcode, $now );
4646
    AddIssue( $patron->unblessed, $item->barcode, $now );
4616
    AddRenewal( $patron->id, $item->id, $library->id, undef, undef, 1 );
4647
    AddRenewal(
4648
        {
4649
            borrowernumber => $patron->id,
4650
            itemnumber     => $item->id,
4651
            branch         => $library->id,
4652
            skipfinecalc   => 1
4653
        }
4654
    );
4617
    my $lines_skipped = Koha::Account::Lines->search({
4655
    my $lines_skipped = Koha::Account::Lines->search({
4618
        borrowernumber => $patron->id,
4656
        borrowernumber => $patron->id,
4619
        itemnumber     => $item->id
4657
        itemnumber     => $item->id
Lines 4640-4646 subtest 'AddRenewal() adds to renewals' => sub { Link Here
4640
    is(ref($issue), 'Koha::Checkout', 'Issue added');
4678
    is(ref($issue), 'Koha::Checkout', 'Issue added');
4641
4679
4642
    # Renew item
4680
    # Renew item
4643
    my $duedate = AddRenewal( $patron->id, $item->id, $library->id, undef, undef, undef, undef, 1 );
4681
    my $duedate = AddRenewal(
4682
        {
4683
            borrowernumber => $patron->id,
4684
            itemnumber     => $item->id,
4685
            branch         => $library->id,
4686
            automatic      => 1
4687
        }
4688
    );
4644
4689
4645
    ok( $duedate, "Renewal added" );
4690
    ok( $duedate, "Renewal added" );
4646
4691
Lines 4729-4735 subtest 'Incremented fee tests' => sub { Link Here
4729
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 0"
4774
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 0"
4730
    );
4775
    );
4731
    $accountline->delete();
4776
    $accountline->delete();
4732
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4777
    AddRenewal(
4778
        {
4779
            borrowernumber  => $patron->id,
4780
            itemnumber      => $item->id,
4781
            branch          => $library->id,
4782
            datedue         => $dt_to_renew,
4783
            lastreneweddate => $dt_to
4784
        }
4785
    );
4733
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4786
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4734
    is(
4787
    is(
4735
        $accountline->amount + 0,
4788
        $accountline->amount + 0,
Lines 4750-4756 subtest 'Incremented fee tests' => sub { Link Here
4750
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 1"
4803
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 1"
4751
    );
4804
    );
4752
    $accountline->delete();
4805
    $accountline->delete();
4753
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4806
    AddRenewal(
4807
        {
4808
            borrowernumber  => $patron->id,
4809
            itemnumber      => $item->id,
4810
            branch          => $library->id,
4811
            datedue         => $dt_to_renew,
4812
            lastreneweddate => $dt_to
4813
        }
4814
    );
4754
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4815
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4755
    is(
4816
    is(
4756
        $accountline->amount + 0,
4817
        $accountline->amount + 0,
Lines 4781-4787 subtest 'Incremented fee tests' => sub { Link Here
4781
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 1 and closed $closed_day_name"
4842
        "Daily rental charge calculated correctly with rentalcharge_daily_calendar = 1 and closed $closed_day_name"
4782
    );
4843
    );
4783
    $accountline->delete();
4844
    $accountline->delete();
4784
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4845
    AddRenewal(
4846
        {
4847
            borrowernumber  => $patron->id,
4848
            itemnumber      => $item->id,
4849
            branch          => $library->id,
4850
            datedue         => $dt_to_renew,
4851
            lastreneweddate => $dt_to
4852
        }
4853
    );
4785
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4854
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4786
    is(
4855
    is(
4787
        $accountline->amount + 0,
4856
        $accountline->amount + 0,
Lines 4799-4805 subtest 'Incremented fee tests' => sub { Link Here
4799
      Koha::Account::Lines->search( { itemnumber => $item->id } );
4868
      Koha::Account::Lines->search( { itemnumber => $item->id } );
4800
    is( $accountlines->count, '2', "Fixed charge and accrued charge recorded distinctly" );
4869
    is( $accountlines->count, '2', "Fixed charge and accrued charge recorded distinctly" );
4801
    $accountlines->delete();
4870
    $accountlines->delete();
4802
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4871
    AddRenewal(
4872
        {
4873
            borrowernumber  => $patron->id,
4874
            itemnumber      => $item->id,
4875
            branch          => $library->id,
4876
            datedue         => $dt_to_renew,
4877
            lastreneweddate => $dt_to
4878
        }
4879
    );
4803
    $accountlines = Koha::Account::Lines->search( { itemnumber => $item->id } );
4880
    $accountlines = Koha::Account::Lines->search( { itemnumber => $item->id } );
4804
    is( $accountlines->count, '2', "Fixed charge and accrued charge recorded distinctly, for renewal" );
4881
    is( $accountlines->count, '2', "Fixed charge and accrued charge recorded distinctly, for renewal" );
4805
    $accountlines->delete();
4882
    $accountlines->delete();
Lines 4834-4840 subtest 'Incremented fee tests' => sub { Link Here
4834
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 0 (168h * 0.25u)"
4911
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 0 (168h * 0.25u)"
4835
    );
4912
    );
4836
    $accountline->delete();
4913
    $accountline->delete();
4837
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4914
    AddRenewal(
4915
        {
4916
            borrowernumber  => $patron->id,
4917
            itemnumber      => $item->id,
4918
            branch          => $library->id,
4919
            datedue         => $dt_to_renew,
4920
            lastreneweddate => $dt_to
4921
        }
4922
    );
4838
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4923
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4839
    is(
4924
    is(
4840
        $accountline->amount + 0,
4925
        $accountline->amount + 0,
Lines 4854-4860 subtest 'Incremented fee tests' => sub { Link Here
4854
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 1 and closed $closed_day_name (168h - 24h * 0.25u)"
4939
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 1 and closed $closed_day_name (168h - 24h * 0.25u)"
4855
    );
4940
    );
4856
    $accountline->delete();
4941
    $accountline->delete();
4857
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4942
    AddRenewal(
4943
        {
4944
            borrowernumber  => $patron->id,
4945
            itemnumber      => $item->id,
4946
            branch          => $library->id,
4947
            datedue         => $dt_to_renew,
4948
            lastreneweddate => $dt_to
4949
        }
4950
    );
4858
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4951
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4859
    is(
4952
    is(
4860
        $accountline->amount + 0,
4953
        $accountline->amount + 0,
Lines 4874-4880 subtest 'Incremented fee tests' => sub { Link Here
4874
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 1 (168h - 0h * 0.25u"
4967
        "Hourly rental charge calculated correctly with rentalcharge_hourly_calendar = 1 (168h - 0h * 0.25u"
4875
    );
4968
    );
4876
    $accountline->delete();
4969
    $accountline->delete();
4877
    AddRenewal( $patron->id, $item->id, $library->id, $dt_to_renew, $dt_to );
4970
    AddRenewal(
4971
        {
4972
            borrowernumber  => $patron->id,
4973
            itemnumber      => $item->id,
4974
            branch          => $library->id,
4975
            datedue         => $dt_to_renew,
4976
            lastreneweddate => $dt_to
4977
        }
4978
    );
4878
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4979
    $accountline = Koha::Account::Lines->find( { itemnumber => $item->id } );
4879
    is(
4980
    is(
4880
        $accountline->amount + 0,
4981
        $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