Lines 25-46
use Carp qw( carp );
Link Here
|
25 |
use Encode qw( from_to ); |
25 |
use Encode qw( from_to ); |
26 |
use File::Slurp qw( read_file ); |
26 |
use File::Slurp qw( read_file ); |
27 |
|
27 |
|
28 |
use Koha::Database; |
|
|
29 |
use Koha::DateUtils qw( dt_from_string ); |
28 |
use Koha::DateUtils qw( dt_from_string ); |
30 |
use Koha::File::Transports; |
29 |
use Koha::EDI::Accounts; |
|
|
30 |
use Koha::Edifact::Files; |
31 |
|
31 |
|
32 |
sub new { |
32 |
sub new { |
33 |
my ( $class, $account_id ) = @_; |
33 |
my ( $class, $account_id ) = @_; |
34 |
my $database = Koha::Database->new(); |
34 |
my $acct = Koha::EDI::Accounts->find($account_id); |
35 |
my $schema = $database->schema(); |
|
|
36 |
my $acct = $schema->resultset('VendorEdiAccount')->find($account_id); |
37 |
|
35 |
|
38 |
# Get the file transport if configured |
36 |
# Cache the file transport if configured |
39 |
my $file_transport = $acct->file_transport_id ? Koha::File::Transports->find( $acct->file_transport_id ) : undef; |
37 |
my $file_transport = $acct->file_transport; |
40 |
|
38 |
|
41 |
my $self = { |
39 |
my $self = { |
42 |
account => $acct, |
40 |
account => $acct, |
43 |
schema => $schema, |
|
|
44 |
file_transport => $file_transport, |
41 |
file_transport => $file_transport, |
45 |
working_dir => C4::Context::temporary_directory, #temporary work directory |
42 |
working_dir => C4::Context::temporary_directory, #temporary work directory |
46 |
transfer_date => dt_from_string(), |
43 |
transfer_date => dt_from_string(), |
Lines 187-194
sub ingest {
Link Here
|
187 |
foreach my $f (@downloaded_files) { |
184 |
foreach my $f (@downloaded_files) { |
188 |
|
185 |
|
189 |
# Check file has not been downloaded already |
186 |
# Check file has not been downloaded already |
190 |
my $existing_file = $self->{schema}->resultset('EdifactMessage')->find( { filename => $f, } ); |
187 |
my $existing_files = Koha::Edifact::Files->search( { filename => $f } ); |
191 |
if ($existing_file) { |
188 |
if ( $existing_files->count ) { |
192 |
carp "skipping ingest of $f : filename exists"; |
189 |
carp "skipping ingest of $f : filename exists"; |
193 |
next; |
190 |
next; |
194 |
} |
191 |
} |
Lines 201-207
sub ingest {
Link Here
|
201 |
} |
198 |
} |
202 |
from_to( $file_content, 'iso-8859-1', 'utf8' ); |
199 |
from_to( $file_content, 'iso-8859-1', 'utf8' ); |
203 |
$msg_hash->{raw_msg} = $file_content; |
200 |
$msg_hash->{raw_msg} = $file_content; |
204 |
$self->{schema}->resultset('EdifactMessage')->create($msg_hash); |
201 |
Koha::Edifact::File->new($msg_hash)->store(); |
205 |
} |
202 |
} |
206 |
return; |
203 |
return; |
207 |
} |
204 |
} |
208 |
- |
|
|