X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FAccounts.pm;h=eea142c1df5d3f631eedf02991ff7e8854f733bf;hb=20c6bd0c4d3673297d765f75add8c6152bb4dae9;hp=610f0f422d371af8e32a1209e3386e81e5284eea;hpb=4b26c389ef734b443e6c169c2dbc9d991ecd71f8;p=koha_gimpoz diff --git a/C4/Accounts.pm b/C4/Accounts.pm index 610f0f422d..eea142c1df 100644 --- a/C4/Accounts.pm +++ b/C4/Accounts.pm @@ -35,7 +35,7 @@ BEGIN { @ISA = qw(Exporter); @EXPORT = qw( &recordpayment &makepayment &manualinvoice - &getnextacctno &reconcileaccount &getcharges &getcredits + &getnextacctno &reconcileaccount &getcharges &ModNote &getcredits &getrefunds &chargelostitem &ReversePayment ); # removed &fixaccounts @@ -158,6 +158,8 @@ sub makepayment { # from their card, and put a note on the item record my ( $borrowernumber, $accountno, $amount, $user, $branch ) = @_; my $dbh = C4::Context->dbh; + my $manager_id = 0; + $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; # begin transaction my $nextaccntno = getnextacctno($borrowernumber); @@ -169,38 +171,48 @@ sub makepayment { my $data = $sth->fetchrow_hashref; $sth->finish; - $dbh->do( - "UPDATE accountlines - SET amountoutstanding = 0 - WHERE borrowernumber = $borrowernumber - AND accountno = $accountno - " - ); - - # print $updquery; -# $dbh->do( " -# INSERT INTO accountoffsets -# (borrowernumber, accountno, offsetaccount, -# offsetamount) -# VALUES ($borrowernumber, $accountno, $nextaccntno, $newamtos) -# " ); - - # create new line - my $payment = 0 - $amount; - $dbh->do( " - INSERT INTO accountlines - (borrowernumber, accountno, date, amount, - description, accounttype, amountoutstanding) - VALUES ($borrowernumber, $nextaccntno, now(), $payment, - 'Payment,thanks - $user', 'Pay', 0) - " ); + if($data->{'accounttype'} eq "Pay"){ + my $udp = + $dbh->prepare( + "UPDATE accountlines + SET amountoutstanding = 0, description = 'Payment,thanks' + WHERE borrowernumber = ? + AND accountno = ? + " + ); + $udp->execute($borrowernumber, $accountno ); + $udp->finish; + }else{ + my $udp = + $dbh->prepare( + "UPDATE accountlines + SET amountoutstanding = 0 + WHERE borrowernumber = ? + AND accountno = ? + " + ); + $udp->execute($borrowernumber, $accountno ); + $udp->finish; + + # create new line + my $payment = 0 - $amount; + + my $ins = + $dbh->prepare( + "INSERT + INTO accountlines (borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding) + VALUES ( ?, ?, now(), ?, 'Payment,thanks', 'Pay', 0)" + ); + $ins->execute($borrowernumber, $nextaccntno, $payment); + $ins->finish; + } # FIXME - The second argument to &UpdateStats is supposed to be the # branch code. # UpdateStats is now being passed $accountno too. MTJ UpdateStats( $user, 'payment', $amount, '', '', '', $borrowernumber, $accountno ); - $sth->finish; + #from perldoc: for SELECT only #$sth->finish; #check to see what accounttype if ( $data->{'accounttype'} eq 'Rep' || $data->{'accounttype'} eq 'L' ) { @@ -276,7 +288,6 @@ sub returnlost{ sub chargelostitem{ -# http://wiki.koha.org/doku.php?id=en:development:kohastatuses # lost ==1 Lost, lost==2 longoverdue, lost==3 lost and paid for # FIXME: itemlost should be set to 3 after payment is made, should be a warning to the interface that # a charge has been added @@ -317,7 +328,7 @@ sub chargelostitem{ # FIXME: Log this ? } #FIXME : Should probably have a way to distinguish this from an item that really was returned. - warn " $issues->{'borrowernumber'} / $itemnumber "; + #warn " $issues->{'borrowernumber'} / $itemnumber "; C4::Circulation::MarkIssueReturned($issues->{borrowernumber},$itemnumber); # Shouldn't MarkIssueReturned do this? C4::Items::ModItem({ onloan => undef }, undef, $itemnumber); @@ -328,7 +339,7 @@ sub chargelostitem{ =head2 manualinvoice &manualinvoice($borrowernumber, $itemnumber, $description, $type, - $amount, $user); + $amount, $note); C<$borrowernumber> is the patron's borrower number. C<$description> is a description of the transaction. @@ -352,7 +363,9 @@ should be the empty string. # sub manualinvoice { - my ( $borrowernumber, $itemnum, $desc, $type, $amount, $user ) = @_; + my ( $borrowernumber, $itemnum, $desc, $type, $amount, $note ) = @_; + my $manager_id = 0; + $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; my $dbh = C4::Context->dbh; my $notifyid = 0; my $insert; @@ -404,16 +417,16 @@ sub manualinvoice { $desc .= " " . $itemnum; my $sth = $dbh->prepare( "INSERT INTO accountlines - (borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding, itemnumber,notify_id) - VALUES (?, ?, now(), ?,?, ?,?,?,?)"); - $sth->execute($borrowernumber, $accountno, $amount, $desc, $type, $amountleft, $itemnum,$notifyid) || return $sth->errstr; + (borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding, itemnumber,notify_id, note, manager_id) + VALUES (?, ?, now(), ?,?, ?,?,?,?,?,?)"); + $sth->execute($borrowernumber, $accountno, $amount, $desc, $type, $amountleft, $itemnum,$notifyid, $note, $manager_id) || return $sth->errstr; } else { my $sth=$dbh->prepare("INSERT INTO accountlines - (borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding,notify_id) - VALUES (?, ?, now(), ?, ?, ?, ?,?)" + (borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding,notify_id, note, manager_id) + VALUES (?, ?, now(), ?, ?, ?, ?,?,?,?)" ); $sth->execute( $borrowernumber, $accountno, $amount, $desc, $type, - $amountleft, $notifyid ); + $amountleft, $notifyid, $note, $manager_id ); } return 0; } @@ -607,6 +620,12 @@ sub getcharges { return (@results); } +sub ModNote { + my ( $borrowernumber, $accountno, $note ) = @_; + my $dbh = C4::Context->dbh; + my $sth = $dbh->prepare('UPDATE accountlines SET note = ? WHERE borrowernumber = ? AND accountno = ?'); + $sth->execute( $note, $borrowernumber, $accountno ); +} sub getcredits { my ( $date, $date2 ) = @_;