fix for #2440 : acquisition recieve & item creation
authorPaul POULAIN <paul.poulain@biblibre.com>
Thu, 31 Jul 2008 12:19:51 +0000 (14:19 +0200)
committerJoshua Ferraro <jmf@liblime.com>
Fri, 8 Aug 2008 20:09:22 +0000 (15:09 -0500)
It has to be reintroduced, as some (most in France) libraries don't create
items on recieve, but after "equipment" step.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
acqui/finishreceive.pl

index 8cf8d4f..8cb5bf2 100755 (executable)
@@ -59,34 +59,36 @@ my $error_url_str;
 
 if ($quantityrec > $origquantityrec ) {
        foreach my $bc (@barcode) {
-               my $item_hash = {
-                    "items.replacementprice" => $replacement,
-                    "items.price"            => $cost,
-                    "items.booksellerid"     => $supplierid,
-                    "items.homebranch"       => $branch[$cnt],
-                    "items.holdingbranch"    => $branch[$cnt],
-                    "items.barcode"          => $barcode[$cnt],
-                    "items.ccode"          => $ccode[$cnt],
-                    "items.itype"          => $itemtype[$cnt],
-                    "items.location"          => $location[$cnt],
-                    "items.enumchron"          => $enumchron[$cnt], # FIXME : No integration here with serials module.
-                    "items.loan"             => 0, 
-                                       };
-               $item_hash->{'items.cn_source'} = C4::Context->preference('DefaultClassificationSource') if(C4::Context->preference('DefaultClassificationSource') );
-               # FIXME : cn_sort is populated by Items::_set_derived_columns_for_add , which is never called with AddItemFromMarc .  Bug 2403
-        my $itemRecord = TransformKohaToMarc($item_hash);
-               $cnt++;
-               $item_hash = TransformMarcToKoha(undef,$itemRecord,'','items');
-               # FIXME: possible race condition.  duplicate barcode check should happen in AddItem, but for now we have to do it here.
-               my %err = CheckItemPreSave($item_hash);
-               if(%err) {
-                       for my $err_cnd (keys %err) {
-                               $error_url_str .= "&error=" . $err_cnd . "&error_param=" . $err{$err_cnd};
-                       }
-                       $quantityrec--;
-               } else {
-                       AddItemFromMarc($itemRecord,$biblionumber);
-               }
+        if ($bc) {
+            my $item_hash = {
+                        "items.replacementprice" => $replacement,
+                        "items.price"            => $cost,
+                        "items.booksellerid"     => $supplierid,
+                        "items.homebranch"       => $branch[$cnt],
+                        "items.holdingbranch"    => $branch[$cnt],
+                        "items.barcode"          => $barcode[$cnt],
+                        "items.ccode"          => $ccode[$cnt],
+                        "items.itype"          => $itemtype[$cnt],
+                        "items.location"          => $location[$cnt],
+                        "items.enumchron"          => $enumchron[$cnt], # FIXME : No integration here with serials module.
+                        "items.loan"             => 0, 
+                        };
+            $item_hash->{'items.cn_source'} = C4::Context->preference('DefaultClassificationSource') if(C4::Context->preference('DefaultClassificationSource') );
+            # FIXME : cn_sort is populated by Items::_set_derived_columns_for_add , which is never called with AddItemFromMarc .  Bug 2403
+            my $itemRecord = TransformKohaToMarc($item_hash);
+            $cnt++;
+            $item_hash = TransformMarcToKoha(undef,$itemRecord,'','items');
+            # FIXME: possible race condition.  duplicate barcode check should happen in AddItem, but for now we have to do it here.
+            my %err = CheckItemPreSave($item_hash);
+            if(%err) {
+                for my $err_cnd (keys %err) {
+                    $error_url_str .= "&error=" . $err_cnd . "&error_param=" . $err{$err_cnd};
+                }
+                $quantityrec--;
+            } else {
+                AddItemFromMarc($itemRecord,$biblionumber);
+            }
+        }
        }
        
     # save the quantity received.