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

(-)a/installer/data/mysql/atomicupdate/bug_11622.sql (+7 lines)
Line 0 Link Here
1
INSERT IGNORE INTO systempreferences (variable, value, options, explanation, type ) VALUES
2
( 'EnablePayPalOpacPayments',  '0', NULL ,  'Enables the ability to pay fees and fines from  the OPAC via PayPal',  'YesNo' ),
3
( 'PayPalChargeDescription',  'Koha fee payment', NULL ,  'This preference defines what the user will see the charge listed as in PayPal',  'Free' ),
4
( 'PayPalPwd',  '', NULL ,  'Your PayPal API password',  'Free' ),
5
( 'PayPalSandboxMode',  '1', NULL ,  'If enabled, the system will use PayPal''s sandbox server for testing, rather than the production server.',  'YesNo' ),
6
( 'PayPalSignature',  '', NULL ,  'Your PayPal API signature',  'Free' ),
7
( 'PayPalUser',  '', NULL ,  'Your PayPal API username ( email address )',  'Free' );
(-)a/installer/data/mysql/sysprefs.sql (+6 lines)
Lines 338-343 INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` Link Here
338
('PatronSelfRegistrationExpireTemporaryAccountsDelay','0',NULL,'If PatronSelfRegistrationDefaultCategory is enabled, this system preference controls how long a patron can have a temporary status before the account is deleted automatically. It is an integer value representing a number of days to wait before deleting a temporary patron account. Setting it to 0 disables the deleting of temporary accounts.','Integer'),
338
('PatronSelfRegistrationExpireTemporaryAccountsDelay','0',NULL,'If PatronSelfRegistrationDefaultCategory is enabled, this system preference controls how long a patron can have a temporary status before the account is deleted automatically. It is an integer value representing a number of days to wait before deleting a temporary patron account. Setting it to 0 disables the deleting of temporary accounts.','Integer'),
339
('PatronSelfRegistrationVerifyByEmail','0',NULL,'If enabled, any patron attempting to register themselves via the OPAC will be required to verify themselves via email to activate his or her account.','YesNo'),
339
('PatronSelfRegistrationVerifyByEmail','0',NULL,'If enabled, any patron attempting to register themselves via the OPAC will be required to verify themselves via email to activate his or her account.','YesNo'),
340
('PatronsPerPage','20','20','Number of Patrons Per Page displayed by default','Integer'),
340
('PatronsPerPage','20','20','Number of Patrons Per Page displayed by default','Integer'),
341
('EnablePayPalOpacPayments',  '0', NULL ,  'Enables the ability to pay fees and fines from  the OPAC via PayPal',  'YesNo' ),
342
('PayPalChargeDescription',  'Koha fee payment', NULL ,  'This preference defines what the user will see the charge listed as in PayPal',  'Free'),
343
('PayPalPwd',  '', NULL ,  'Your PayPal API password',  'Free'),
344
('PayPalSandboxMode',  '1', NULL ,  'If enabled, the system will use PayPal''s sandbox server for testing, rather than the production server.',  'YesNo'),
345
('PayPalSignature',  '', NULL ,  'Your PayPal API signature',  'Free'),
346
('PayPalUser',  '', NULL ,  'Your PayPal API username ( email address )',  'Free'),
341
('Persona','0','','Use Mozilla Persona for login','YesNo'),
347
('Persona','0','','Use Mozilla Persona for login','YesNo'),
342
('PrefillItem','0','','When a new item is added, should it be prefilled with last created item values?','YesNo'),
348
('PrefillItem','0','','When a new item is added, should it be prefilled with last created item values?','YesNo'),
343
('previousIssuesDefaultSortOrder','asc','asc|desc','Specify the sort order of Previous Issues on the circulation page','Choice'),
349
('previousIssuesDefaultSortOrder','asc','asc|desc','Specify the sort order of Previous Issues on the circulation page','Choice'),
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref (+30 lines)
Lines 683-685 OPAC: Link Here
683
                subtype: Subtypes
683
                subtype: Subtypes
684
                sorting: Sorting
684
                sorting: Sorting
685
                location: Location and availability
685
                location: Location and availability
686
    Payments:
687
        -
688
            - pref: EnablePayPalOpacPayments
689
              default: 1
690
              choices:
691
                  yes: Allow
692
                  no: "Don't allow"
693
            - "patrons to make payments from the OPAC via PayPal in"
694
            - pref: PayPalSandboxMode 
695
              default: 1
696
              choices:
697
                  yes: "Sandbox"
698
                  no: "Production"
699
            - "mode."
700
        -
701
            - "The email address to recieve PayPal payments is "
702
            - pref: PayPalUser
703
              class: long
704
        -
705
            - "The password for the PayPal account to recieve payments is "
706
            - pref: PayPalPwd
707
              class: long
708
        -
709
            - "The signature for the PayPal account to recieve payments is "
710
            - pref: PayPalSignature
711
              class: long
712
        -
713
            - "The patron should see the charge description as "
714
            - pref: PayPalChargeDescription 
715
              class: long
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-account-pay-return.tt (+52 lines)
Line 0 Link Here
1
[% INCLUDE 'doc-head-open.inc' %][% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › Your payment
2
[% INCLUDE 'doc-head-close.inc' %]
3
[% BLOCK cssinclude %][% END %]
4
</head>
5
6
<body id="opac-account-pay-return" class="scrollto">
7
[% INCLUDE 'masthead.inc' %]
8
9
<div class="main">
10
    <ul class="breadcrumb">
11
        <li><a href="/cgi-bin/koha/opac-main.pl">Home</a> <span class="divider">&rsaquo;</span></li>
12
        <li><a href="/cgi-bin/koha/opac-user.pl">[% borrower.firstname %] [% borrower.surname %]</a> <span class="divider">&rsaquo;</span></li>
13
        <li><a href="#">Your payment</a></li>
14
    </ul>
15
16
    <div class="container-fluid">
17
        <div class="row-fluid">
18
            <div class="span2">
19
                <div id="navigation">
20
                    [% INCLUDE 'navigation.inc' IsPatronPage=1 %]
21
                </div>
22
            </div>
23
            <div class="span10">
24
                <div id="useraccount" class="maincontent">
25
                    [% IF error %]
26
                        <div id="error" class="dialog alert">
27
                            <p><strong>Error:</strong> there was an problem processing your payment</p>
28
29
                            [% IF error == "PAYPAL_UNABLE_TO_CONNECT" %]
30
                                <p>Unable to connect to PayPal.</p>
31
                                <p>Please try again later.</p>
32
                            [% ELSIF error == "PAYPAL_ERROR_PROCESSING" %]
33
                                <p>Unable to verify payment.</p>
34
                                <p>Please contact the library to verify your payment.</p>
35
                            [% END %]
36
                        </div>
37
                    [% ELSIF credit %]
38
                        <div class="dialog message">
39
                            <p><strong>Payment applied:</strong> your payment of [% amount %] has been applied to your account</p>
40
                        </div>
41
                    [% END %]
42
43
                    <a href="/cgi-bin/koha/opac-account.pl">Return to fine details</a>
44
                </div> <!-- / #useraccount -->
45
            </div> <!-- / .span10 -->
46
        </div> <!-- / .row-fluid -->
47
    </div> <!-- / .container-fluid -->
48
</div> <!-- / .main -->
49
50
[% INCLUDE 'opac-bottom.inc' %]
51
52
[% BLOCK jsinclude %][% END %]
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-account.tt (-2 / +67 lines)
Lines 1-5 Link Here
1
[% USE Koha %]
1
[% USE Koha %]
2
[% USE KohaDates %]
2
[% USE KohaDates %]
3
[% SET ENABLE_OPAC_PAYMENTS = Koha.Preference('EnablePayPalOpacPayments') %]
3
4
4
[% INCLUDE 'doc-head-open.inc' %]
5
[% INCLUDE 'doc-head-open.inc' %]
5
<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog &rsaquo; Your fines and charges</title>
6
<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog &rsaquo; Your fines and charges</title>
Lines 26-37 Link Here
26
            </div>
27
            </div>
27
            <div class="span10">
28
            <div class="span10">
28
                <div id="useraccount" class="maincontent">
29
                <div id="useraccount" class="maincontent">
30
31
                    [% IF message %]
32
                        <div class="alert alert-info">
33
                            [% IF message == 'valid_payment' %]
34
                                <p>Your payment of $[% message_value %] has been processed sucessfully!</p>
35
                            [% ELSIF message == 'duplicate_payment' %]
36
                                <p>A payment with the transaction id <i>[% message_value %]</i> has already been posted to an account.</p>
37
                                <p>Please contact a librarian for details.</p>
38
                            [% ELSIF message == 'invalid_payment' %]
39
                                <p>The transaction id <i>[% message_value %]</i> for this payment is invalid.</p>
40
                                <p>Please contact a librarian for details.</p>
41
                            [% END %]
42
                        </div>
43
                    [% END %]
44
29
                    <h3>Fines and charges</h3>
45
                    <h3>Fines and charges</h3>
30
46
31
                    [% IF ( ACCOUNT_LINES ) %]
47
                    [% IF ( ACCOUNT_LINES ) %]
48
                        <form method="post" action="opac-account-pay.pl" class="form-horizontal">
32
                        <table class="table table-bordered table-striped">
49
                        <table class="table table-bordered table-striped">
33
                            <thead>
50
                            <thead>
34
                                <tr>
51
                                <tr>
52
                                    [% IF ENABLE_OPAC_PAYMENTS %]<th>&nbsp;</th>[% END %]
35
                                    <th>Date</th>
53
                                    <th>Date</th>
36
                                    <th>Description</th>
54
                                    <th>Description</th>
37
                                    <th>Fine amount</th>
55
                                    <th>Fine amount</th>
Lines 41-47 Link Here
41
59
42
                            <tfoot>
60
                            <tfoot>
43
                            <tr>
61
                            <tr>
44
                                <th class="sum" colspan="3">Total due</th>
62
                                [%- IF ENABLE_OPAC_PAYMENTS -%]
63
                                    [%- SET COLSPAN = 4 -%]
64
                                [%- ELSE -%]
65
                                    [%- SET COLSPAN = 3 -%]
66
                                [%- END -%]
67
                                <th class="sum" colspan="[% COLSPAN %]">Total due</th>
45
                                <td class="sum">[% total %]</td>
68
                                <td class="sum">[% total %]</td>
46
                            </tr>
69
                            </tr>
47
                            </tfoot>
70
                            </tfoot>
Lines 49-54 Link Here
49
                            <tbody>
72
                            <tbody>
50
                                [% FOREACH ACCOUNT_LINE IN ACCOUNT_LINES %]
73
                                [% FOREACH ACCOUNT_LINE IN ACCOUNT_LINES %]
51
                                    [% IF ( ACCOUNT_LINE.odd ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
74
                                    [% IF ( ACCOUNT_LINE.odd ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
75
                                        [% IF ENABLE_OPAC_PAYMENTS %]
76
                                            <td>
77
                                                [% IF ACCOUNT_LINE.amountoutstanding > 0 %]
78
                                                    <input name="accountline" type="checkbox" class="checkbox-pay" id="checkbox-pay-[% ACCOUNT_LINE.accountlines_id %]" value="[% ACCOUNT_LINE.accountlines_id %]">
79
                                                [% END %]
80
                                            </td>
81
                                        [% END %]
52
                                        <td>[% ACCOUNT_LINE.date | $KohaDates %]</td>
82
                                        <td>[% ACCOUNT_LINE.date | $KohaDates %]</td>
53
                                        <td>
83
                                        <td>
54
                                            [% SWITCH ACCOUNT_LINE.accounttype %]
84
                                            [% SWITCH ACCOUNT_LINE.accounttype %]
Lines 82-87 Link Here
82
                            </tbody>
112
                            </tbody>
83
113
84
                        </table>
114
                        </table>
115
116
                            [% IF ENABLE_OPAC_PAYMENTS %]
117
                                <fieldset>
118
                                    <legend>Pay selected fines and charges</legend>
119
                                        <span class="help-block"><h3>Payment method</h3></span>
120
                                        <div class="control-group">
121
                                            <label class="radio">
122
                                                <input type="radio" name="payment_method" id="payment_method-paypal" value="paypal" checked="checked">
123
                                                <!-- PayPal Logo --><a href="https://www.paypal.com/webapps/mpp/paypal-popup" title="How PayPal Works" onclick="javascript:window.open('https://www.paypal.com/webapps/mpp/paypal-popup','WIPaypal','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=1060, height=700'); return false;"><img src="https://www.paypalobjects.com/webstatic/mktg/logo/AM_SbyPP_mc_vs_dc_ae.jpg" border="0" alt="PayPal Acceptance Mark"></a><!-- PayPal Logo -->
124
                                            </label>
125
                                        </div>
126
                                        <!-- look to the future
127
                                        <div class="control-group">
128
                                            <label class="radio">
129
                                                <input type="radio" name="payment_method" id="payment_method-paypal" value="paypal" checked="checked">
130
                                                PayPal
131
                                            </label>
132
                                        </div>
133
                                        -->
134
135
                                        <div class="control-group">
136
                                            <input type="hidden" id="payment-amount" name="payment_amount" value="0" />
137
                                            <button id="submit-pay" type="submit" class="btn" disabled="disabled">Make payment</button>
138
                                        </div>
139
                                </fieldset>
140
                            [% END %]
141
                        </form>
85
                    [% ELSE %]
142
                    [% ELSE %]
86
                        <h4>You have no fines or charges</h4>
143
                        <h4>You have no fines or charges</h4>
87
                    [% END %]
144
                    [% END %]
Lines 92-95 Link Here
92
</div> <!-- / .main -->
149
</div> <!-- / .main -->
93
150
94
[% INCLUDE 'opac-bottom.inc' %]
151
[% INCLUDE 'opac-bottom.inc' %]
95
[% BLOCK jsinclude %][% END %]
152
[% BLOCK jsinclude %]
153
<script type="text/javascript">
154
$( document ).ready(function() {
155
    $('.checkbox-pay').change( function() {
156
        $("#submit-pay").prop('disabled', ! $('.checkbox-pay:checked').length );
157
    });
158
});
159
</script>
160
[% END %]
(-)a/opac/opac-account-pay-paypal-return.pl (+111 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# Copyright Katipo Communications 2002
4
# Copyright Biblibre 2007,2010
5
#
6
# This file is part of Koha.
7
#
8
# Koha is free software; you can redistribute it and/or modify it under the
9
# terms of the GNU General Public License as published by the Free Software
10
# Foundation; either version 3 of the License, or (at your option) any later
11
# version.
12
#
13
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
14
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
16
#
17
# You should have received a copy of the GNU General Public License along
18
# with Koha; if not, write to the Free Software Foundation, Inc.,
19
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20
21
use strict;
22
use warnings;
23
use utf8;
24
25
use CGI;
26
use HTTP::Request::Common;
27
use LWP::UserAgent;
28
use URL::Encode qw(url_params_mixed);
29
30
use C4::Auth;
31
use C4::Output;
32
use C4::Accounts;
33
use C4::Members;
34
use Koha::Database;
35
36
my $cgi = new CGI;
37
38
unless ( C4::Context->preference('EnablePayPalOpacPayments') ) {
39
    print $cgi->redirect("/cgi-bin/koha/errors/404.pl");
40
    exit;
41
}
42
43
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
44
    {
45
        template_name   => "opac-account-pay-return.tt",
46
        query           => $cgi,
47
        type            => "opac",
48
        authnotrequired => 0,
49
        flagsrequired   => { borrow => 1 },
50
        debug           => 1,
51
    }
52
);
53
54
my $token    = $cgi->param('token');
55
my $payer_id = $cgi->param('PayerID');
56
my $amount   = $cgi->param('amount');
57
my @accountlines = $cgi->param('accountlines');
58
59
my $ua = LWP::UserAgent->new;
60
61
my $url =
62
  C4::Context->preference('PayPalSandboxMode')
63
  ? 'https://api-3t.sandbox.paypal.com/nvp'
64
  : 'https://api-3t.paypal.com/nvp';
65
66
my $nvp_params = {
67
    'USER'      => C4::Context->preference('PayPalUser'),
68
    'PWD'       => C4::Context->preference('PayPalPwd'),
69
    'SIGNATURE' => C4::Context->preference('PayPalSignature'),
70
71
    # API Version and Operation
72
    'METHOD'  => 'DoExpressCheckoutPayment',
73
    'VERSION' => '82.0',
74
75
    # API specifics for DoExpressCheckout
76
    'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale',
77
    'PAYERID'                        => $payer_id,
78
    'TOKEN'                          => $token,
79
    'PAYMENTREQUEST_0_AMT'           => $amount,
80
};
81
82
my $response = $ua->request( POST $url, $nvp_params );
83
84
if ( $response->is_success ) {
85
    my $params = url_params_mixed( $response->decoded_content );
86
87
    if ( $params->{ACK} eq "Success" ) {
88
        $amount = $params->{PAYMENTINFO_0_AMT};
89
        $template->param( amount => $amount );
90
91
        my $accountlines_rs = Koha::Database->new()->schema()->resultset('Accountline');
92
        foreach my $accountlines_id ( @accountlines ) {
93
            my $accountline = $accountlines_rs->find( $accountlines_id );
94
            makepayment( $accountlines_id, $borrowernumber, undef, $accountline->amountoutstanding, undef, undef, 'PayPal' );
95
        }
96
    }
97
    else {
98
        $template->param( error => "PAYPAL_ERROR_PROCESSING" );
99
    }
100
101
}
102
else {
103
    $template->param( error => "PAYPAL_UNABLE_TO_CONNECT" );
104
}
105
106
$template->param(
107
    borrower    => GetMemberDetails($borrowernumber),
108
    accountview => 1
109
);
110
111
output_html_with_http_headers( $cgi, $cookie, $template->output );
(-)a/opac/opac-account-pay.pl (+129 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# Copyright Katipo Communications 2002
4
# Copyright Biblibre 2007,2010
5
#
6
# This file is part of Koha.
7
#
8
# Koha is free software; you can redistribute it and/or modify it under the
9
# terms of the GNU General Public License as published by the Free Software
10
# Foundation; either version 3 of the License, or (at your option) any later
11
# version.
12
#
13
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
14
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
16
#
17
# You should have received a copy of the GNU General Public License along
18
# with Koha; if not, write to the Free Software Foundation, Inc.,
19
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20
21
use utf8;
22
23
use Modern::Perl;
24
25
use CGI;
26
use HTTP::Request::Common;
27
use LWP::UserAgent;
28
use URL::Encode qw(url_encode url_params_mixed);
29
use URI;
30
31
use C4::Auth;
32
use C4::Output;
33
use C4::Context;
34
use Koha::Database;
35
36
my $cgi = new CGI;
37
38
unless ( C4::Context->preference('EnablePayPalOpacPayments') ) {
39
    print $cgi->redirect("/cgi-bin/koha/errors/404.pl");
40
    exit;
41
}
42
43
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
44
    {
45
        template_name   => "opac-account-pay-return.tt",
46
        query           => $cgi,
47
        type            => "opac",
48
        authnotrequired => 0,
49
        flagsrequired   => { borrow => 1 },
50
        debug           => 1,
51
    }
52
);
53
54
my $payment_method = $cgi->param('payment_method');
55
my @accountlines = $cgi->param('accountline');
56
57
my $amount_to_pay =
58
  Koha::Database->new()->schema()->resultset('Accountline')->search( { accountlines_id => { -in => \@accountlines } } )
59
  ->get_column('amountoutstanding')->sum();
60
$amount_to_pay = sprintf( "%.2f", $amount_to_pay );
61
62
my $error = 0;
63
if ( $payment_method eq 'paypal' ) {
64
    my $ua = LWP::UserAgent->new;
65
66
    my $amount = url_encode($amount_to_pay);
67
68
    my $url =
69
      C4::Context->preference('PayPalSandboxMode')
70
      ? 'https://api-3t.sandbox.paypal.com/nvp'
71
      : 'https://api-3t.paypal.com/nvp';
72
73
    my $opac_base_url = C4::Context->preference('OPACBaseURL');
74
75
    my $return_url = URI->new( $opac_base_url . "/cgi-bin/koha/opac-account-pay-paypal-return.pl" );
76
    $return_url->query_form( { amount => $amount, accountlines => \@accountlines } );
77
78
    my $cancel_url = URI->new( $opac_base_url . "/cgi-bin/koha/opac-account.pl" );
79
80
    my $nvp_params = {
81
        'USER'      => C4::Context->preference('PayPalUser'),
82
        'PWD'       => C4::Context->preference('PayPalPwd'),
83
        'SIGNATURE' => C4::Context->preference('PayPalSignature'),
84
85
        # API Version and Operation
86
        'METHOD'  => 'SetExpressCheckout',
87
        'VERSION' => '82.0',
88
89
        # API specifics for SetExpressCheckout
90
        'NOSHIPPING'                            => 1,
91
        'REQCONFIRMSHIPPING'                    => 0,
92
        'ALLOWNOTE'                             => 0,
93
        'BRANDNAME'                             => C4::Context->preference('LibraryName'),
94
        'CANCELURL'                             => $cancel_url->as_string(),
95
        'RETURNURL'                             => $return_url->as_string(),
96
        'PAYMENTREQUEST_0_AMT'                  => $amount_to_pay,
97
        'PAYMENTREQUEST_0_PAYMENTACTION'        => 'Sale',
98
        'PAYMENTREQUEST_0_ALLOWEDPAYMENTMETHOD' => 'InstantPaymentOnly',
99
        'PAYMENTREQUEST_0_DESC'                 => C4::Context->preference('PayPalChargeDescription'),
100
    };
101
102
    my $response = $ua->request( POST $url, $nvp_params );
103
104
    if ( $response->is_success ) {
105
        my $params = url_params_mixed( $response->decoded_content );
106
107
        if ( $params->{ACK} eq "Success" ) {
108
            my $token = $params->{TOKEN};
109
110
            my $redirect_url =
111
              C4::Context->preference('PayPalSandboxMode')
112
              ? "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token="
113
              : "https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=";
114
            print $cgi->redirect( $redirect_url . $token );
115
116
        }
117
        else {
118
            $template->param( error => "PAYPAL_ERROR_PROCESSING" );
119
            $error = 1;
120
        }
121
122
    }
123
    else {
124
        $template->param( error => "PAYPAL_UNABLE_TO_CONNECT" );
125
        $error = 1;
126
    }
127
}
128
129
output_html_with_http_headers( $cgi, $cookie, $template->output ) if $error;
(-)a/opac/opac-account.pl (-5 / +5 lines)
Lines 22-28 Link Here
22
use strict;
22
use strict;
23
use CGI qw ( -utf8 );
23
use CGI qw ( -utf8 );
24
use C4::Members;
24
use C4::Members;
25
use C4::Circulation;
26
use C4::Auth;
25
use C4::Auth;
27
use C4::Output;
26
use C4::Output;
28
use warnings;
27
use warnings;
Lines 68-77 foreach my $row (@$accts) { Link Here
68
    $num++;
67
    $num++;
69
}
68
}
70
69
71
$template->param (
70
$template->param(
72
    ACCOUNT_LINES => $accts,
71
    ACCOUNT_LINES => $accts,
73
    total => sprintf( "%.2f", $total ),
72
    total         => sprintf( "%.2f", $total ),
74
	accountview => 1
73
    accountview   => 1,
74
    message       => $query->param('message') || q{},
75
    message_value => $query->param('message_value') || q{},
75
);
76
);
76
77
77
output_html_with_http_headers $query, $cookie, $template->output;
78
output_html_with_http_headers $query, $cookie, $template->output;
78
- 

Return to bug 11622