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

(-)a/t/db_dependent/Circulation.t (-4 / +81 lines)
Lines 27-33 use C4::Overdues qw(UpdateFine); Link Here
27
use Koha::DateUtils;
27
use Koha::DateUtils;
28
use Koha::Database;
28
use Koha::Database;
29
29
30
use Test::More tests => 60;
30
use Test::More tests => 69 ;
31
31
32
BEGIN {
32
BEGIN {
33
    use_ok('C4::Circulation');
33
    use_ok('C4::Circulation');
Lines 234-239 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
234
        $biblionumber
234
        $biblionumber
235
    );
235
    );
236
236
237
238
239
237
    # Create borrowers
240
    # Create borrowers
238
    my %renewing_borrower_data = (
241
    my %renewing_borrower_data = (
239
        firstname =>  'John',
242
        firstname =>  'John',
Lines 256-266 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
256
        branchcode => $branch,
259
        branchcode => $branch,
257
    );
260
    );
258
261
262
    my %restricted_borrower_data = (
263
        firstname =>  'Alice',
264
        surname => 'Reservation',
265
        categorycode => 'S',
266
        debarred => '3228-01-01',
267
        branchcode => $branch,
268
    );
269
259
    my $renewing_borrowernumber = AddMember(%renewing_borrower_data);
270
    my $renewing_borrowernumber = AddMember(%renewing_borrower_data);
260
    my $reserving_borrowernumber = AddMember(%reserving_borrower_data);
271
    my $reserving_borrowernumber = AddMember(%reserving_borrower_data);
261
    my $hold_waiting_borrowernumber = AddMember(%hold_waiting_borrower_data);
272
    my $hold_waiting_borrowernumber = AddMember(%hold_waiting_borrower_data);
273
    my $restricted_borrowernumber = AddMember(%restricted_borrower_data);
262
274
263
    my $renewing_borrower = GetMember( borrowernumber => $renewing_borrowernumber );
275
    my $renewing_borrower = GetMember( borrowernumber => $renewing_borrowernumber );
276
    my $restricted_borrower = GetMember( borrowernumber => $restricted_borrowernumber );
264
277
265
    my $constraint     = 'a';
278
    my $constraint     = 'a';
266
    my $bibitems       = '';
279
    my $bibitems       = '';
Lines 277-282 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
277
    my $datedue2 = AddIssue( $renewing_borrower, $barcode2);
290
    my $datedue2 = AddIssue( $renewing_borrower, $barcode2);
278
    is (defined $datedue2, 1, "Item 2 checked out, due date: $datedue2");
291
    is (defined $datedue2, 1, "Item 2 checked out, due date: $datedue2");
279
292
293
280
    my $borrowing_borrowernumber = GetItemIssue($itemnumber)->{borrowernumber};
294
    my $borrowing_borrowernumber = GetItemIssue($itemnumber)->{borrowernumber};
281
    is ($borrowing_borrowernumber, $renewing_borrowernumber, "Item checked out to $renewing_borrower->{firstname} $renewing_borrower->{surname}");
295
    is ($borrowing_borrowernumber, $renewing_borrowernumber, "Item checked out to $renewing_borrower->{firstname} $renewing_borrower->{surname}");
282
296
Lines 348-354 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
348
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber2, 1);
362
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber2, 1);
349
    is( $renewokay, 1, 'Can renew item 2, item-level hold is on item 1');
363
    is( $renewokay, 1, 'Can renew item 2, item-level hold is on item 1');
350
364
351
365
  
352
    # Items can't fill hold for reasons
366
    # Items can't fill hold for reasons
353
    ModItem({ notforloan => 1 }, $biblionumber, $itemnumber);
367
    ModItem({ notforloan => 1 }, $biblionumber, $itemnumber);
354
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber, 1);
368
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber, 1);
Lines 357-362 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
357
371
358
    # FIXME: Add more for itemtype not for loan etc.
372
    # FIXME: Add more for itemtype not for loan etc.
359
373
374
    # Restricted users cannot renew when RestrictionBlockRenewing is enabled
