+ my ( $marcblob, $encoding ) = GetImportRecordMarc( $biblio->{'import_record_id'} );
+ my $marcrecord = MARC::Record->new_from_usmarc($marcblob) || die "couldn't translate marc information";
+
+ my $infos = get_infos_syspref('MarcFieldsToOrder', $marcrecord, ['price', 'quantity', 'budget_code', 'discount', 'sort1', 'sort2']);
+ my $price = $infos->{price};
+ my $quantity = $infos->{quantity};
+ my $budget_code = $infos->{budget_code};
+ my $discount = $infos->{discount};
+ my $sort1 = $infos->{sort1};
+ my $sort2 = $infos->{sort2};
+ my $budget_id;
+ if($budget_code) {
+ my $biblio_budget = GetBudgetByCode($budget_code);
+ if($biblio_budget) {
+ $budget_id = $biblio_budget->{budget_id};
+ }
+ }
+
+ # Items
+ my @itemlist = ();
+ my $all_items_quantity = 0;
+ my $alliteminfos = get_infos_syspref_on_item('MarcItemFieldsToOrder', $marcrecord, ['homebranch', 'holdingbranch', 'itype', 'nonpublic_note', 'public_note', 'loc', 'ccode', 'notforloan', 'uri', 'copyno', 'price', 'replacementprice', 'itemcallnumber', 'quantity', 'budget_code']);
+ if ($alliteminfos != -1) {
+ foreach my $iteminfos (@$alliteminfos) {
+ my $item_homebranch = $iteminfos->{homebranch};
+ my $item_holdingbranch = $iteminfos->{holdingbranch};
+ my $item_itype = $iteminfos->{itype};
+ my $item_nonpublic_note = $iteminfos->{nonpublic_note};
+ my $item_public_note = $iteminfos->{public_note};
+ my $item_loc = $iteminfos->{loc};
+ my $item_ccode = $iteminfos->{ccode};
+ my $item_notforloan = $iteminfos->{notforloan};
+ my $item_uri = $iteminfos->{uri};
+ my $item_copyno = $iteminfos->{copyno};
+ my $item_quantity = $iteminfos->{quantity} || 1;
+ my $item_budget_code = $iteminfos->{budget_code};
+ my $item_price = $iteminfos->{price};
+ my $item_replacement_price = $iteminfos->{replacementprice};
+ my $item_callnumber = $iteminfos->{itemcallnumber};
+
+ for (my $i = 0; $i < $item_quantity; $i++) {
+
+ my %itemrecord = (
+ 'item_id' => $item_id++,
+ 'biblio_count' => $biblio_count,
+ 'homebranch' => $item_homebranch,
+ 'holdingbranch' => $item_holdingbranch,
+ 'itype' => $item_itype,
+ 'nonpublic_note' => $item_nonpublic_note,
+ 'public_note' => $item_public_note,
+ 'loc' => $item_loc,
+ 'ccode' => $item_ccode,
+ 'notforloan' => $item_notforloan,
+ 'uri' => $item_uri,
+ 'copyno' => $item_copyno,
+ 'quantity' => $item_quantity,
+ 'budget_code' => $item_budget_code || $budget_code,
+ 'itemprice' => $item_price || $price,
+ 'replacementprice' => $item_replacement_price,
+ 'itemcallnumber' => $item_callnumber,
+ );
+ $all_items_quantity++;
+ push @itemlist, \%itemrecord;
+
+ }
+ }
+
+ $cellrecord{'iteminfos'} = \@itemlist;
+ } else {
+ $cellrecord{'item_error'} = 1;
+ }