Hinweis auf doc/umstellung_eur.txt Beim Mandanten anlegen.
[kivitendo-erp.git] / bin / mozilla / rp.pl
index c7e37fc..062c44f 100644 (file)
@@ -146,8 +146,8 @@ sub report {
 
   $form->{title} = $locale->text($title{ $form->{report} });
 
-  my $accrual = ($main::eur) ? ""        : "checked";
-  my $cash    = ($main::eur) ? "checked" : "";
+  my $accrual =  $::instance_conf->get_accounting_method eq 'cash' ? ""        : "checked";
+  my $cash    =  $::instance_conf->get_accounting_method eq 'cash' ? "checked" : "";
 
   my $year = (localtime)[5] + 1900;
 
@@ -176,7 +176,7 @@ sub report {
   }
 
   my $projectnumber =
-    NTI($main::cgi->popup_menu('-name' => "project_id",
+    NTI($::request->{cgi}->popup_menu('-name' => "project_id",
                                '-values' => \@project_values,
                                '-labels' => \%project_labels));
 
@@ -1385,7 +1385,7 @@ sub generate_trial_balance {
   my $edit_url = build_std_url('action=edit', 'type', 'vc');
 
   my $idx;
-  foreach my $accno (@{ $form->{TB} }) {
+  foreach my $accno (@{ $form->{TB} || [] }) {
 
     $accno->{soll} = $accno->{debit};
     $accno->{haben} = $accno->{credit};
@@ -1533,7 +1533,7 @@ sub list_accounts {
   my %subtotals      = map { $_ => 0 } @totals_columns;
   my %totals         = map { $_ => 0 } @totals_columns;
   my $found_heading  = 0;
-  my @tb             = sort { $a->{accno} cmp $b->{accno} } @{ $form->{TB} };
+  my @tb             = sort { $a->{accno} cmp $b->{accno} } @{ $form->{TB} || [] };
 
   # sort the whole thing by account numbers and display
   foreach my $idx (0 .. scalar(@tb) - 1) {
@@ -1663,7 +1663,7 @@ sub aging {
   my $form     = $main::form;
   my %myconfig = %main::myconfig;
   my $locale   = $main::locale;
-  my $cgi      = $main::cgi;
+  my $cgi      = $::request->{cgi};
 
   my $report = SL::ReportGenerator->new(\%myconfig, $form);
 
@@ -2032,7 +2032,7 @@ sub print_form {
         $form->{ $form->{ct} } = $form->{name};
         $form->{"$form->{ct}_id"} = $ref->{ctid};
 
-        map { $form->{$_} = () } qw(invnumber invdate duedate);
+        map { $form->{$_} = () } qw(invnumber invdate duedate amount open);
         $form->{total} = 0;
         foreach my $item (qw(c0 c30 c60 c90)) {
           $form->{$item} = ();
@@ -2071,7 +2071,7 @@ sub print_form {
         $form->{attachment_filename} =  $locale->quote_special_chars('filenames', $locale->text("Statement") . "_$form->{todate}.$attachment_suffix");
         $form->{attachment_filename} =~ s/\s+/_/g;
 
-        $form->parse_template(\%myconfig, $main::userspath);
+        $form->parse_template(\%myconfig);
 
       }
     }
@@ -2101,11 +2101,16 @@ sub statement_details {
   push @{ $form->{invnumber} }, $ref->{invnumber};
   push @{ $form->{invdate} },   $ref->{transdate};
   push @{ $form->{duedate} },   $ref->{duedate};
+  push @{ $form->{amount} },    $form->format_amount(\%myconfig, $ref->{amount} / $ref->{exchangerate}, 2);
+  push @{ $form->{open} },      $form->format_amount(\%myconfig, $ref->{open} / $ref->{exchangerate}, 2);
 
   foreach my $item (qw(c0 c30 c60 c90)) {
     if ($ref->{exchangerate} * 1) {
-      $ref->{$item} =
-        $form->round_amount($ref->{$item} / $ref->{exchangerate}, 2);
+      # add only the open amount of the invoice to the aging, not the total amount
+      $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} < 30 and $item eq 'c0';
+      $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} >= 30 and $ref->{overduedays} < 60 and $item eq 'c30';
+      $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} >= 60 and $ref->{overduedays} < 90 and $item eq 'c60';
+      $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} >= 90 and $item eq 'c90';
     }
     $form->{"${item}total"} += $ref->{$item};
     $form->{total}          += $ref->{$item};
@@ -2542,14 +2547,14 @@ sub print_options {
   } else {
     $media = qq|
             <option value=screen $form->{OP}{screen}>| . $locale->text('Screen');
-    if ($myconfig{printer} && $main::latex_templates) {
+    if ($myconfig{printer} && $::lx_office_conf{print_templates}->{latex}) {
       $media .= qq|
             <option value=printer $form->{OP}{printer}>| . $locale->text('Printer');
     }
   }
 
   my $format;
-  if ($main::latex_templates) {
+  if ($::lx_office_conf{print_templates}->{latex}) {
     $format .= qq|
             <option value=html $form->{DF}{html}>| . $locale->text('HTML')
       . qq| <option value=pdf $form->{DF}{pdf}>| . $locale->text('PDF')
@@ -2564,7 +2569,7 @@ sub print_options {
     <td><select name=media>$media</select></td>
 |;
 
-  if ($myconfig{printer} && $main::latex_templates && $form->{media} ne 'email') {
+  if ($myconfig{printer} && $::lx_office_conf{print_templates}->{latex} && $form->{media} ne 'email') {
     $output .= qq|
       <td>| . $locale->text('Copies') . qq|
       <input name=copies size=2 value=$form->{copies}></td>