my $phase = $input->param('phase') // '';
my $flagsrequired;
-if ( $phase eq 'Build new' ) {
+if ( ( $phase eq 'Build new' ) || ( $phase eq 'Create report from SQL' ) || ( $phase eq 'Edit SQL' ) ){
$flagsrequired = 'create_reports';
}
elsif ( $phase eq 'Use saved' ) {
$filter = $session->param('report_filter');
}
+my $op = $input->param('op') || q||;
my @errors = ();
if ( !$phase ) {
);
} elsif ( $phase eq 'Use saved' ) {
+ if ( $op eq 'convert' ) {
+ my $report_id = $input->param('report_id');
+ my $report = C4::Reports::Guided::get_saved_report($report_id);
+ if ($report) {
+ my $updated_sql = C4::Reports::Guided::convert_sql( $report->{savedsql} );
+ C4::Reports::Guided::update_sql(
+ $report_id,
+ {
+ sql => $updated_sql,
+ name => $report->{report_name},
+ group => $report->{report_group},
+ subgroup => $report->{report_subgroup},
+ notes => $report->{notes},
+ public => $report->{public},
+ cache_expiry => $report->{cache_expiry},
+ }
+ );
+ $template->param( report_converted => $report->{report_name} );
+ }
+ }
+
# use a saved report
# get list of reports and display them
my $group = $input->param('group');
$filter->{group} = $group;
$filter->{subgroup} = $subgroup;
my $reports = get_saved_reports($filter);
+ my $has_obsolete_reports;
for my $report ( @$reports ) {
$report->{results} = C4::Reports::Guided::get_results( $report->{id} );
+ if ( $report->{savedsql} =~ m|marcxml| ) {
+ $report->{seems_obsolete} = 1;
+ $has_obsolete_reports++;
+ }
}
$template->param(
'saved1' => 1,
'usecache' => $usecache,
'groups_with_subgroups'=> groups_with_subgroups($group, $subgroup),
filters => $filter,
+ has_obsolete_reports => $has_obsolete_reports,
);
}
$quoted = C4::Context->dbh->quote($quoted);
$sql =~ s/<<$split[$i*2+1]>>/$quoted/;
}
- my ($sth, $errors) = execute_query($sql, $offset, $limit);
+ my ( $sth, $errors ) = execute_query( $sql, $offset, $limit, undef, $report_id );
my $total = nb_rows($sql) || 0;
unless ($sth) {
die "execute_query failed to return sth for report $report_id: $sql";