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

(-)a/C4/Items.pm (-4 / +8 lines)
Lines 809-814 sub GetItemsForInventory { Link Here
809
    my ( $parameters ) = @_;
809
    my ( $parameters ) = @_;
810
    my $minlocation  = $parameters->{'minlocation'}  // '';
810
    my $minlocation  = $parameters->{'minlocation'}  // '';
811
    my $maxlocation  = $parameters->{'maxlocation'}  // '';
811
    my $maxlocation  = $parameters->{'maxlocation'}  // '';
812
    my $class_source = $parameters->{'class_source'}  // C4::Context->preference('DefaultClassificationSource');
812
    my $location     = $parameters->{'location'}     // '';
813
    my $location     = $parameters->{'location'}     // '';
813
    my $itemtype     = $parameters->{'itemtype'}     // '';
814
    my $itemtype     = $parameters->{'itemtype'}     // '';
814
    my $ignoreissued = $parameters->{'ignoreissued'} // '';
815
    my $ignoreissued = $parameters->{'ignoreissued'} // '';
Lines 822-827 sub GetItemsForInventory { Link Here
822
    my $dbh = C4::Context->dbh;
823
    my $dbh = C4::Context->dbh;
823
    my ( @bind_params, @where_strings );
824
    my ( @bind_params, @where_strings );
824
825
826
    my $min_cnsort = GetClassSort($class_source,undef,$minlocation);
827
    my $max_cnsort = GetClassSort($class_source,undef,$maxlocation);
828
825
    my $select_columns = q{
829
    my $select_columns = q{
826
        SELECT items.itemnumber, barcode, itemcallnumber, title, author, biblio.biblionumber, biblio.frameworkcode, datelastseen, homebranch, location, notforloan, damaged, itemlost, withdrawn, stocknumber
830
        SELECT items.itemnumber, barcode, itemcallnumber, title, author, biblio.biblionumber, biblio.frameworkcode, datelastseen, homebranch, location, notforloan, damaged, itemlost, withdrawn, stocknumber
827
    };
831
    };
Lines 841-853 sub GetItemsForInventory { Link Here
841
    }
845
    }
842
846
843
    if ($minlocation) {
847
    if ($minlocation) {
844
        push @where_strings, 'itemcallnumber >= ?';
848
        push @where_strings, 'items.cn_sort >= ?';
845
        push @bind_params, $minlocation;
849
        push @bind_params, $min_cnsort;
846
    }
850
    }
847
851
848
    if ($maxlocation) {
852
    if ($maxlocation) {
849
        push @where_strings, 'itemcallnumber <= ?';
853
        push @where_strings, 'items.cn_sort <= ?';
850
        push @bind_params, $maxlocation;
854
        push @bind_params, $max_cnsort;
851
    }
855
    }
852
856
853
    if ($datelastseen) {
857
    if ($datelastseen) {
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt (-1 / +12 lines)
Lines 79-85 Link Here
79
                <input type="text" name="minlocation" id="minlocation" value="[% minlocation %]" /> (items.itemcallnumber)  </li>
79
                <input type="text" name="minlocation" id="minlocation" value="[% minlocation %]" /> (items.itemcallnumber)  </li>
80
           <li><label for="maxlocation">...and: </label>
80
           <li><label for="maxlocation">...and: </label>
81
                <input type="text" name="maxlocation" id="maxlocation" value="[% maxlocation %]" />
81
                <input type="text" name="maxlocation" id="maxlocation" value="[% maxlocation %]" />
82
        </li>
82
           <li>
83
            <label for="class_source">Callnumber classification scheme</label>
84
            <select name="class_source">
85
            [% FOREACH class_source IN class_sources %]
86
                [% IF class_source.cn_source == pref_class %]
87
                <option value="[% class_source.cn_source %]" selected="selected">[% class_source.description %] (default)</option>
88
                [% ELSE %]
89
                <option value="[% class_source.cn_source %]">[% class_source.description %]</option>
90
                [% END %]
91
            [% END %]
92
            </select>
93
          </li>
83
    </ol>
94
    </ol>
84
    </fieldset>
95
    </fieldset>
85
96
(-)a/t/db_dependent/Items/GetItemsForInventory.t (-1 / +1 lines)
Lines 79-85 subtest 'Use cn_sort rather than callnumber to determine correct location' => su Link Here
79
        minlocation => 'GT90',
79
        minlocation => 'GT90',
80
        class_source => $class_source->{cn_source},
80
        class_source => $class_source->{cn_source},
81
    });
81
    });
