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

(-)a/Koha/ILL/Backend/Standard.pm (-27 / +77 lines)
Lines 275-283 sub create { Link Here
275
        }
275
        }
276
276
277
        # Received completed details of form.  Validate and create request.
277
        # Received completed details of form.  Validate and create request.
278
        ## Validate
279
        my ( $brw_count, $brw ) =
280
            _validate_borrower( $other->{'cardnumber'} );
281
        my $result = {
278
        my $result = {
282
            cwd     => dirname(__FILE__),
279
            cwd     => dirname(__FILE__),
283
            status  => "",
280
            status  => "",
Lines 289-319 sub create { Link Here
289
            core    => $core_fields
286
            core    => $core_fields
290
        };
287
        };
291
        my $failed = 0;
288
        my $failed = 0;
292
        if ( !$other->{'type'} ) {
289
293
            $result->{status} = "missing_type";
290
        my $unauthenticated_request =
294
            $result->{value}  = $params;
291
            C4::Context->preference("ILLOpacUnauthenticatedRequest") && !$other->{'cardnumber'};
295
            $failed           = 1;
292
        if($unauthenticated_request){
296
        } elsif ( !$other->{'branchcode'} ) {
293
            ( $failed, $result ) = _validate_form_params( $other, $result, $params);
297
            $result->{status} = "missing_branch";
294
            if ( !_unauth_request_data_check($other) ) {
298
            $result->{value}  = $params;
295
                $result->{status} = "missing_unauth_data";
299
            $failed           = 1;
296
                $result->{value}  = $params;
300
        } elsif ( !Koha::Libraries->find( $other->{'branchcode'} ) ) {
297
                $failed           = 1;
301
            $result->{status} = "invalid_branch";
298
            }
302
            $result->{value}  = $params;
299
        }else{
303
            $failed           = 1;
300
            ( $failed, $result ) = _validate_form_params( $other, $result, $params );
304
        } elsif ( $brw_count == 0 ) {
301
305
            $result->{status} = "invalid_borrower";
302
            my ( $brw_count, $brw ) =
306
            $result->{value}  = $params;
303
                _validate_borrower( $other->{'cardnumber'} );
307
            $failed           = 1;
304
308
        } elsif ( $brw_count > 1 ) {
305
            if ( $brw_count == 0 ) {
309
306
                $result->{status} = "invalid_borrower";
310
            # We must select a specific borrower out of our options.
307
                $result->{value}  = $params;
311
            $params->{brw}   = $brw;
308
                $failed           = 1;
312
            $result->{value} = $params;
309
            } elsif ( $brw_count > 1 ) {
313
            $result->{stage} = "borrowers";
310
                # We must select a specific borrower out of our options.
314
            $result->{error} = 0;
311
                $params->{brw}   = $brw;
315
            $failed          = 1;
312
                $result->{value} = $params;
313
                $result->{stage} = "borrowers";
314
                $result->{error} = 0;
315
                $failed          = 1;
316
            }
316
        }
317
        }
318
317
        return $result if $failed;
319
        return $result if $failed;
318
320
319
        $self->add_request( { request => $params->{request}, other => $other } );
321
        $self->add_request( { request => $params->{request}, other => $other } );
Lines 1215-1220 sub _set_suppression { Link Here
1215
    return 1;
1217
    return 1;
1216
}
1218
}
1217
1219
1220
=head3 _unauth_request_data_check
1221
1222
    _unauth_request_data_check($other);
1223
1224
Checks if unauthenticated request data is present
1225
1226
=cut
1227
1228
sub _unauth_request_data_check {
1229
    my ($other) = @_;
1230
1231
    return 1 unless C4::Context->preference("ILLOpacUnauthenticatedRequest");
1232
1233
    return
1234
           $other->{unauthenticated_first_name}
1235
        && $other->{unauthenticated_last_name}
1236
        && $other->{unauthenticated_email};
1237
}
1238
1239
=head3 _validate_form_params
1240
1241
    _validate_form_params( $other, $result, $params );
1242
1243
Validate form parameters and return the validation result
1244
1245
=cut
1246
1247
sub _validate_form_params {
1248
    my ( $other, $result, $params ) = @_;
1249
1250
    my $failed = 0;
1251
    if ( !$other->{'type'} ) {
1252
        $result->{status} = "missing_type";
1253
        $result->{value}  = $params;
1254
        $failed           = 1;
1255
    } elsif ( !$other->{'branchcode'} ) {
1256
        $result->{status} = "missing_branch";
1257
        $result->{value}  = $params;
1258
        $failed           = 1;
1259
    } elsif ( !Koha::Libraries->find( $other->{'branchcode'} ) ) {
1260
        $result->{status} = "invalid_branch";
1261
        $result->{value}  = $params;
1262
        $failed           = 1;
1263
    }
1264
1265
    return ( $failed, $result );
1266
}
1267
1218
=head1 AUTHORS
1268
=head1 AUTHORS
1219
1269
1220
Alex Sassmannshausen <alex.sassmannshausen@ptfs-europe.com>
1270
Alex Sassmannshausen <alex.sassmannshausen@ptfs-europe.com>
(-)a/Koha/ILL/Backend/opac-includes/create.inc (-1 / +2 lines)
Lines 7-12 Link Here
7
<p><em>Please Note:</em> Mandatory field Identifier is missing.</p>
7
<p><em>Please Note:</em> Mandatory field Identifier is missing.</p>
8
[% ELSIF whole.status == 'missing_type' %]
8
[% ELSIF whole.status == 'missing_type' %]
9
<p><em>Please Note:</em> Type is a mandatory field.</p>
9
<p><em>Please Note:</em> Type is a mandatory field.</p>
10
[% ELSIF whole.status == 'missing_unauth_data' %]
11
<p><em>Please Note:</em> Patron data (first name, last name and e-mail) are mandatory fields.</p>
10
[% ELSIF whole.status == 'missing_branch' %]
12
[% ELSIF whole.status == 'missing_branch' %]
11
<p><em>Please Note:</em> Branch is a mandatory field.</p>
13
<p><em>Please Note:</em> Branch is a mandatory field.</p>
12
[% ELSIF whole.status == 'invalid_borrower' %]
14
[% ELSIF whole.status == 'invalid_borrower' %]
13
- 

Return to bug 36197