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

(-)a/C4/Circulation.pm (-15 / +14 lines)
Lines 1193-1198 sub AddIssue { Link Here
1193
    my $dbh = C4::Context->dbh;
1193
    my $dbh = C4::Context->dbh;
1194
    my $barcodecheck=CheckValidBarcode($barcode);
1194
    my $barcodecheck=CheckValidBarcode($barcode);
1195
1195
1196
    my $issue;
1197
1196
    if ($datedue && ref $datedue ne 'DateTime') {
1198
    if ($datedue && ref $datedue ne 'DateTime') {
1197
        $datedue = dt_from_string($datedue);
1199
        $datedue = dt_from_string($datedue);
1198
    }
1200
    }
Lines 1263-1274 sub AddIssue { Link Here
1263
        }
1265
        }
1264
1266
1265
        # Record in the database the fact that the book was issued.
1267
        # Record in the database the fact that the book was issued.
1266
        my $sth =
1267
          $dbh->prepare(
1268
                "INSERT INTO issues
1269
                    (borrowernumber, itemnumber,issuedate, date_due, branchcode, onsite_checkout, auto_renew)
1270
                VALUES (?,?,?,?,?,?,?)"
1271
          );
1272
        unless ($datedue) {
1268
        unless ($datedue) {
1273
            my $itype = ( C4::Context->preference('item-level_itypes') ) ? $biblio->{'itype'} : $biblio->{'itemtype'};
1269
            my $itype = ( C4::Context->preference('item-level_itypes') ) ? $biblio->{'itype'} : $biblio->{'itemtype'};
1274
            $datedue = CalcDateDue( $issuedate, $itype, $branch, $borrower );
1270
            $datedue = CalcDateDue( $issuedate, $itype, $branch, $borrower );
Lines 1276-1290 sub AddIssue { Link Here
1276
        }
1272
        }
1277
        $datedue->truncate( to => 'minute');
1273
        $datedue->truncate( to => 'minute');
1278
1274
1279
        $sth->execute(
1275
        $issue = Koha::Database->new()->schema()->resultset('Issue')->create(
1280
            $borrower->{'borrowernumber'},      # borrowernumber
1276
            {
1281
            $item->{'itemnumber'},              # itemnumber
1277
                borrowernumber  => $borrower->{'borrowernumber'},
1282
            $issuedate->strftime('%Y-%m-%d %H:%M:%S'), # issuedate
1278
                itemnumber      => $item->{'itemnumber'},
1283
            $datedue->strftime('%Y-%m-%d %H:%M:%S'),   # date_due
1279
                issuedate       => $issuedate->strftime('%Y-%m-%d %H:%M:%S'),
1284
            C4::Context->userenv->{'branch'},   # branchcode
1280
                date_due        => $datedue->strftime('%Y-%m-%d %H:%M:%S'),
1285
            $onsite_checkout,
1281
                branchcode      => C4::Context->userenv->{'branch'},
1286
            $auto_renew ? 1 : 0                 # automatic renewal
1282
                onsite_checkout => $onsite_checkout,
1283
                auto_renew      => $auto_renew ? 1 : 0
1284
            }
1287
        );
1285
        );
1286
1288
        if ( C4::Context->preference('ReturnToShelvingCart') ) { ## ReturnToShelvingCart is on, anything issued should be taken off the cart.
1287
        if ( C4::Context->preference('ReturnToShelvingCart') ) { ## ReturnToShelvingCart is on, anything issued should be taken off the cart.
1289
          CartToShelf( $item->{'itemnumber'} );
1288
          CartToShelf( $item->{'itemnumber'} );
1290
        }
1289
        }
Lines 1354-1360 sub AddIssue { Link Here
1354
    logaction("CIRCULATION", "ISSUE", $borrower->{'borrowernumber'}, $biblio->{'itemnumber'})
1353
    logaction("CIRCULATION", "ISSUE", $borrower->{'borrowernumber'}, $biblio->{'itemnumber'})
1355
        if C4::Context->preference("IssueLog");
1354
        if C4::Context->preference("IssueLog");
1356
  }
1355
  }
1357
  return ($datedue);	# not necessarily the same as when it came in!
1356
  return $issue;
