|
Lines 83-89
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
Link Here
|
| 83 |
my $session_id = $input->cookie('CGISESSID'); |
83 |
my $session_id = $input->cookie('CGISESSID'); |
| 84 |
my $session = $session_id ? get_session($session_id) : undef; |
84 |
my $session = $session_id ? get_session($session_id) : undef; |
| 85 |
|
85 |
|
| 86 |
$template->param( templates => Koha::Notice::Templates->search( { module => 'report' } ) ); |
86 |
my $show_all = 0; |
|
|
87 |
if ( defined $input->param('show_all') ) { |
| 88 |
my $param = $input->param('show_all'); |
| 89 |
if ( defined $param && $param eq '1' ) { |
| 90 |
$show_all = 1; |
| 91 |
$session->param( 'show_all', 1 ) if $session; |
| 92 |
} else { |
| 93 |
$show_all = 0; |
| 94 |
$session->clear('show_all') if $session; |
| 95 |
} |
| 96 |
} elsif ( $session && defined $session->param('show_all') ) { |
| 97 |
$show_all = $session->param('show_all') ? 1 : 0; |
| 98 |
} |
| 99 |
$template->param( 'show_all' => $show_all ); |
| 100 |
|
| 101 |
$template->param( templates => Koha::Notice::Templates->search( { module => 'report' } ), op => $op ); |
| 87 |
|
102 |
|
| 88 |
my $filter; |
103 |
my $filter; |
| 89 |
if ( $input->param("filter_set") or $input->param('clear_filters') ) { |
104 |
if ( $input->param("filter_set") or $input->param('clear_filters') ) { |
|
Lines 127-133
if ( !$op ) {
Link Here
|
| 127 |
'showsql' => 1, |
142 |
'showsql' => 1, |
| 128 |
'mana_success' => scalar $input->param('mana_success'), |
143 |
'mana_success' => scalar $input->param('mana_success'), |
| 129 |
'mana_id' => $report->{mana_id}, |
144 |
'mana_id' => $report->{mana_id}, |
| 130 |
'mana_comments' => $report->{comments} |
145 |
'mana_comments' => $report->{comments}, |
| 131 |
); |
146 |
); |
| 132 |
|
147 |
|
| 133 |
} elsif ( $op eq 'edit_form' ) { |
148 |
} elsif ( $op eq 'edit_form' ) { |
|
Lines 148-158
if ( !$op ) {
Link Here
|
| 148 |
'editsql' => 1, |
163 |
'editsql' => 1, |
| 149 |
'mana_id' => $report->{mana_id}, |
164 |
'mana_id' => $report->{mana_id}, |
| 150 |
'mana_comments' => $report->{comments}, |
165 |
'mana_comments' => $report->{comments}, |
| 151 |
'tables' => $tables |
166 |
'tables' => $tables, |
|
|
167 |
'report' => $report, |
| 152 |
); |
168 |
); |
| 153 |
|
169 |
|
| 154 |
} elsif ( $op eq 'cud-update_sql' || $op eq 'cud-update_and_run_sql' ) { |
170 |
} elsif ( $op eq 'cud-update_sql' || $op eq 'cud-update_and_run_sql' ) { |
| 155 |
my $id = $input->param('id'); |
171 |
my $id = $input->param('id'); |
|
|
172 |
my $report = Koha::Reports->find($id); |
| 156 |
my $sql = $input->param('sql'); |
173 |
my $sql = $input->param('sql'); |
| 157 |
my $reportname = $input->param('reportname'); |
174 |
my $reportname = $input->param('reportname'); |
| 158 |
my $group = $input->param('group'); |
175 |
my $group = $input->param('group'); |
|
Lines 163-169
if ( !$op ) {
Link Here
|
| 163 |
my $public = $input->param('public'); |
180 |
my $public = $input->param('public'); |
| 164 |
my $save_anyway = $input->param('save_anyway'); |
181 |
my $save_anyway = $input->param('save_anyway'); |
| 165 |
my @errors; |
182 |
my @errors; |
| 166 |
my $tables = get_tables(); |
183 |
my $tables = get_tables(); |
|
|
184 |
my @branches = grep { $_ ne q{} } $input->multi_param('branches'); |
| 167 |
|
185 |
|
| 168 |
# if we have the units, then we came from creating a report from SQL and thus need to handle converting units |
186 |
# if we have the units, then we came from creating a report from SQL and thus need to handle converting units |
| 169 |
if ($cache_expiry_units) { |
187 |
if ($cache_expiry_units) { |
|
Lines 211-216
if ( !$op ) {
Link Here
|
| 211 |
'problematic_authvals' => $problematic_authvals, |
229 |
'problematic_authvals' => $problematic_authvals, |
| 212 |
'warn_authval_problem' => 1, |
230 |
'warn_authval_problem' => 1, |
| 213 |
'phase_update' => 1, |
231 |
'phase_update' => 1, |
|
|
232 |
'branches' => @branches, |
| 233 |
'report' => $report, |
| 214 |
); |
234 |
); |
| 215 |
|
235 |
|
| 216 |
} else { |
236 |
} else { |
|
Lines 225-234
if ( !$op ) {
Link Here
|
| 225 |
subgroup => $subgroup, |
245 |
subgroup => $subgroup, |
| 226 |
notes => $notes, |
246 |
notes => $notes, |
| 227 |
public => $public, |
247 |
public => $public, |
| 228 |
cache_expiry => $cache_expiry, |
248 |
cache_expiry => $cache_expiry |
| 229 |
} |
249 |
} |
| 230 |
); |
250 |
); |
| 231 |
|
251 |
|
|
|
252 |
$report->store; |
| 253 |
$report->replace_library_limits( \@branches ); |
| 254 |
|
| 232 |
my $editsql = 1; |
255 |
my $editsql = 1; |
| 233 |
if ( $op eq 'cud-update_and_run_sql' ) { |
256 |
if ( $op eq 'cud-update_and_run_sql' ) { |
| 234 |
$editsql = 0; |
257 |
$editsql = 0; |
|
Lines 245-251
if ( !$op ) {
Link Here
|
| 245 |
'cache_expiry' => $cache_expiry, |
268 |
'cache_expiry' => $cache_expiry, |
| 246 |
'public' => $public, |
269 |
'public' => $public, |
| 247 |
'usecache' => $usecache, |
270 |
'usecache' => $usecache, |
| 248 |
'tables' => $tables |
271 |
'tables' => $tables, |
|
|
272 |
'report' => $report |
| 249 |
); |
273 |
); |
| 250 |
logaction( "REPORTS", "MODIFY", $id, "$reportname | $sql" ) if C4::Context->preference("ReportsLog"); |
274 |
logaction( "REPORTS", "MODIFY", $id, "$reportname | $sql" ) if C4::Context->preference("ReportsLog"); |
| 251 |
} |
275 |
} |
|
Lines 514-519
if ( !$op ) {
Link Here
|
| 514 |
my $public = $input->param('public'); |
538 |
my $public = $input->param('public'); |
| 515 |
my $save_anyway = $input->param('save_anyway'); |
539 |
my $save_anyway = $input->param('save_anyway'); |
| 516 |
my $tables = get_tables(); |
540 |
my $tables = get_tables(); |
|
|
541 |
my @branches = grep { $_ ne q{} } $input->multi_param('branches'); |
| 517 |
|
542 |
|
| 518 |
# if we have the units, then we came from creating a report from SQL and thus need to handle converting units |
543 |
# if we have the units, then we came from creating a report from SQL and thus need to handle converting units |
| 519 |
if ($cache_expiry_units) { |
544 |
if ($cache_expiry_units) { |
|
Lines 591-596
if ( !$op ) {
Link Here
|
| 591 |
public => $public, |
616 |
public => $public, |
| 592 |
} |
617 |
} |
| 593 |
); |
618 |
); |
|
|
619 |
my $report = Koha::Reports->find($id); |
| 620 |
$report->replace_library_limits( \@branches ); |
| 621 |
|
| 594 |
logaction( "REPORTS", "ADD", $id, "$name | $sql" ) if C4::Context->preference("ReportsLog"); |
622 |
logaction( "REPORTS", "ADD", $id, "$name | $sql" ) if C4::Context->preference("ReportsLog"); |
| 595 |
$template->param( |
623 |
$template->param( |
| 596 |
'save_successful' => 1, |
624 |
'save_successful' => 1, |
|
Lines 603-609
if ( !$op ) {
Link Here
|
| 603 |
'cache_expiry' => $cache_expiry, |
631 |
'cache_expiry' => $cache_expiry, |
| 604 |
'public' => $public, |
632 |
'public' => $public, |
| 605 |
'usecache' => $usecache, |
633 |
'usecache' => $usecache, |
| 606 |
'tables' => $tables |
634 |
'tables' => $tables, |
|
|
635 |
'report' => $report, |
| 607 |
); |
636 |
); |
| 608 |
} |
637 |
} |
| 609 |
} |
638 |
} |
|
Lines 746-765
if ( !$op ) {
Link Here
|
| 746 |
|
775 |
|
| 747 |
} elsif ( $op eq 'add_form_sql' || $op eq 'duplicate' ) { |
776 |
} elsif ( $op eq 'add_form_sql' || $op eq 'duplicate' ) { |
| 748 |
|
777 |
|
| 749 |
my ( $group, $subgroup, $sql, $reportname, $notes ); |
778 |
my ( $group, $subgroup, $sql, $reportname, $notes, @branches, $report ); |
| 750 |
if ( $input->param('sql') ) { |
779 |
if ( $input->param('sql') ) { |
| 751 |
$group = $input->param('report_group'); |
780 |
$group = $input->param('report_group'); |
| 752 |
$subgroup = $input->param('report_subgroup'); |
781 |
$subgroup = $input->param('report_subgroup'); |
| 753 |
$sql = $input->param('sql') // ''; |
782 |
$sql = $input->param('sql') // ''; |
| 754 |
$reportname = $input->param('reportname') // ''; |
783 |
$reportname = $input->param('reportname') // ''; |
| 755 |
$notes = $input->param('notes') // ''; |
784 |
$notes = $input->param('notes') // ''; |
|
|
785 |
@branches = grep { $_ ne q{} } $input->multi_param('branches'); |
| 786 |
|
| 756 |
} elsif ( my $report_id = $input->param('id') ) { |
787 |
} elsif ( my $report_id = $input->param('id') ) { |
| 757 |
my $report = Koha::Reports->find($report_id); |
788 |
$report = Koha::Reports->find($report_id); |
| 758 |
$group = $report->report_group; |
789 |
$group = $report->report_group; |
| 759 |
$subgroup = $report->report_subgroup; |
790 |
$subgroup = $report->report_subgroup; |
| 760 |
$sql = $report->savedsql // ''; |
791 |
$sql = $report->savedsql // ''; |
| 761 |
$reportname = $report->report_name // ''; |
792 |
$reportname = $report->report_name // ''; |
| 762 |
$notes = $report->notes // ''; |
793 |
$notes = $report->notes // ''; |
|
|
794 |
@branches = grep { $_ ne q{} } $input->multi_param('branches'); |
| 795 |
|
| 763 |
} |
796 |
} |
| 764 |
|
797 |
|
| 765 |
my $tables = get_tables(); |
798 |
my $tables = get_tables(); |
|
Lines 774-779
if ( !$op ) {
Link Here
|
| 774 |
'cache_expiry' => 300, |
807 |
'cache_expiry' => 300, |
| 775 |
'usecache' => $usecache, |
808 |
'usecache' => $usecache, |
| 776 |
'tables' => $tables, |
809 |
'tables' => $tables, |
|
|
810 |
'report' => $report, |
| 777 |
|
811 |
|
| 778 |
); |
812 |
); |
| 779 |
} |
813 |
} |
|
Lines 1081-1104
if ( $op eq 'list' || $op eq 'convert' ) {
Link Here
|
| 1081 |
my $subgroup = $input->param('subgroup'); |
1115 |
my $subgroup = $input->param('subgroup'); |
| 1082 |
$filter->{group} = $group; |
1116 |
$filter->{group} = $group; |
| 1083 |
$filter->{subgroup} = $subgroup; |
1117 |
$filter->{subgroup} = $subgroup; |
| 1084 |
my $reports = get_saved_reports($filter); |
1118 |
|
| 1085 |
my $has_obsolete_reports; |
1119 |
my $pref_limit_reports_by_branch = C4::Context->preference("LimitReportsByBranch"); |
| 1086 |
for my $report (@$reports) { |
1120 |
if ( $show_all == 0 && $pref_limit_reports_by_branch == "1" ) { |
| 1087 |
$report->{results} = C4::Reports::Guided::get_results( $report->{id} ); |
1121 |
my $reports_with_library_limits_results = |
| 1088 |
if ( $report->{savedsql} =~ m|biblioitems| and $report->{savedsql} =~ m|marcxml| ) { |
1122 |
Koha::Reports->search_with_library_limits( {}, {}, C4::Context::mybranch() ); |
| 1089 |
$report->{seems_obsolete} = 1; |
1123 |
my $reports_list = $reports_with_library_limits_results->unblessed; |
| 1090 |
$has_obsolete_reports++; |
1124 |
my $filtered_reports = get_saved_reports($filter); |
|
|
1125 |
|
| 1126 |
# Remove all reports in $reports_list that are not also in $filtered_reports |
| 1127 |
|
| 1128 |
my %seen; |
| 1129 |
my @filtered_reports_by_library_limits; |
| 1130 |
foreach my $element (@$filtered_reports) { |
| 1131 |
$seen{ $element->{id} } = 1; |
| 1091 |
} |
1132 |
} |
|
|
1133 |
|
| 1134 |
foreach my $element (@$reports_list) { |
| 1135 |
if ( $seen{ $element->{id} } ) { |
| 1136 |
push @filtered_reports_by_library_limits, $element; |
| 1137 |
} |
| 1138 |
} |
| 1139 |
|
| 1140 |
my $has_obsolete_reports; |
| 1141 |
for my $report (@filtered_reports_by_library_limits) { |
| 1142 |
$report->{results} = C4::Reports::Guided::get_results( $report->{id} ); |
| 1143 |
if ( $report->{savedsql} =~ m|biblioitems| and $report->{savedsql} =~ m|marcxml| ) { |
| 1144 |
$report->{seems_obsolete} = 1; |
| 1145 |
$has_obsolete_reports++; |
| 1146 |
} |
| 1147 |
$template->param( |
| 1148 |
'manamsg' => $input->param('manamsg') || '', |
| 1149 |
'saved1' => 1, |
| 1150 |
'savedreports' => \@filtered_reports_by_library_limits, |
| 1151 |
'usecache' => $usecache, |
| 1152 |
'groups_with_subgroups' => groups_with_subgroups( $group, $subgroup ), |
| 1153 |
filters => $filter, |
| 1154 |
has_obsolete_reports => $has_obsolete_reports, |
| 1155 |
); |
| 1156 |
} |
| 1157 |
} else { |
| 1158 |
|
| 1159 |
my $reports = get_saved_reports($filter); |
| 1160 |
my $has_obsolete_reports; |
| 1161 |
|
| 1162 |
for my $report (@$reports) { |
| 1163 |
$report->{results} = C4::Reports::Guided::get_results( $report->{id} ); |
| 1164 |
if ( $report->{savedsql} =~ m|biblioitems| and $report->{savedsql} =~ m|marcxml| ) { |
| 1165 |
$report->{seems_obsolete} = 1; |
| 1166 |
$has_obsolete_reports++; |
| 1167 |
} |
| 1168 |
} |
| 1169 |
$template->param( |
| 1170 |
'manamsg' => $input->param('manamsg') || '', |
| 1171 |
'saved1' => 1, |
| 1172 |
'savedreports' => $reports, |
| 1173 |
'usecache' => $usecache, |
| 1174 |
'groups_with_subgroups' => groups_with_subgroups( $group, $subgroup ), |
| 1175 |
filters => $filter, |
| 1176 |
has_obsolete_reports => $has_obsolete_reports, |
| 1177 |
); |
| 1092 |
} |
1178 |
} |
| 1093 |
$template->param( |
|
|
| 1094 |
'manamsg' => $input->param('manamsg') || '', |
| 1095 |
'saved1' => 1, |
| 1096 |
'savedreports' => $reports, |
| 1097 |
'usecache' => $usecache, |
| 1098 |
'groups_with_subgroups' => groups_with_subgroups( $group, $subgroup ), |
| 1099 |
filters => $filter, |
| 1100 |
has_obsolete_reports => $has_obsolete_reports, |
| 1101 |
); |
| 1102 |
} |
1179 |
} |
| 1103 |
|
1180 |
|
| 1104 |
# pass $sth, get back an array of names for the column headers |
1181 |
# pass $sth, get back an array of names for the column headers |