Bugzilla – Attachment 7920 Details for
Bug 7597
fines not recording the right info in the stats table
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[SIGNED-OFF] Bug 7597 - Part 2 - move sub writeoff to C4::Accounts
SIGNED-OFF-Bug-7597---Part-2---move-sub-writeoff-t.patch (text/plain), 5.93 KB, created by
Nicole C. Engard
on 2012-02-28 14:56:52 UTC
(
hide
)
Description:
[SIGNED-OFF] Bug 7597 - Part 2 - move sub writeoff to C4::Accounts
Filename:
MIME Type:
Creator:
Nicole C. Engard
Created:
2012-02-28 14:56:52 UTC
Size:
5.93 KB
patch
obsolete
>From b96437b87c2b0acdfacf83a5a1dde0335f8546e2 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Tue, 28 Feb 2012 09:17:04 -0500 >Subject: [PATCH] [SIGNED-OFF] Bug 7597 - Part 2 - move sub writeoff to C4::Accounts > >Currently, the subroutine writeoff lives in pay.pl, which >is a violation of the Koha coding guidelines, as it writes >to the database. This commit restructures and moves writeoff >to C4::Accounts::WriteOff(), and modifies pay.pl to use it. > >Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com> > >Tested all three patches together and was able to write off single >and multiple fines and the data was correct in the stats table. >--- > C4/Accounts.pm | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++---- > members/pay.pl | 44 +------------------------------------- > 2 files changed, 59 insertions(+), 47 deletions(-) > >diff --git a/C4/Accounts.pm b/C4/Accounts.pm >index c3d121d..28bd56b 100644 >--- a/C4/Accounts.pm >+++ b/C4/Accounts.pm >@@ -33,12 +33,20 @@ BEGIN { > require Exporter; > @ISA = qw(Exporter); > @EXPORT = qw( >- &recordpayment &makepayment &manualinvoice >- &getnextacctno &reconcileaccount &getcharges &ModNote &getcredits >- &getrefunds &chargelostitem >+ &recordpayment >+ &makepayment >+ &manualinvoice >+ &getnextacctno >+ &reconcileaccount >+ &getcharges >+ &ModNote >+ &getcredits >+ &getrefunds >+ &chargelostitem > &ReversePayment >- makepartialpayment >- recordpayment_selectaccts >+ &makepartialpayment >+ &recordpayment_selectaccts >+ &WriteOff > ); > } > >@@ -756,7 +764,51 @@ sub makepartialpayment { > return; > } > >+=head2 WriteOff > >+ WriteOff( $borrowernumber, $accountnum, $itemnum, $accounttype, $amount, $branch ); >+ >+Write off a fine for a patron. >+C<$borrowernumber> is the patron's borrower number. >+C<$accountnum> is the accountnumber of the fee to write off. >+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. >+ >+=cut >+ >+sub WriteOff { >+ my ( $borrowernumber, $accountnum, $itemnum, $accounttype, $amount, $branch ) = @_; >+ my $branch ||= C4::Context->userenv->{branch}; >+ my $manager_id = 0; >+ $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; >+ >+ # if no item is attached to fine, make sure to store it as a NULL >+ $itemnum ||= undef; >+ >+ my ( $sth, $query ); >+ my $dbh = C4::Context->dbh(); >+ >+ $query = " >+ UPDATE accountlines SET amountoutstanding = 0 >+ WHERE accountno = ? AND borrowernumber = ? >+ "; >+ $sth = $dbh->prepare( $query ); >+ $sth->execute( $accountnum, $borrowernumber ); >+ >+ $query =" >+ INSERT INTO accountlines >+ ( borrowernumber, accountno, itemnumber, date, amount, description, accounttype, manager_id ) >+ VALUES ( ?, ?, ?, NOW(), ?, 'Writeoff', 'W', ? ) >+ "; >+ $sth = $dbh->prepare( $query ); >+ my $acct = getnextacctno($borrowernumber); >+ $sth->execute( $borrowernumber, $acct, $itemnum, $amount, $manager_id ); >+ >+ UpdateStats( $branch, 'writeoff', $amount, q{}, q{}, q{}, $borrowernumber ); >+ >+} > > END { } # module clean-up code here (global destructor) > >diff --git a/members/pay.pl b/members/pay.pl >index 9533922..9343c90 100755 >--- a/members/pay.pl >+++ b/members/pay.pl >@@ -53,9 +53,6 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( > } > ); > >-my $writeoff_sth; >-my $add_writeoff_sth; >- > my @names = $input->param; > > my $borrowernumber = $input->param('borrowernumber'); >@@ -90,7 +87,7 @@ if ($writeoff_all) { > my $itemno = $input->param('itemnumber'); > my $account_type = $input->param('accounttype'); > my $amount = $input->param('amountoutstanding'); >- writeoff( $accountno, $itemno, $account_type, $amount ); >+ WriteOff( $borrowernumber, $accountno, $itemno, $account_type, $amount, $branch ); > } > > for (@names) { >@@ -109,23 +106,6 @@ add_accounts_to_template(); > > output_html_with_http_headers $input, $cookie, $template->output; > >-sub writeoff { >- my ( $accountnum, $itemnum, $accounttype, $amount ) = @_; >- my $manager_id = 0; >- $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; >- >- # if no item is attached to fine, make sure to store it as a NULL >- $itemnum ||= undef; >- get_writeoff_sth(); >- $writeoff_sth->execute( $accountnum, $borrowernumber ); >- >- my $acct = getnextacctno($borrowernumber); >- $add_writeoff_sth->execute( $borrowernumber, $acct, $itemnum, $amount, $manager_id ); >- >- UpdateStats( $branch, 'writeoff', $amount, q{}, q{}, q{}, $borrowernumber ); >- >- return; >-} > > sub add_accounts_to_template { > >@@ -204,7 +184,7 @@ sub writeoff_all { > my $itemno = $input->param("itemnumber$value"); > my $amount = $input->param("amount$value"); > my $accountno = $input->param("accountno$value"); >- writeoff( $accountno, $itemno, $accounttype, $amount ); >+ WriteOff( $borrowernumber, $accountno, $itemno, $accounttype, $amount, $branch ); > } > } > >@@ -270,23 +250,3 @@ sub payselected { > print $input->redirect($redirect); > return; > } >- >-sub get_writeoff_sth { >- >- # lets prepare these statement handles only once >- if ($writeoff_sth) { >- return; >- } else { >- my $dbh = C4::Context->dbh; >- >- # Do we need to validate accounttype >- my $sql = 'Update accountlines set amountoutstanding=0 ' >- . 'WHERE accountno=? and borrowernumber=?'; >- $writeoff_sth = $dbh->prepare($sql); >- my $insert = >-q{insert into accountlines (borrowernumber,accountno,itemnumber,date,amount,description,accounttype,manager_id)} >- . q{values (?,?,?,now(),?,'Writeoff','W',?)}; >- $add_writeoff_sth = $dbh->prepare($insert); >- } >- return; >-} >-- >1.7.2.3
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 7597
:
7913
|
7914
|
7915
|
7916
|
7917
|
7919
| 7920 |
7921
|
7922
|
8020
|
8021
|
8026
|
8100
|
8198