IMPORTANT: BUGFIXING STATUSES
[koha.git] / C4 / Circulation.pm
index 8263c67..6c31ddd 100644 (file)
@@ -961,8 +961,8 @@ sub AddIssue {
                        $dateduef=CheckValidDatedue($dateduef,$item->{'itemnumber'},C4::Context->userenv->{'branch'});
                
                # if ReturnBeforeExpiry ON the datedue can't be after borrower expirydate
-               if ( C4::Context->preference('ReturnBeforeExpiry') && $dateduef gt $borrower->{dateexpiry} ) {
-                   $dateduef = $borrower->{dateexpiry};
+               if ( C4::Context->preference('ReturnBeforeExpiry') && $dateduef->output('iso') gt $borrower->{dateexpiry} ) {
+                   $dateduef = C4::Dates->new($borrower->{dateexpiry},'iso');
                }
         };
                $sth->execute(
@@ -1137,6 +1137,7 @@ sub AddReturn {
     
     # get information on item
     my $iteminformation = GetItemIssue( GetItemnumberFromBarcode($barcode));
+    my $biblio = GetBiblioFromItemNumber($iteminformation->{'itemnumber'});
     unless ($iteminformation->{'itemnumber'} ) {
         $messages->{'BadBarcode'} = $barcode;
         $doreturn = 0;
@@ -1186,16 +1187,16 @@ sub AddReturn {
                $iteminformation->{'holdingbranch'} = C4::Context->userenv->{'branch'};
        }
         ModDateLastSeen( $iteminformation->{'itemnumber'} );
+               my $sth = $dbh->prepare("UPDATE items SET onloan = NULL where itemnumber = ?");
+               $sth->execute($iteminformation->{'itemnumber'});
+               $sth->finish();
+               my $record = GetMarcItem( $biblio->{'biblionumber'}, $iteminformation->{'itemnumber'} );
+               my $frameworkcode = GetFrameworkCode( $biblio->{'biblionumber'} );
+               ModItemInMarc( $record, $biblio->{'biblionumber'}, $iteminformation->{'itemnumber'}, $frameworkcode );
+               
                if ($iteminformation->{borrowernumber}){
-                       my $sth = $dbh->prepare("UPDATE items SET onloan = NULL where itemnumber = ?");
-                       $sth->execute($iteminformation->{'itemnumber'});
-                       $sth->finish();
-                       my $record = GetMarcItem( $iteminformation->{'biblionumber'}, $iteminformation->{'itemnumber'} );
-                       my $frameworkcode = GetFrameworkCode( $iteminformation->{'biblionumber'} );
-                       ModItemInMarc( $record, $iteminformation->{'biblionumber'}, $iteminformation->{'itemnumber'}, $frameworkcode );
-               }
-        ($borrower) = C4::Members::GetMemberDetails( $iteminformation->{borrowernumber}, 0 );
-        
+                       ($borrower) = C4::Members::GetMemberDetails( $iteminformation->{borrowernumber}, 0 );
+               }       
         # fix up the accounts.....
         if ( $iteminformation->{'itemlost'} ) {
             $messages->{'WasLost'} = 1;
@@ -1384,7 +1385,7 @@ sub FixAccountForLostAndReturned {
                if ($amountleft > 0){
                        $amountleft*=-1;
                }
-               my $desc="Book Returned ".$iteminfo->{'barcode'};
+               my $desc="Item Returned ".$iteminfo->{'barcode'};
                $usth = $dbh->prepare("INSERT INTO accountlines
                        (borrowernumber,accountno,date,amount,description,accounttype,amountoutstanding)
                        VALUES (?,?,now(),?,?,'CR',?)");