Bugzilla – Attachment 15232 Details for
Bug 6413
Notes in Fines doing wonky things
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 6413 Added ability to add a note when paying or writing off a fine
Bug-6413-Added-ability-to-add-a-note-when-paying-o.patch (text/plain), 11.28 KB, created by
Kyle M Hall (khall)
on 2013-02-11 12:48:07 UTC
(
hide
)
Description:
Bug 6413 Added ability to add a note when paying or writing off a fine
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2013-02-11 12:48:07 UTC
Size:
11.28 KB
patch
obsolete
>From b7d87aa02d606b177d69f6bb34b50dd788ee1a08 Mon Sep 17 00:00:00 2001 >From: Chris Hall <chrish@catalyst.net.nz> >Date: Thu, 26 Jan 2012 16:04:53 +1300 >Subject: [PATCH] Bug 6413 Added ability to add a note when paying or writing off a fine > >Code will also respect notes when using the "Writeoff All" button but WILL NOT when using either the "Pay Amount" or "Pay Selected" buttons Fixed uri encoding of arguments > >Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com> >--- > C4/Accounts.pm | 32 +++++++++++-------- > .../intranet-tmpl/prog/en/modules/members/pay.tt | 2 + > .../prog/en/modules/members/paycollect.tt | 2 + > members/pay.pl | 9 ++++-- > members/paycollect.pl | 7 +++- > 5 files changed, 33 insertions(+), 19 deletions(-) > >diff --git a/C4/Accounts.pm b/C4/Accounts.pm >index 5aa4fef..c6f5f29 100644 >--- a/C4/Accounts.pm >+++ b/C4/Accounts.pm >@@ -167,7 +167,7 @@ sub makepayment { > #here we update both the accountoffsets and the account lines > #updated to check, if they are paying off a lost item, we return the item > # from their card, and put a note on the item record >- my ( $accountlines_id, $borrowernumber, $accountno, $amount, $user, $branch ) = @_; >+ my ( $accountlines_id, $borrowernumber, $accountno, $amount, $user, $branch, $payment_note ) = @_; > my $dbh = C4::Context->dbh; > my $manager_id = 0; > $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; >@@ -203,14 +203,15 @@ sub makepayment { > > # create new line > my $payment = 0 - $amount; >+ $payment_note //= ""; > > my $ins = > $dbh->prepare( > "INSERT >- INTO accountlines (borrowernumber, accountno, date, amount, itemnumber, description, accounttype, amountoutstanding, manager_id) >- VALUES ( ?, ?, now(), ?, ?, 'Payment,thanks', 'Pay', 0, ?)" >+ INTO accountlines (borrowernumber, accountno, date, amount, itemnumber, description, accounttype, amountoutstanding, manager_id, note) >+ VALUES ( ?, ?, now(), ?, ?, 'Payment,thanks', 'Pay', 0, ?, ?)" > ); >- $ins->execute($borrowernumber, $nextaccntno, $payment, $data->{'itemnumber'}, $manager_id); >+ $ins->execute($borrowernumber, $nextaccntno, $payment, $data->{'itemnumber'}, $manager_id, $payment_note); > $ins->finish; > } > >@@ -737,12 +738,13 @@ sub recordpayment_selectaccts { > # makepayment needs to be fixed to handle partials till then this separate subroutine > # fills in > sub makepartialpayment { >- my ( $accountlines_id, $borrowernumber, $accountno, $amount, $user, $branch ) = @_; >+ my ( $accountlines_id, $borrowernumber, $accountno, $amount, $user, $branch, $payment_note ) = @_; > my $manager_id = 0; > $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; > if (!$amount || $amount < 0) { > return; > } >+ $payment_note //= ""; > my $dbh = C4::Context->dbh; > > my $nextaccntno = getnextacctno($borrowernumber); >@@ -757,11 +759,11 @@ sub makepartialpayment { > > # create new line > my $insert = 'INSERT INTO accountlines (borrowernumber, accountno, date, amount, ' >- . 'description, accounttype, amountoutstanding, itemnumber, manager_id) ' >- . ' VALUES (?, ?, now(), ?, ?, ?, 0, ?, ?)'; >+ . 'description, accounttype, amountoutstanding, itemnumber, manager_id, note) ' >+ . ' VALUES (?, ?, now(), ?, ?, ?, 0, ?, ?, ?)'; > >- $dbh->do( $insert, undef, $borrowernumber, $nextaccntno, 0 - $amount, >- "Payment, thanks - $user", 'Pay', $data->{'itemnumber'}, $manager_id); >+ $dbh->do( $insert, undef, $borrowernumber, $nextaccntno, $amount, >+ "Payment, thanks - $user", 'Pay', $data->{'itemnumber'}, $manager_id, $payment_note); > > UpdateStats( $user, 'payment', $amount, '', '', '', $borrowernumber, $accountno ); > >@@ -770,7 +772,7 @@ sub makepartialpayment { > > =head2 WriteOffFee > >- WriteOff( $borrowernumber, $accountline_id, $itemnum, $accounttype, $amount, $branch ); >+ WriteOffFee( $borrowernumber, $accountline_id, $itemnum, $accounttype, $amount, $branch, $payment_note ); > > Write off a fine for a patron. > C<$borrowernumber> is the patron's borrower number. >@@ -779,11 +781,13 @@ C<$itemnum> is the itemnumber of of item whose fine is being written off. > C<$accounttype> is the account type of the fine being written off. > C<$amount> is a floating-point number, giving the amount that is being written off. > C<$branch> is the branchcode of the library where the writeoff occurred. >+C<$payment_note> is the note to attach to this payment > > =cut > > sub WriteOffFee { >- my ( $borrowernumber, $accountline_id, $itemnum, $accounttype, $amount, $branch ) = @_; >+ my ( $borrowernumber, $accountline_id, $itemnum, $accounttype, $amount, $branch, $payment_note ) = @_; >+ $payment_note //= ""; > $branch ||= C4::Context->userenv->{branch}; > my $manager_id = 0; > $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; >@@ -803,12 +807,12 @@ sub WriteOffFee { > > $query =" > INSERT INTO accountlines >- ( borrowernumber, accountno, itemnumber, date, amount, description, accounttype, manager_id ) >- VALUES ( ?, ?, ?, NOW(), ?, 'Writeoff', 'W', ? ) >+ ( borrowernumber, accountno, itemnumber, date, amount, description, accounttype, manager_id, note ) >+ VALUES ( ?, ?, ?, NOW(), ?, 'Writeoff', 'W', ?, ? ) > "; > $sth = $dbh->prepare( $query ); > my $acct = getnextacctno($borrowernumber); >- $sth->execute( $borrowernumber, $acct, $itemnum, $amount, $manager_id ); >+ $sth->execute( $borrowernumber, $acct, $itemnum, $amount, $manager_id, $payment_note ); > > UpdateStats( $branch, 'writeoff', $amount, q{}, q{}, q{}, $borrowernumber ); > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt >index 2780c3f..52eb78c 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt >@@ -47,6 +47,7 @@ > <th>Fines & charges</th> > <th>Sel</th> > <th>Description</th> >+ <th>Payment Note</th> > <th>Account type</th> > <th>Notify id</th> > <th>Level</th> >@@ -87,6 +88,7 @@ > [% END %] > </td> > <td>[% line.description %] ([% line.title |html_entity %])</td> >+ <td><input type="text" name="payment_note_[% line.accountno %]"></input></td> > <td>[% line.accounttype %]</td> > <td>[% line.notify_id %]</td> > <td>[% line.notify_level %]</td> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt >index 5b3b2ca..65fec3f 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt >@@ -107,6 +107,7 @@ function moneyFormat(textObj) { > > <fieldset class="rows"> > <legend>Pay an individual fine</legend> >+ <input type="hidden" name="payment_note" id="payment_note" value="[% payment_note %]" /> > <table> > <thead><tr> > <th>Description</th> >@@ -160,6 +161,7 @@ function moneyFormat(textObj) { > <input type="hidden" name="accountno" id="accountno" value="[% accountno %]" /> > <input type="hidden" name="accountlines_id" id="accountlines_id" value="[% accountlines_id %]" /> > <input type="hidden" name="title" id="title" value="[% title %]" /> >+ <input type="hidden" name="payment_note" id="payment_note" value="[% payment_note %]" /> > <table> > <thead><tr> > <th>Description</th> >diff --git a/members/pay.pl b/members/pay.pl >index a08e372..d02c830 100755 >--- a/members/pay.pl >+++ b/members/pay.pl >@@ -29,6 +29,7 @@ > use strict; > use warnings; > >+use URI::Escape; > use C4::Context; > use C4::Auth; > use C4::Output; >@@ -89,7 +90,8 @@ if ($writeoff_all) { > my $itemno = $input->param('itemnumber'); > my $account_type = $input->param('accounttype'); > my $amount = $input->param('amountoutstanding'); >- WriteOffFee( $borrowernumber, $accountlines_id, $itemno, $account_type, $amount ); >+ my $payment_note = $input->param("payment_note"); >+ WriteOffFee( $borrowernumber, $accountlines_id, $itemno, $account_type, $amount, $branch, $payment_note ); > } > > for (@names) { >@@ -181,12 +183,12 @@ sub redirect_to_paycollect { > $redirect .= > get_for_redirect( 'amountoutstanding', "amountoutstanding$line_no", 1 ); > $redirect .= get_for_redirect( 'accountno', "accountno$line_no", 0 ); >- $redirect .= get_for_redirect( 'description', "description$line_no", 0 ); > $redirect .= get_for_redirect( 'title', "title$line_no", 0 ); > $redirect .= get_for_redirect( 'itemnumber', "itemnumber$line_no", 0 ); > $redirect .= get_for_redirect( 'notify_id', "notify_id$line_no", 0 ); > $redirect .= get_for_redirect( 'notify_level', "notify_level$line_no", 0 ); > $redirect .= get_for_redirect( 'accountlines_id', "accountlines_id$line_no", 0 ); >+ $redirect .= q{&} . 'payment_note' . q{=} . uri_escape( $input->param("payment_note_$line_no") ); > $redirect .= '&remote_user='; > $redirect .= $user; > return print $input->redirect($redirect); >@@ -205,7 +207,8 @@ sub writeoff_all { > my $amount = $input->param("amountoutstanding$value"); > my $accountno = $input->param("accountno$value"); > my $accountlines_id = $input->param("accountlines_id$value"); >- WriteOffFee( $borrowernumber, $accountlines_id, $itemno, $accounttype, $amount ); >+ my $payment_note = $input->param("payment_note_$value"); >+ WriteOffFee( $borrowernumber, $accountlines_id, $itemno, $accounttype, $amount, $branch, $payment_note ); > } > } > >diff --git a/members/paycollect.pl b/members/paycollect.pl >index d66702e..b4a8538 100755 >--- a/members/paycollect.pl >+++ b/members/paycollect.pl >@@ -19,6 +19,7 @@ > > use strict; > use warnings; >+use URI::Escape; > use C4::Context; > use C4::Auth; > use C4::Output; >@@ -55,6 +56,7 @@ my $individual = $input->param('pay_individual'); > my $writeoff = $input->param('writeoff_individual'); > my $select_lines = $input->param('selected'); > my $select = $input->param('selected_accts'); >+my $payment_note = uri_unescape $input->param('payment_note'); > my $accountno; > my $accountlines_id; > if ( $individual || $writeoff ) { >@@ -85,6 +87,7 @@ if ( $individual || $writeoff ) { > description => $description, > notify_id => $notify_id, > notify_level => $notify_level, >+ payment_note => $payment_note, > ); > } elsif ($select_lines) { > $total_due = $input->param('amt'); >@@ -104,10 +107,10 @@ if ( $total_paid and $total_paid ne '0.00' ) { > if ($individual) { > if ( $total_paid == $total_due ) { > makepayment( $accountlines_id, $borrowernumber, $accountno, $total_paid, $user, >- $branch ); >+ $branch, $payment_note ); > } else { > makepartialpayment( $accountlines_id, $borrowernumber, $accountno, $total_paid, >- $user, $branch ); >+ $user, $branch, $payment_note ); > } > print $input->redirect( > "/cgi-bin/koha/members/pay.pl?borrowernumber=$borrowernumber"); >-- >1.7.2.5
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 6413
:
7333
|
7496
|
9107
|
9129
|
9144
|
9220
|
9221
|
9374
|
12658
|
12661
|
12668
|
12669
|
14832
|
14833
|
14834
|
14840
|
14846
|
14895
|
14896
|
14899
|
14900
|
15232
|
15233
|
15234
|
16486
|
16487
|
16488
|
16489
|
18035