SIP abstraction layer implementation for ILS, Items and Patrons.
[koha_fer] / cataloguing / additem.pl
index 88b9f49..79b2264 100755 (executable)
@@ -23,6 +23,7 @@ use strict;
 use C4::Auth;
 use C4::Output;
 use C4::Biblio;
+use C4::Items;
 use C4::Context;
 use C4::Koha; # XXX subfield_is_koha_internal_p
 use C4::Branch; # XXX subfield_is_koha_internal_p
@@ -115,7 +116,7 @@ if ($op eq "additem") {
     my $exist_itemnumber = get_item_from_barcode($addedolditem->{'barcode'});
     push @errors,"barcode_not_unique" if($exist_itemnumber);
     # if barcode exists, don't create, but report The problem.
-    my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = AddItem($record,$biblionumber) unless ($exist_itemnumber);
+    my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = AddItemFromMarc($record,$biblionumber) unless ($exist_itemnumber);
     if ($exist_itemnumber) {
         $nextop = "additem";
         $itemrecord = $record;
@@ -126,13 +127,13 @@ if ($op eq "additem") {
 } elsif ($op eq "edititem") {
 #-------------------------------------------------------------------------------
 # retrieve item if exist => then, it's a modif
-    $itemrecord = GetMarcItem($biblionumber,$itemnumber);
+    $itemrecord = C4::Items::GetMarcItem($biblionumber,$itemnumber);
     $nextop="saveitem";
 #-------------------------------------------------------------------------------
 } elsif ($op eq "delitem") {
 #-------------------------------------------------------------------------------
     # check that there is no issue on this item before deletion.
-    my $sth=$dbh->prepare("select * from issues i where i.returndate is null and i.itemnumber=?");
+    my $sth=$dbh->prepare("select * from issues i where i.itemnumber=?");
     $sth->execute($itemnumber);
     my $onloan=$sth->fetchrow;
        $sth->finish();
@@ -141,7 +142,7 @@ if ($op eq "additem") {
                $nextop="additem";
     } else {
                # check it doesnt have a waiting reserve
-               $sth=$dbh->prepare("SELECT * FROM reserves WHERE found = 'w' AND cancellationdate IS NULL AND itemnumber = ?");
+               $sth=$dbh->prepare("SELECT * FROM reserves WHERE found = 'W' AND itemnumber = ?");
                $sth->execute($itemnumber);
                my $reserve=$sth->fetchrow;
                if ($reserve){
@@ -174,7 +175,7 @@ if ($op eq "additem") {
     if ($exist_itemnumber && $exist_itemnumber != $itemnumber) {
         push @errors,"barcode_not_unique";
     } else {
-        my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = ModItem($itemtosave,$biblionumber,$itemnumber,0);
+        my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = ModItemFromMarc($itemtosave,$biblionumber,$itemnumber);
     $itemnumber="";
     }
     $nextop="additem";
@@ -207,7 +208,8 @@ foreach my $field (@fields) {
 
         $witness{$subf[$i][0]} = $tagslib->{$field->tag()}->{$subf[$i][0]}->{lib} if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  eq 10);
 
-        $this_row{$subf[$i][0]} =$subf[$i][1] if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  eq 10);
+        $this_row{$subf[$i][0]}=GetAuthorisedValueDesc( $field->tag(),
+                        $subf[$i][0], $subf[$i][1], '', $tagslib) if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  eq 10);
         
         if (($field->tag eq $branchtagfield) && ($subf[$i][$0] eq $branchtagsubfield) && C4::Context->preference("IndependantBranches")) {
             #verifying rights