bugfixing scan index
[koha_fer] / catalogue / updateitem.pl
index 24b1a7e..26a99fe 100755 (executable)
@@ -20,6 +20,7 @@
 use strict; 
 use warnings;
 use CGI;
+use C4::Auth;
 use C4::Context;
 use C4::Biblio;
 use C4::Items;
@@ -30,6 +31,8 @@ use C4::Reserves;
 
 my $cgi= new CGI;
 
+my ($loggedinuser, $cookie, $sessionID) = checkauth($cgi, 0, {circulate => 1}, 'intranet');
+
 my $biblionumber=$cgi->param('biblionumber');
 my $itemnumber=$cgi->param('itemnumber');
 my $biblioitemnumber=$cgi->param('biblioitemnumber');
@@ -53,8 +56,10 @@ for ($damaged,$itemlost,$wthdrawn) {
 
 # modify MARC item if input differs from items table.
 my $item_changes = {};
-if (defined $itemnotes and ($itemnotes ne $item_data_hashref->{'itemnotes'})) {
-    $item_changes->{'itemnotes'} = $itemnotes;
+if (defined $itemnotes) { # i.e., itemnotes parameter passed from form
+    if ((not defined  $item_data_hashref->{'itemnotes'}) or $itemnotes ne $item_data_hashref->{'itemnotes'}) {
+        $item_changes->{'itemnotes'} = $itemnotes;
+    }
 } elsif ($itemlost ne $item_data_hashref->{'itemlost'}) {
     $item_changes->{'itemlost'} = $itemlost;
 } elsif ($wthdrawn ne $item_data_hashref->{'wthdrawn'}) {
@@ -63,7 +68,8 @@ if (defined $itemnotes and ($itemnotes ne $item_data_hashref->{'itemnotes'})) {
     $item_changes->{'damaged'} = $damaged;
 } else {
     #nothings changed, so do nothing.
-    print $cgi->redirect("moredetail.pl?biblionumber=$biblionumber&itemnumber=$itemnumber");
+    print $cgi->redirect("moredetail.pl?biblionumber=$biblionumber&itemnumber=$itemnumber#item$itemnumber");
+       exit;
 }
 
 ModItem($item_changes, $biblionumber, $itemnumber);
@@ -75,7 +81,7 @@ ModItem($item_changes, $biblionumber, $itemnumber);
 # a charge has been added
 # FIXME : if no replacement price, borrower just doesn't get charged?
 if ($itemlost==1) {
-    my $sth=$dbh->prepare("SELECT * FROM issues WHERE (itemnumber=? AND returndate IS NULL)");
+    my $sth=$dbh->prepare("SELECT * FROM issues WHERE itemnumber=?");
     $sth->execute($itemnumber);
     my $issues=$sth->fetchrow_hashref();
 
@@ -91,7 +97,7 @@ if ($itemlost==1) {
         # OK, they haven't
         unless ($existing_charge_hashref) {
             # This item is on issue ... add replacement cost to the borrower's record and mark it returned
-            my $accountno = getnextacctno('',$issues->{'borrowernumber'},$dbh);
+            my $accountno = getnextacctno($issues->{'borrowernumber'});
             my $sth2=$dbh->prepare("INSERT INTO accountlines
             (borrowernumber,accountno,date,amount,description,accounttype,amountoutstanding,itemnumber)
             VALUES
@@ -106,4 +112,4 @@ if ($itemlost==1) {
     $sth->finish;
 }
 
-print $cgi->redirect("moredetail.pl?biblionumber=$biblionumber&itemnumber=$itemnumber");
+print $cgi->redirect("moredetail.pl?biblionumber=$biblionumber&itemnumber=$itemnumber#item$itemnumber");