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

(-)a/t/db_dependent/Items/AutomaticItemModificationByAge.t (-2 / +48 lines)
Lines 1-7 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
2
3
use Modern::Perl;
3
use Modern::Perl;
4
use Test::More tests => 19;
4
use Test::More tests => 22;
5
use MARC::Record;
5
use MARC::Record;
6
use MARC::Field;
6
use MARC::Field;
7
use DateTime;
7
use DateTime;
Lines 331-336 C4::Items::ToggleNewStatus( { rules => \@rules } ); Link Here
331
$modified_item = Koha::Items->find( $itemnumber );
331
$modified_item = Koha::Items->find( $itemnumber );
332
is( $modified_item->new_status, 'agefield_new_value', q|ToggleNewStatus: Age = 2, agefield = 'items.datelastseen' : The new_status value is updated|);
332
is( $modified_item->new_status, 'agefield_new_value', q|ToggleNewStatus: Age = 2, agefield = 'items.datelastseen' : The new_status value is updated|);
333
333
334
# Play with the unit field
335
$dt_today = dt_from_string;
336
my $hours2ago = dt_from_string->subtract( hours => 2 );
337
my $hours10ago = dt_from_string->subtract( hours => 10 );
338
$modified_item->itemlost_on($hours2ago)->store;
339
$modified_item->dateaccessioned($hours10ago)->store;
340
341
# When agefield='items.dateaccessioned' and unit='Hours'
342
@rules = (
343
    {
344
        conditions => [
345
            {
346
                field => 'biblioitems.itemtype',
347
                value => 'ITEMTYPE_T',
348
            },
349
        ],
350
        substitutions => [
351
            {
352
                field => 'items.new_status',
353
                value => 'ageunit_new_value',
354
             },
355
        ],
356
        age => '5',
357
        ageunit => 'Hours',
358
        agefield => 'items.dateaccessioned'
359
    },
360
);
361
362
# Confirm a rule with unit = 'Hours' does not work with fields other than items.damaged_on, 
363
# items.itemlost_on, or items.withdrawn_on
364
C4::Items::ToggleNewStatus( { rules => \@rules } );
365
$modified_item = Koha::Items->find( $itemnumber );
366
is( $modified_item->new_status, 'agefield_new_value', q|ToggleNewStatus: Age = 5, ageunit = 'Hours', agefield = 'items.dateaccessioned' : The new_status value is not updated|);
367
368
# Confirm a rule on a datetime field (items.itemlost_on) with unit = 'Hours' does 
369
# change an item correctly based on the age in hours
370
$rules[0]->{agefield} = 'items.itemlost_on';
371
C4::Items::ToggleNewStatus( { rules => \@rules } );
372
$modified_item = Koha::Items->find( $itemnumber );
373
$modified_item->itemlost_on;
374
is( $modified_item->new_status, 'agefield_new_value', q|ToggleNewStatus: Age = 5, ageunit = 'Hours', agefield = 'items.itemlost_on' : The new_status value is not updated|);
375
376
$rules[0]->{age} = 1;
377
C4::Items::ToggleNewStatus( { rules => \@rules } );
378
$modified_item = Koha::Items->find( $itemnumber );
379
is( $modified_item->new_status, 'ageunit_new_value', q|ToggleNewStatus: Age = 1, ageunit = 'Hours', agefield = 'items.itemlost_on' : The new_status value is updated|);
380
334
# Run twice
381
# Run twice
335
t::lib::Mocks::mock_preference('CataloguingLog', 1);
382
t::lib::Mocks::mock_preference('CataloguingLog', 1);
336
my $actions_nb = $schema->resultset('ActionLog')->count();
383
my $actions_nb = $schema->resultset('ActionLog')->count();
337
- 

Return to bug 21173