|
Lines 126-140
sub create_order_lines_from_file {
Link Here
|
| 126 |
} |
126 |
} |
| 127 |
); |
127 |
); |
| 128 |
|
128 |
|
| 129 |
while( my $import_record = $import_records->next ){ |
129 |
while ( my $import_record = $import_records->next ) { |
| 130 |
my $result = add_biblio_from_import_record({ |
130 |
my $result = add_biblio_from_import_record( |
| 131 |
import_batch_id => $import_batch_id, |
131 |
{ |
| 132 |
import_record => $import_record, |
132 |
import_batch_id => $import_batch_id, |
| 133 |
matcher_id => $params->{matcher_id}, |
133 |
import_record => $import_record, |
| 134 |
overlay_action => $params->{overlay_action}, |
134 |
matcher_id => $params->{matcher_id}, |
| 135 |
agent => $agent, |
135 |
overlay_action => $params->{overlay_action}, |
| 136 |
}); |
136 |
agent => $agent, |
| 137 |
warn "Duplicates found in $result->{duplicates_in_batch}, record was skipped." if $result->{duplicates_in_batch}; |
137 |
} |
|
|
138 |
); |
| 139 |
warn "Duplicates found in $result->{duplicates_in_batch}, record was skipped." |
| 140 |
if $result->{duplicates_in_batch}; |
| 138 |
next if $result->{skip}; |
141 |
next if $result->{skip}; |
| 139 |
|
142 |
|
| 140 |
my $order_line_details = add_items_from_import_record( |
143 |
my $order_line_details = add_items_from_import_record( |
|
Lines 595-600
sub add_items_from_import_record {
Link Here
|
| 595 |
} |
598 |
} |
| 596 |
|
599 |
|
| 597 |
|
600 |
|
|
|
601 |
=head3 match_file_to_account |
| 602 |
|
| 603 |
my $file_match = Koha::MarcOrder->match_file_to_account({ |
| 604 |
filename => $filename, |
| 605 |
filepath => $filepath, |
| 606 |
profile => $profile |
| 607 |
}); |
| 608 |
|
| 609 |
Used by the cronjob to detect whether a file matches the account and should be processed |
| 610 |
|
| 611 |
=cut |
| 612 |
|
| 613 |
sub match_file_to_account { |
| 614 |
my ( $self, $args ) = @_; |
| 615 |
|
| 616 |
my $match = 0; |
| 617 |
my $filename = $args->{filename}; |
| 618 |
my $filepath = $args->{filepath}; |
| 619 |
my $profile = $args->{profile}; |
| 620 |
my $format = index( $filename, '.mrc' ) != -1 ? 'ISO2709' : 'MARCXML'; |
| 621 |
|
| 622 |
my ( $errors, $marcrecords ); |
| 623 |
if ( $format eq 'MARCXML' ) { |
| 624 |
( $errors, $marcrecords ) = C4::ImportBatch::RecordsFromMARCXMLFile( $filepath, $profile->encoding ); |
| 625 |
} elsif ( $format eq 'ISO2709' ) { |
| 626 |
( $errors, $marcrecords ) = C4::ImportBatch::RecordsFromISO2709File( |
| 627 |
$filepath, $profile->record_type, |
| 628 |
$profile->encoding |
| 629 |
); |
| 630 |
} |
| 631 |
|
| 632 |
my $match_record = @{$marcrecords}[0]; |
| 633 |
my ( $field, $subfield ) = split /\$/, $profile->match_field; |
| 634 |
|
| 635 |
my $field_value = $match_record->subfield( $field, $subfield ) || ''; |
| 636 |
my $match_value = $profile->match_value || ''; |
| 637 |
|
| 638 |
if ( $field_value eq $match_value ) { |
| 639 |
$match = 1; |
| 640 |
} |
| 641 |
|
| 642 |
return $match; |
| 643 |
} |
| 644 |
|
| 598 |
=head3 import_batches_list |
645 |
=head3 import_batches_list |
| 599 |
|
646 |
|
| 600 |
Fetches import batches matching the batch to be added to the basket and returns these to the template |
647 |
Fetches import batches matching the batch to be added to the basket and returns these to the template |