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

(-)a/C4/Reserves.pm (-2 / +22 lines)
Lines 22-27 package C4::Reserves; Link Here
22
22
23
use Modern::Perl;
23
use Modern::Perl;
24
24
25
use JSON qw( to_json );
26
25
use C4::Accounts;
27
use C4::Accounts;
26
use C4::Biblio      qw( GetMarcFromKohaField );
28
use C4::Biblio      qw( GetMarcFromKohaField );
27
use C4::Circulation qw( CheckIfIssuedToPatron GetAgeRestriction GetBranchItemRule );
29
use C4::Circulation qw( CheckIfIssuedToPatron GetAgeRestriction GetBranchItemRule );
Lines 193-198 sub AddReserve { Link Here
193
    my $non_priority           = $params->{non_priority};
195
    my $non_priority           = $params->{non_priority};
194
    my $item_group_id          = $params->{item_group_id};
196
    my $item_group_id          = $params->{item_group_id};
195
    my $hold_group_id          = $params->{hold_group_id};
197
    my $hold_group_id          = $params->{hold_group_id};
198
    my $confirmations          = $params->{confirmations};
199
    my $forced                 = $params->{forced};
196
200
197
    $resdate ||= dt_from_string;
201
    $resdate ||= dt_from_string;
198
202
Lines 263-270 sub AddReserve { Link Here
263
    # record patron activity
267
    # record patron activity
264
    $hold->patron->update_lastseen('hold');
268
    $hold->patron->update_lastseen('hold');
265
269
266
    logaction( 'HOLDS', 'CREATE', $hold->id, $hold )
270
    # Log the hold creation
267
        if C4::Context->preference('HoldsLog');
271
    if ( C4::Context->preference('HoldsLog') ) {
272
        my $info = $hold->id;
273
        if ( defined($confirmations) || defined($forced) ) {
274
            $info = to_json(
275
                {
276
                    hold          => $hold->id,
277
                    branchcode    => $hold->branchcode,
278
                    biblionumber  => $hold->biblionumber,
279
                    itemnumber    => $hold->itemnumber,
280
                    confirmations => $confirmations,
281
                    forced        => $forced
282
                },
283
                { pretty => 1, canonical => 1 }
284
            );
285
        }
286
        logaction( 'HOLDS', 'CREATE', $hold->id, $info );
287
    }
268
288
269
    my $reserve_id = $hold->id();
289
    my $reserve_id = $hold->id();
270
290
(-)a/Koha/REST/V1/Holds.pm (+7 lines)
Lines 191-196 sub add { Link Here
191
191
192
        my $priority = C4::Reserves::CalculatePriority($biblio_id);
192
        my $priority = C4::Reserves::CalculatePriority($biblio_id);
193
193
194
        # Build confirmations array for logging overrides
195
        my $confirmations = [];
196
        if ($override_all) {
197
            push @{$confirmations}, 'HOLD_POLICY_OVERRIDE';
198
        }
199
194
        my $hold_id = C4::Reserves::AddReserve(
200
        my $hold_id = C4::Reserves::AddReserve(
195
            {
201
            {
196
                branchcode       => $pickup_library_id,
202
                branchcode       => $pickup_library_id,
Lines 206-211 sub add { Link Here
206
                itemtype         => $item_type,
212
                itemtype         => $item_type,
207
                non_priority     => $non_priority,
213
                non_priority     => $non_priority,
208
                item_group_id    => $item_group_id,
214
                item_group_id    => $item_group_id,
215
                confirmations    => $confirmations,
209
            }
216
            }
210
        );
217
        );
211
218
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/action-logs.inc (+2 lines)
Lines 179-184 Link Here
179
179
180
[% BLOCK translate_log_override %]
180
[% BLOCK translate_log_override %]
181
    [% SWITCH override %]
181
    [% SWITCH override %]
182
    [% CASE 'HOLD_POLICY_OVERRIDE' %]
183
        <span>Hold policy override</span>
182
    [% CASE 'INVALID_DATE' %]
184
    [% CASE 'INVALID_DATE' %]
183
        <span>Invalid date confirmed</span>
185
        <span>Invalid date confirmed</span>
184
    [% CASE 'DEBT_GUARANTEES' %]
186
    [% CASE 'DEBT_GUARANTEES' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tt (+22 lines)
Lines 349-354 Link Here
349
                                                <div class="confirmed"> [% PROCESS translate_log_override override=confirmation %] </div>
349
                                                <div class="confirmed"> [% PROCESS translate_log_override override=confirmation %] </div>
350
                                            [% END %]
350
                                            [% END %]
351
                                        </div>
351
                                        </div>
352
                                    [% ELSIF ( loopro.module == 'HOLDS' && loopro.json_found ) %]
353
                                        <div class="loginfo" id="loginfo[% loopro.action_id | html %]">
354
                                            <div>
355
                                                <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% loopro.json.biblionumber | uri %]" title="Display holds for this record"
356
                                                    >Hold [% loopro.json.hold | html %] on biblio [% loopro.json.biblionumber | html %]</a
357
                                                >
358
                                                [% IF loopro.json.itemnumber %]
359
                                                    -
360
                                                    <a
361
                                                        href="/cgi-bin/koha/catalogue/moredetail.pl?itemnumber=[% loopro.json.itemnumber | uri %]&amp;biblionumber=[% loopro.json.biblionumber | uri %]#item[% loopro.json.itemnumber | uri %]"
362
                                                        title="Display detail for this item"
363
                                                        >Item [% loopro.json.itemnumber | html %]</a
364
                                                    >
365
                                                [% END %]
366
                                            </div>
367
                                            [% FOREACH force IN loopro.json.forced %]
368
                                                <div class="forced"> [% PROCESS translate_log_override override=force %] </div>
369
                                            [% END %]
370
                                            [% FOREACH confirmation IN loopro.json.confirmations %]
371
                                                <div class="confirmed"> [% PROCESS translate_log_override override=confirmation %] </div>
372
                                            [% END %]
373
                                        </div>
352
                                    [% ELSIF loopro.module == "SYSTEMPREFERENCE" || loopro.module == "REPORTS" || loopro.module == "NEWS" %]
374
                                    [% ELSIF loopro.module == "SYSTEMPREFERENCE" || loopro.module == "REPORTS" || loopro.module == "NEWS" %]
353
                                        <div class="loginfo" id="loginfo[% loopro.action_id | html %]">[% loopro.info | trim | html %]</div>
375
                                        <div class="loginfo" id="loginfo[% loopro.action_id | html %]">[% loopro.info | trim | html %]</div>
354
                                        <div class="compare_info" id="compare_info[% loopro.action_id | html %]">
376
                                        <div class="compare_info" id="compare_info[% loopro.action_id | html %]">
(-)a/reserve/request.pl (-29 lines)
Lines 40-46 use C4::Serials qw( CountSubscriptionFromBiblionumber ); Link Here
40
use C4::Circulation qw( _GetCircControlBranch GetBranchItemRule );
40
use C4::Circulation qw( _GetCircControlBranch GetBranchItemRule );
41
use Koha::DateUtils qw( dt_from_string );
41
use Koha::DateUtils qw( dt_from_string );
42
use C4::Search      qw( enabled_staff_search_views );
42
use C4::Search      qw( enabled_staff_search_views );
43
use C4::Log         qw( logaction );
44
43
45
use Koha::Biblios;
44
use Koha::Biblios;
46
use Koha::Checkouts;
45
use Koha::Checkouts;
Lines 624-656 if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold ) Link Here
624
                            $num_alreadyheld++;
623
                            $num_alreadyheld++;
625
                        }
624
                        }
626
625
627
                        my $borrower       = $patron;
628
                        my $borrowernumber = $patron->borrowernumber;
629
                        my $user           = C4::Context->userenv->{number};
630
                        my $branchcode     = C4::Context->userenv->{branch};
631
                        my $message        = "Override limitation of hold";
632
                        my @message        = ("Override limitation of hold");
633
                        my $barcode        = $item->{barcode};
634
635
                        my $infos = (
636
                            {
637
                                message        => \@message,
638
                                borrowernumber => $borrowernumber,
639
                                barcode        => $barcode,
640
                                manager_id     => $user,
641
                                branchcode     => $branchcode,
642
                            }
643
                        );
644
645
                        my $json_infos = JSON->new->utf8->pretty->encode($infos);
646
                        $json_infos =~ s/"/'/g;
647
648
                        logaction(
649
                            "HOLD", "ISSUE",
650
                            $borrower->{'borrowernumber'},
651
                            $json_infos,
652
                        ) if C4::Context->preference("IssueLog");
653
654
                        push( @available_itemtypes, $item->{itype} );
626
                        push( @available_itemtypes, $item->{itype} );
655
                    } else {
627
                    } else {
656
628
657
- 

Return to bug 40866