use Koha::Number::Price;
use Koha::Libraries;
use Koha::Acquisition::Currencies;
-use Koha::Acquisition::Order;
+use Koha::Acquisition::Orders;
use Koha::Acquisition::Booksellers;
+use Koha::Patrons;
my $input = new CGI;
my ($template, $loggedinuser, $cookie, $userflags) = get_template_and_user({
my $biblio_count = 0;
for my $biblio (@$biblios){
$biblio_count++;
+ my $duplifound = 0;
# Check if this import_record_id was selected
next if not grep { $_ eq $$biblio{import_record_id} } @import_record_id_selected;
my ( $marcblob, $encoding ) = GetImportRecordMarc( $biblio->{'import_record_id'} );
unless ( $biblionumber ) {
if ($matcher_id) {
if ( $matcher_id eq '_TITLE_AUTHOR_' ) {
- $duplinbatch = $import_batch_id if FindDuplicate($marcrecord);
+ $duplifound = 1 if FindDuplicate($marcrecord);
}
else {
my $matcher = C4::Matcher->fetch($matcher_id);
my @matches = $matcher->get_matches( $marcrecord, my $max_matches = 1 );
- $duplinbatch = $import_batch_id if @matches;
+ $duplifound = 1 if @matches;
}
- next if $duplinbatch;
+ $duplinbatch = $import_batch_id and next if $duplifound;
}
# add the biblio
my @replacementprices = $input->multi_param('replacementprice_' . $biblio_count);
my @itemcallnumbers = $input->multi_param('itemcallnumber_' . $biblio_count);
my $itemcreation = 0;
+
+ my @itemnumbers;
for (my $i = 0; $i < $count; $i++) {
$itemcreation = 1;
my ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({
replacementprice => $replacementprices[$i],
itemcallnumber => $itemcallnumbers[$i],
}, $biblionumber);
+ push( @itemnumbers, $itemnumber );
}
if ($itemcreation == 1) {
# Group orderlines from MarcItemFieldsToOrder
)
};
- my $order = Koha::Acquisition::Order->new( \%orderinfo )->insert;
+ my $order = Koha::Acquisition::Order->new( \%orderinfo )->store;
+ $order->add_item( $_ ) for @itemnumbers;
}
}
} else {
# 3rd add order
- my $patron = C4::Members::GetMember( borrowernumber => $loggedinuser );
+ my $patron = Koha::Patrons->find( $loggedinuser );
# get quantity in the MARC record (1 if none)
my $quantity = GetMarcQuantity($marcrecord, C4::Context->preference('marcflavour')) || 1;
my %orderinfo = (
biblionumber => $biblionumber,
basketno => $cgiparams->{'basketno'},
quantity => $c_quantity,
- branchcode => $patron->{branchcode},
+ branchcode => $patron->branchcode,
budget_id => $c_budget_id,
uncertainprice => 1,
sort1 => $c_sort1,
)
};
- my $order = Koha::Acquisition::Order->new( \%orderinfo )->insert;
+ my $order = Koha::Acquisition::Order->new( \%orderinfo )->store;
# 4th, add items if applicable
# parse the item sent by the form, and create an item just for the import_record_id we are dealing with
my $budgets = GetBudgets();
my $budget_id = @$budgets[0]->{'budget_id'};
# build bookfund list
-my $borrower = GetMember( 'borrowernumber' => $loggedinuser );
-my ( $flags, $homebranch ) = ( $borrower->{'flags'}, $borrower->{'branchcode'} );
+my $patron = Koha::Patrons->find( $loggedinuser )->unblessed;
my $budget = GetBudget($budget_id);
# build budget list
my $budget_loop = [];
my $budgets_hierarchy = GetBudgetHierarchy;
foreach my $r ( @{$budgets_hierarchy} ) {
- next unless (CanUserUseBudget($borrower, $r, $userflags));
+ next unless (CanUserUseBudget($patron, $r, $userflags));
if ( !defined $r->{budget_amount} || $r->{budget_amount} == 0 ) {
next;
}