+ foreach my $name (qw(id transdate reqdate quonumber ordnumber cusordnumber name employee salesman shipvia transaction_description shippingpoint taxzone insertdate payment_terms)) {
+ my $sortdir = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir};
+ $column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir";
+ }
+
+ my %column_alignment = map { $_ => 'right' } qw(netamount tax amount curr remaining_amount remaining_netamount order_probability expected_billing_date expected_netamount);
+
+ $form->{"l_type"} = "Y";
+ map { $column_defs{$_}->{visible} = $form->{"l_${_}"} ? 1 : 0 } @columns;
+ $column_defs{ids}->{visible} = $allow_multiple_orders ? 'HTML' : 0;
+
+ $report->set_columns(%column_defs);
+ $report->set_column_order(@columns);
+ $report->set_export_options('orders', @hidden_variables, qw(sort sortdir));
+ $report->set_sort_indicator($form->{sort}, $form->{sortdir});
+
+ CVar->add_custom_variables_to_report('module' => 'CT',
+ 'trans_id_field' => "$form->{vc}_id",
+ 'configs' => $ct_cvar_configs,
+ 'column_defs' => \%column_defs,
+ 'data' => $form->{OE});
+
+ my @options;
+
+ push @options, $locale->text('Customer') . " : $form->{customer}" if $form->{customer};
+ push @options, $locale->text('Vendor') . " : $form->{vendor}" if $form->{vendor};
+ push @options, $locale->text('Contact Person') . " : $form->{cp_name}" if $form->{cp_name};
+ push @options, $locale->text('Department') . " : $form->{department}" if $form->{department};
+ push @options, $locale->text('Order Number') . " : $form->{ordnumber}" if $form->{ordnumber};
+ push @options, $locale->text('Customer Order Number') . " : $form->{cusordnumber}" if $form->{cusordnumber};
+ push @options, $locale->text('Notes') . " : $form->{notes}" if $form->{notes};
+ push @options, $locale->text('Transaction description') . " : $form->{transaction_description}" if $form->{transaction_description};
+ push @options, $locale->text('Quick Search') . " : $form->{all}" if $form->{all};
+ push @options, $locale->text('Shipping Point') . " : $form->{shippingpoint}" if $form->{shippingpoint};
+ push @options, $locale->text('Part Description') . " : $form->{parts_description}" if $form->{parts_description};
+ push @options, $locale->text('Part Number') . " : $form->{parts_partnumber}" if $form->{parts_partnumber};
+ if ( $form->{transdatefrom} or $form->{transdateto} ) {
+ push @options, $locale->text('Order Date');
+ push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{transdatefrom}, 1) if $form->{transdatefrom};
+ push @options, $locale->text('Bis') . " " . $locale->date(\%myconfig, $form->{transdateto}, 1) if $form->{transdateto};
+ };
+ if ( $form->{reqdatefrom} or $form->{reqdateto} ) {
+ push @options, $locale->text('Delivery Date');
+ push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{reqdatefrom}, 1) if $form->{reqdatefrom};
+ push @options, $locale->text('Bis') . " " . $locale->date(\%myconfig, $form->{reqdateto}, 1) if $form->{reqdateto};
+ };
+ if ( $form->{insertdatefrom} or $form->{insertdateto} ) {
+ push @options, $locale->text('Insert Date');
+ push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{insertdatefrom}, 1) if $form->{insertdatefrom};
+ push @options, $locale->text('Bis') . " " . $locale->date(\%myconfig, $form->{insertdateto}, 1) if $form->{insertdateto};
+ };
+ push @options, $locale->text('Open') if $form->{open};
+ push @options, $locale->text('Closed') if $form->{closed};
+ push @options, $locale->text('Delivery Order created') if $form->{delivered};
+ push @options, $locale->text('Not delivered') if $form->{notdelivered};
+ push @options, $locale->text('Periodic invoices active') if $form->{periodic_invoices_active};
+ push @options, $locale->text('Reqdate not set or before current month') if $form->{reqdate_unset_or_old};
+
+ if ($form->{business_id}) {
+ my $vc_type_label = $form->{vc} eq 'customer' ? $locale->text('Customer type') : $locale->text('Vendor type');
+ push @options, $vc_type_label . " : " . SL::DB::Business->new(id => $form->{business_id})->load->description;
+ }
+ if ($form->{taxzone_id} ne '') { # taxzone_id could be 0
+ push @options, $locale->text('Steuersatz') . " : " . SL::DB::TaxZone->new(id => $form->{taxzone_id})->load->description;
+ }
+
+ if ($form->{department_id}) {
+ push @options, $locale->text('Department') . " : " . SL::DB::Department->new(id => $form->{department_id})->load->description;
+ }
+
+ if (($form->{order_probability_value} || '') ne '') {
+ push @options, $::locale->text('Order probability') . ' ' . ($form->{order_probability_op} eq 'le' ? '<=' : '>=') . ' ' . $form->{order_probability_value} . '%';
+ }
+
+ if ($form->{expected_billing_date_from} or $form->{expected_billing_date_to}) {
+ push @options, $locale->text('Expected billing date');
+ push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{expected_billing_date_from}, 1) if $form->{expected_billing_date_from};
+ push @options, $locale->text('Bis') . " " . $locale->date(\%myconfig, $form->{expected_billing_date_to}, 1) if $form->{expected_billing_date_to};
+ }
+
+ $report->set_options('top_info_text' => join("\n", @options),
+ 'raw_top_info_text' => $form->parse_html_template('oe/orders_top'),
+ 'raw_bottom_info_text' => $form->parse_html_template('oe/orders_bottom', { 'SHOW_CONTINUE_BUTTON' => $allow_multiple_orders }),
+ 'output_format' => 'HTML',
+ 'title' => $form->{title},
+ 'attachment_basename' => $attachment_basename . strftime('_%Y%m%d', localtime time),
+ );
+ $report->set_options_from_form();
+ $locale->set_numberformat_wo_thousands_separator(\%myconfig) if lc($report->{options}->{output_format}) eq 'csv';