Bug 21999: Use Koha::Checkout in C4::Circulation::AddIssue
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Fri, 14 Dec 2018 12:27:01 +0000 (12:27 +0000)
committerNick Clemens <nick@bywatersolutions.com>
Fri, 11 Jan 2019 13:05:52 +0000 (13:05 +0000)
Signed-off-by: Pierre-Marc Thibault <pierre-marc.thibault@inLibro.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
C4/Circulation.pm

index 971268c..0afed47 100644 (file)
@@ -1356,17 +1356,33 @@ sub AddIssue {
             }
             $datedue->truncate( to => 'minute' );
 
-            $issue = Koha::Database->new()->schema()->resultset('Issue')->update_or_create(
-                {
-                    borrowernumber => $borrower->{'borrowernumber'},
-                    itemnumber     => $item->{'itemnumber'},
-                    issuedate      => $issuedate->strftime('%Y-%m-%d %H:%M:%S'),
-                    date_due       => $datedue->strftime('%Y-%m-%d %H:%M:%S'),
-                    branchcode     => C4::Context->userenv->{'branch'},
-                    onsite_checkout => $onsite_checkout,
-                    auto_renew      => $auto_renew ? 1 : 0
-                }
-              );
+            $issue =
+              Koha::Checkouts->find( { itemnumber => $item->{'itemnumber'} } );
+            if ($issue) {
+                $issue->set(
+                    {
+                        borrowernumber => $borrower->{'borrowernumber'},
+                        issuedate  => $issuedate->strftime('%Y-%m-%d %H:%M:%S'),
+                        date_due   => $datedue->strftime('%Y-%m-%d %H:%M:%S'),
+                        branchcode => C4::Context->userenv->{'branch'},
+                        onsite_checkout => $onsite_checkout,
+                        auto_renew      => $auto_renew ? 1 : 0
+                    }
+                )->store;
+            }
+            else {
+                $issue = Koha::Checkout->new(
+                    {
+                        borrowernumber => $borrower->{'borrowernumber'},
+                        itemnumber     => $item->{'itemnumber'},
+                        issuedate  => $issuedate->strftime('%Y-%m-%d %H:%M:%S'),
+                        date_due   => $datedue->strftime('%Y-%m-%d %H:%M:%S'),
+                        branchcode => C4::Context->userenv->{'branch'},
+                        onsite_checkout => $onsite_checkout,
+                        auto_renew      => $auto_renew ? 1 : 0
+                    }
+                )->store;
+            }
 
             if ( C4::Context->preference('ReturnToShelvingCart') ) {
                 # ReturnToShelvingCart is on, anything issued should be taken off the cart.