@@ -, +, @@ --- C4/Accounts.pm | 54 +++++++++++++++++-------------- installer/data/mysql/kohastructure.sql | 1 + installer/data/mysql/updatedatabase.pl | 7 ++++ 3 files changed, 38 insertions(+), 24 deletions(-) --- a/C4/Accounts.pm +++ a/C4/Accounts.pm @@ -126,9 +126,9 @@ sub recordpayment { my $usth = $dbh->prepare( "INSERT INTO accountlines (borrowernumber, accountno,date,amount,description,accounttype,amountoutstanding) - VALUES (?,?,now(),?,'Payment,thanks','Pay',?)" + VALUES (?,?,now(),?,'Payment,thanks','Pay',?,?)" ); - $usth->execute( $borrowernumber, $nextaccntno, 0 - $data, 0 - $amountleft ); + $usth->execute( $borrowernumber, $nextaccntno, 0 - $data, 0 - $amountleft, $branch ); $usth->finish; UpdateStats( $branch, 'payment', $data, '', '', '', $borrowernumber, $nextaccntno ); $sth->finish; @@ -201,10 +201,10 @@ sub makepayment { 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, branchcode) + VALUES ( ?, ?, now(), ?, ?, 'Payment,thanks', 'Pay', 0, ?, ?)" ); - $ins->execute($borrowernumber, $nextaccntno, $payment, $data->{'itemnumber'}, $manager_id); + $ins->execute($borrowernumber, $nextaccntno, $payment, $data->{'itemnumber'}, $manager_id, C4::Context->userenv->{'branch'}); $ins->finish; } @@ -298,10 +298,10 @@ sub chargelostitem{ # process (or person) to update it, since we don't handle any defaults for replacement prices. my $accountno = getnextacctno($borrowernumber); my $sth2=$dbh->prepare("INSERT INTO accountlines - (borrowernumber,accountno,date,amount,description,accounttype,amountoutstanding,itemnumber) - VALUES (?,?,now(),?,?,'L',?,?)"); + (borrowernumber,accountno,date,amount,description,accounttype,amountoutstanding,itemnumber,branchcode) + VALUES (?,?,now(),?,?,'L',?,?,?)"); $sth2->execute($borrowernumber,$accountno,$amount, - $description,$amount,$itemnumber); + $description,$amount,$itemnumber,C4::Context->userenv->{'branch'}); $sth2->finish; # FIXME: Log this ? } @@ -337,6 +337,7 @@ sub manualinvoice { my ( $borrowernumber, $itemnum, $desc, $type, $amount, $note ) = @_; my $manager_id = 0; $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; + my $branchcode = C4::Context->userenv->{'branch'}; my $dbh = C4::Context->dbh; my $notifyid = 0; my $insert; @@ -387,16 +388,16 @@ sub manualinvoice { $desc .= ' ' . $itemnum; my $sth = $dbh->prepare( 'INSERT INTO accountlines - (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; + (borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding, itemnumber,notify_id, note, manager_id, branchcode) + VALUES (?, ?, now(), ?,?, ?,?,?,?,?,?,?)'); + $sth->execute($borrowernumber, $accountno, $amount, $desc, $type, $amountleft, $itemnum,$notifyid, $note, $manager_id, $branchcode) || return $sth->errstr; } else { my $sth=$dbh->prepare("INSERT INTO accountlines - (borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding,notify_id, note, manager_id) - VALUES (?, ?, now(), ?, ?, ?, ?,?,?,?)" + (borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding,notify_id, note, manager_id, branchcode) + VALUES (?, ?, now(), ?, ?, ?, ?,?,?,?,?)" ); $sth->execute( $borrowernumber, $accountno, $amount, $desc, $type, - $amountleft, $notifyid, $note, $manager_id ); + $amountleft, $notifyid, $note, $manager_id, $branchcode ); } return 0; } @@ -713,10 +714,12 @@ sub recordpayment_selectaccts { } # create new line - $sql = 'INSERT INTO accountlines ' . - '(borrowernumber, accountno,date,amount,description,accounttype,amountoutstanding) ' . - q|VALUES (?,?,now(),?,'Payment,thanks','Pay',?)|; - $dbh->do($sql,{},$borrowernumber, $nextaccntno, 0 - $amount, 0 - $amountleft ); + $sql = " + INSERT INTO accountlines + ( borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding, branchcode) + VALUES (?,?,now(),?,'Payment,thanks','Pay',?,?) + "; + $dbh->do($sql,{},$borrowernumber, $nextaccntno, 0 - $amount, 0 - $amountleft, $branch ); UpdateStats( $branch, 'payment', $amount, '', '', '', $borrowernumber, $nextaccntno ); return; } @@ -739,17 +742,20 @@ sub makepartialpayment { 'SELECT * FROM accountlines WHERE borrowernumber=? AND accountno=?',undef,$borrowernumber,$accountno); my $new_outstanding = $data->{amountoutstanding} - $amount; - my $update = 'UPDATE accountlines SET amountoutstanding = ? WHERE borrowernumber = ? ' - . ' AND accountno = ?'; + my $update = " + UPDATE accountlines SET amountoutstanding = ? WHERE borrowernumber = ? AND accountno = ? + "; $dbh->do( $update, undef, $new_outstanding, $borrowernumber, $accountno); # create new line - my $insert = 'INSERT INTO accountlines (borrowernumber, accountno, date, amount, ' - . 'description, accounttype, amountoutstanding, itemnumber, manager_id) ' - . ' VALUES (?, ?, now(), ?, ?, ?, 0, ?, ?)'; + my $insert = " + INSERT INTO accountlines (borrowernumber, accountno, date, amount, + description, accounttype, amountoutstanding, itemnumber, manager_id, branchcode) + VALUES (?, ?, now(), ?, ?, ?, 0, ?, ?, ?) + "; $dbh->do( $insert, undef, $borrowernumber, $nextaccntno, $amount, - "Payment, thanks - $user", 'Pay', $data->{'itemnumber'}, $manager_id); + "Payment, thanks - $user", 'Pay', $data->{'itemnumber'}, $manager_id, C4::Context->userenv->{'branch'}); UpdateStats( $user, 'payment', $amount, '', '', '', $borrowernumber, $accountno ); --- a/installer/data/mysql/kohastructure.sql +++ a/installer/data/mysql/kohastructure.sql @@ -2360,6 +2360,7 @@ CREATE TABLE `accountlines` ( `notify_level` int(2) NOT NULL default 0, `note` text NULL default NULL, `manager_id` int(11) NULL, + `branchcode` VARCHAR( 10 ) NULL DEFAULT NULL, -- the branchcode of the library where a payment was made, a manual invoice created, etc. KEY `acctsborridx` (`borrowernumber`), KEY `timeidx` (`timestamp`), KEY `itemnumber` (`itemnumber`), --- a/installer/data/mysql/updatedatabase.pl +++ a/installer/data/mysql/updatedatabase.pl @@ -4712,6 +4712,13 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { SetVersion($DBversion); } +$DBversion = "3.07.00.XXX"; +if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { + $dbh->do("ALTER TABLE accountlines ADD branchcode VARCHAR( 10 ) NULL DEFAULT NULL"); + print "Upgrade to $DBversion done (Added column branchcode to accountlines)\n"; + SetVersion($DBversion); +} + =head1 FUNCTIONS =head2 DropAllForeignKeys($table) --