Bugzilla – Attachment 116663 Details for
Bug 26734
Convert accounts (monetary) notices to use GetPreparedLetter
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 26734: Ratify account slip printing
Bug-26734-Ratify-account-slip-printing.patch (text/plain), 12.33 KB, created by
Martin Renvoize (ashimema)
on 2021-02-10 12:56:35 UTC
(
hide
)
Description:
Bug 26734: Ratify account slip printing
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2021-02-10 12:56:35 UTC
Size:
12.33 KB
patch
obsolete
>From 9715cdec705b81d2372eacbe33ed9dba8d509c47 Mon Sep 17 00:00:00 2001 >From: Martin Renvoize <martin.renvoize@ptfs-europe.com> >Date: Thu, 16 Jul 2020 09:42:20 +0100 >Subject: [PATCH] Bug 26734: Ratify account slip printing > >This patch simplifies the members/print*.pl controller scripts to only >pass around the minimum required data for the templates. > >Test plan >Slips should continue to print as they did prior to the patch >1/ Add a manual invoice and manual debit to a patrons account >2/ Print a slip for the manual invoice, compare to a printed slip prior >to the patch. >3/ Print a slip for the manual debit, compare to a printed slip prior to >the patch. >4/ Signoff. > >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> >--- > .../prog/en/modules/members/boraccount.tt | 6 +- > members/printfeercpt.pl | 100 ++++++------------ > members/printinvoice.pl | 78 +++++--------- > pos/printreceipt.pl | 25 +++-- > 4 files changed, 76 insertions(+), 133 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt >index b23267b970..9ebdd4d619 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt >@@ -89,9 +89,9 @@ > [% IF account.amountoutstanding <= 0 %]<td class="credit" style="text-align: right;">[% ELSE %]<td class="debit" style="text-align: right;">[% END %][% account.amountoutstanding | $Price %]</td> > <td class="actions"> > [% IF ( account.is_credit ) %] >- <a target="_blank" href="printfeercpt.pl?action=print&accountlines_id=[% account.accountlines_id | uri %]&borrowernumber=[% account.borrowernumber | uri %]" class="btn btn-default btn-xs"><i class="fa fa-print"></i> Print</a> >+ <a target="_blank" href="printfeercpt.pl?action=print&accountlines_id=[% account.accountlines_id | uri %]" class="btn btn-default btn-xs"><i class="fa fa-print"></i> Print</a> > [% ELSE %] >- <a target="_blank" href="printinvoice.pl?action=print&accountlines_id=[% account.accountlines_id | uri %]&borrowernumber=[% account.borrowernumber | uri %]" class="btn btn-default btn-xs"><i class="fa fa-print"></i> Print</a> >+ <a target="_blank" href="printinvoice.pl?action=print&accountlines_id=[% account.accountlines_id | uri %]" class="btn btn-default btn-xs"><i class="fa fa-print"></i> Print</a> > [% END %] > <a href="accountline-details.pl?accountlines_id=[% account.accountlines_id | uri %]" class="btn btn-default btn-xs"><i class="fa fa-list"></i> Details</a> > [% IF account.is_debit && account.amountoutstanding > 0 %] >@@ -329,7 +329,7 @@ > <script> > $(document).ready(function() { > [% IF payment_id && Koha.Preference('FinePaymentAutoPopup') %] >- window.open('/cgi-bin/koha/members/printfeercpt.pl?action=print&change_given=[% change_given | html %]&accountlines_id=[% payment_id | html %]&borrowernumber=[% patron.borrowernumber | html %]', '_blank'); >+ window.open('/cgi-bin/koha/members/printfeercpt.pl?action=print&change_given=[% change_given | html %]&accountlines_id=[% payment_id | html %]', '_blank'); > [% END %] > > var txtActivefilter = _("Filter paid transactions"); >diff --git a/members/printfeercpt.pl b/members/printfeercpt.pl >index 5777971868..0dd60f3de2 100755 >--- a/members/printfeercpt.pl >+++ b/members/printfeercpt.pl >@@ -1,11 +1,7 @@ > #!/usr/bin/perl > >- >-#written 3rd May 2010 by kmkale@anantcorp.com adapted from boraccount.pl by chris@katipo.oc.nz >-#script to print fee receipts >- >- >-# Copyright Koustubha Kale >+# Copyright Koustubha Kale 2010 >+# Copyright PTFS Europe 2020 > # > # This file is part of Koha. > # >@@ -27,73 +23,47 @@ use Modern::Perl; > use C4::Auth; > use C4::Output; > use CGI qw ( -utf8 ); >-use C4::Members; >-use C4::Accounts; > use C4::Letters; > use Koha::Account::Lines; >-use Koha::DateUtils; >-use Koha::Patrons; >-use Koha::Patron::Categories; >- >-my $input=CGI->new; >- >- >-my ($template, $loggedinuser, $cookie) >- = get_template_and_user({template_name => "members/printfeercpt.tt", >- query => $input, >- type => "intranet", >- flagsrequired => {borrowers => 'edit_borrowers', updatecharges => 'remaining_permissions'}, >- debug => 1, >- }); >- >-my $borrowernumber=$input->param('borrowernumber'); >-my $action = $input->param('action') || ''; >-my $accountlines_id = $input->param('accountlines_id'); >-my $change_given = $input->param('change_given'); > >-my $logged_in_user = Koha::Patrons->find( $loggedinuser ); >-my $patron = Koha::Patrons->find( $borrowernumber ); >-output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } ); >- >-#get account details >-my $total = $patron->account->balance; >- >-# FIXME This whole stuff is ugly and should be rewritten >-# FIXME We should pass the $accts iterator to the template and do this formatting part there >-my $accountline_object = Koha::Account::Lines->find($accountlines_id); >-my $accountline = $accountline_object->unblessed; >-my $totalcredit; >-if($total <= 0){ >- $totalcredit = 1; >-} >- >-$accountline->{'amount'} += 0.00; >-if ( $accountline->{'amount'} <= 0 ) { >- $accountline->{'amountcredit'} = 1; >- $accountline->{'amount'} *= -1.00; >-} >-$accountline->{'amountoutstanding'} += 0.00; >-if ( $accountline->{'amountoutstanding'} <= 0 ) { >- $accountline->{'amountoutstandingcredit'} = 1; >-} >+my $input = CGI->new; >+ >+my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >+ { >+ template_name => "members/printfeercpt.tt", >+ query => $input, >+ type => "intranet", >+ flagsrequired => { >+ borrowers => 'edit_borrowers', >+ updatecharges => 'remaining_permissions' >+ } >+ } >+); > >-my $letter = C4::Letters::getletter( 'circulation', 'ACCOUNT_CREDIT', C4::Context::mybranch, 'print', $patron->lang ); >+my $credit_id = $input->param('accountlines_id'); >+my $credit = Koha::Account::Lines->find($credit_id); >+my $patron = $credit->patron; >+ >+my $logged_in_user = Koha::Patrons->find($loggedinuser) or die "Not logged in"; >+output_and_exit_if_error( >+ $input, $cookie, >+ $template, >+ { >+ module => 'members', >+ logged_in_user => $logged_in_user, >+ current_patron => $patron >+ } >+); > >-my @account_offsets = Koha::Account::Offsets->search( { credit_id => $accountline_object->id } ); >+my $letter = C4::Letters::getletter( 'circulation', 'ACCOUNT_CREDIT', >+ C4::Context::mybranch, 'print', $patron->lang ); > > $template->param( >- letter => $letter, >- patron => $patron, >- library => C4::Context::mybranch, >- offsets => \@account_offsets, >- credit => $accountline_object, >- >- finesview => 1, >- total => $total, >- totalcredit => $totalcredit, >- accounts => [$accountline], # FIXME There is always only 1 row! >+ letter => $letter, >+ credit => $credit, > >- change_given => $change_given, >+ tendered => scalar $input->param('tendered'), >+ change => scalar $input->param('change') > ); > > output_html_with_http_headers $input, $cookie, $template->output; >diff --git a/members/printinvoice.pl b/members/printinvoice.pl >index 9fd49fb178..4c41461bfa 100755 >--- a/members/printinvoice.pl >+++ b/members/printinvoice.pl >@@ -1,9 +1,7 @@ > #!/usr/bin/perl > >-#written 3rd May 2010 by kmkale@anantcorp.com adapted from boraccount.pl by chris@katipo.oc.nz >-#script to print fee receipts >- >-# Copyright Koustubha Kale >+# Copyright Koustubha Kale 2010 >+# Copyright PTFS Europe 2020 > # > # This file is part of Koha. > # >@@ -24,70 +22,46 @@ use Modern::Perl; > > use C4::Auth; > use C4::Output; >-use Koha::DateUtils; > use CGI qw ( -utf8 ); >-use C4::Members; >-use C4::Accounts; >- >+use C4::Letters; > use Koha::Account::Lines; >-use Koha::Patrons; >-use Koha::Patron::Categories; > > my $input = CGI->new; > > my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >- { template_name => "members/printinvoice.tt", >+ { >+ template_name => "members/printinvoice.tt", > query => $input, > type => "intranet", >- flagsrequired => { borrowers => 'edit_borrowers', updatecharges => 'remaining_permissions' }, >- debug => 1, >+ flagsrequired => { >+ borrowers => 'edit_borrowers', >+ updatecharges => 'remaining_permissions' >+ } > } > ); > >-my $borrowernumber = $input->param('borrowernumber'); >-my $action = $input->param('action') || ''; >-my $accountlines_id = $input->param('accountlines_id'); >- >-my $logged_in_user = Koha::Patrons->find( $loggedinuser ); >-my $patron = Koha::Patrons->find( $borrowernumber ); >-output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } ); >- >-#get account details >-my $total = $patron->account->balance; >-my $accountline_object = Koha::Account::Lines->find($accountlines_id); >-my $accountline = $accountline_object->unblessed; >- >-my $totalcredit; >-if ( $total <= 0 ) { >- $totalcredit = 1; >-} >- >- >-$accountline->{'amount'} += 0.00; >-if ( $accountline->{'amount'} <= 0 ) { >- $accountline->{'amountcredit'} = 1; >- $accountline->{'amount'} *= -1.00; >-} >-$accountline->{'amountoutstanding'} += 0.00; >-if ( $accountline->{'amountoutstanding'} <= 0 ) { >- $accountline->{'amountoutstandingcredit'} = 1; >-} >- >-my @account_offsets = Koha::Account::Offsets->search( { debit_id => $accountline_object->id } ); >+my $debit_id = $input->param('accountlines_id'); >+my $debit = Koha::Account::Lines->find($debit_id); >+my $patron = $debit->patron; >+ >+my $logged_in_user = Koha::Patrons->find($loggedinuser) or die "Not logged in"; >+output_and_exit_if_error( >+ $input, $cookie, >+ $template, >+ { >+ module => 'members', >+ logged_in_user => $logged_in_user, >+ current_patron => $patron >+ } >+); > >-my $letter = C4::Letters::getletter( 'circulation', 'ACCOUNT_DEBIT', C4::Context::mybranch, 'print', $patron->lang ); >+my $letter = C4::Letters::getletter( 'circulation', 'ACCOUNT_DEBIT', >+ C4::Context::mybranch, 'print', $patron->lang ); > > $template->param( > letter => $letter, >- patron => $patron, >- library => C4::Context::mybranch, >- offsets => \@account_offsets, >- debit => $accountline_object, >+ debit => $debit > >- finesview => 1, >- total => sprintf( "%.2f", $total ), >- totalcredit => $totalcredit, >- accounts => [$accountline], # FIXME There is always only 1 row! > ); > > output_html_with_http_headers $input, $cookie, $template->output; >diff --git a/pos/printreceipt.pl b/pos/printreceipt.pl >index bb3861d04c..14e4b72484 100755 >--- a/pos/printreceipt.pl >+++ b/pos/printreceipt.pl >@@ -36,31 +36,30 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( > } > ); > >-my $action = $input->param('action') || ''; > my $payment_id = $input->param('accountlines_id'); >+my $payment = Koha::Account::Lines->find($payment_id); >+my $patron = $payment->patron; > > my $logged_in_user = Koha::Patrons->find($loggedinuser) or die "Not logged in"; > output_and_exit_if_error( > $input, $cookie, > $template, > { >- module => 'pos', >+ module => 'members', > logged_in_user => $logged_in_user, >+ current_patron => $patron > } >-); >- >-my $payment = Koha::Account::Lines->find($payment_id); >-my @offsets = Koha::Account::Offsets->search( { credit_id => $payment_id } ); >+) if $patron; # Payment could have been anonymous > >-my $letter = >- C4::Letters::getletter( 'pos', 'RECEIPT', C4::Context::mybranch, 'print' ); >+my $letter = C4::Letters::getletter( 'pos', 'RECEIPT', >+ C4::Context::mybranch, 'print', $patron->lang ); > > $template->param( >- letter => $letter, >- payment => $payment, >- offsets => \@offsets, >- collected => scalar $input->param('collected'), >- change => scalar $input->param('change') >+ letter => $letter, >+ payment => $payment, >+ >+ tendered => scalar $input->param('tendered'), >+ change => scalar $input->param('change') > ); > > output_html_with_http_headers $input, $cookie, $template->output; >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 26734
:
111976
|
111977
|
111978
|
112023
|
112024
|
112025
|
112026
|
116257
|
116259
|
116260
|
116261
|
116262
|
116263
|
116272
|
116275
|
116276
|
116277
|
116278
|
116279
|
116644
|
116645
|
116646
|
116647
|
116648
|
116655
|
116656
|
116657
|
116658
|
116659
|
116663
|
116664
|
116665
|
116666
|
116667
|
117261
|
117262
|
117263
|
117264
|
117265
|
118191
|
118192
|
118193
|
118194
|
118195
|
118196
|
118197
|
118200
|
118482
|
118483
|
118484
|
118485
|
118486
|
118487
|
118488
|
118489
|
119350
|
119351
|
119352
|
119353
|
119354
|
119355
|
119356
|
119357
|
119358
|
119642
|
120077
|
121446
|
121449