<td><input type="radio" name="Line" value="reservestatus" /></td>
<td><input type="radio" name="Column" value="reservestatus" checked="checked" /></td>
<td>
- <input type="checkbox" name="filter_reservestatus_or_1" value="1"> Asked</input>
- <input type="checkbox" name="filter_reservestatus_or_2" value="2"> Processing</input>
- <input type="checkbox" name="filter_reservestatus_or_3" value="3"> Waiting</input>
- <input type="checkbox" name="filter_reservestatus_or_4" value="4"> Satisfied</input>
- <input type="checkbox" name="filter_reservestatus_or_5" value="5"> Cancelled</input>
+ <input type="checkbox" name="filter_reservestatus_or_1" value="1" /> Asked
+ <input type="checkbox" name="filter_reservestatus_or_2" value="2" /> Processing
+ <input type="checkbox" name="filter_reservestatus_or_3" value="3" /> Waiting
+ <input type="checkbox" name="filter_reservestatus_or_4" value="4" /> Satisfied
+ <input type="checkbox" name="filter_reservestatus_or_5" value="5" /> Cancelled
</td>
</tr>
<tr class="highlight">
<td>Hold Date</td>
<td><input type="radio" name="Line" value="reservedate" /></td>
<td><input type="radio" name="Column" value="reservedate" /></td>
- <td><label for="reservedate_begin">From</label> <input type="text" size="10" id="filter_reservedate_begin" name="filter_reservedate_begin" />
+ <td><label for="filter_reservedate_begin">From</label> <input type="text" size="10" id="filter_reservedate_begin" name="filter_reservedate_begin" />
<img src="[% themelang %]/lib/calendar/cal.gif" alt="Show Calendar" border="0" id="openreservedateFrom" style="cursor: pointer;" />
<script type="text/javascript">
//<![CDATA[
<td><input type="radio" name="Column" value="items.itype" /></td>
<td><select name="filter_items.itype" id="itype">
<option value=""> </option>
- [% FOREACH itypeloo IN itypeloop %]
+ [% FOREACH itypeloo IN itemtypeloop %]
[% IF ( itypeloo.selected ) %]<option value="[% itypeloo.code %]" selected="selected">[% itypeloo.description %]</option>[% ELSE %]<option value="[% itypeloo.code %]">[% itypeloo.description %]</option>[% END %]
[% END %]
</select>
</tr>
<tr class="highlight">
<td>Holding Library</td>
- <td><input type="radio" name="Line" value="holdingbranch" /></td>
- <td><input type="radio" name="Column" value="holdingbranch" /></td>
- <td><select name="filter_holdingbranch" id="holdingbranch">
+ <td><input type="radio" name="Line" value="items.holdingbranch" /></td>
+ <td><input type="radio" name="Column" value="items.holdingbranch" /></td>
+ <td><select name="filter_items.holdingbranch" id="holdingbranch">
<option value=""> </option>
[% FOREACH branchloo IN branchloop %]
[% IF ( branchloo.selected ) %]<option value="[% branchloo.value %]" selected="selected">[% branchloo.branchname %]</option>[% ELSE %]<option value="[% branchloo.value %]">[% branchloo.branchname %]</option>[% END %]
</tr>
<tr>
<td>Home Library</td>
- <td><input type="radio" name="Line" value="homebranch" /></td>
- <td><input type="radio" name="Column" value="homebranch" /></td>
- <td><select name="filter_homebranch" id="homebranch">
+ <td><input type="radio" name="Line" value="items.homebranch" /></td>
+ <td><input type="radio" name="Column" value="items.homebranch" /></td>
+ <td><select name="filter_items.homebranch" id="homebranch">
<option value=""> </option>
[% FOREACH branchloo IN branchloop %]
[% IF ( branchloo.selected ) %]<option value="[% branchloo.value %]" selected="selected">[% branchloo.branchname %]</option>[% ELSE %]<option value="[% branchloo.value %]">[% branchloo.branchname %]</option>[% END %]
<td>Item Call Number</td>
<td></td>
<td></td>
- <td>From <input type="text" name="filter_itemcallnumber" size="10" /> (inclusive) to <input type="text" name="fiter_itemcallnumber" size="10" /> (exclusive) </td>
+ <td>From <input type="text" name="filter_items.itemcallnumber_begin" size="10" /> (inclusive) to <input type="text" name="filter_items.itemcallnumber_endex" size="10" /> (exclusive) </td>
</tr>
[% IF ( hassort1 ) %]
<tr><td>Patron sort1</td>
use strict;
+use warnings;
use CGI;
flagsrequired => {reports => '*'},
debug => 0,
});
-our $sep = $input->param("sep");
+our $sep = $input->param("sep") || '';
$sep = "\t" if ($sep eq 'tabulation');
$template->param(do_it => $do_it,
DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
$template->param(
categoryloop => $categoryloop,
itemtypeloop => \@itemtypeloop,
+ locationloop => \@locations,
ccodeloop => \@ccodes,
branchloop => GetBranchesLoop(C4::Context->userenv->{'branch'}),
hassort1=> $hassort1,
# Filters
# Checking filters
#
- my @loopfilter;
- foreach my $filter (keys %$filters_hashref){
- $$filters_hashref{$filter} =~s/\*/%/;
- $$filters_hashref{$filter} = format_date_in_iso($$filters_hashref{$_}) if ($_=~/date/);
- }
- #display
- @loopfilter= map{{ crit=>$_ ,filter=>($_=~/date/?
- format_date($$filters_hashref{$_})
- :$$filters_hashref{$_}
- )
- }
- } sort keys %$filters_hashref;
+ my @loopfilter;
+ foreach my $filter ( keys %$filters_hashref ) {
+ $filters_hashref->{$filter} =~ s/\*/%/;
+ $filters_hashref->{$filter} =
+ format_date_in_iso( $filters_hashref->{$filter} )
+ if ( $filter =~ /date/ );
+ }
+
+ #display
+ @loopfilter = map {
+ {
+ crit => $_,
+ filter => (
+ $_ =~ /date/
+ ? format_date( $filters_hashref->{$_} )
+ : $filters_hashref->{$_}
+ )
+ }
+ } sort keys %$filters_hashref;
if ($linefield =~ /^biblio\./ or $colfield =~ /^biblio\./ or any {$_=~/biblio/}keys %$filters_hashref);
$strcalc .= "LEFT JOIN items ON reserves.itemnumber=items.itemnumber "
if ($linefield =~ /^items\./ or $colfield =~ /^items\./ or any {$_=~/items/}keys %$filters_hashref);
-
+
my @sqlparams;
my @sqlorparams;
my @sqlor;
my $string;
my $stringfield=$filter;
$stringfield=~s/\_[a-z_]+$//;
- warn $stringfield;
if ($filter=~/ /){
$string=$stringfield;
}
push @sqlor, qq{( }.changeifreservestatus($filter)." = ? ) ";
push @sqlorparams, $$filters_hashref{$filter};
}
+ elsif ($filter=~/_endex$/){
+ $string = " $stringfield < ? ";
+ }
elsif ($filter=~/_end$/){
$string = " $stringfield <= ? ";
}
$dbcalc->execute(@sqlparams,@sqlparams);
my ($emptycol,$emptyrow);
my $data = $dbcalc->fetchall_hashref([qw(line col)]);
- my @loopline;
my %cols_hash;
foreach my $row (keys %$data){
push @loopline, $row;
for my $col ( sort keys %cols_hash ) {
my $total = 0;
foreach my $row (@loopline) {
- $total += $$data{$row}{$col}{calculation};
+ $total += $data->{$row}{$col}{calculation} if $data->{$row}{$col}{calculation};
$debug and warn "value added ".$$data{$row}{$col}{calculation}. "for line ".$row;
}
push @loopfooter, {'totalcol' => $total};
push @loopcol, {'coltitle' => $col,
coltitle_display=>display_value($colfield,$col)};
}
-
# the header of the table
$globalline{loopfilter}=\@loopfilter;
# the core of the table
($string eq "NULL") and return 'zzEMPTY';
return $string; # else return the valid value
}
-sub display_value{
- my ($crit,$value)=@_;
- my $display_value =
- ($crit =~ /ccode/ ) ? $ccodes->{$value} :
- ($crit =~ /location/) ? $locations->{$value} :
- ($crit =~ /itemtype/) ? $itemtypes->{$value}->{description} :
- ($crit =~ /branch/) ? GetBranchName($value):
- ($crit =~ /reservestatus/) ? reservestatushuman($value):
- $value; # default fallback
- if ($crit =~ /(sort1|sort2)/) {
- $display_value=GetAuthorisedValues("B$_",$value);
- } elsif ($crit =~ /category/) {
- my $element=any{$value eq $_->{categorycode}} @$categoryloop;
- $display_value=$$element{description};
- }
- return $display_value;
+sub display_value {
+ my ( $crit, $value ) = @_;
+ my $display_value =
+ ( $crit =~ /ccode/ ) ? $ccodes->{$value}
+ : ( $crit =~ /location/ ) ? $locations->{$value}
+ : ( $crit =~ /itemtype/ ) ? $itemtypes->{$value}->{description}
+ : ( $crit =~ /branch/ ) ? GetBranchName($value)
+ : ( $crit =~ /reservestatus/ ) ? reservestatushuman($value)
+ : $value; # default fallback
+ if ($crit =~ /sort1/) {
+ foreach (@$Bsort1) {
+ ($value eq $_->{authorised_value}) or next;
+ $display_value = $_->{lib} and last;
+ }
+ }
+ elsif ($crit =~ /sort2/) {
+ foreach (@$Bsort2) {
+ ($value eq $_->{authorised_value}) or next;
+ $display_value = $_->{lib} and last;
+ }
+ }
+ elsif ( $crit =~ /category/ ) {
+ foreach (@$categoryloop) {
+ ( $value eq $_->{categorycode} ) or next;
+ $display_value = $_->{description} and last;
+ }
+ }
+ return $display_value;
}
sub reservestatushuman{
my ($val)=@_;