X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FCsvImport.pm;h=58715d30814cb5d18f3611b90577c6ceaf60725f;hb=f10e650c26ed930ce04f4ca1bd3f21d0036e5ba4;hp=7fa20a7e10e0ccf373233ba25afc1aa92d7de775;hpb=1870f11e7915b768e83e18f8491f1e13d0702ead;p=kivitendo-erp.git diff --git a/SL/Controller/CsvImport.pm b/SL/Controller/CsvImport.pm index 7fa20a7e1..58715d308 100644 --- a/SL/Controller/CsvImport.pm +++ b/SL/Controller/CsvImport.pm @@ -127,12 +127,12 @@ sub action_download_sample { my $csv = Text::CSV_XS->new({ binary => 1, map { ( $_ => $self->profile->get($_) ) } qw(sep_char escape_char quote_char),}); if ($self->worker->is_multiplexed) { - foreach my $ri (keys %{ $self->displayable_columns }) { - $csv->print($file->fh, [ map { $_->{name} } @{ $self->displayable_columns->{$ri} } ]); + foreach my $p (@{ $self->worker->profile }) { + $csv->print($file->fh, [ map { $_->{name} } @{ $self->displayable_columns->{$p->{row_ident}} } ]); $file->fh->print("\r\n"); } - foreach my $ri (keys %{ $self->displayable_columns }) { - $csv->print($file->fh, [ map { $_->{description} } @{ $self->displayable_columns->{$ri} } ]); + foreach my $p (@{ $self->worker->profile }) { + $csv->print($file->fh, [ map { $_->{description} } @{ $self->displayable_columns->{$p->{row_ident}} } ]); $file->fh->print("\r\n"); } } else { @@ -165,16 +165,16 @@ sub action_report { my $pages = {}; $pages->{per_page} = $::form->{per_page} || 20; $pages->{max} = SL::DB::Helper::Paginated::ceil($num_rows, $pages->{per_page}) || 1; - $pages->{cur} = $page < 1 ? 1 + $pages->{page} = $page < 1 ? 1 : $page > $pages->{max} ? $pages->{max} : $page; - $pages->{common} = [ grep { $_->{visible} } @{ SL::DB::Helper::Paginated::make_common_pages($pages->{cur}, $pages->{max}) } ]; + $pages->{common} = [ grep { $_->{visible} } @{ SL::DB::Helper::Paginated::make_common_pages($pages->{page}, $pages->{max}) } ]; $self->{report_numheaders} = $self->{report}->numheaders; my $first_row_header = 0; my $last_row_header = $self->{report_numheaders} - 1; - my $first_row_data = $pages->{per_page} * ($pages->{cur}-1) + $self->{report_numheaders}; - my $last_row_data = min($pages->{per_page} * $pages->{cur}, $num_rows) + $self->{report_numheaders} - 1; + my $first_row_data = $pages->{per_page} * ($pages->{page}-1) + $self->{report_numheaders}; + my $last_row_data = min($pages->{per_page} * $pages->{page}, $num_rows) + $self->{report_numheaders} - 1; $self->{display_rows} = [ $first_row_header .. @@ -414,17 +414,17 @@ sub char_map { } sub save_report { - my ($self, $report_id) = @_; + my ($self, %params) = @_; if ($self->worker->is_multiplexed) { - return $self->save_report_multi($report_id); + return $self->save_report_multi(%params); } else { - return $self->save_report_single($report_id); + return $self->save_report_single(%params); } } sub save_report_single { - my ($self, $report_id) = @_; + my ($self, %params) = @_; $self->track_progress(phase => 'building report', progress => 0); @@ -432,7 +432,7 @@ sub save_report_single { $clone_profile->save; # weird bug. if this isn't saved before adding it to the report, it will default back to the last profile. my $report = SL::DB::CsvImportReport->new( - session_id => $::auth->create_or_refresh_session, + session_id => $params{session_id}, profile => $clone_profile, type => $self->type, file => '', @@ -494,7 +494,7 @@ sub save_report_single { } sub save_report_multi { - my ($self, $report_id) = @_; + my ($self, %params) = @_; $self->track_progress(phase => 'building report', progress => 0); @@ -502,7 +502,7 @@ sub save_report_multi { $clone_profile->save; # weird bug. if this isn't saved before adding it to the report, it will default back to the last profile. my $report = SL::DB::CsvImportReport->new( - session_id => $::auth->create_or_refresh_session, + session_id => $params{session_id}, profile => $clone_profile, type => $self->type, file => '',