82
    is($item_count,1,"We should return GT95 as betwen GT90 and GT100");
82
    is($item_count,1,"We should return GT95 as between GT90 and GT100");
83
    $schema->storage->txn_rollback;
83
    $schema->storage->txn_rollback;
84
84
85
};
85
};
(-)a/tools/inventory.pl (-1 / +10 lines)
Lines 39-48 use Koha::Biblios; Link Here
39
use Koha::DateUtils;
39
use Koha::DateUtils;
40
use Koha::AuthorisedValues;
40
use Koha::AuthorisedValues;
41
use Koha::BiblioFrameworks;
41
use Koha::BiblioFrameworks;
42
use Koha::ClassSources;
42
use List::MoreUtils qw( none );
43
use List::MoreUtils qw( none );
43
44
44
my $minlocation=$input->param('minlocation') || '';
45
my $minlocation=$input->param('minlocation') || '';
45
my $maxlocation=$input->param('maxlocation');
46
my $maxlocation=$input->param('maxlocation');
47
my $class_source=$input->param('class_source');
46
$maxlocation=$minlocation.'Z' unless ( $maxlocation || ! $minlocation );
48
$maxlocation=$minlocation.'Z' unless ( $maxlocation || ! $minlocation );
47
my $location=$input->param('location') || '';
49
my $location=$input->param('location') || '';
48
my $ignoreissued=$input->param('ignoreissued');
50
my $ignoreissued=$input->param('ignoreissued');
Lines 114-119 for my $authvfield (@$statuses) { Link Here
114
    }
116
    }
115
}
117
}
116
118
119
my @class_sources = Koha::ClassSources->search();
120
my $pref_class = C4::Context->preference("DefaultClassificationSource");
121
122
117
$template->param(
123
$template->param(
118
    authorised_values        => \@authorised_value_list,
124
    authorised_values        => \@authorised_value_list,
119
    today                    => dt_from_string,
125
    today                    => dt_from_string,
Lines 126-131 $template->param( Link Here
126
    datelastseen             => $datelastseen,
132
    datelastseen             => $datelastseen,
127
    compareinv2barcd         => $compareinv2barcd,
133
    compareinv2barcd         => $compareinv2barcd,
128
    uploadedbarcodesflag     => $uploadbarcodes ? 1 : 0,
134
    uploadedbarcodesflag     => $uploadbarcodes ? 1 : 0,
135
    class_sources            => \@class_sources,
136
    pref_class               => $pref_class
129
);
137
);
130
138
131
# Walk through uploaded barcodes, report errors, mark as seen, check in
139
# Walk through uploaded barcodes, report errors, mark as seen, check in
Lines 222-227 if ( $op && ( !$uploadbarcodes || $compareinv2barcd )) { Link Here
222
    ( $inventorylist ) = GetItemsForInventory({
230
    ( $inventorylist ) = GetItemsForInventory({
223
      minlocation  => $minlocation,
231
      minlocation  => $minlocation,
224
      maxlocation  => $maxlocation,
232
      maxlocation  => $maxlocation,
233
      class_source => $class_source,
225
      location     => $location,
234
      location     => $location,
226
      ignoreissued => $ignoreissued,
235
      ignoreissued => $ignoreissued,
227
      datelastseen => $datelastseen,
236
      datelastseen => $datelastseen,
Lines 236-241 if( @scanned_items ) { Link Here
236
    ( $rightplacelist ) = GetItemsForInventory({
245
    ( $rightplacelist ) = GetItemsForInventory({
237
      minlocation  => $minlocation,
246
      minlocation  => $minlocation,
238
      maxlocation  => $maxlocation,
247
      maxlocation  => $maxlocation,
248
      class_source => $class_source,
239
      location     => $location,
249
      location     => $location,
240
      ignoreissued => undef,
250
      ignoreissued => undef,
241
      datelastseen => undef,
251
      datelastseen => undef,
242
- 

Return to bug 19915