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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt (-8 / +8 lines)
Lines 169-175 function checkMultiHold() { Link Here
169
    <h1>Confirm Holds</h1>
169
    <h1>Confirm Holds</h1>
170
  [% END %]
170
  [% END %]
171
171
172
  [% UNLESS ( cardnumber ) %]
172
  [% UNLESS ( borrowernumber ) %]
173
    [% IF ( messageborrower ) %]
173
    [% IF ( messageborrower ) %]
174
      <div class="dialog alert"><h3>Patron Not Found</h3><p>No patron with this name, Please, try another</p> </div>
174
      <div class="dialog alert"><h3>Patron Not Found</h3><p>No patron with this name, Please, try another</p> </div>
175
    [% END %]
175
    [% END %]
Lines 243-249 function checkMultiHold() { Link Here
243
            <form action="placerequest.pl" method="post" onsubmit="return checkMultiHold();" name="form">
243
            <form action="placerequest.pl" method="post" onsubmit="return checkMultiHold();" name="form">
244
        [% END %]
244
        [% END %]
245
245
246
        <input type="hidden" size="10" name="member" value="[% cardnumber %]" />
246
        <input type="hidden" size="10" name="borrowernumber" value="[% borrowernumber %]" />
247
        <input type="hidden" name="type" value="str8" />
247
        <input type="hidden" name="type" value="str8" />
248
248
249
        [% IF ( multi_hold ) %]
249
        [% IF ( multi_hold ) %]
Lines 262-268 function checkMultiHold() { Link Here
262
        [% END %]
262
        [% END %]
263
263
264
       <ol> <li><span class="label">Patron:</span>
264
       <ol> <li><span class="label">Patron:</span>
265
            [% IF ( cardnumber ) %]
265
            [% IF ( borrowernumber ) %]
266
                <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] ([% cardnumber %])</a>
266
                <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] ([% cardnumber %])</a>
267
            [% ELSE %]
267
            [% ELSE %]
268
                Not defined yet
268
                Not defined yet
Lines 358-364 function checkMultiHold() { Link Here
358
</ol>
358
</ol>
359
   [% UNLESS ( multi_hold ) %]
359
   [% UNLESS ( multi_hold ) %]
360
        <fieldset class="action">
360
        <fieldset class="action">
361
            [% IF ( cardnumber ) %]
361
            [% IF ( borrowernumber ) %]
362
                [% IF ( override_required ) %]
362
                [% IF ( override_required ) %]
363
                    <input type="submit" class="warning" value="Place Hold" />
363
                    <input type="submit" class="warning" value="Place Hold" />
364
                [% ELSIF ( none_available ) %]
364
                [% ELSIF ( none_available ) %]
Lines 465-471 function checkMultiHold() { Link Here
465
        </table>
465
        </table>
466
    [% IF ( bibitemloo.hiddencount ) %]
466
    [% IF ( bibitemloo.hiddencount ) %]
467
        <form>
467
        <form>
468
        <p class="hiddencount"><a href="request.pl?biblionumber=[% bibitemloo.biblionumber %]&cardnumber=[% bibitemloo.cardnumber %]&showallitems=1">Show all items ([% bibitemloo.hiddencount %] hidden)</a></p>
468
        <p class="hiddencount"><a href="request.pl?biblionumber=[% bibitemloo.biblionumber %]&borrowernumber=[% bibitemloo.borrowernumber %]&showallitems=1">Show all items ([% bibitemloo.hiddencount %] hidden)</a></p>
469
        </form>
469
        </form>
470
    [% END %] <!-- hiddencount -->
470
    [% END %] <!-- hiddencount -->
471
    [% END %] <!-- bibitemloop -->
471
    [% END %] <!-- bibitemloop -->
Lines 538-544 function checkMultiHold() { Link Here
538
  [% END %]<!-- /multi_hold -->
538
  [% END %]<!-- /multi_hold -->
539
539
540
    <fieldset class="action">
540
    <fieldset class="action">
541
        [% IF ( cardnumber ) %]
541
        [% IF ( borrowernumber ) %]
542
            [% IF ( override_required ) %]
542
            [% IF ( override_required ) %]
543
                <input type="submit" class="warning" value="Place Hold" />
543
                <input type="submit" class="warning" value="Place Hold" />
544
            [% ELSIF ( none_available ) %]
544
            [% ELSIF ( none_available ) %]
Lines 552-558 function checkMultiHold() { Link Here
552
	</fieldset>
552
	</fieldset>
553
[% END %]
553
[% END %]
554
554
555
[% UNLESS ( cardnumber ) %]
555
[% UNLESS ( borrowernumber ) %]
556
[% IF ( reserveloop ) %]
556
[% IF ( reserveloop ) %]
557
<form name="T[% time %]" action="modrequest.pl" method="post">
557
<form name="T[% time %]" action="modrequest.pl" method="post">
558
  [% IF ( multi_hold ) %]
558
  [% IF ( multi_hold ) %]
Lines 631-637 function checkMultiHold() { Link Here
631
        <td>
631
        <td>
632
          <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% reserveloo.borrowernumber %]" >
632
          <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% reserveloo.borrowernumber %]" >
633
	  [% IF ( reserveloo.hidename ) %]
633
	  [% IF ( reserveloo.hidename ) %]
634
	      [% reserveloo.cardnumber %]
634
	      [% reserveloo.cardnumber (reserveloo.borrowernumber) %]
635
	  [% ELSE %]
635
	  [% ELSE %]
636
	      [% reserveloo.firstname %] [% reserveloo.surname %]
636
	      [% reserveloo.firstname %] [% reserveloo.surname %]
637
	  [% END %]
637
	  [% END %]
(-)a/reserve/placerequest.pl (-10 / +12 lines)
Lines 44-57 my @bibitems=$input->param('biblioitem'); Link Here
44
#       and probably remove the reserveconstraint table as well, I never could fill anything in this table.
44
#       and probably remove the reserveconstraint table as well, I never could fill anything in this table.
45
my @reqbib=$input->param('reqbib'); 
45
my @reqbib=$input->param('reqbib'); 
46
my $biblionumber=$input->param('biblionumber');
46
my $biblionumber=$input->param('biblionumber');
47
my $borrower=$input->param('member');
47
my $borrowernumber=$input->param('borrowernumber');
48
my $notes=$input->param('notes');
48
my $notes=$input->param('notes');
49
my $branch=$input->param('pickup');
49
my $branch=$input->param('pickup');
50
my $startdate=$input->param('reserve_date') || '';
50
my $startdate=$input->param('reserve_date') || '';
51
my @rank=$input->param('rank-request');
51
my @rank=$input->param('rank-request');
52
my $type=$input->param('type');
52
my $type=$input->param('type');
53
my $title=$input->param('title');
53
my $title=$input->param('title');
54
my $borrowernumber=GetMember('cardnumber'=>$borrower);
54
my $borrower=GetMember('borrowernumber'=>$borrowernumber);
55
my $checkitem=$input->param('checkitem');
55
my $checkitem=$input->param('checkitem');
56
my $expirationdate = $input->param('expiration_date');
56
my $expirationdate = $input->param('expiration_date');
57
57
Lines 81-87 if ($checkitem ne ''){ Link Here
81
    }
81
    }
82
}
82
}
83
83
84
if ($type eq 'str8' && $borrowernumber ne ''){
84
if ($type eq 'str8' && $borrower){
85
85
86
    foreach my $biblionumber (keys %bibinfos) {
86
    foreach my $biblionumber (keys %bibinfos) {
87
        my $count=@bibitems;
87
        my $count=@bibitems;
Lines 100-117 if ($type eq 'str8' && $borrowernumber ne ''){ Link Here
100
100
101
        if ($multi_hold) {
101
        if ($multi_hold) {
102
            my $bibinfo = $bibinfos{$biblionumber};
102
            my $bibinfo = $bibinfos{$biblionumber};
103
            AddReserve($branch,$borrowernumber->{'borrowernumber'},$biblionumber,'a',[$biblionumber],
103
            AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,'a',[$biblionumber],
104
                       $bibinfo->{rank},$startdate,$expirationdate,$notes,$bibinfo->{title},$checkitem,$found);
104
                       $bibinfo->{rank},$startdate,$expirationdate,$notes,$bibinfo->{title},$checkitem,$found);
105
        } else {
105
        } else {
106
            if ($input->param('request') eq 'any'){
106
            if ($input->param('request') eq 'any'){
107
                # place a request on 1st available
107
                # place a request on 1st available
108
                AddReserve($branch,$borrowernumber->{'borrowernumber'},$biblionumber,'a',\@realbi,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem,$found);
108
                AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,'a',\@realbi,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem,$found);
109
            } elsif ($reqbib[0] ne ''){
109
            } elsif ($reqbib[0] ne ''){
110
                # FIXME : elsif probably never reached, (see top of the script)
110
                # FIXME : elsif probably never reached, (see top of the script)
111
                # place a request on a given item
111
                # place a request on a given item
112
                AddReserve($branch,$borrowernumber->{'borrowernumber'},$biblionumber,'o',\@reqbib,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem, $found);
112
                AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,'o',\@reqbib,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem, $found);
113
            } else {
113
            } else {
114
                AddReserve($branch,$borrowernumber->{'borrowernumber'},$biblionumber,'a',\@realbi,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem, $found);
114
                AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,'a',\@realbi,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem, $found);
115
            }
115
            }
116
        }
116
        }
117
    }
117
    }
