|
Lines 2285-2379
sub searchResults {
Link Here
|
| 2285 |
return @newresults; |
2285 |
return @newresults; |
| 2286 |
} |
2286 |
} |
| 2287 |
|
2287 |
|
| 2288 |
=head2 SearchAcquisitions |
|
|
| 2289 |
Search for acquisitions |
| 2290 |
=cut |
| 2291 |
|
| 2292 |
sub SearchAcquisitions{ |
| 2293 |
my ($datebegin, $dateend, $itemtypes,$criteria, $orderby) = @_; |
| 2294 |
|
| 2295 |
my $dbh=C4::Context->dbh; |
| 2296 |
# Variable initialization |
| 2297 |
my $str=qq| |
| 2298 |
SELECT marcxml |
| 2299 |
FROM biblio |
| 2300 |
LEFT JOIN biblioitems ON biblioitems.biblionumber=biblio.biblionumber |
| 2301 |
LEFT JOIN items ON items.biblionumber=biblio.biblionumber |
| 2302 |
WHERE dateaccessioned BETWEEN ? AND ? |
| 2303 |
|; |
| 2304 |
|
| 2305 |
my (@params,@loopcriteria); |
| 2306 |
|
| 2307 |
push @params, $datebegin->output("iso"); |
| 2308 |
push @params, $dateend->output("iso"); |
| 2309 |
|
| 2310 |
if (scalar(@$itemtypes)>0 and $criteria ne "itemtype" ){ |
| 2311 |
if(C4::Context->preference("item-level_itypes")){ |
| 2312 |
$str .= "AND items.itype IN (?".( ',?' x scalar @$itemtypes - 1 ).") "; |
| 2313 |
}else{ |
| 2314 |
$str .= "AND biblioitems.itemtype IN (?".( ',?' x scalar @$itemtypes - 1 ).") "; |
| 2315 |
} |
| 2316 |
push @params, @$itemtypes; |
| 2317 |
} |
| 2318 |
|
| 2319 |
if ($criteria =~/itemtype/){ |
| 2320 |
if(C4::Context->preference("item-level_itypes")){ |
| 2321 |
$str .= "AND items.itype=? "; |
| 2322 |
}else{ |
| 2323 |
$str .= "AND biblioitems.itemtype=? "; |
| 2324 |
} |
| 2325 |
|
| 2326 |
if(scalar(@$itemtypes) == 0){ |
| 2327 |
my $itypes = GetItemTypes(); |
| 2328 |
for my $key (keys %$itypes){ |
| 2329 |
push @$itemtypes, $key; |
| 2330 |
} |
| 2331 |
} |
| 2332 |
|
| 2333 |
@loopcriteria= @$itemtypes; |
| 2334 |
}elsif ($criteria=~/itemcallnumber/){ |
| 2335 |
$str .= "AND (items.itemcallnumber LIKE CONCAT(?,'%') |
| 2336 |
OR items.itemcallnumber is NULL |
| 2337 |
OR items.itemcallnumber = '')"; |
| 2338 |
|
| 2339 |
@loopcriteria = ("AA".."ZZ", "") unless (scalar(@loopcriteria)>0); |
| 2340 |
}else { |
| 2341 |
$str .= "AND biblio.title LIKE CONCAT(?,'%') "; |
| 2342 |
@loopcriteria = ("A".."z") unless (scalar(@loopcriteria)>0); |
| 2343 |
} |
| 2344 |
|
| 2345 |
if ($orderby =~ /date_desc/){ |
| 2346 |
$str.=" ORDER BY dateaccessioned DESC"; |
| 2347 |
} else { |
| 2348 |
$str.=" ORDER BY title"; |
| 2349 |
} |
| 2350 |
|
| 2351 |
my $qdataacquisitions=$dbh->prepare($str); |
| 2352 |
|
| 2353 |
my @loopacquisitions; |
| 2354 |
foreach my $value(@loopcriteria){ |
| 2355 |
push @params,$value; |
| 2356 |
my %cell; |
| 2357 |
$cell{"title"}=$value; |
| 2358 |
$cell{"titlecode"}=$value; |
| 2359 |
|
| 2360 |
eval{$qdataacquisitions->execute(@params);}; |
| 2361 |
|
| 2362 |
if ($@){ warn "recentacquisitions Error :$@";} |
| 2363 |
else { |
| 2364 |
my @loopdata; |
| 2365 |
while (my $data=$qdataacquisitions->fetchrow_hashref){ |
| 2366 |
push @loopdata, {"summary"=>GetBiblioSummary( $data->{'marcxml'} ) }; |
| 2367 |
} |
| 2368 |
$cell{"loopdata"}=\@loopdata; |
| 2369 |
} |
| 2370 |
push @loopacquisitions,\%cell if (scalar(@{$cell{loopdata}})>0); |
| 2371 |
pop @params; |
| 2372 |
} |
| 2373 |
$qdataacquisitions->finish; |
| 2374 |
return \@loopacquisitions; |
| 2375 |
} |
| 2376 |
|
| 2377 |
=head2 enabled_staff_search_views |
2288 |
=head2 enabled_staff_search_views |
| 2378 |
|
2289 |
|
| 2379 |
%hash = enabled_staff_search_views() |
2290 |
%hash = enabled_staff_search_views() |
| 2380 |
- |
|
|