Bugzilla – Attachment 8280 Details for
Bug 7671
add a real primary key "accountlinesid" in accountlines
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
proposed patch
0001-Bug-7671-add-a-real-primary-key-accountlinesid-in-ac.patch (text/plain), 25.75 KB, created by
Stéphane Delaune
on 2012-03-19 14:08:06 UTC
(
hide
)
Description:
proposed patch
Filename:
MIME Type:
Creator:
Stéphane Delaune
Created:
2012-03-19 14:08:06 UTC
Size:
25.75 KB
patch
obsolete
>From e1b4a457461c8bb14f4e7cc9b12fa3613c2ff913 Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?St=C3=A9phane=20Delaune?= <stephane.delaune@biblibre.com> >Date: Fri, 9 Mar 2012 10:39:30 +0100 >Subject: [PATCH] Bug 7671 : add a real primary key accountlinesid in > accountlines >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > > >Signed-off-by: Stéphane Delaune <stephane.delaune@biblibre.com> >--- > C4/Accounts.pm | 114 ++++++++++---------- > C4/Circulation.pm | 16 ++-- > installer/data/mysql/kohastructure.sql | 2 + > installer/data/mysql/updatedatabase.pl | 7 ++ > .../prog/en/modules/members/boraccount.tt | 6 +- > .../intranet-tmpl/prog/en/modules/members/pay.tt | 1 + > .../prog/en/modules/members/paycollect.tt | 2 + > members/boraccount.pl | 2 +- > members/pay.pl | 14 ++- > members/paycollect.pl | 8 +- > members/printinvoice.pl | 1 + > 11 files changed, 93 insertions(+), 80 deletions(-) > >diff --git a/C4/Accounts.pm b/C4/Accounts.pm >index c3d121d..2002b6d 100644 >--- a/C4/Accounts.pm >+++ b/C4/Accounts.pm >@@ -64,7 +64,7 @@ patron. > > Record payment by a patron. C<$borrowernumber> is the patron's > borrower number. C<$payment> is a floating-point number, giving the >-amount that was paid. >+amount that was paid. > > Amounts owed are paid off oldest first. That is, if the patron has a > $1 fine from Feb. 1, another $1 fine from Mar. 1, and makes a payment >@@ -105,12 +105,12 @@ sub recordpayment { > $newamtos = $accdata->{'amountoutstanding'} - $amountleft; > $amountleft = 0; > } >- my $thisacct = $accdata->{accountno}; >+ my $thisacct = $accdata->{accountlinesid}; > my $usth = $dbh->prepare( > "UPDATE accountlines SET amountoutstanding= ? >- WHERE (borrowernumber = ?) AND (accountno=?)" >+ WHERE (accountlinesid = ?)" > ); >- $usth->execute( $newamtos, $borrowernumber, $thisacct ); >+ $usth->execute( $newamtos, $thisacct ); > $usth->finish; > # $usth = $dbh->prepare( > # "INSERT INTO accountoffsets >@@ -136,7 +136,7 @@ sub recordpayment { > > =head2 makepayment > >- &makepayment($borrowernumber, $acctnumber, $amount, $branchcode); >+ &makepayment($accountlinesid, $borrowernumber, $acctnumber, $amount, $branchcode); > > Records the fact that a patron has paid off the entire amount he or > she owes. >@@ -157,7 +157,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 ( $borrowernumber, $accountno, $amount, $user, $branch ) = @_; >+ my ( $accountlinesid, $borrowernumber, $accountno, $amount, $user, $branch ) = @_; > my $dbh = C4::Context->dbh; > my $manager_id = 0; > $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; >@@ -165,10 +165,8 @@ sub makepayment { > # begin transaction > my $nextaccntno = getnextacctno($borrowernumber); > my $newamtos = 0; >- my $sth = >- $dbh->prepare( >- "SELECT * FROM accountlines WHERE borrowernumber=? AND accountno=?"); >- $sth->execute( $borrowernumber, $accountno ); >+ my $sth = $dbh->prepare("SELECT * FROM accountlines WHERE accountlinesid=?"); >+ $sth->execute( $accountlinesid ); > my $data = $sth->fetchrow_hashref; > $sth->finish; > >@@ -177,22 +175,20 @@ sub makepayment { > $dbh->prepare( > "UPDATE accountlines > SET amountoutstanding = 0, description = 'Payment,thanks' >- WHERE borrowernumber = ? >- AND accountno = ? >+ WHERE accountlinesid = ? > " > ); >- $udp->execute($borrowernumber, $accountno ); >+ $udp->execute($accountlinesid); > $udp->finish; > }else{ > my $udp = > $dbh->prepare( > "UPDATE accountlines > SET amountoutstanding = 0 >- WHERE borrowernumber = ? >- AND accountno = ? >+ WHERE accountlinesid = ? > " > ); >- $udp->execute($borrowernumber, $accountno ); >+ $udp->execute($accountlinesid); > $udp->finish; > > # create new line >@@ -219,6 +215,11 @@ sub makepayment { > if ( $data->{'accounttype'} eq 'Rep' || $data->{'accounttype'} eq 'L' ) { > C4::Circulation::ReturnLostItem( $borrowernumber, $data->{'itemnumber'} ); > } >+ my $sthr = $dbh->prepare("SELECT max(accountlinesid) AS lastinsertid FROM accountlines"); >+ $sthr->execute(); >+ my $datalastinsertid = $sthr->fetchrow_hashref; >+ $sthr->finish; >+ return $datalastinsertid->{'lastinsertid'}; > } > > =head2 getnextacctno >@@ -246,18 +247,17 @@ sub getnextacctno ($) { > > =head2 fixaccounts (removed) > >- &fixaccounts($borrowernumber, $accountnumber, $amount); >+ &fixaccounts($accountlinesid, $borrowernumber, $accountnumber, $amount); > > #' > # FIXME - I don't understand what this function does. > sub fixaccounts { >- my ( $borrowernumber, $accountno, $amount ) = @_; >+ my ( $accountlinesid, $borrowernumber, $accountno, $amount ) = @_; > my $dbh = C4::Context->dbh; > my $sth = $dbh->prepare( >- "SELECT * FROM accountlines WHERE borrowernumber=? >- AND accountno=?" >+ "SELECT * FROM accountlines WHERE accountlinesid=?" > ); >- $sth->execute( $borrowernumber, $accountno ); >+ $sth->execute( $accountlinesid ); > my $data = $sth->fetchrow_hashref; > > # FIXME - Error-checking >@@ -269,8 +269,7 @@ sub fixaccounts { > UPDATE accountlines > SET amount = '$amount', > amountoutstanding = '$outstanding' >- WHERE borrowernumber = $borrowernumber >- AND accountno = $accountno >+ WHERE accountlinesid = $accountlinesid > EOT > # FIXME: exceedingly bad form. Use prepare with placholders ("?") in query and execute args. > } >@@ -448,12 +447,12 @@ sub fixcredit { > $newamtos = $accdata->{'amountoutstanding'} - $amountleft; > $amountleft = 0; > } >- my $thisacct = $accdata->{accountno}; >+ my $thisacct = $accdata->{accountlinesid}; > my $usth = $dbh->prepare( > "UPDATE accountlines SET amountoutstanding= ? >- WHERE (borrowernumber = ?) AND (accountno=?)" >+ WHERE (accountlinesid = ?)" > ); >- $usth->execute( $newamtos, $borrowernumber, $thisacct ); >+ $usth->execute( $newamtos, $thisacct ); > $usth->finish; > $usth = $dbh->prepare( > "INSERT INTO accountoffsets >@@ -487,12 +486,12 @@ sub fixcredit { > $newamtos = $accdata->{'amountoutstanding'} - $amountleft; > $amountleft = 0; > } >- my $thisacct = $accdata->{accountno}; >+ my $thisacct = $accdata->{accountlinesid}; > my $usth = $dbh->prepare( > "UPDATE accountlines SET amountoutstanding= ? >- WHERE (borrowernumber = ?) AND (accountno=?)" >+ WHERE (accountlinesid = ?)" > ); >- $usth->execute( $newamtos, $borrowernumber, $thisacct ); >+ $usth->execute( $newamtos, $thisacct ); > $usth->finish; > $usth = $dbh->prepare( > "INSERT INTO accountoffsets >@@ -553,12 +552,12 @@ sub refund { > } > > # print $amountleft; >- my $thisacct = $accdata->{accountno}; >+ my $thisacct = $accdata->{accountlinesid}; > my $usth = $dbh->prepare( > "UPDATE accountlines SET amountoutstanding= ? >- WHERE (borrowernumber = ?) AND (accountno=?)" >+ WHERE (accountlinesid = ?)" > ); >- $usth->execute( $newamtos, $borrowernumber, $thisacct ); >+ $usth->execute( $newamtos, $thisacct ); > $usth->finish; > $usth = $dbh->prepare( > "INSERT INTO accountoffsets >@@ -591,10 +590,10 @@ sub getcharges { > } > > sub ModNote { >- my ( $borrowernumber, $accountno, $note ) = @_; >+ my ( $accountlinesid, $note ) = @_; > my $dbh = C4::Context->dbh; >- my $sth = $dbh->prepare('UPDATE accountlines SET note = ? WHERE borrowernumber = ? AND accountno = ?'); >- $sth->execute( $note, $borrowernumber, $accountno ); >+ my $sth = $dbh->prepare('UPDATE accountlines SET note = ? WHERE accountlinesid = ?'); >+ $sth->execute( $note, $accountlinesid ); > } > > sub getcredits { >@@ -639,21 +638,21 @@ sub getrefunds { > } > > sub ReversePayment { >- my ( $borrowernumber, $accountno ) = @_; >- my $dbh = C4::Context->dbh; >- >- my $sth = $dbh->prepare('SELECT amountoutstanding FROM accountlines WHERE borrowernumber = ? AND accountno = ?'); >- $sth->execute( $borrowernumber, $accountno ); >- my $row = $sth->fetchrow_hashref(); >- my $amount_outstanding = $row->{'amountoutstanding'}; >- >- if ( $amount_outstanding <= 0 ) { >- $sth = $dbh->prepare('UPDATE accountlines SET amountoutstanding = amount * -1, description = CONCAT( description, " Reversed -" ) WHERE borrowernumber = ? AND accountno = ?'); >- $sth->execute( $borrowernumber, $accountno ); >- } else { >- $sth = $dbh->prepare('UPDATE accountlines SET amountoutstanding = 0, description = CONCAT( description, " Reversed -" ) WHERE borrowernumber = ? AND accountno = ?'); >- $sth->execute( $borrowernumber, $accountno ); >- } >+ my ( $accountlinesid ) = @_; >+ my $dbh = C4::Context->dbh; >+ >+ my $sth = $dbh->prepare('SELECT amountoutstanding FROM accountlines WHERE accountlinesid = ?'); >+ $sth->execute( $accountlinesid ); >+ my $row = $sth->fetchrow_hashref(); >+ my $amount_outstanding = $row->{'amountoutstanding'}; >+ >+ if ( $amount_outstanding <= 0 ) { >+ $sth = $dbh->prepare('UPDATE accountlines SET amountoutstanding = amount * -1, description = CONCAT( description, " Reversed -" ) WHERE accountlinesid = ?'); >+ $sth->execute( $accountlinesid ); >+ } else { >+ $sth = $dbh->prepare('UPDATE accountlines SET amountoutstanding = 0, description = CONCAT( description, " Reversed -" ) WHERE accountlinesid = ?'); >+ $sth->execute( $accountlinesid ); >+ } > } > > =head2 recordpayment_selectaccts >@@ -695,7 +694,7 @@ sub recordpayment_selectaccts { > > # offset transactions > my $sth = $dbh->prepare('UPDATE accountlines SET amountoutstanding= ? ' . >- 'WHERE (borrowernumber = ?) AND (accountno=?)'); >+ 'WHERE accountlinesid=?'); > for my $accdata ( @{$rows} ) { > if ($amountleft == 0) { > last; >@@ -708,8 +707,8 @@ sub recordpayment_selectaccts { > $newamtos = $accdata->{amountoutstanding} - $amountleft; > $amountleft = 0; > } >- my $thisacct = $accdata->{accountno}; >- $sth->execute( $newamtos, $borrowernumber, $thisacct ); >+ my $thisacct = $accdata->{accountlinesid}; >+ $sth->execute( $newamtos, $thisacct ); > } > > # create new line >@@ -724,7 +723,7 @@ sub recordpayment_selectaccts { > # makepayment needs to be fixed to handle partials till then this separate subroutine > # fills in > sub makepartialpayment { >- my ( $borrowernumber, $accountno, $amount, $user, $branch ) = @_; >+ my ( $accountlinesid, $borrowernumber, $accountno, $amount, $user, $branch ) = @_; > my $manager_id = 0; > $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; > if (!$amount || $amount < 0) { >@@ -736,12 +735,11 @@ sub makepartialpayment { > my $newamtos = 0; > > my $data = $dbh->selectrow_hashref( >- 'SELECT * FROM accountlines WHERE borrowernumber=? AND accountno=?',undef,$borrowernumber,$accountno); >+ 'SELECT * FROM accountlines WHERE accountlinesid=?',undef,$accountlinesid); > my $new_outstanding = $data->{amountoutstanding} - $amount; > >- my $update = 'UPDATE accountlines SET amountoutstanding = ? WHERE borrowernumber = ? ' >- . ' AND accountno = ?'; >- $dbh->do( $update, undef, $new_outstanding, $borrowernumber, $accountno); >+ my $update = 'UPDATE accountlines SET amountoutstanding = ? WHERE accountlinesid = ? '; >+ $dbh->do( $update, undef, $new_outstanding, $accountlinesid); > > # create new line > my $insert = 'INSERT INTO accountlines (borrowernumber, accountno, date, amount, ' >diff --git a/C4/Circulation.pm b/C4/Circulation.pm >index 1a156d9..7303526 100644 >--- a/C4/Circulation.pm >+++ b/C4/Circulation.pm >@@ -1841,7 +1841,7 @@ sub _FixOverduesOnReturn { > return 0 unless $data; # no warning, there's just nothing to fix > > my $uquery; >- my @bind = ($borrowernumber, $item, $data->{'accountno'}); >+ my @bind = ($data->{'accountlinesid'}); > if ($exemptfine) { > $uquery = "update accountlines set accounttype='FFOR', amountoutstanding=0"; > if (C4::Context->preference("FinesLog")) { >@@ -1861,7 +1861,7 @@ sub _FixOverduesOnReturn { > } else { > $uquery = "update accountlines set accounttype='F' "; > } >- $uquery .= " where (borrowernumber = ?) and (itemnumber = ?) and (accountno = ?)"; >+ $uquery .= " where (accountlinesid = ?)"; > my $usth = $dbh->prepare($uquery); > return $usth->execute(@bind); > } >@@ -1904,9 +1904,8 @@ sub _FixAccountForLostAndReturned { > $amountleft = $data->{'amountoutstanding'} - $amount; # Um, isn't this the same as ZERO? We just tested those two things are == > } > my $usth = $dbh->prepare("UPDATE accountlines SET accounttype = 'LR',amountoutstanding='0' >- WHERE (borrowernumber = ?) >- AND (itemnumber = ?) AND (accountno = ?) "); >- $usth->execute($data->{'borrowernumber'},$itemnumber,$acctno); # We might be adjusting an account for some OTHER borrowernumber now. Not the one we passed in. >+ WHERE (accountlinesid = ?)"); >+ $usth->execute($data->{'accountlinesid'}); # We might be adjusting an account for some OTHER borrowernumber now. Not the one we passed in. > #check if any credit is left if so writeoff other accounts > my $nextaccntno = getnextacctno($data->{'borrowernumber'}); > $amountleft *= -1 if ($amountleft < 0); >@@ -1925,12 +1924,11 @@ sub _FixAccountForLostAndReturned { > $newamtos = $accdata->{'amountoutstanding'} - $amountleft; > $amountleft = 0; > } >- my $thisacct = $accdata->{'accountno'}; >+ my $thisacct = $accdata->{'accountlinesid'}; > # FIXME: move prepares outside while loop! > my $usth = $dbh->prepare("UPDATE accountlines SET amountoutstanding= ? >- WHERE (borrowernumber = ?) >- AND (accountno=?)"); >- $usth->execute($newamtos,$data->{'borrowernumber'},'$thisacct'); # FIXME: '$thisacct' is a string literal! >+ WHERE (accountlinesid = ?)"); >+ $usth->execute($newamtos,'$thisacct'); # FIXME: '$thisacct' is a string literal! > $usth = $dbh->prepare("INSERT INTO accountoffsets > (borrowernumber, accountno, offsetaccount, offsetamount) > VALUES >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index 597a8be..47110b9 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -2363,6 +2363,7 @@ CREATE TABLE `messages` ( -- circulation messages left via the patron's check ou > > DROP TABLE IF EXISTS `accountlines`; > CREATE TABLE `accountlines` ( >+ `accountlinesid` int(11) NOT NULL AUTO_INCREMENT, > `borrowernumber` int(11) NOT NULL default 0, > `accountno` smallint(6) NOT NULL default 0, > `itemnumber` int(11) default NULL, >@@ -2378,6 +2379,7 @@ CREATE TABLE `accountlines` ( > `notify_level` int(2) NOT NULL default 0, > `note` text NULL default NULL, > `manager_id` int(11) NULL, >+ PRIMARY KEY (`accountlinesid`), > KEY `acctsborridx` (`borrowernumber`), > KEY `timeidx` (`timestamp`), > KEY `itemnumber` (`itemnumber`), >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 33a3df6..14293e4 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -4765,6 +4765,13 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { > SetVersion($DBversion); > } > >+$DBversion = "XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do("ALTER TABLE `accountlines` ADD `accountlinesid` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;"); >+ print "Upgrade to $DBversion done (adding accountlinesid field in accountlines table)\n"; >+ SetVersion($DBversion); >+} >+ > =head1 FUNCTIONS > > =head2 DropAllForeignKeys($table) >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 4e053e2e..4bc6393 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt >@@ -51,7 +51,7 @@ > [% IF ( reverse_col ) %] > <td> > [% IF ( account.payment ) %] >- <a href="boraccount.pl?action=reverse&borrowernumber=[% account.borrowernumber %]&accountno=[% account.accountno %]">Reverse</a> >+ <a href="boraccount.pl?action=reverse&accountlinesid=[% account.accountlinesid %]&borrowernumber=[% account.borrowernumber %]">Reverse</a> > [% ELSE %] > > [% END %] >@@ -59,9 +59,9 @@ > [% END %] > <td> > [% IF ( account.payment ) %] >- <a target="_blank" href="printfeercpt.pl?action=print&borrowernumber=[% account.borrowernumber %]&accountno=[% account.accountno %]">Print</a> >+ <a target="_blank" href="printfeercpt.pl?action=print&accountlinesid=[% account.accountlinesid %]&borrowernumber=[% account.borrowernumber %]">Print</a> > [% ELSE %] >- <a target="_blank" href="printinvoice.pl?action=print&borrowernumber=[% account.borrowernumber %]&accountno=[% account.accountno %]">Print</a> >+ <a target="_blank" href="printinvoice.pl?action=print&accountlinesid=[% account.accountlinesid %]&borrowernumber=[% account.borrowernumber %]">Print</a> > [% END %] > </td> > </tr> >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 d883958..5a1838b 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt >@@ -73,6 +73,7 @@ > <input type="hidden" name="description[% line.accountno %]" value="[% line.description %]" /> > <input type="hidden" name="accounttype[% line.accountno %]" value="[% line.accounttype %]" /> > <input type="hidden" name="amount[% line.accountno %]" value="[% line.amount %]" /> >+ <input type="hidden" name="accountlinesid[% line.accountno %]" value="[% line.accountlinesid %]" /> > <input type="hidden" name="amountoutstanding[% line.accountno %]" value="[% line.amountoutstanding %]" /> > <input type="hidden" name="borrowernumber[% line.accountno %]" value="[% line.borrowernumber %]" /> > <input type="hidden" name="accountno[% line.accountno %]" value="[% line.accountno %]" /> >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 c3bdc1e..b7f6126 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt >@@ -102,6 +102,7 @@ function moneyFormat(textObj) { > <input type="hidden" name="amount" id="amount" value="[% amount %]" /> > <input type="hidden" name="amountoutstanding" id="amountoutstanding" value="[% amountoutstanding %]" /> > <input type="hidden" name="accountno" id="accountno" value="[% accountno %]" /> >+ <input type="hidden" name="accountlinesid" id="accountlinesid" value="[% accountlinesid %]" /> > <input type="hidden" name="title" id="title" value="[% title %]" /> > > <fieldset class="rows"> >@@ -157,6 +158,7 @@ function moneyFormat(textObj) { > <input type="hidden" name="amount" id="amount" value="[% amount %]" /> > <input type="hidden" name="amountoutstanding" id="amountoutstanding" value="[% amountoutstanding %]" /> > <input type="hidden" name="accountno" id="accountno" value="[% accountno %]" /> >+ <input type="hidden" name="accountlinesid" id="accountlinesid" value="[% accountlinesid %]" /> > <input type="hidden" name="title" id="title" value="[% title %]" /> > <table> > <thead><tr> >diff --git a/members/boraccount.pl b/members/boraccount.pl >index 44db953..a0aed2f 100755 >--- a/members/boraccount.pl >+++ b/members/boraccount.pl >@@ -53,7 +53,7 @@ my $action = $input->param('action') || ''; > my $data=GetMember('borrowernumber' => $borrowernumber); > > if ( $action eq 'reverse' ) { >- ReversePayment( $borrowernumber, $input->param('accountno') ); >+ ReversePayment( $input->param('accountlinesid') ); > } > > if ( $data->{'category_type'} eq 'C') { >diff --git a/members/pay.pl b/members/pay.pl >index e3377bf..25e16ca 100755 >--- a/members/pay.pl >+++ b/members/pay.pl >@@ -86,11 +86,11 @@ my $writeoff_all = $input->param('woall'); # writeoff all fines > if ($writeoff_all) { > writeoff_all(@names); > } elsif ($writeoff_item) { >- my $accountno = $input->param('accountno'); >+ my $accountlinesid = $input->param('accountlinesid'); > my $itemno = $input->param('itemnumber'); > my $account_type = $input->param('accounttype'); > my $amount = $input->param('amount'); >- writeoff( $accountno, $itemno, $account_type, $amount ); >+ writeoff( $accountlinesid, $itemno, $account_type, $amount ); > } > > for (@names) { >@@ -110,14 +110,14 @@ add_accounts_to_template(); > output_html_with_http_headers $input, $cookie, $template->output; > > sub writeoff { >- my ( $accountnum, $itemnum, $accounttype, $amount ) = @_; >+ my ( $accountlinesid, $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 ); >+ $writeoff_sth->execute( $accountlinesid ); > > my $acct = getnextacctno($borrowernumber); > $add_writeoff_sth->execute( $borrowernumber, $acct, $itemnum, $amount, $manager_id ); >@@ -187,6 +187,7 @@ sub redirect_to_paycollect { > $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( 'accountlinesid', "accountlinesid$line_no", 0 ); > $redirect .= '&remote_user='; > $redirect .= $user; > return print $input->redirect($redirect); >@@ -204,7 +205,8 @@ 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 ); >+ my $accountlinesid = $input->param("accountlinesid$value"); >+ writeoff( $accountlinesid, $itemno, $accounttype, $amount ); > } > } > >@@ -281,7 +283,7 @@ sub get_writeoff_sth { > > # Do we need to validate accounttype > my $sql = 'Update accountlines set amountoutstanding=0 ' >- . 'WHERE accountno=? and borrowernumber=?'; >+ . 'WHERE accountlinesid=?'; > $writeoff_sth = $dbh->prepare($sql); > my $insert = > q{insert into accountlines (borrowernumber,accountno,itemnumber,date,amount,description,accounttype,manager_id)} >diff --git a/members/paycollect.pl b/members/paycollect.pl >index 7dfb622..8eb03b0 100755 >--- a/members/paycollect.pl >+++ b/members/paycollect.pl >@@ -56,7 +56,7 @@ my $writeoff = $input->param('writeoff_individual'); > my $select_lines = $input->param('selected'); > my $select = $input->param('selected_accts'); > my $accountno; >- >+my $accountlinesid; > if ( $individual || $writeoff ) { > if ($individual) { > $template->param( pay_individual => 1 ); >@@ -64,6 +64,7 @@ if ( $individual || $writeoff ) { > $template->param( writeoff_individual => 1 ); > } > my $accounttype = $input->param('accounttype'); >+ $accountlinesid = $input->param('accountlinesid'); > my $amount = $input->param('amount'); > my $amountoutstanding = $input->param('amountoutstanding'); > $accountno = $input->param('accountno'); >@@ -75,6 +76,7 @@ if ( $individual || $writeoff ) { > $total_due = $amountoutstanding; > $template->param( > accounttype => $accounttype, >+ accountlinesid => $accountlinesid, > accountno => $accountno, > amount => $amount, > amountoutstanding => $amountoutstanding, >@@ -101,10 +103,10 @@ if ( $total_paid and $total_paid ne '0.00' ) { > } else { > if ($individual) { > if ( $total_paid == $total_due ) { >- makepayment( $borrowernumber, $accountno, $total_paid, $user, >+ makepayment( $accountlinesid, $borrowernumber, $accountno, $total_paid, $user, > $branch ); > } else { >- makepartialpayment( $borrowernumber, $accountno, $total_paid, >+ makepartialpayment( $accountlinesid, $borrowernumber, $accountno, $total_paid, > $user, $branch ); > } > print $input->redirect( >diff --git a/members/printinvoice.pl b/members/printinvoice.pl >index 039132f..1bfe632 100755 >--- a/members/printinvoice.pl >+++ b/members/printinvoice.pl >@@ -48,6 +48,7 @@ my ($template, $loggedinuser, $cookie) > my $borrowernumber=$input->param('borrowernumber'); > my $action = $input->param('action') || ''; > my $accountno = $input->param('accountno'); >+my $accountlinesid = $input->param('accountlinesid'); > > #get borrower details > my $data=GetMember('borrowernumber' => $borrowernumber); >-- >1.7.5.4 >
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 7671
:
8280
|
10022
|
10260
|
10283
|
10343
|
11374
|
11922
|
12051
|
12055
|
12056
|
12219
|
12220
|
12221