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

(-)a/circ/curbside_pickups.pl (-22 / +8 lines)
Lines 45-75 my ( $template, $loggedinuser, $cookie ) = get_template_and_user( Link Here
45
my $branchcode = C4::Context->userenv()->{'branch'};
45
my $branchcode = C4::Context->userenv()->{'branch'};
46
my $libraries = Koha::Libraries->search( {}, { order_by => ['branchname'] } );
46
my $libraries = Koha::Libraries->search( {}, { order_by => ['branchname'] } );
47
if ( $op eq 'find-patron' ) {
47
if ( $op eq 'find-patron' ) {
48
    my $cardnumber     = $input->param('cardnumber');
49
    my $borrowernumber = $input->param('borrowernumber');
48
    my $borrowernumber = $input->param('borrowernumber');
50
49
51
    my $patron =
50
    my $patron = Koha::Patrons->find($borrowernumber);
52
      $cardnumber
53
      ? Koha::Patrons->find( { cardnumber => $cardnumber } )
54
      : Koha::Patrons->find($borrowernumber);
55
51
56
    my $existing_curbside_pickups;
52
    my $existing_curbside_pickups = Koha::CurbsidePickups->search(
57
53
        {
58
    if ( $patron ){
54
            branchcode                => $branchcode,
59
        $existing_curbside_pickups = Koha::CurbsidePickups->search(
55
            borrowernumber            => $patron->id,
60
            {
56
            delivered_datetime        => undef,
61
                branchcode                => $branchcode,
57
        }
62
                borrowernumber            => $patron->id,
58
    )->filter_by_scheduled_today;
63
                delivered_datetime        => undef,
64
            }
65
        )->filter_by_scheduled_today;
66
    } else {
67
        push @messages, {
68
            type => 'error',
69
            code => 'no_patron_found',
70
            cardnumber => $cardnumber
71
        };
72
    }
73
59
74
    $tab = 'schedule-pickup';
60
    $tab = 'schedule-pickup';
75
    $template->param(
61
    $template->param(
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/curbside_pickups.tt (-16 / +16 lines)
Lines 107-114 Link Here
107
                            <span>There are no more pickups available for this slot. Please choose another one.</span>
107
                            <span>There are no more pickups available for this slot. Please choose another one.</span>
108
                        [% CASE 'cannot_checkout' %]
108
                        [% CASE 'cannot_checkout' %]
109
                            <span>Unable to check the items out to [% INCLUDE 'patron-title.inc' patron=m.patron %]</span>
109
                            <span>Unable to check the items out to [% INCLUDE 'patron-title.inc' patron=m.patron %]</span>
110
                        [% CASE 'no_patron_found' %]
111
                            <span>No patron found with cardnumber [% m.cardnumber | html %].</span>
112
                        [% CASE %]
110
                        [% CASE %]
113
                            <span>[% m.code | html %]</span>
111
                            <span>[% m.code | html %]</span>
114
                        [% END %]
112
                        [% END %]
Lines 427-446 Link Here
427
                                    [% patron.firstname | html %] [% patron.surname | html %] ([% patron.cardnumber | html %]) already has a scheduled pickup for this library.
425
                                    [% patron.firstname | html %] [% patron.surname | html %] ([% patron.cardnumber | html %]) already has a scheduled pickup for this library.
428
                                </div>
426
                                </div>
429
                            [% END %]
427
                            [% END %]
430
                            <form method="post" class="form-inline">
428
                            <div class="form-group">
431
                                <input type="hidden" name="op" value="find-patron"/>
429
                                <label class="sr-only" for="input-patron-cardnumber">Cardnumber</label>
432
                                <input type="hidden" name="tab" value="schedule-pickup"/>
430
                                <div class="input-group">
433
431
                                    <div class="input-group-addon">Search a patron</div>
434
                                <div class="form-group">
432
                                    <input autocomplete="off" id="find-patron" class="form-control" type="text" style="width:25%" class="noEnterSubmit" placeholder="Enter patron cardnumber or name"//>
435
                                    <label class="sr-only" for="input-patron-cardnumber">Cardnumber</label>
436
                                    <div class="input-group">
437
                                        <div class="input-group-addon">Card number</div>
438
                                        <input type="text" class="form-control" name="cardnumber" id="input-patron-cardnumber" placeholder="Enter patron cardnumber"/>
439
                                    </div>
440
                                </div>
433
                                </div>
441
434
                            </div>
442
                                <button type="submit" class="btn btn-default">Submit</button>
443
                            </form>
444
                        [% ELSE %]
435
                        [% ELSE %]
445
                            [% SET waiting_holds = patron.holds.search( found => 'W', branchcode => Branches.GetLoggedInBranchcode ) %]
436
                            [% SET waiting_holds = patron.holds.search( found => 'W', branchcode => Branches.GetLoggedInBranchcode ) %]
446
                            [% IF !policy.enable_waiting_holds_only || waiting_holds.count > 0 %]
437
                            [% IF !policy.enable_waiting_holds_only || waiting_holds.count > 0 %]
Lines 505-510 Link Here
505
    <script>dayjs.extend(window.dayjs_plugin_isSameOrAfter)</script>
496
    <script>dayjs.extend(window.dayjs_plugin_isSameOrAfter)</script>
506
    <script>dayjs.extend(window.dayjs_plugin_customParseFormat)</script>
497
    <script>dayjs.extend(window.dayjs_plugin_customParseFormat)</script>
507
    [% INCLUDE 'calendar.inc' %]
498
    [% INCLUDE 'calendar.inc' %]
499
    [% INCLUDE 'js-patron-format.inc' %]
508
    <script>
500
    <script>
509
        let pickups = [% To.json(curbside_pickups.unblessed) | $raw %];
501
        let pickups = [% To.json(curbside_pickups.unblessed) | $raw %];
510
        let policy = [% To.json(policy.unblessed) | $raw %];
502
        let policy = [% To.json(policy.unblessed) | $raw %];
Lines 636-641 Link Here
636
                }
628
                }
637
                return true;
629
                return true;
638
            });
630
            });
631
632
            if ( $("#find-patron").length ) {
633
                patron_autocomplete($("#find-patron"), { 'on-select-callback': function( event, ui ) {
634
                        window.location.href = "/cgi-bin/koha/circ/curbside_pickups.pl?op=find-patron&borrowernumber=" + ui.item.patron_id;
635
                        return false;
636
                    }
637
                });
638
            }
639
639
        });
640
        });
640
    </script>
641
    </script>
641
[% END %]
642
[% END %]
642
- 

Return to bug 30965