375
    my $barcode5 = 'R00000347';
376
    my ( $item_bibnum5, $item_bibitemnum5, $itemnumber5 ) = AddItem(
377
        {
378
            homebranch       => $branch,
379
            holdingbranch    => $branch,
380
            barcode          => $barcode5,
381
            replacementprice => 23.00
382
        },
383
        $biblionumber
384
    );
385
    my $datedue5 = AddIssue($restricted_borrower, $barcode5);
386
    is (defined $datedue5, 1, "Item with date due checked out, due date: $datedue5");
387
388
    C4::Context->set_preference('RestrictionBlockRenewing','1');
389
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber2);
390
    is( $renewokay, 1, '(Bug 8236), Can renew, user is not restricted');
391
    ( $renewokay, $error ) = CanBookBeRenewed($restricted_borrowernumber, $itemnumber5);
392
    is( $renewokay, 0, '(Bug 8236), Cannot renew, user is restricted');
393
394
    # Users cannot renew an overdue item
395
    my $barcode6 = 'R00000348';
396
    my ( $item_bibnum6, $item_bibitemnum6, $itemnumber6 ) = AddItem(
397
        {
398
            homebranch       => $branch,
399
            holdingbranch    => $branch,
400
            barcode          => $barcode6,
401
            replacementprice => 23.00
402
        },
403
        $biblionumber
404
    );
405
406
    my $barcode7 = 'R00000349';
407
    my ( $item_bibnum7, $item_bibitemnum7, $itemnumber7 ) = AddItem(
408
        {
409
            homebranch       => $branch,
410
            holdingbranch    => $branch,
411
            barcode          => $barcode7,
412
            replacementprice => 23.00
413
        },
414
        $biblionumber
415
    );
416
    my $datedue6 = AddIssue( $renewing_borrower, $barcode6);
417
    is (defined $datedue6, 1, "Item 2 checked out, due date: $datedue6");
418
419
    my $passeddatedue1 = AddIssue($renewing_borrower, $barcode7, DateTime->from_epoch(epoch => 1));
420
    is (defined $passeddatedue1, 1, "Item with passed date due checked out, due date: $passeddatedue1");
421
422
423
    C4::Context->set_preference('OverduesBlockRenewing','blockitem');
424
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber6);
425
    is( $renewokay, 1, '(Bug 8236), Can renew, this item is not overdue');
426
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber7);
427
    is( $renewokay, 0, '(Bug 8236), Cannot renew, this item is overdue');
428
429
360
    $reserveid = C4::Reserves::GetReserveId({ biblionumber => $biblionumber, itemnumber => $itemnumber, borrowernumber => $reserving_borrowernumber});
430
    $reserveid = C4::Reserves::GetReserveId({ biblionumber => $biblionumber, itemnumber => $itemnumber, borrowernumber => $reserving_borrowernumber});
361
    CancelReserve({ reserve_id => $reserveid });
431
    CancelReserve({ reserve_id => $reserveid });
362
432
Lines 452-458 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
452
    $future->add( days => 7 );
522
    $future->add( days => 7 );
453
    my $units = C4::Overdues::_get_chargeable_units('days', $future, $now, 'MPL');
523
    my $units = C4::Overdues::_get_chargeable_units('days', $future, $now, 'MPL');
454
    ok( $units == 0, '_get_chargeable_units returns 0 for items not past due date (Bug 12596)' );
524
    ok( $units == 0, '_get_chargeable_units returns 0 for items not past due date (Bug 12596)' );
455
}
525
526
    # Users cannot renew any item if there is an overdue item
527
    C4::Context->set_preference('OverduesBlockRenewing','block');
528
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber6);
529
    is( $renewokay, 0, '(Bug 8236), Cannot renew, one of the items is overdue');
530
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber7);
531
    is( $renewokay, 0, '(Bug 8236), Cannot renew, one of the items is overdue');
532
533
  }
456
534
457
{
535
{
458
    # GetUpcomingDueIssues tests
536
    # GetUpcomingDueIssues tests
459
- 

Return to bug 8236