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

(-)a/misc/maintenance/update_localuse_from_statistics.pl (-16 / +28 lines)
Lines 29-68 use Pod::Usage qw( pod2usage ); Link Here
29
29
30
my ($params);
30
my ($params);
31
GetOptions(
31
GetOptions(
32
    'confirm' => \$params->{confirm}, 'help' => \$params->{help}, 'age:i' => \$params->{age},
32
    'c|confirm' => \$params->{confirm},
33
    'v|verbose' => \$params->{verbose},
34
    'help'      => \$params->{help},
33
);
35
);
34
if ( $params->{help} ) {
36
if ( $params->{help} ) {
35
    pod2usage( -verbose => 2 );
37
    pod2usage( -verbose => 2 );
36
    exit;
38
    exit;
37
}
39
}
38
40
41
my $updated;
42
43
if ( $params->{confirm} ) {
44
    $updated = update_localuse( { verbose => $params->{verbose} } );
45
}
46
47
print "Updated $updated items.\n";
48
39
sub update_localuse {
49
sub update_localuse {
50
    my $params  = shift;
51
    my $verbose = $params->{verbose};
40
52
41
    my $dbh = C4::Context->dbh;
53
    my $dbh = C4::Context->dbh;
42
54
43
    my $items = Koha::Items->search();
55
    my $items   = Koha::Items->search();
56
    my $updated = 0;
44
57
45
    # Loop through each item and update it with statistics info
58
    # Loop through each item and update it with statistics info
46
    while ( my $item = $items->next ) {
59
    while ( my $item = $items->next ) {
47
        my $itemnumber = $item->itemnumber;
60
        my $itemnumber = $item->itemnumber;
48
61
49
        my $localuse_count = Koha::Statistics->search( { itemnumber => $itemnumber, type => 'localuse' } )->count;
62
        my $localuse_count = Koha::Statistics->search( { itemnumber => $itemnumber, type => 'localuse' } )->count;
63
        my $item_localuse  = $item->localuse // 0;
64
        next if $item_localuse == $localuse_count;
50
        $item->localuse($localuse_count);
65
        $item->localuse($localuse_count);
51
        $item->store;
66
        $item->store( { skip_record_index => 1, skip_holds_queue => 1 } );
67
        $updated++;
52
68
53
        print "Updated item $itemnumber with localuse statistics info.\n";
69
        print "Updated item $itemnumber with localuse statistics info. Was $item_localuse, now $localuse_count\n"
70
            if $verbose;
54
    }
71
    }
55
}
72
    return $updated;
56
57
my ($help);
58
my $result = GetOptions(
59
    'help|h' => \$help,
60
);
61
62
usage() if $help;
63
64
if ( $params->{confirm} ) {
65
    update_localuse();
66
}
73
}
67
74
68
=head1 NAME
75
=head1 NAME
Lines 74-83 update_local_use_from_statistics.pl Link Here
74
  update_localuse_from_statistics.pl
81
  update_localuse_from_statistics.pl
75
  update_localuse_from_statistics.pl --help
82
  update_localuse_from_statistics.pl --help
76
  update_localuse_from_statistics.pl --confirm
83
  update_localuse_from_statistics.pl --confirm
84
  update_localuse_from_statistics.pl --verbose
77
85
78
=head1 DESCRIPTION
86
=head1 DESCRIPTION
79
87
80
This script updates the items.localuse column with data from the statistics table to make sure the two tables are congruent.
88
This script updates the items.localuse column with data from the statistics table to make sure the two tables are congruent.
89
NOTE: If you have mapped the items.localuse field in your search engine you must reindex your records after running this script.
81
90
82
=head1 OPTIONS
91
=head1 OPTIONS
83
92
Lines 91-96 Prints this help message Link Here
91
100
92
    Confirm to run the script.
101
    Confirm to run the script.
93
102
103
=item B<-v|--verbose>
104
105
    Add verbosity to output.
106
94
=back
107
=back
95
108
96
=cut
109
=cut
97
- 

Return to bug 37790