From 0f568a8aff424f283055a70ffc47ddc713443cad Mon Sep 17 00:00:00 2001 From: Paul POULAIN Date: Thu, 31 Jul 2008 14:19:51 +0200 Subject: [PATCH] fix for #2440 : acquisition recieve & item creation 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 --- acqui/finishreceive.pl | 58 ++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/acqui/finishreceive.pl b/acqui/finishreceive.pl index 8cf8d4fa5a..8cb5bf2fea 100755 --- a/acqui/finishreceive.pl +++ b/acqui/finishreceive.pl @@ -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. -- 2.39.5