Beim Aufruf von check_project() die als nächstes aufzurufende Funktion mitgeben.
[kivitendo-erp.git] / bin / mozilla / rp.pl
index 4734d20..41148c8 100644 (file)
@@ -41,6 +41,7 @@ use SL::PE;
 use SL::RP;
 use SL::Iconv;
 use SL::ReportGenerator;
+use Data::Dumper;
 
 require "bin/mozilla/arap.pl";
 require "bin/mozilla/common.pl";
@@ -464,7 +465,7 @@ $checked></td>
          <th align=right colspan=4>| . $locale->text('Decimalplaces') . qq|</th>
              <td><input name=decimalplaces size=3 value="2"></td>
          </tr>
-                                    
+
 $jsscript
 |;
   }
@@ -601,7 +602,7 @@ $jsscript
          <th align=right colspan=4>| . $locale->text('Decimalplaces') . qq|</th>
              <td><input name=decimalplaces size=3 value="2"></td>
          </tr>
-                                    
+
 $jsscript
 |;
   }
@@ -907,7 +908,7 @@ sub get_project {
     $form->{projectnumber_1} = $form->{projectnumber};
 
     delete $form->{sort};
-    &check_project;
+    check_project('generate_projects');
 
     # if there is one only, assign id
     $form->{project_id} = $form->{project_id_1};
@@ -1090,118 +1091,36 @@ sub generate_balance_sheet {
 
   $auth->assert('report');
 
-  RP->balance_sheet(\%myconfig, \%$form);
+  $form->{decimalplaces} = $form->{decimalplaces} * 1 || 2;
+  $form->{padding} = "&nbsp;&nbsp;";
+  $form->{bold}    = "<b>";
+  $form->{endbold} = "</b>";
+  $form->{br}      = "<br>";
+
+  my $data = RP->balance_sheet(\%myconfig, \%$form);
 
   $form->{asofdate} = $form->current_date(\%myconfig) unless $form->{asofdate};
-  $form->{period} =
-    $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
+  $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
 
   ($form->{department}) = split /--/, $form->{department};
 
   # define Current Earnings account
   $padding = ($form->{l_heading}) ? $form->{padding} : "";
-  push(@{ $form->{equity_account} },
-       $padding . $locale->text('Current Earnings'));
+  push(@{ $form->{equity_account} }, $padding . $locale->text('Current Earnings'));
 
   $form->{this_period} = $locale->date(\%myconfig, $form->{asofdate}, 0);
-  $form->{last_period} =
-    $locale->date(\%myconfig, $form->{compareasofdate}, 0);
-
-  my $attachment_basename;
-
-  my $report = SL::ReportGenerator->new(\%myconfig, $form);
-
-  my @hidden_variables = ();
-  push @hidden_variables, qw(fromdate todate year cash );
-
-  my $href = build_std_url('action=orders', grep { $form->{$_} } @hidden_variables);
-
-  my %column_defs = (
-    'accno'                   => { 'text' => $locale->text('Account Number'), },
-    'description'             => { 'text' => $locale->text('Description'), },
-    'last_transaction'        => { 'text' => $locale->text('Last Transaction'), },
-    'soll_eb'                 => { 'text' => $locale->text('Debit Starting Balance'), },
-    'haben_eb'                => { 'text' => $locale->text('Credit Starting Balance'), },
-    'soll'                    => { 'text' => $locale->text('Debit'), },
-    'haben'                   => { 'text' => $locale->text('Credit'), },
-    'soll_kumuliert'          => { 'text' => $locale->text('Sum Debit'), },
-    'haben_kumuliert'         => { 'text' => $locale->text('Sum Credit'), },
-    'soll_saldo'              => { 'text' => $locale->text('Saldo Debit'), },
-    'haben_saldo'             => { 'text' => $locale->text('Saldo Credit'), }
-  );
-
-  my %column_alignment = map { $_ => 'right' } qw(soll_eb haben_eb soll haben soll_kumuliert haben_kumuliert soll_saldo haben_saldo);
-
-  map { $column_defs{$_}->{visible} =  1 } @columns;
-
-  $report->set_columns(%column_defs);
-  $report->set_column_order(@columns);
-
-  $report->set_export_options('trial_balance', @hidden_variables);
-
-  $report->set_sort_indicator($form->{sort}, 1);
-
-  my @options;
-
-
-  $form->{template_fromto} = $locale->date(\%myconfig, $form->{fromdate}, 0) . "&nbsp; - &nbsp;" . $locale->date(\%myconfig, $form->{todate}, 0);
-  $form->{template_to} = $locale->date(\%myconfig, $form->{todate}, 0);
-
-  $report->set_options('output_format'        => 'HTML',
-                       'title'                => $form->{title},
-                       'attachment_basename'  => $attachment_basename . strftime('_%Y%m%d', localtime time),
-    );
-  $report->set_options_from_form();
-  # $form->parse_html_template('report_generator/html_report_bilanz', $variables));
-  $form->{report_template} = 'report_generator/html_report_bilanz';
-  # add sort and escape callback, this one we use for the add sub
-  $form->{callback} = $href .= "&sort=$form->{sort}";
-
-  # escape callback for href
-  $callback = $form->escape($href);
+  $form->{last_period} = $locale->date(\%myconfig, $form->{compareasofdate}, 0);
 
-  my @subtotal_columns = qw(soll_eb haben_eb soll haben soll_kumuliert haben_kumuliert soll_saldo haben_saldo);
+  $form->{IN} = "balance_sheet.html";
 
-  my %totals    = map { $_ => 0 } @subtotal_columns;
+  # setup company variables for the form
+  map { $form->{$_} = $myconfig{$_}; } (qw(company address businessnumber nativecurr));
 
-  my $edit_url = build_std_url('action=edit', 'type', 'vc');
-
-#   foreach $accno (@{ $form->{TB} }) {
-# 
-#     $accno->{soll} = $accno->{debit};
-#     $accno->{haben} = $accno->{credit};
-#     map { $totals{$_}    += $accno->{$_} } @subtotal_columns;
-# 
-#     map { $accno->{$_} = $form->format_amount(\%myconfig, $accno->{$_}, 2) } qw(soll_eb haben_eb soll haben soll_kumuliert haben_kumuliert soll_saldo haben_saldo);
-# 
-#     map { $accno->{$_} = ($accno->{$_} == 0) ? '' : $accno->{$_} } qw(soll_eb haben_eb soll haben soll_kumuliert haben_kumuliert soll_saldo haben_saldo);
-# 
-#     my $row = { };
-# 
-#     foreach my $column (@columns) {
-#       $row->{$column} = {
-#         'data'  => $accno->{$column},
-#         'align' => $column_alignment{$column},
-#       };
-#     }
-# 
-# 
-#     $row->{$ordnumber}->{link} = $edit_url . "&id=" . E($oe->{id}) . "&callback=${callback}";
-# 
-#     my $row_set = [ $row ];
-# 
-# 
-#     $report->add_data($row_set);
-# 
-#     $idx++;
-#   }
-# 
-#   $report->add_separator();
-# 
-#   $report->add_data(create_subtotal_row(\%totals, \@columns, \%column_alignment, \@subtotal_columns, 'listtotal'));
-
-  $report->generate_with_headers();
+  $form->{templates} = $myconfig{templates};
 
+  $form->header();
+  print $form->parse_html_template('rp/balance_sheet', $data);
+#  $form->parse_template();
 
   $lxdebug->leave_sub();
 }
@@ -1337,7 +1256,7 @@ sub generate_trial_balance {
 
 
   # get for each account initial balance, debits and credits
-  RP->trial_balance(\%myconfig, \%$form);
+  RP->trial_balance(\%myconfig, \%$form, 'beginning_balances' => 1);
 
 
   $form->{rowcount} = scalar @{ $form->{TB} };
@@ -1347,33 +1266,31 @@ sub generate_trial_balance {
     "accno",               "description",
     "last_transaction",    "soll_eb",
     "haben_eb",
-    "soll",                 "haben",
-    "soll_kumuliert", "haben_kumuliert",
-    "soll_saldo", "haben_saldo"
+    "soll",                "haben",
+    "soll_kumuliert",      "haben_kumuliert",
+    "soll_saldo",          "haben_saldo"
   );
 
 
-  my $attachment_basename;
-  $attachment_basename = $locale->text('trial_balance');
-  my $report = SL::ReportGenerator->new(\%myconfig, $form);
+  my $attachment_basename = $locale->text('trial_balance');
+  my $report              = SL::ReportGenerator->new(\%myconfig, $form);
 
-  my @hidden_variables = ();
-  push @hidden_variables, qw(fromdate todate year cash );
+  my @hidden_variables    = qw(fromdate todate year cash);
 
-  my $href = build_std_url('action=generate_trial_balance', grep { $form->{$_} } @hidden_variables);
+  my $href                = build_std_url('action=generate_trial_balance', grep { $form->{$_} } @hidden_variables);
 
-  my %column_defs = (
-    'accno'                   => { 'text' => $locale->text('Account Number'), },
-    'description'             => { 'text' => $locale->text('Description'), },
-    'last_transaction'        => { 'text' => $locale->text('Last Transaction'), },
-    'soll_eb'                 => { 'text' => $locale->text('Debit Starting Balance'), },
-    'haben_eb'                => { 'text' => $locale->text('Credit Starting Balance'), },
-    'soll'                    => { 'text' => $locale->text('Debit'), },
-    'haben'                   => { 'text' => $locale->text('Credit'), },
-    'soll_kumuliert'          => { 'text' => $locale->text('Sum Debit'), },
-    'haben_kumuliert'         => { 'text' => $locale->text('Sum Credit'), },
-    'soll_saldo'              => { 'text' => $locale->text('Saldo Debit'), },
-    'haben_saldo'                => { 'text' => $locale->text('Saldo Credit'), }
+  my %column_defs         = (
+    'accno'               => { 'text' => $locale->text('Account'), },
+    'description'         => { 'text' => $locale->text('Description'), },
+    'last_transaction'    => { 'text' => $locale->text('Last Transaction'), },
+    'soll_eb'             => { 'text' => $locale->text('Debit Starting Balance'), },
+    'haben_eb'            => { 'text' => $locale->text('Credit Starting Balance'), },
+    'soll'                => { 'text' => $locale->text('Debit'), },
+    'haben'               => { 'text' => $locale->text('Credit'), },
+    'soll_kumuliert'      => { 'text' => $locale->text('Sum Debit'), },
+    'haben_kumuliert'     => { 'text' => $locale->text('Sum Credit'), },
+    'soll_saldo'          => { 'text' => $locale->text('Saldo Debit'), },
+    'haben_saldo'         => { 'text' => $locale->text('Saldo Credit'), }
   );
 
 
@@ -1387,15 +1304,22 @@ sub generate_trial_balance {
 
   $report->set_export_options('generate_trial_balance', @hidden_variables);
 
-  $report->set_sort_indicator($form->{sort}, 1);
-
   my @options;
 
 
   $form->{template_fromto} = $locale->date(\%myconfig, $form->{fromdate}, 0) . "&nbsp; - &nbsp;" . $locale->date(\%myconfig, $form->{todate}, 0);
+
+  $form->{print_date} = $locale->text('Create Date') . " " . $locale->date(\%myconfig, $form->current_date(\%myconfig), 0);
+  push (@options, $form->{print_date});
+
+  $form->{company} = $locale->text('Company') . " " . $myconfig{company};
+  push (@options, $form->{company});
+
+
   $form->{template_to} = $locale->date(\%myconfig, $form->{todate}, 0);
 
   $report->set_options('output_format'        => 'HTML',
+                       'top_info_text'        => join("\n", @options),
                        'title'                => $form->{title},
                        'attachment_basename'  => $attachment_basename . strftime('_%Y%m%d', localtime time),
                        'html_template'        => 'rp/html_report_susa',
@@ -1421,9 +1345,8 @@ sub generate_trial_balance {
     $accno->{haben} = $accno->{credit};
     map { $totals{$_}    += $accno->{$_} } @subtotal_columns;
 
-    map { $accno->{$_} = $form->format_amount(\%myconfig, $accno->{$_}, 2) } qw(soll_eb haben_eb soll haben soll_kumuliert haben_kumuliert soll_saldo haben_saldo);
-
-    map { $accno->{$_} = ($accno->{$_} == 0) ? '' : $accno->{$_} } qw(soll_eb haben_eb soll haben soll_kumuliert haben_kumuliert soll_saldo haben_saldo);
+    map { $accno->{$_} = $accno->{$_} == 0 ? '' : $form->format_amount(\%myconfig, $accno->{$_}, 2) }
+      qw(soll_eb haben_eb soll haben soll_kumuliert haben_kumuliert soll_saldo haben_saldo);
 
     my $row = { };
 
@@ -1436,6 +1359,7 @@ sub generate_trial_balance {
 
 
     $row->{$ordnumber}->{link} = $edit_url . "&id=" . E($oe->{id}) . "&callback=${callback}";
+    $row->{accno}->{link} = build_std_url('script=ca.pl', 'action=list_transactions', 'accno=' . E($accno->{accno}), 'description=' . E($accno->{description}), 'fromdate=' . E($form->{fromdate}), 'todate=' . E($form->{todate}), 'method=' . E($form->{method}));
 
     my $row_set = [ $row ];
 
@@ -1548,8 +1472,6 @@ sub list_accounts {
 
   $report->set_export_options($action, @hidden_variables);
 
-  $report->set_sort_indicator('accno', 1);
-
   my @totals_columns = qw(credit debit begbalance endbalance);
   my %subtotals      = map { $_ => 0 } @totals_columns;
   my %totals         = map { $_ => 0 } @totals_columns;
@@ -1759,8 +1681,8 @@ sub aging {
 
     if ($previous_ctid != $ref->{ctid}) {
       $row->{statement}->{raw_data} =
-          $cgi->hidden('-name' => "customer_id_${row_idx}", '-value' => $ref->{ctid})
-        . $cgi->checkbox('-name' => "statement_${row_idx}", '-value' => 1, '-label' => '', 'checked' => $ref->{checked});
+          $cgi->hidden('-name' => "customer_id_" . ($row_idx + 1), '-value' => $ref->{ctid})
+        . $cgi->checkbox('-name' => "statement_" . ($row_idx + 1), '-value' => 1, '-label' => '', 'checked' => $ref->{checked});
       $row->{ct}->{data} = $ref->{name};
 
       $row_idx++;
@@ -2063,7 +1985,7 @@ sub print_form {
        $form->{what_done} = $form->{type};
        $form->save_history($form->dbconnect(\%myconfig));
   }
-  # /saving the history 
+  # /saving the history
   $lxdebug->leave_sub();
 }
 
@@ -2374,10 +2296,10 @@ sub list_payments {
 
   my @options;
   if ($form->{fromdate}) {
-    push @options, $locale->text('From') . "&nbsp;" . $locale->date(\%myconfig, $form->{fromdate}, 1);
+    push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{fromdate}, 1);
   }
   if ($form->{todate}) {
-    push @options, $locale->text('bis') . "&nbsp;" . $locale->date(\%myconfig, $form->{todate}, 1);
+    push @options, $locale->text('bis') . " " . $locale->date(\%myconfig, $form->{todate}, 1);
   }
 
   my $report = SL::ReportGenerator->new(\%myconfig, $form);
@@ -2395,7 +2317,7 @@ sub list_payments {
   $report->set_columns(%column_defs);
   $report->set_column_order(@columns);
 
-  $report->set_export_options('list_payments', @hidden_variables);
+  $report->set_export_options('list_payments', @hidden_variables, qw(sort sortdir));
 
   $report->set_sort_indicator($form->{sort}, $form->{sortdir});