sub csv : Local { my ( $self, $c ) = @_; my $konf = ECS::Inkasso::Konfig->new($c); my $vid = $c->req->{parameters}->{vorgang_id}; my $to_in = $konf->{location}->{csv_upload}."/incoming"; my $to_ok = $konf->{location}->{csv_upload}."/ok"; my $to_err = $konf->{location}->{csv_upload}."/error"; eval { if ( my $upload = $c->request->upload('my_file') ) { $upload = FileSystemObjects::File->new( $upload->{tempname} ); my $md5 = $upload->content_md5_file('hex'); die "Diese Datei ist bereits in Bearbeitung.\n" if -e "$to_in/$md5"; die "Diese Datei wurde bereits verarbeitet.\n" if -e "$to_ok/$md5"; die "Diese Datei wurde bereits abgelehnt.\n" if -e "$to_err/$md5"; my $xmlrpc = XML::RPC->new('http://localhost:8080'); my $ping; eval { $ping = $xmlrpc->call( 'inkasso.ping', 3, {'wait'=>0 } ) }; if ( $ping =~ /^\d+$/ ) { $upload->move( "$to_in/$md5" ); eval { $xmlrpc->call( 'inkasso.csv_importieren', 1, { auth => { id => 1, pwd => "derJochen" }, token => $upload->name, }); }; $c->res->redirect($c->req->base."/forderung/importieren/import_laeuft?token=".$upload->name); } else { die "Webservice nicht verfügbar.\n"; } } else { $self->my_forward( $c, content_template => 'forderung/importieren/csv' ); } }; if ( $@ ) { $self->my_forward( $c, content_template => 'allgemein/error', error_msg => $@ ); } } sub import_laeuft : Local { my ( $self, $c ) = @_; my $token = $c->request->{parameters}->{token} || die "no token!\n"; die "malformed token!\n" unless $token =~ /^[a-f0-9]+$/i; $c->stash->{token} = $token; $self->my_forward( $c, content_template => 'forderung/importieren/progress_bar' ); }