Lines 124-131 if ($type eq 'str8' && $borrowernumber ne ''){ Link Here
124
    } else {
124
    } else {
125
        print $input->redirect("request.pl?biblionumber=$biblionumber");
125
        print $input->redirect("request.pl?biblionumber=$biblionumber");
126
    }
126
    }
127
} elsif ($borrowernumber eq ''){
127
} elsif ($borrower eq ''){
128
	print $input->header();
128
	print $input->header();
129
	print "Invalid card number please try again";
129
	print "Invalid borrower number please try again";
130
	print $input->Dump;
130
# Not sure that Dump() does HTML escaping. Use firebug or something to trace
131
# instead.
132
#	print $input->Dump;
131
}
133
}
(-)a/reserve/request.pl (-39 / +39 lines)
Lines 85-91 my $CGIbranch = CGI::scrolling_list( Link Here
85
my $findborrower = $input->param('findborrower');
85
my $findborrower = $input->param('findborrower');
86
$findborrower = '' unless defined $findborrower;
86
$findborrower = '' unless defined $findborrower;
87
$findborrower =~ s|,| |g;
87
$findborrower =~ s|,| |g;
88
my $cardnumber = $input->param('cardnumber') || '';
88
my $borrowernumber_hold = $input->param('borrowernumber') || '';
89
my $borrowerslist;
89
my $borrowerslist;
90
my $messageborrower;
90
my $messageborrower;
91
my $warnings;
91
my $warnings;
Lines 117-137 if ($findborrower) { Link Here
117
117
118
    my @borrowers = @$borrowers;
118
    my @borrowers = @$borrowers;
119
119
120
    if ( $#borrowers == -1 ) {
120
    if ( !@borrowers ) {
121
        $input->param( 'findborrower', '' );
122
        $messageborrower = "'$findborrower'";
121
        $messageborrower = "'$findborrower'";
123
    }
122
    }
124
    elsif ( $#borrowers == 0 ) {
123
    elsif ( @borrowers == 1 ) {
125
        $input->param( 'cardnumber', $borrowers[0]->{'cardnumber'} );
124
        $borrowernumber_hold = $borrowers[0]->{'borrowernumber'};
126
        $cardnumber = $borrowers[0]->{'cardnumber'};
127
    }
125
    }
128
    else {
126
    else {
129
        $borrowerslist = \@borrowers;
127
        $borrowerslist = \@borrowers;
130
    }
128
    }
131
}
129
}
132
130
133
if ($cardnumber) {
131
if ($borrowernumber_hold) {
134
    my $borrowerinfo = GetMemberDetails( 0, $cardnumber );
132
    my $borrowerinfo = GetMemberDetails( $borrowernumber_hold );
135
    my $diffbranch;
133
    my $diffbranch;
136
    my @getreservloop;
134
    my @getreservloop;
137
    my $count_reserv = 0;
135
    my $count_reserv = 0;
Lines 143-149 if ($cardnumber) { Link Here
143
    my $number_reserves =
141
    my $number_reserves =
144
      GetReserveCount( $borrowerinfo->{'borrowernumber'} );
142
      GetReserveCount( $borrowerinfo->{'borrowernumber'} );
145
143
146
    if ( C4::Context->preference('maxreserves') && $number_reserves >= C4::Context->preference('maxreserves') ) {
144
    if ( C4::Context->preference('maxreserves') && ($number_reserves >= C4::Context->preference('maxreserves')) ) {
147
		$warnings = 1;
145
		$warnings = 1;
148
        $maxreserves = 1;
146
        $maxreserves = 1;
149
    }
147
    }
Lines 164-187 if ($cardnumber) { Link Here
164
    }
162
    }
165
163
166
    $template->param(
164
    $template->param(
167
                borrowernumber => $borrowerinfo->{'borrowernumber'},
165
                borrowernumber      => $borrowerinfo->{'borrowernumber'},
168
                borrowersurname   => $borrowerinfo->{'surname'},
166
                borrowersurname     => $borrowerinfo->{'surname'},
169
                borrowerfirstname => $borrowerinfo->{'firstname'},
167
                borrowerfirstname   => $borrowerinfo->{'firstname'},
170
                borrowerstreetaddress => $borrowerinfo->{'address'},
168
                borrowerstreetaddress   => $borrowerinfo->{'address'},
171
                borrowercity => $borrowerinfo->{'city'},
169
                borrowercity        => $borrowerinfo->{'city'},
172
                borrowerphone => $borrowerinfo->{'phone'},
170
                borrowerphone       => $borrowerinfo->{'phone'},
173
                borrowermobile => $borrowerinfo->{'mobile'},
171
                borrowermobile      => $borrowerinfo->{'mobile'},
174
                borrowerfax => $borrowerinfo->{'fax'},
172
                borrowerfax         => $borrowerinfo->{'fax'},
175
                borrowerphonepro => $borrowerinfo->{'phonepro'},
173
                borrowerphonepro    => $borrowerinfo->{'phonepro'},
176
                borroweremail => $borrowerinfo->{'email'},
174
                borroweremail       => $borrowerinfo->{'email'},
177
                borroweremailpro => $borrowerinfo->{'emailpro'},
175
                borroweremailpro    => $borrowerinfo->{'emailpro'},
178
                borrowercategory => $borrowerinfo->{'category'},
176
                borrowercategory    => $borrowerinfo->{'category'},
179
                borrowerreservs   => $count_reserv,
177
                borrowerreservs     => $count_reserv,
180
                maxreserves       => $maxreserves,
178
                cardnumber          => $borrowerinfo->{'cardnumber'},
181
                expiry            => $expiry,
179
                maxreserves         => $maxreserves,
182
                diffbranch        => $diffbranch,
180
                expiry              => $expiry,
183
				messages => $messages,
181
                diffbranch          => $diffbranch,
184
				warnings => $warnings
182
				messages            => $messages,
183
				warnings            => $warnings
185
    );
184
    );
186
}
185
}
187
186
Lines 200-217 if ($borrowerslist) { Link Here
200
        } @{$borrowerslist}
