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 {
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
..
}
if ($self->type eq 'orders') {
- $::form->{settings}->{order_column} = 'Order';
- $::form->{settings}->{item_column} = 'OrderItem';
+ $::form->{settings}->{max_amount_diff} = $::form->parse_amount(\%::myconfig, $::form->{settings}->{max_amount_diff});
}
delete $::form->{profile}->{id};
}
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);
$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 => '',
}
sub save_report_multi {
- my ($self, $report_id) = @_;
+ my ($self, %params) = @_;
$self->track_progress(phase => 'building report', progress => 0);
$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 => '',
my $row_ident = $self->worker->profile->[$i]->{row_ident};
my $n_info_methods = $info_methods->{$row_ident} ? scalar @{ $info_methods->{$row_ident} } : 0;
my $n_methods = $methods->{$row_ident} ? scalar @{ $methods->{$row_ident} } : 0;
-
+
$off1->{$row_ident} = $n_info_methods;
$off2->{$row_ident} = $off1->{$row_ident} + $n_methods;
}
my $o1 = $off1->{$row_ident};
my $o2 = $off2->{$row_ident};
-
+
$sth->execute($report->id, $_, $row + $n_header_rows, $data_row->{info_data}{ $info_methods->{$row_ident}->[$_] }) for 0 .. $#{ $info_methods->{$row_ident} };
$sth->execute($report->id, $o1 + $_, $row + $n_header_rows, $data_row->{object}->${ \ $methods->{$row_ident}->[$_] }) for 0 .. $#{ $methods->{$row_ident} };
$sth->execute($report->id, $o2 + $_, $row + $n_header_rows, $data_row->{raw_data}{ $raw_methods->{$row_ident}->[$_] }) for 0 .. $#{ $raw_methods->{$row_ident} };