Rechnungsliste: Unterscheidung zwischen Stornorechnung und stornierter Rechnung wiede...
[kivitendo-erp.git] / SL / ReportGenerator.pm
index 57a8c95..cdcf18f 100644 (file)
@@ -46,6 +46,8 @@ sub new {
     'variable_list' => '',
   };
 
+  $self->{data_present} = 0;
+
   $self->set_options(@_) if (@_);
 
   return bless $self, $type;
@@ -105,7 +107,14 @@ sub add_data {
       $self->{form}->error('Incorrect usage -- expecting hash or array ref');
     }
 
+    my @columns_with_default_alignment = grep { defined $self->{columns}->{$_}->{align} } keys %{ $self->{columns} };
+
     foreach my $row (@{ $row_set }) {
+      foreach my $column (@columns_with_default_alignment) {
+        $row->{$column}          ||= { };
+        $row->{$column}->{align}   = $self->{columns}->{$column}->{align} unless (defined $row->{$column}->{align});
+      }
+
       foreach my $field (qw(data link)) {
         map { $row->{$_}->{$field} = [ $row->{$_}->{$field} ] if (ref $row->{$_}->{$field} ne 'ARRAY') } keys %{ $row };
       }
@@ -113,6 +122,8 @@ sub add_data {
 
     push @{ $self->{data} }, $row_set;
     $last_row_set = $row_set;
+
+    $self->{data_present} = 1;
   }
 
   return $last_row_set;
@@ -134,7 +145,8 @@ sub add_control {
 sub clear_data {
   my $self = shift;
 
-  $self->{data} = [];
+  $self->{data}         = [];
+  $self->{data_present} = 0;
 }
 
 sub set_options {
@@ -313,13 +325,14 @@ sub prepare_html_content {
     'RAW_BOTTOM_INFO_TEXT' => $opts->{raw_bottom_info_text},
     'ALLOW_PDF_EXPORT'     => $allow_pdf_export,
     'ALLOW_CSV_EXPORT'     => $opts->{allow_csv_export},
-    'SHOW_EXPORT_BUTTONS'  => $allow_pdf_export || $opts->{allow_csv_export},
+    'SHOW_EXPORT_BUTTONS'  => ($allow_pdf_export || $opts->{allow_csv_export}) && $self->{data_present},
     'COLUMN_HEADERS'       => \@column_headers,
     'NUM_COLUMNS'          => scalar @column_headers,
     'ROWS'                 => \@rows,
     'EXPORT_VARIABLES'     => \@export_variables,
     'EXPORT_VARIABLE_LIST' => $self->{export}->{variable_list},
     'EXPORT_NEXTSUB'       => $self->{export}->{nextsub},
+    'DATA_PRESENT'         => $self->{data_present},
   };
 
   return $variables;