-
-
-
-|;
-
- map { print "$column_header{$_}\n" } @column_index;
-
- print qq|
-
-|;
+ my @columns = (
+ 'id', 'name', "$form->{db}number", 'address', 'contact', 'phone',
+ 'fax', 'email', 'taxnumber', 'sic_code', 'business', 'invnumber',
+ 'ordnumber', 'quonumber'
+ );
+
+ my %column_defs = (
+ 'id' => { 'text' => $locale->text('ID'), },
+ "$form->{db}number" => { 'text' => $form->{IS_CUSTOMER} ? $locale->text('Customer Number') : $locale->text('Vendor Number'), },
+ 'name' => { 'text' => $locale->text('Name'), },
+ 'address' => { 'text' => $locale->text('Address'), },
+ 'contact' => { 'text' => $locale->text('Contact'), },
+ 'phone' => { 'text' => $locale->text('Phone'), },
+ 'fax' => { 'text' => $locale->text('Fax'), },
+ 'email' => { 'text' => $locale->text('E-mail'), },
+ 'cc' => { 'text' => $locale->text('Cc'), },
+ 'taxnumber' => { 'text' => $locale->text('Tax Number'), },
+ 'sic_code' => { 'text' => $locale->text('SIC'), },
+ 'business' => { 'text' => $locale->text('Type of Business'), },
+ 'invnumber' => { 'text' => $locale->text('Invoice'), },
+ 'ordnumber' => { 'text' => $form->{IS_CUSTOMER} ? $locale->text('Sales Order') : $locale->text('Purchase Order'), },
+ 'quonumber' => { 'text' => $form->{IS_CUSTOMER} ? $locale->text('Quotation') : $locale->text('Request for Quotation'), },
+ );
+
+ map { $column_defs{$_}->{visible} = $form->{"l_$_"} eq 'Y' } @columns;
+
+ my @hidden_variables = (qw(db status obsolete), map { "l_$_" } @columns);
+ my @hidden_nondefault = grep({ $form->{$_} } @hidden_variables);
+ my $callback = build_std_url('action=list_names', grep { $form->{$_} } @hidden_variables);
+ $form->{callback} = "$callback&sort=" . E($form->{sort});
+
+ map { $column_defs{$_}->{link} = "${callback}&sort=${_}" } @columns;
+
+ my ($ordertype, $quotationtype, $attachment_basename);
+ if ($form->{IS_CUSTOMER}) {
+ $form->{title} = $locale->text('Customers');
+ $ordertype = 'sales_order';
+ $quotationtype = 'sales_quotation';
+ $attachment_basename = $locale->text('customer_list');
- $ordertype = ($form->{db} eq 'customer') ? 'sales_order' : 'purchase_order';
- $quotationtype =
- ($form->{db} eq 'customer') ? 'sales_quotation' : 'request_quotation';
-
- foreach $ref (@{ $form->{CT} }) {
+ } else {
+ $form->{title} = $locale->text('Vendors');
+ $ordertype = 'purchase_order';
+ $quotationtype = 'request_quotation';
+ $attachment_basename = $locale->text('vendor_list');
+ }
- if ($ref->{id} eq $sameid) {
- map { $column_data{$_} = " | " } @column_index;
- } else {
- map { $column_data{$_} = "$ref->{$_} | " } @column_index;
+ my $report = SL::ReportGenerator->new(\%myconfig, $form);
- map { $column_data{$_} = "$ref->{$_} | " }
- (invnumber, ordnumber, quonumber);
+ $report->set_options('top_info_text' => join("\n", @options),
+ 'raw_bottom_info_text' => $form->parse_html_template2('ct/list_names_bottom'),
+ 'output_format' => 'HTML',
+ 'title' => $form->{title},
+ 'attachment_basename' => $attachment_basename . strftime('_%Y%m%d', localtime time),
+ );
+ $report->set_options_from_form();
- $column_data{name} =
- "{script}?action=edit&id=$ref->{id}&db=$form->{db}&login=$form->{login}&password=$form->{password}&status=$form->{status}&callback=$callback>$ref->{name} | ";
+ $report->set_columns(%column_defs);
+ $report->set_column_order(@columns);
- if ($ref->{email}) {
- $email = $ref->{email};
- $email =~ s/\</;
- $email =~ s/>/\>/;
+ $report->set_export_options('list_names', @hidden_variables);
- $column_data{email} =
- qq|$email | |;
- }
+ $report->set_sort_indicator($form->{sort}, 1);
- }
+ my $previous_id;
- if ($ref->{formtype} eq 'invoice') {
- $column_data{invnumber} =
- "{module}.pl?action=edit&id=$ref->{invid}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{invnumber} | ";
- }
+ foreach my $ref (@{ $form->{CT} }) {
+ my $row = { map { $_ => { 'data' => '' } } @columns };
- if ($ref->{formtype} eq 'order') {
- $column_data{ordnumber} =
- "{module}.pl?action=edit&id=$ref->{invid}&type=$ordertype&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{ordnumber} | ";
- }
+ if ($ref->{id} ne $previous_id) {
+ $previous_id = $ref->{id};
+ map { $row->{$_}->{data} = $ref->{$_} } @columns;
- if ($ref->{formtype} eq 'quotation') {
- $column_data{quonumber} =
- "{module}.pl?action=edit&id=$ref->{invid}&type=$quotationtype&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{quonumber} | ";
+ $row->{name}->{link} = build_std_url('action=edit', 'id=' . E($ref->{id}), 'callback', @hidden_nondefault);
+ $row->{email}->{link} = 'mailto:' . E($ref->{email});
}
- $i++;
- $i %= 2;
- print "
-
-";
-
- map { print "$column_data{$_}\n" } @column_index;
-
- print qq|
-
-|;
-
- $sameid = $ref->{id};
+ my $base_url = build_std_url("script=$ref->{module}.pl", 'action=edit', 'id=' . E($ref->{invid}), 'callback', @hidden_nondefault);
+ $row->{invnumber}->{link} = $base_url;
+ $row->{ordnumber}->{link} = $base_url . "&type=${ordertype}";
+ $row->{quonumber}->{link} = $base_url . "&type=${quotationtype}";
+ my $column = $ref->{formtype} eq 'invoice' ? 'invnumber' : $ref->{formtype} eq 'order' ? 'ordnumber' : 'quonumber';
+ $row->{$column}->{data} = $ref->{$column};
+ $report->add_data($row);
}
- print qq|
-
- |
-
-