199
        } @{$borrowerslist}
201
      )
200
      )
202
    {
201
    {
203
        push @values, $borrower->{cardnumber};
202
        push @values, $borrower->{borrowernumber};
204
203
205
        $labels{ $borrower->{cardnumber} } = sprintf(
204
        $labels{ $borrower->{borrowernumber} } = sprintf(
206
            '%s, %s ... (%s - %s) ... %s',
205
            '%s, %s ... (%s - %s) ... %s',
207
            $borrower->{surname},    $borrower->{firstname},
206
            $borrower->{surname} ||'',    $borrower->{firstname} || '',
208
            $borrower->{cardnumber}, $borrower->{categorycode},
207
            $borrower->{cardnumber} || '', $borrower->{categorycode} || '',
209
            $borrower->{address},
208
            $borrower->{address} || '',
210
        );
209
        );
211
    }
210
    }
212
211
213
    $CGIselectborrower = CGI::scrolling_list(
212
    $CGIselectborrower = CGI::scrolling_list(
214
        -name     => 'cardnumber',
213
        -name     => 'borrowernumber',
215
        -values   => \@values,
214
        -values   => \@values,
216
        -labels   => \%labels,
215
        -labels   => \%labels,
217
        -size     => 7,
216
        -size     => 7,
Lines 220-226 if ($borrowerslist) { Link Here
220
}
219
}
221
220
222
# FIXME launch another time GetMemberDetails perhaps until
221
# FIXME launch another time GetMemberDetails perhaps until
223
my $borrowerinfo = GetMemberDetails( 0, $cardnumber );
222
my $borrowerinfo = GetMemberDetails( $borrowernumber_hold );
224
223
225
my @biblionumbers = ();
224
my @biblionumbers = ();
226
my $biblionumbers = $input->param('biblionumbers');
225
my $biblionumbers = $input->param('biblionumbers');
Lines 238-244 foreach my $biblionumber (@biblionumbers) { Link Here
238
237
239
    my $dat          = GetBiblioData($biblionumber);
238
    my $dat          = GetBiblioData($biblionumber);
240
239
241
    if ( not CanBookBeReserved($borrowerinfo->{borrowernumber}, $biblionumber) ) {
240
    unless ( CanBookBeReserved($borrowerinfo->{borrowernumber}, $biblionumber) ) {
242
 		$warnings = 1;
241
 		$warnings = 1;
243
        $maxreserves = 1;
242
        $maxreserves = 1;
244
    }
243
    }
Lines 429-439 foreach my $biblionumber (@biblionumbers) { Link Here
429
            $item->{'holdallowed'} = $branchitemrule->{'holdallowed'};
428
            $item->{'holdallowed'} = $branchitemrule->{'holdallowed'};
430
            
429
            
431
            if ( $branchitemrule->{'holdallowed'} == 0 ||
430
            if ( $branchitemrule->{'holdallowed'} == 0 ||
432
                 ( $branchitemrule->{'holdallowed'} == 1 && $borrowerinfo->{'branchcode'} ne $item->{'homebranch'} ) ) {
431
                 ( $branchitemrule->{'holdallowed'} == 1 && 
432
                     $borrowerinfo->{'branchcode'} ne $item->{'homebranch'} ) ) {
433
                $policy_holdallowed = 0;
433
                $policy_holdallowed = 0;
434
            }
434
            }
435
            
435
            
436
            if (IsAvailableForItemLevelRequest($itemnumber) and not $item->{cantreserve} and CanItemBeReserved($borrowerinfo->{borrowernumber}, $itemnumber) ) {
436
            if (IsAvailableForItemLevelRequest($itemnumber) and 
437
            	not $item->{cantreserve} and 
438
            	CanItemBeReserved($borrowerinfo->{borrowernumber}, $itemnumber) ) {
437
                if ( $policy_holdallowed ) {
439
                if ( $policy_holdallowed ) {
438
                    $item->{available} = 1;
440
                    $item->{available} = 1;
439
                    $num_available++;
441
                    $num_available++;
Lines 564-570 foreach my $biblionumber (@biblionumbers) { Link Here
564
                     date              => $date,
566
                     date              => $date,
565
                     biblionumber      => $biblionumber,
567
                     biblionumber      => $biblionumber,
566
                     findborrower      => $findborrower,
568
                     findborrower      => $findborrower,
567
                     cardnumber        => $cardnumber,
568
                     title             => $dat->{title},
569
                     title             => $dat->{title},
569
                     author            => $dat->{author},
570
                     author            => $dat->{author},
570
                     holdsview => 1,
571
                     holdsview => 1,
571
- 

Return to bug 6526