Übergabe des Templates an den ReportGenerator nicht über $form, sondern über ReportGe...
[kivitendo-erp.git] / bin / mozilla / ca.pl
index d2fab48..a4de231 100644 (file)
@@ -74,6 +74,8 @@ require "bin/mozilla/reportgenerator.pl";
 sub chart_of_accounts {
   $lxdebug->enter_sub();
 
+  $auth->assert('report');
+
   $form->{title} = $locale->text('Chart of Accounts');
 
   CA->all_accounts(\%myconfig, \%$form);
@@ -136,6 +138,8 @@ sub chart_of_accounts {
 sub list {
   $lxdebug->enter_sub();
 
+  $auth->assert('report');
+
   $form->{title} = $locale->text('List Transactions');
   $form->{title} .= " - " . $locale->text('Account') . " $form->{accno}";
 
@@ -197,9 +201,6 @@ sub list {
   <tr><td><hr size=3 noshade></td></tr>
 </table>
 
-<input type=hidden name=login value=$form->{login}>
-<input type=hidden name=password value=$form->{password}>
-
 <br><input class=submit type=submit name=action value="|
     . $locale->text('List Transactions') . qq|">
 </form>
@@ -214,6 +215,8 @@ sub list {
 sub list_transactions {
   $lxdebug->enter_sub();
 
+  $auth->assert('report');
+
   $form->{title} = $locale->text('Account') . " $form->{accno} - $form->{description}";
 
   CA->all_transactions(\%myconfig, \%$form);
@@ -299,6 +302,7 @@ sub list_transactions {
   my $idx       = 0;
   my %totals    = ( 'debit' => 0, 'credit' => 0 );
   my %subtotals = ( 'debit' => 0, 'credit' => 0 );
+  my ($previous_index, $row_set);
 
   foreach my $ca (@{ $form->{CA} }) {
     $form->{balance} += $ca->{amount};
@@ -320,9 +324,20 @@ sub list_transactions {
       };
     }
 
-    $row->{reference}->{link} = build_std_url("script=$ca->{module}.pl", 'action=edit', 'id=' . E($ca->{id}), 'callback');
+    if ($ca->{index} ne $previous_index) {
+      $report->add_data($row_set) if ($row_set);
 
-    $report->add_data($row);
+      $row_set         = [ ];
+      $previous_index  = $ca->{index};
+
+      $row->{reference}->{link} = build_std_url("script=$ca->{module}.pl", 'action=edit', 'id=' . E($ca->{id}), 'callback');
+
+    } else {
+      map { $row->{$_}->{data} = '' } qw(reference description);
+      $row->{transdate}->{data} = '' if ($form->{sort} eq 'transdate');
+    }
+
+    push @{ $row_set }, $row;
 
     if (($form->{l_subtotal} eq 'Y')
         && (($idx == scalar @{ $form->{CA} } - 1)