1358
}
1357
}
1359
1358
1360
=head2 GetLoanLength
1359
=head2 GetLoanLength
(-)a/C4/SIP/ILS/Transaction/Checkout.pm (-1 / +3 lines)
Lines 20-25 use C4::Circulation; Link Here
20
use C4::Members;
20
use C4::Members;
21
use C4::Reserves qw(ModReserveFill);
21
use C4::Reserves qw(ModReserveFill);
22
use C4::Debug;
22
use C4::Debug;
23
use Koha::DateUtils;
23
use parent qw(ILS::Transaction);
24
use parent qw(ILS::Transaction);
24
25
25
our $debug;
26
our $debug;
Lines 125-131 sub do_checkout { Link Here
125
	$debug and warn "do_checkout: calling AddIssue(\$borrower,$barcode, $overridden_duedate, 0)\n"
126
	$debug and warn "do_checkout: calling AddIssue(\$borrower,$barcode, $overridden_duedate, 0)\n"
126
		# . "w/ \$borrower: " . Dumper($borrower)
127
		# . "w/ \$borrower: " . Dumper($borrower)
127
		. "w/ C4::Context->userenv: " . Dumper(C4::Context->userenv);
128
		. "w/ C4::Context->userenv: " . Dumper(C4::Context->userenv);
128
	my $due_dt  = AddIssue($borrower, $barcode, $overridden_duedate, 0);
129
    my $issue = AddIssue( $borrower, $barcode, $overridden_duedate, 0 );
130
    my $due_dt = dt_from_string( $issue->date_due() );
129
    if ($due_dt) {
131
    if ($due_dt) {
130
        $self->{due} = $due_dt->clone();
132
        $self->{due} = $due_dt->clone();
131
    } else {
133
    } else {
(-)a/C4/SIP/ILS/Transaction/Renew.pm (-1 / +4 lines)
Lines 12-17 use ILS; Link Here
12
use C4::Circulation;
12
use C4::Circulation;
13
use C4::Members;
13
use C4::Members;
14
14
15
use Koha::DateUtils;
16
15
use parent qw(ILS::Transaction);
17
use parent qw(ILS::Transaction);
16
18
17
my %fields = (
19
my %fields = (
Lines 36-42 sub do_renew_for { Link Here
36
    my ($renewokay,$renewerror) = CanBookBeRenewed($borrower->{borrowernumber},$self->{item}->{itemnumber});
38
    my ($renewokay,$renewerror) = CanBookBeRenewed($borrower->{borrowernumber},$self->{item}->{itemnumber});
37
    if ($renewokay){
39
    if ($renewokay){
38
        $self->{due} = undef;
40
        $self->{due} = undef;
39
        my $due_date = AddIssue( $borrower, $self->{item}->id, undef, 0 );
41
        my $issue = AddIssue( $borrower, $self->{item}->id, undef, 0 );
42
        my $due_date = dt_from_string( $issue->date_due() );
40
        if ($due_date) {
43
        if ($due_date) {
41
            $self->{due} = $due_date;
44
            $self->{due} = $due_date;
42
        }
45
        }
(-)a/circ/circulation.pl (-1 / +2 lines)
Lines 372-378 if ($barcode) { Link Here
372
            }
372
            }
373
        }
373
        }
374
        unless($confirm_required) {
374
        unless($confirm_required) {
375
            AddIssue( $borrower, $barcode, $datedue, $cancelreserve, undef, undef, { onsite_checkout => $onsite_checkout, auto_renew => $session->param('auto_renew') } );
375
            my $issue = AddIssue( $borrower, $barcode, $datedue, $cancelreserve, undef, undef, { onsite_checkout => $onsite_checkout, auto_renew => $session->param('auto_renew') } );
376
            $template->param( issue => $issue );
376
            $session->clear('auto_renew');
377
            $session->clear('auto_renew');
377
            $inprocess = 1;
378
            $inprocess = 1;
378
        }
379
        }
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt (+4 lines)
Lines 752-757 No patron matched <span class="ex">[% message %]</span> Link Here
752
752
753
</div>
753
</div>
754
</div>
754
</div>
755
[% IF ( issue ) %]
756
    <div class="dialog message">[% issue.item.biblio.title %] ([% issue.item.barcode %]) due on [% issue.date_due | $KohaDates %]</div>
757
[% END %]
758
755
759
756
<div class="yui-g"><div id="patronlists" class="toptabs">
760
<div class="yui-g"><div id="patronlists" class="toptabs">
757
761
(-)a/t/db_dependent/Circulation.t (-7 / +11 lines)
Lines 270-280 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
270
    my $checkitem      = undef;
270
    my $checkitem      = undef;
271
    my $found          = undef;
271
    my $found          = undef;
272
272
273
    my $datedue = AddIssue( $renewing_borrower, $barcode);
273
    my $issue = AddIssue( $renewing_borrower, $barcode);
274
    is (defined $datedue, 1, "Item 1 checked out, due date: $datedue");
274
    my $datedue = dt_from_string( $issue->date_due() );
275
    is (defined $issue->date_due(), 1, "Item 1 checked out, due date: " . $issue->date_due() );
275
276
276
    my $datedue2 = AddIssue( $renewing_borrower, $barcode2);
277
    my $issue2 = AddIssue( $renewing_borrower, $barcode2);
277
    is (defined $datedue2, 1, "Item 2 checked out, due date: $datedue2");
278
    $datedue = dt_from_string( $issue->date_due() );
279
    is (defined $issue2, 1, "Item 2 checked out, due date: " . $issue2->date_due());
278
280
279
    my $borrowing_borrowernumber = GetItemIssue($itemnumber)->{borrowernumber};
281
    my $borrowing_borrowernumber = GetItemIssue($itemnumber)->{borrowernumber};
280
    is ($borrowing_borrowernumber, $renewing_borrowernumber, "Item checked out to $renewing_borrower->{firstname} $renewing_borrower->{surname}");
282
    is ($borrowing_borrowernumber, $renewing_borrowernumber, "Item checked out to $renewing_borrower->{firstname} $renewing_borrower->{surname}");
Lines 494-501 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
494
    my $two_days_ahead = DateTime->today(time_zone => C4::Context->tz())->add( days => 2 );
496
    my $two_days_ahead = DateTime->today(time_zone => C4::Context->tz())->add( days => 2 );
495
    my $today = DateTime->today(time_zone => C4::Context->tz());
497
    my $today = DateTime->today(time_zone => C4::Context->tz());
496
498
497
    my $datedue  = AddIssue( $a_borrower, $barcode, $yesterday );
499
    my $issue = AddIssue( $a_borrower, $barcode, $yesterday );
498
    my $datedue2 = AddIssue( $a_borrower, $barcode2, $two_days_ahead );
500
    my $datedue = dt_from_string( $issue->date_due() );
501
    my $issue2 = AddIssue( $a_borrower, $barcode2, $two_days_ahead );
502
    my $datedue2 = dt_from_string( $issue->date_due() );
499
503
500
    my $upcoming_dues;
504
    my $upcoming_dues;
501
505
Lines 517-523 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
517
521
518
    # Bug 11218 - Due notices not generated - GetUpcomingDueIssues needs to select due today items as well
522
    # Bug 11218 - Due notices not generated - GetUpcomingDueIssues needs to select due today items as well
519
523
520
    my $datedue3 = AddIssue( $a_borrower, $barcode3, $today );
524
    my $issue3 = AddIssue( $a_borrower, $barcode3, $today );
521
525
522
    $upcoming_dues = C4::Circulation::GetUpcomingDueIssues( { days_in_advance => -1 } );
526
    $upcoming_dues = C4::Circulation::GetUpcomingDueIssues( { days_in_advance => -1 } );
523
    is ( scalar ( @$upcoming_dues), 0, "Overdues can not be selected" );
527
    is ( scalar ( @$upcoming_dues), 0, "Overdues can not be selected" );
(-)a/t/db_dependent/rollingloans.t (-3 / +3 lines)
Lines 6-11 use C4::Context; Link Here
6
use C4::Circulation;
6
use C4::Circulation;
7
use C4::Members;
7
use C4::Members;
8
use C4::Items;
8
use C4::Items;
9
use Koha::DateUtils;
9
10
10
use Test::More tests => 8;
11
use Test::More tests => 8;
11
C4::Context->_new_userenv(1234567);
12
C4::Context->_new_userenv(1234567);
Lines 42-49 sub try_issue { Link Here
42
    my $issuedate = '2011-05-16';
43
    my $issuedate = '2011-05-16';
43
    my $borrower = GetMemberDetails(0, $cardnumber);
44
    my $borrower = GetMemberDetails(0, $cardnumber);
44
    my ($issuingimpossible,$needsconfirmation) = CanBookBeIssued( $borrower, $item );
45
    my ($issuingimpossible,$needsconfirmation) = CanBookBeIssued( $borrower, $item );
45
	my $due_date = AddIssue($borrower, $item, undef, 0, $issuedate);
46
    my $issue = AddIssue($borrower, $item, undef, 0, $issuedate);
46
    return $due_date;
47
    return dt_from_string( $issue->due_date() );
47
}
48
}
48
49
49
sub try_return {
50
sub try_return {
50
- 

Return to bug 13315