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

(-)a/Koha/Template/Plugin/Notices.pm (+39 lines)
Line 0 Link Here
1
package Koha::Template::Plugin::Notices;
2
3
# Copyright ByWater Solutions 2023
4
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it
8
# under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 3 of the License, or
10
# (at your option) any later version.
11
#
12
# Koha is distributed in the hope that it will be useful, but
13
# WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
# GNU General Public License for more details.
16
#
17
# You should have received a copy of the GNU General Public License
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
20
use Modern::Perl;
21
22
use Template::Plugin;
23
use base qw( Template::Plugin );
24
25
use C4::Koha;
26
use C4::Context;
27
use Koha::Notice::Templates;
28
29
sub GetTemplates {
30
    my ( $self, $module ) = @_;
31
    my $params = {};
32
    $params->{module} = $module if $module;
33
34
    my @letters = Koha::Notice::Templates->search($params)->as_list;
35
36
    return \@letters;
37
}
38
39
1;
(-)a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss (-2 / +1 lines)
Lines 2528-2535 td.bundle { Link Here
2528
    }
2528
    }
2529
}
2529
}
2530
2530
2531
#printclearscreen,
2531
.printclearscreen {
2532
#printclearscreenq {
2533
    position: absolute;
2532
    position: absolute;
2534
    right: 43px;
2533
    right: 43px;
2535
    top: 0;
2534
    top: 0;
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/members-toolbar.inc (-4 / +9 lines)
Lines 2-7 Link Here
2
[% USE Koha %]
2
[% USE Koha %]
3
[% USE Branches %]
3
[% USE Branches %]
4
[% USE Categories %]
4
[% USE Categories %]
5
[% USE Notices %]
5
[% USE AuthorisedValues %]
6
[% USE AuthorisedValues %]
6
[% USE scalar %]
7
[% USE scalar %]
7
<div id="toolbar" class="btn-toolbar">
8
<div id="toolbar" class="btn-toolbar">
Lines 21-36 Link Here
21
    <div class="btn-group">
22
    <div class="btn-group">
22
        <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-print"></i> Print <span class="caret"></span></button>
23
        <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-print"></i> Print <span class="caret"></span></button>
23
            <ul class="dropdown-menu">
24
            <ul class="dropdown-menu">
24
                <li><a id="printsummary" href="#">Print summary</a></li>
25
                <li><a class="printslip" data-code="printsummary" href="#">Print summary</a></li>
25
                <li><a id="printslip" href="#">Print slip</a></li>
26
                <li><a class="printslip" data-code="issueslip" href="#">Print slip</a></li>
26
                <li><a id="printquickslip" href="#">Print quick slip</a></li>
27
                <li><a class="printslip" data-code="issueqslip" href="#">Print quick slip</a></li>
27
                [% IF patron.account_balance != 0 %]
28
                [% IF patron.account_balance != 0 %]
28
                <li><a id="printfineslip" target="_blank" href="/cgi-bin/koha/members/printnotice.pl?notice=ACCOUNTS_SUMMARY&borrowernumber=[% patron.borrowernumber | uri %]">Print account balance</a></li>
29
                <li><a id="printfineslip" target="_blank" href="/cgi-bin/koha/members/printnotice.pl?notice=ACCOUNTS_SUMMARY&borrowernumber=[% patron.borrowernumber | uri %]">Print account balance</a></li>
29
                [% END %]
30
                [% END %]
30
                [% IF patron.has_overdues %]
31
                [% IF patron.has_overdues %]
31
                    <li><a id="print_overdues" href="#">Print overdues</a></li>
32
                    <li><a id="print_overdues" href="#">Print overdues</a></li>
32
                [% END %]
33
                [% END %]
33
                <li><a id="printcheckinslip" href="#">Print checkin slip</a></li>
34
                <li><a class="printslip" data-code="checkinslip" href="#">Print checkin slip</a></li>
35
		[% FOREACH notice IN Notices.GetTemplates( 'patron_slip' ) %]
36
                     <li><a class="printslip" data-code="[% notice.code %]" href="#">Print [% notice.name %] slip</a></li>
37
		[% END %]
38
34
            </ul>
39
            </ul>
35
    </div>
40
    </div>
36
    [% END %]
41
    [% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt (-2 / +2 lines)
Lines 682-691 Link Here
682
682
683
                                        [% IF Koha.Preference('DisplayClearScreenButton') == 'issueslip' %]
683
                                        [% IF Koha.Preference('DisplayClearScreenButton') == 'issueslip' %]
684
                                            <span id="clearscreen"><a href="/cgi-bin/koha/circ/circulation.pl" title="Clear screen">x</a></span>
684
                                            <span id="clearscreen"><a href="/cgi-bin/koha/circ/circulation.pl" title="Clear screen">x</a></span>
685
                                            <span id="printclearscreen"><a href="#" title="Print slip and clear screen"><i class="fa fa-print"></i></a></span>
685
                                            <span class="printslip printclearscreen" data-clear="true" data-code="issueslip"><a href="#" title="Print slip and clear screen"><i class="fa fa-print"></i></a></span>
686
                                        [% ELSIF Koha.Preference('DisplayClearScreenButton') == 'issueqslip' %]
686
                                        [% ELSIF Koha.Preference('DisplayClearScreenButton') == 'issueqslip' %]
687
                                            <span id="clearscreen"><a href="/cgi-bin/koha/circ/circulation.pl" title="Clear screen">x</a></span>
687
                                            <span id="clearscreen"><a href="/cgi-bin/koha/circ/circulation.pl" title="Clear screen">x</a></span>
688
                                            <span id="printclearscreenq"><a href="#" title="Print quick slip and clear screen"><i class="fa fa-print"></i></a></span>
688
                                            <span class="printslip printclearscreen" data-clear="true" data-code="issueqslip"><a href="#" title="Print quick slip and clear screen"><i class="fa fa-print"></i></a></span>
689
                                        [% END %]
689
                                        [% END %]
690
690
691
                                        [% IF (forceallow) %]<input type="hidden" name="forceallow" value="1">[% END %]
691
                                        [% IF (forceallow) %]<input type="hidden" name="forceallow" value="1">[% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/letter.tt (+7 lines)
Lines 168-173 Link Here
168
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=ill">Interlibrary loans</a></li>
168
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=ill">Interlibrary loans</a></li>
169
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=orderacquisition">Order acquisition</a></li>
169
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=orderacquisition">Order acquisition</a></li>
170
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=members">Patrons</a></li>
170
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=members">Patrons</a></li>
171
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=patron_slip">Patrons toolbar (slip)</a></li>
171
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=preservation">Preservation</a></li>
172
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=preservation">Preservation</a></li>
172
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=serial">Serials (new issue)</a></li>
173
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=serial">Serials (new issue)</a></li>
173
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=suggestions">Suggestions</a></li>
174
                                <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;module=suggestions">Suggestions</a></li>
Lines 227-232 Link Here
227
                                                    [% CASE 'reserves' %]<span>Holds</span>
228
                                                    [% CASE 'reserves' %]<span>Holds</span>
228
                                                    [% CASE 'ill' %]<span>Interlibrary loans</span>
229
                                                    [% CASE 'ill' %]<span>Interlibrary loans</span>
229
                                                    [% CASE 'members' %]<span>Patrons</span>
230
                                                    [% CASE 'members' %]<span>Patrons</span>
231
                                                    [% CASE 'patron_slip' %]<span>Patrons toolbar (slip)</span>
230
                                                    [% CASE 'preservation' %]<span>Preservation</span>
232
                                                    [% CASE 'preservation' %]<span>Preservation</span>
231
                                                    [% CASE 'serial' %]<span>Serials (new issue)</span>
233
                                                    [% CASE 'serial' %]<span>Serials (new issue)</span>
232
                                                    [% CASE 'suggestions' %]<span>Suggestions</span>
234
                                                    [% CASE 'suggestions' %]<span>Suggestions</span>
Lines 393-398 Link Here
393
                                        [% ELSE %]
395
                                        [% ELSE %]
394
                                            <option value="members">Patrons</option>
396
                                            <option value="members">Patrons</option>
395
                                        [% END %]
397
                                        [% END %]
398
                                        [% IF ( module == "patron_slip" ) %]
399
                                            <option value="patron_slip" selected="selected">Patron toolbar (slip)</option>
400
                                        [% ELSE %]
401
                                            <option value="patron_slip">Patron toolbar (slip)</option>
402
                                        [% END %]
396
                                        [% IF ( module == "preservation" ) %]
403
                                        [% IF ( module == "preservation" ) %]
397
                                            <option value="preservation" selected="selected">Preservation</option>
404
                                            <option value="preservation" selected="selected">Preservation</option>
398
                                        [% ELSE %]
405
                                        [% ELSE %]
(-)a/koha-tmpl/intranet-tmpl/prog/js/members-menu.js (-33 / +15 lines)
Lines 45-82 $(document).ready(function(){ Link Here
45
        $(".btn-group").removeClass("open");
45
        $(".btn-group").removeClass("open");
46
        return false;
46
        return false;
47
    });
47
    });
48
    $("#printsummary").click(function(){
49
        printx_window("page");
50
        $(".btn-group").removeClass("open");
51
        return false;
52
    });
53
    $("#printslip").click(function(){
54
        printx_window("slip");
55
        $(".btn-group").removeClass("open");
56
        return false;
57
    });
58
    $("#printquickslip").click(function(){
59
        printx_window("qslip");
60
        $(".btn-group").removeClass("open");
61
        return false;
62
    });
63
    $("#print_overdues").click(function(){
48
    $("#print_overdues").click(function(){
64
        window.open("/cgi-bin/koha/members/print_overdues.pl?borrowernumber=" + borrowernumber, "printwindow");
49
        window.open("/cgi-bin/koha/members/print_overdues.pl?borrowernumber=" + borrowernumber, "printwindow");
65
        $(".btn-group").removeClass("open");
50
        $(".btn-group").removeClass("open");
66
        return false;
51
        return false;
67
    });
52
    });
68
    $("#printcheckinslip").click(function(){
53
    $(".printslip").click(function(){
69
        printx_window("checkinslip");
54
	let slip_code = $(this).data('code');
70
        $(".btn-group").removeClass("open");
55
	let clear_screen = $(this).data('clear');
71
        return false;
56
	if( slip_code == 'printsummary' ){
72
    });
57
            window.open("/cgi-bin/koha/members/summary-print.pl?borrowernumber=" + borrowernumber, "printwindow");
73
    $("#printclearscreen").click(function(){
58
	} else {
74
        printx_window("slip");
59
            window.open("/cgi-bin/koha/members/printslip.pl?borrowernumber=" + borrowernumber + "&amp;print=" + slip_code, "printwindow");
75
        window.location.replace("/cgi-bin/koha/circ/circulation.pl");
60
	}
76
    });
61
	if( clear_screen ){
77
    $("#printclearscreenq").click(function(){
62
            window.location.replace("/cgi-bin/koha/circ/circulation.pl");
78
        printx_window("qslip");
63
	} else {
79
        window.location.replace("/cgi-bin/koha/circ/circulation.pl");
64
            $(".btn-group").removeClass("open");
65
            return false;
66
	}
80
    });
67
    });
81
    $("#searchtohold").click(function(){
68
    $("#searchtohold").click(function(){
82
        searchToHold();
69
        searchToHold();
Lines 155-166 function confirm_reregistration() { Link Here
155
function export_barcodes() {
142
function export_barcodes() {
156
    window.open('/cgi-bin/koha/members/readingrec.pl?borrowernumber=' + borrowernumber + '&op=export_barcodes');
143
    window.open('/cgi-bin/koha/members/readingrec.pl?borrowernumber=' + borrowernumber + '&op=export_barcodes');
157
}
144
}
158
var slip_re = /slip/;
145
159
function printx_window(print_type) {
160
    var handler = print_type.match(slip_re) ? "printslip" : "summary-print";
161
    window.open("/cgi-bin/koha/members/" + handler + ".pl?borrowernumber=" + borrowernumber + "&print=" + print_type, "printwindow");
162
    return false;
163
}
164
function searchToHold(){
146
function searchToHold(){
165
    var date = new Date();
147
    var date = new Date();
166
    date.setTime(date.getTime() + (10 * 60 * 1000));
148
    date.setTime(date.getTime() + (10 * 60 * 1000));
(-)a/members/printslip.pl (-8 / +22 lines)
Lines 66-72 my $patron = Koha::Patrons->find( $borrowernumber ); Link Here
66
output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } );
66
output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } );
67
67
68
my $branch=C4::Context->userenv->{'branch'};
68
my $branch=C4::Context->userenv->{'branch'};
69
my ($slip, $is_html);
69
my ($letter, $slip, $is_html);
70
if ( $print eq 'checkinslip' ) {
70
if ( $print eq 'checkinslip' ) {
71
    my $checkinslip_branch = $session->param('branch') ? $session->param('branch') : $branch;
71
    my $checkinslip_branch = $session->param('branch') ? $session->param('branch') : $branch;
72
72
Lines 76-82 if ( $print eq 'checkinslip' ) { Link Here
76
        old_issues => \@issue_ids,
76
        old_issues => \@issue_ids,
77
    );
77
    );
78
78
79
    my $letter = C4::Letters::GetPreparedLetter(
79
    $letter = C4::Letters::GetPreparedLetter(
80
        module      => 'circulation',
80
        module      => 'circulation',
81
        letter_code => 'CHECKINSLIP',
81
        letter_code => 'CHECKINSLIP',
82
        branchcode  => $checkinslip_branch,
82
        branchcode  => $checkinslip_branch,
Lines 89-102 if ( $print eq 'checkinslip' ) { Link Here
89
        message_transport_type => 'print'
89
        message_transport_type => 'print'
90
    );
90
    );
91
91
92
    $slip    = $letter->{content};
92
} elsif ( $print eq 'issueslip' ){
93
    $is_html = $letter->{is_html};
93
    $letter = IssueSlip ($session->param('branch') || $branch, $borrowernumber, 0);
94
94
} elsif ( $print eq 'issueqslip' ){
95
} elsif (my $letter = IssueSlip ($session->param('branch') || $branch, $borrowernumber, $print eq "qslip")) {
95
    $letter = IssueSlip ($session->param('branch') || $branch, $borrowernumber, 1);
96
    $slip = $letter->{content};
96
} else {
97
    $is_html = $letter->{is_html};
97
    $letter = C4::Letters::GetPreparedLetter(
98
        module => 'patron_slip',
99
	letter_code => $print,
100
	branchcode => $branch,
101
	lang => $patron->lang,
102
	tables => {
103
	    branches => $branch,
104
	    borrowers => $borrowernumber
105
        },
106
        message_transport_type => 'print'
107
    );
98
}
108
}
99
109
110
$slip    = $letter->{content};
111
$is_html = $letter->{is_html};
112
113
100
$template->param(
114
$template->param(
101
    slip => $slip,
115
    slip => $slip,
102
    plain => !$is_html,
116
    plain => !$is_html,
(-)a/tools/letter.pl (-1 / +3 lines)
Lines 252-257 sub add_form { Link Here
252
    elsif ($module eq 'claimissues') {
252
    elsif ($module eq 'claimissues') {
253
        push @{$field_selection}, add_fields('aqbooksellers', 'serial', 'subscription', 'biblio', 'biblioitems');
253
        push @{$field_selection}, add_fields('aqbooksellers', 'serial', 'subscription', 'biblio', 'biblioitems');
254
    }
254
    }
255
    elsif ($module eq 'patron_slip') {
256
        push @{$field_selection}, add_fields('borrowers');
257
    }
255
    elsif ($module eq 'serial') {
258
    elsif ($module eq 'serial') {
256
        push @{$field_selection}, add_fields('branches', 'biblio', 'biblioitems', 'borrowers', 'subscription', 'serial');
259
        push @{$field_selection}, add_fields('branches', 'biblio', 'biblioitems', 'borrowers', 'subscription', 'serial');
257
    }
260
    }
258
- 

Return to bug 32986