Bug 603 - intnotes werden nicht übernommen wenn vom Kunden aus Auftraege/Buchungen...
[kivitendo-erp.git] / bin / mozilla / rp.pl
index 7989d86..966df6e 100644 (file)
@@ -36,6 +36,7 @@
 #======================================================================
 
 require "$form->{path}/arap.pl";
+require "bin/mozilla/common.pl";
 
 use SL::PE;
 use SL::RP;
@@ -130,6 +131,21 @@ sub report {
        </tr>
 | if $form->{selectdepartment};
 
+  $form->get_lists("projects" => { "key" => "ALL_PROJECTS",
+                                   "all" => 1 });
+
+  my %project_labels = ();
+  my @project_values = ("");
+  foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
+    push(@project_values, $item->{"id"});
+    $project_labels{$item->{"id"}} = $item->{"projectnumber"};
+  }
+
+  my $projectnumber =
+    NTI($cgi->popup_menu('-name' => "project_id",
+                         '-values' => \@project_values,
+                         '-labels' => \%project_labels));
+
   # use JavaScript Calendar or not
   $form->{jsscript} = $jscalendar;
   $jsscript = "";
@@ -137,13 +153,13 @@ sub report {
     $department = "";
   } else {
     if ($form->{report} eq "balance_sheet") {
-      $name_1    = "compareasofdate";
-      $id_1      = "compareasofdate";
-      $value_1   = "";
+      $name_1    = "asofdate";
+      $id_1      = "asofdate";
+      $value_1   = "$form->{asofdate}";
       $trigger_1 = "trigger1";
-      $name_2    = "asofdate";
-      $id_2      = "asofdate";
-      $value_2   = "$form->{asofdate}";
+      $name_2    = "compareasofdate";
+      $id_2      = "compareasofdate";
+      $value_2   = "$form->{compareasofdate}";
       $trigger_2 = "trigger2";
     } elsif ($form->{report} =~ /(receipts|payments)$/) {
       $name_1    = "fromdate";
@@ -190,8 +206,7 @@ sub report {
 
       #write Trigger
       $jsscript =
-        Form->write_trigger(\%myconfig, "1", "$name_2", "BR", "$trigger_2", "",
-                            "", "");
+        Form->write_trigger(\%myconfig, "1", "$name_2", "BR", "$trigger_2");
     } else {
       $button1 = qq|
          <input name=$name_1 id=$id_1 size=11 title="$myconfig{dateformat}" value=$value_1>|;
@@ -270,8 +285,7 @@ sub report {
          <td><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|
       . $locale->text('Heading') . qq|
          <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|
-      . $locale->text('Subtotal')
-      . qq|</td>
+      . $locale->text('Subtotal') . qq|</td>
        </tr>
 
 $jsscript
@@ -282,21 +296,19 @@ $jsscript
     print qq|
        <tr>
          <th align=right nowrap>| . $locale->text('Project') . qq|</th>
-         <td colspan=3><input name=projectnumber size=25</td>
+         <td colspan=3>$projectnumber</td>
        </tr>
         <input type=hidden name=nextsub value=generate_income_statement>
 </table>
 <table>
        <tr>
          <th align=left><input name=reporttype class=radio type=radio value="custom" checked> |
-      . $locale->text('Customized Report')
-      . qq|</th>
+      . $locale->text('Customized Report') . qq|</th>
        </tr>
        <tr>
          <th colspan=1>| . $locale->text('Year') . qq|</th>
          <td><input name=year size=11 title="|
-      . $locale->text('YYYY')
-      . qq|" value="$year"></td>
+      . $locale->text('YYYY') . qq|" value="$year"></td>
        </tr>
 |;
 
@@ -311,70 +323,54 @@ $jsscript
                <td align=right>&nbsp; <input name=duetyp class=radio type=radio value="13"
 "checked"></td>
                <td><input name=duetyp class=radio type=radio value="A" $checked >&nbsp;1. |
-      . $locale->text('Quarter')
-      . qq|</td>
+      . $locale->text('Quarter') . qq|</td>
 |;
     $checked = "";
     print qq|
                <td><input name=duetyp class=radio type=radio value="1" $checked >&nbsp;|
-      . $locale->text('January')
-      . qq|</td>
+      . $locale->text('January') . qq|</td>
 |;
     $checked = "";
     print qq|
                <td><input name=duetyp class=radio type=radio value="5" $checked >&nbsp;|
-      . $locale->text('May')
-      . qq|</td>
+      . $locale->text('May') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="9" $checked >&nbsp;|
-      . $locale->text('September')
-      . qq|</td>
+      . $locale->text('September') . qq|</td>
 
        </tr>
        <tr>
                <td align= right>&nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="B" $checked>&nbsp;2. |
-      . $locale->text('Quarter')
-      . qq|</td>
+      . $locale->text('Quarter') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="2" $checked >&nbsp;|
-      . $locale->text('February')
-      . qq|</td>
+      . $locale->text('February') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="6" $checked >&nbsp;|
-      . $locale->text('June')
-      . qq|</td>
+      . $locale->text('June') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="10" $checked >&nbsp;|
-      . $locale->text('October')
-      . qq|</td>
+      . $locale->text('October') . qq|</td>
        </tr>
        <tr>
                <td> &nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="C" $checked>&nbsp;3. |
-      . $locale->text('Quarter')
-      . qq|</td>
+      . $locale->text('Quarter') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="3" $checked >&nbsp;|
-      . $locale->text('March')
-      . qq|</td>
+      . $locale->text('March') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="7" $checked >&nbsp;|
-      . $locale->text('July')
-      . qq|</td>
+      . $locale->text('July') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="11" $checked >&nbsp;|
-      . $locale->text('November')
-      . qq|</td>
+      . $locale->text('November') . qq|</td>
 
        </tr>
        <tr>
                <td> &nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="D" $checked>&nbsp;4. |
-      . $locale->text('Quarter')
-      . qq|&nbsp;</td>
+      . $locale->text('Quarter') . qq|&nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="4" $checked >&nbsp;|
-      . $locale->text('April')
-      . qq|</td>
+      . $locale->text('April') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="8" $checked >&nbsp;|
-      . $locale->text('August')
-      . qq|</td>
+      . $locale->text('August') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="12" $checked >&nbsp;|
-      . $locale->text('December')
-      . qq|</td>
+      . $locale->text('December') . qq|</td>
 
        </tr>
        <tr>
@@ -382,8 +378,7 @@ $jsscript
        </tr>
        <tr>
           <th align=left><input name=reporttype class=radio type=radio value="free" $checked> |
-      . $locale->text('Free report period')
-      . qq|</th>
+      . $locale->text('Free report period') . qq|</th>
          <td align=left colspan=4>| . $locale->text('From') . qq|&nbsp;
              $button1
               $button1_2&nbsp;
@@ -400,8 +395,7 @@ $jsscript
          <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>|
       . $locale->text('Accrual') . qq|
          &nbsp;<input name=method class=radio type=radio value=cash $cash>|
-      . $locale->text('EUR')
-      . qq|</td>
+      . $locale->text('EUR') . qq|</td>
        </tr>
 
 $jsscript
@@ -412,21 +406,19 @@ $jsscript
     print qq|
        <tr>
          <th align=right nowrap>| . $locale->text('Project') . qq|</th>
-         <td colspan=3><input name=projectnumber size=25</td>
+         <td colspan=3>$projectnumber</td>
        </tr>
         <input type=hidden name=nextsub value=generate_bwa>
 </table>
 <table>
        <tr>
          <th align=left><input name=reporttype class=radio type=radio value="custom" checked> |
-      . $locale->text('Customized Report')
-      . qq|</th>
+      . $locale->text('Customized Report') . qq|</th>
        </tr>
        <tr>
          <th colspan=1>| . $locale->text('Year') . qq|</th>
          <td><input name=year size=11 title="|
-      . $locale->text('YYYY')
-      . qq|" value="$year"></td>
+      . $locale->text('YYYY') . qq|" value="$year"></td>
        </tr>
 |;
 
@@ -441,70 +433,54 @@ $jsscript
                <td align=right>&nbsp; <input name=duetyp class=radio type=radio value="13"
 $checked></td>
                <td><input name=duetyp class=radio type=radio value="A" $checked >&nbsp;1. |
-      . $locale->text('Quarter')
-      . qq|</td>
+      . $locale->text('Quarter') . qq|</td>
 |;
     $checked = "checked";
     print qq|
                <td><input name=duetyp class=radio type=radio value="1" $checked >&nbsp;|
-      . $locale->text('January')
-      . qq|</td>
+      . $locale->text('January') . qq|</td>
 |;
     $checked = "";
     print qq|
                <td><input name=duetyp class=radio type=radio value="5" $checked >&nbsp;|
-      . $locale->text('May')
-      . qq|</td>
+      . $locale->text('May') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="9" $checked >&nbsp;|
-      . $locale->text('September')
-      . qq|</td>
+      . $locale->text('September') . qq|</td>
 
        </tr>
        <tr>
                <td align= right>&nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="B" $checked>&nbsp;2. |
-      . $locale->text('Quarter')
-      . qq|</td>
+      . $locale->text('Quarter') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="2" $checked >&nbsp;|
-      . $locale->text('February')
-      . qq|</td>
+      . $locale->text('February') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="6" $checked >&nbsp;|
-      . $locale->text('June')
-      . qq|</td>
+      . $locale->text('June') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="10" $checked >&nbsp;|
-      . $locale->text('October')
-      . qq|</td>
+      . $locale->text('October') . qq|</td>
        </tr>
        <tr>
                <td> &nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="C" $checked>&nbsp;3. |
-      . $locale->text('Quarter')
-      . qq|</td>
+      . $locale->text('Quarter') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="3" $checked >&nbsp;|
-      . $locale->text('March')
-      . qq|</td>
+      . $locale->text('March') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="7" $checked >&nbsp;|
-      . $locale->text('July')
-      . qq|</td>
+      . $locale->text('July') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="11" $checked >&nbsp;|
-      . $locale->text('November')
-      . qq|</td>
+      . $locale->text('November') . qq|</td>
 
        </tr>
        <tr>
                <td> &nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="D" $checked>&nbsp;4. |
-      . $locale->text('Quarter')
-      . qq|&nbsp;</td>
+      . $locale->text('Quarter') . qq|&nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="4" $checked >&nbsp;|
-      . $locale->text('April')
-      . qq|</td>
+      . $locale->text('April') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="8" $checked >&nbsp;|
-      . $locale->text('August')
-      . qq|</td>
+      . $locale->text('August') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="12" $checked >&nbsp;|
-      . $locale->text('December')
-      . qq|</td>
+      . $locale->text('December') . qq|</td>
 
        </tr>
        <tr>
@@ -512,8 +488,7 @@ $checked></td>
        </tr>
        <tr>
           <th align=left><input name=reporttype class=radio type=radio value="free" $checked> |
-      . $locale->text('Free report period')
-      . qq|</th>
+      . $locale->text('Free report period') . qq|</th>
          <td align=left colspan=4>| . $locale->text('From') . qq|&nbsp;
              $button1
               $button1_2&nbsp;
@@ -530,10 +505,15 @@ $checked></td>
          <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>|
       . $locale->text('Accrual') . qq|
          &nbsp;<input name=method class=radio type=radio value=cash $cash>|
-      . $locale->text('EUR')
-      . qq|</td>
+      . $locale->text('EUR') . qq|</td>
        </tr>
-
+        <tr>
+         <th align=right colspan=4>|
+      . $locale->text('Decimalplaces')
+      . qq|</th>
+             <td><input name=decimalplaces size=3 value="2"></td>
+         </tr>
+                                    
 $jsscript
 |;
   }
@@ -548,14 +528,12 @@ $jsscript
 <table>
        <tr>
          <th align=left><input name=reporttype class=radio type=radio value="custom" checked> |
-      . $locale->text('Zeitraum')
-      . qq|</th>
+      . $locale->text('Zeitraum') . qq|</th>
        </tr>
        <tr>
          <th colspan=1>| . $locale->text('Year') . qq|</th>
          <td><input name=year size=11 title="|
-      . $locale->text('YYYY')
-      . qq|" value="$year"></td>
+      . $locale->text('YYYY') . qq|" value="$year"></td>
        </tr>
 |;
 
@@ -570,70 +548,54 @@ $jsscript
                <td align=right>&nbsp; <input name=duetyp class=radio type=radio value="13"
 $checked></td>
                <td><input name=duetyp class=radio type=radio value="A" $checked >&nbsp;1. |
-      . $locale->text('Quarter')
-      . qq|</td>
+      . $locale->text('Quarter') . qq|</td>
 |;
     $checked = "checked";
     print qq|
                <td><input name=duetyp class=radio type=radio value="1" $checked >&nbsp;|
-      . $locale->text('January')
-      . qq|</td>
+      . $locale->text('January') . qq|</td>
 |;
     $checked = "";
     print qq|
                <td><input name=duetyp class=radio type=radio value="5" $checked >&nbsp;|
-      . $locale->text('May')
-      . qq|</td>
+      . $locale->text('May') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="9" $checked >&nbsp;|
-      . $locale->text('September')
-      . qq|</td>
+      . $locale->text('September') . qq|</td>
 
        </tr>
        <tr>
                <td align= right>&nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="B" $checked>&nbsp;2. |
-      . $locale->text('Quarter')
-      . qq|</td>
+      . $locale->text('Quarter') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="2" $checked >&nbsp;|
-      . $locale->text('February')
-      . qq|</td>
+      . $locale->text('February') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="6" $checked >&nbsp;|
-      . $locale->text('June')
-      . qq|</td>
+      . $locale->text('June') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="10" $checked >&nbsp;|
-      . $locale->text('October')
-      . qq|</td>
+      . $locale->text('October') . qq|</td>
        </tr>
        <tr>
                <td> &nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="C" $checked>&nbsp;3. |
-      . $locale->text('Quarter')
-      . qq|</td>
+      . $locale->text('Quarter') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="3" $checked >&nbsp;|
-      . $locale->text('March')
-      . qq|</td>
+      . $locale->text('March') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="7" $checked >&nbsp;|
-      . $locale->text('July')
-      . qq|</td>
+      . $locale->text('July') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="11" $checked >&nbsp;|
-      . $locale->text('November')
-      . qq|</td>
+      . $locale->text('November') . qq|</td>
 
        </tr>
        <tr>
                <td> &nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="D" $checked>&nbsp;4. |
-      . $locale->text('Quarter')
-      . qq|&nbsp;</td>
+      . $locale->text('Quarter') . qq|&nbsp;</td>
                <td><input name=duetyp class=radio type=radio value="4" $checked >&nbsp;|
-      . $locale->text('April')
-      . qq|</td>
+      . $locale->text('April') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="8" $checked >&nbsp;|
-      . $locale->text('August')
-      . qq|</td>
+      . $locale->text('August') . qq|</td>
                <td><input name=duetyp class=radio type=radio value="12" $checked >&nbsp;|
-      . $locale->text('December')
-      . qq|</td>
+      . $locale->text('December') . qq|</td>
 
        </tr>
        <tr>
@@ -644,8 +606,7 @@ $checked></td>
          <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>|
       . $locale->text('Accrual') . qq|
          &nbsp;<input name=method class=radio type=radio value=cash $cash>|
-      . $locale->text('EUR')
-      . qq|</td>
+      . $locale->text('EUR') . qq|</td>
        </tr>
        <tr>
          <th colspan=4>|;
@@ -675,7 +636,7 @@ $checked></td>
        </tr>
        <tr>
          <th align=right>| . $locale->text('Decimalplaces') . qq|</th>
-         <td><input name=decimalplaces size=3></td>
+         <td><input name=decimalplaces size=3 value="2"></td>
        </tr>
       </table>
     </td>
@@ -688,8 +649,7 @@ $checked></td>
          <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>|
       . $locale->text('Accrual') . qq|
          &nbsp;<input name=method class=radio type=radio value=cash $cash>|
-      . $locale->text('EUR')
-      . qq|</td>
+      . $locale->text('EUR') . qq|</td>
        </tr>
 
        <tr>
@@ -699,8 +659,7 @@ $checked></td>
          <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|
       . $locale->text('Subtotal') . qq|
          <input name=l_accno class=checkbox type=checkbox value=Y>&nbsp;|
-      . $locale->text('Account Number')
-      . qq|</td>
+      . $locale->text('Account Number') . qq|</td>
        </tr>
 
 $jsscript
@@ -736,8 +695,7 @@ $jsscript
          <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|
       . $locale->text('Subtotal') . qq|
          <input name=all_accounts class=checkbox type=checkbox value=Y>&nbsp;|
-      . $locale->text('All Accounts')
-      . qq|</td>
+      . $locale->text('All Accounts') . qq|</td>
        </tr>
 
 $jsscript
@@ -814,8 +772,7 @@ $jsscript
          <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>|
       . $locale->text('Accrual') . qq|
          &nbsp;<input name=method class=radio type=radio value=cash $cash>|
-      . $locale->text('EUR')
-      . qq|</td>
+      . $locale->text('EUR') . qq|</td>
        </tr>
       </table>
     </td>
@@ -888,8 +845,7 @@ $jsscript
          <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>|
       . $locale->text('Accrual') . qq|
          &nbsp;<input name=method class=radio type=radio value=cash $cash>|
-      . $locale->text('EUR')
-      . qq|</td>
+      . $locale->text('EUR') . qq|</td>
        </tr>
         <tr>
          <th align=right>| . $locale->text('Include in Report') . qq|</th>
@@ -1031,8 +987,7 @@ $jsscript
         <tr>
          <td align=right><input type=checkbox style=checkbox name=fx_transaction value=1 checked></td>
          <th align=left colspan=3>|
-      . $locale->text('Include Exchangerate Difference')
-      . qq|</td>
+      . $locale->text('Include Exchangerate Difference') . qq|</td>
        </tr>
 
 $jsscript
@@ -1123,10 +1078,6 @@ sub generate_income_statement {
   $form->{endbold} = "</b>";
   $form->{br}      = "<br>";
 
-  &get_project(generate_income_statement);
-
-  $form->{projectnumber} = $form->{projectnumber_1};
-
   if ($form->{reporttype} eq "custom") {
 
     #forgotten the year --> thisyear
@@ -1249,10 +1200,10 @@ sub generate_income_statement {
     $longfromdate  = $locale->date(\%myconfig, $form->{fromdate}, 1);
     $shortfromdate = $locale->date(\%myconfig, $form->{fromdate}, 0);
 
-    $form->{this_period} = "$shortfromdate<br>\n$shorttodate";
+    $form->{this_period} = "$shortfromdate\n$shorttodate";
     $form->{period}      =
         $locale->text('for Period')
-      . qq|<br>\n$longfromdate |
+      . qq|\n$longfromdate |
       . $locale->text('Bis')
       . qq| $longtodate|;
   }
@@ -1266,9 +1217,9 @@ sub generate_income_statement {
     $longcomparetodate  = $locale->date(\%myconfig, $form->{comparetodate}, 1);
     $shortcomparetodate = $locale->date(\%myconfig, $form->{comparetodate}, 0);
 
-    $form->{last_period} = "$shortcomparefromdate<br>\n$shortcomparetodate";
+    $form->{last_period} = "$shortcomparefromdate\n$shortcomparetodate";
     $form->{period} .=
-        "<br>\n$longcomparefromdate "
+        "\n$longcomparefromdate "
       . $locale->text('Bis')
       . qq| $longcomparetodate|;
   }
@@ -1276,7 +1227,6 @@ sub generate_income_statement {
   # setup variables for the form
   @a = qw(company address businessnumber);
   map { $form->{$_} = $myconfig{$_} } @a;
-  $form->{address} =~ s/\\n/<br>/g;
 
   $form->{templates} = $myconfig{templates};
 
@@ -1315,9 +1265,9 @@ sub generate_balance_sheet {
   $form->{IN} = "balance_sheet.html";
 
   # setup company variables for the form
-  map { $form->{$_} = $myconfig{$_} }
+  map { $form->{$_} = $myconfig{$_};
+        $form->{$_} =~ s/\\n/\n/g; }
     (qw(company address businessnumber nativecurr));
-  $form->{address} =~ s/\\n/<br>/g;
 
   $form->{templates} = $myconfig{templates};
 
@@ -1455,8 +1405,8 @@ sub list_accounts {
 
     $ml = ($ref->{category} =~ /(A|C|E)/) ? -1 : 1;
 
-    $debit  = $form->format_amount(\%myconfig, $ref->{debit},  2, "&nbsp;");
-    $credit = $form->format_amount(\%myconfig, $ref->{credit}, 2, "&nbsp;");
+    $debit  = ($ref->{debit} != 0) ? $form->format_amount(\%myconfig, $ref->{debit},  2, "&nbsp;") : "&nbsp;";
+    $credit = ($ref->{credit} != 0) ? $form->format_amount(\%myconfig, $ref->{credit}, 2, "&nbsp;") : "&nbsp;";
     $begbalance =
       $form->format_amount(\%myconfig, $ref->{balance} * $ml, 2, "&nbsp;");
     $endbalance =
@@ -1735,14 +1685,14 @@ sub aging {
       $i++;
 
       if ($subtotal) {
-        $c0subtotal =
-          $form->format_amount(\%myconfig, $c0subtotal, 2, "&nbsp");
-        $c30subtotal =
-          $form->format_amount(\%myconfig, $c30subtotal, 2, "&nbsp");
-        $c60subtotal =
-          $form->format_amount(\%myconfig, $c60subtotal, 2, "&nbsp");
-        $c90subtotal =
-          $form->format_amount(\%myconfig, $c90subtotal, 2, "&nbsp");
+        $c0subtotal = ($c0subtotal != 0) ? 
+          $form->format_amount(\%myconfig, $c0subtotal, 2, "&nbsp") : "";
+        $c30subtotal = ($c30subtotal != 0) ?
+          $form->format_amount(\%myconfig, $c30subtotal, 2, "&nbsp") : "";
+        $c60subtotal = ($c60subtotal != 0) ?
+          $form->format_amount(\%myconfig, $c60subtotal, 2, "&nbsp") : "";
+        $c90subtotal = ($c90subtotal != 0) ?
+          $form->format_amount(\%myconfig, $c90subtotal, 2, "&nbsp") : "";
       }
 
       $column_data{ct}        = qq|<th>&nbsp;</th>|;
@@ -1798,10 +1748,10 @@ sub aging {
     $c60total += $ref->{c60};
     $c90total += $ref->{c90};
 
-    $ref->{c0}  = $form->format_amount(\%myconfig, $ref->{c0},  2, "&nbsp;");
-    $ref->{c30} = $form->format_amount(\%myconfig, $ref->{c30}, 2, "&nbsp;");
-    $ref->{c60} = $form->format_amount(\%myconfig, $ref->{c60}, 2, "&nbsp;");
-    $ref->{c90} = $form->format_amount(\%myconfig, $ref->{c90}, 2, "&nbsp;");
+    $ref->{c0}  = ($ref->{c0} != 0) ? $form->format_amount(\%myconfig, $ref->{c0},  2, "&nbsp;") : "";
+    $ref->{c30} = ($ref->{c30} != 0) ? $form->format_amount(\%myconfig, $ref->{c30}, 2, "&nbsp;") : "";
+    $ref->{c60} = ($ref->{c60} != 0) ?  $form->format_amount(\%myconfig, $ref->{c60}, 2, "&nbsp;") : "";
+    $ref->{c90} = ($ref->{c90} != 0) ?  $form->format_amount(\%myconfig, $ref->{c90}, 2, "&nbsp;") : "";
 
     $href =
       qq|$ref->{module}.pl?path=$form->{path}&action=edit&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=|
@@ -1913,16 +1863,10 @@ sub aging {
 <input class=submit type=submit name=action value="|
       . $locale->text('Print') . qq|">
 <input class=submit type=submit name=action value="|
-      . $locale->text('E-mail') . qq|">
-|;
-  }
-
-  if ($form->{menubar}) {
-    require "$form->{path}/menu.pl";
-    &menubar;
-  }
+      . $locale->text('E-mail') . qq|">|;
+}
 
-  print qq|
+print qq|
 </form>
 
 </body>
@@ -1944,66 +1888,6 @@ sub select_all {
   $lxdebug->leave_sub();
 }
 
-sub print_options {
-  $lxdebug->enter_sub();
-
-  $form->{sendmode} = "attachment";
-  $form->{copies}   = 2 unless $form->{copies};
-
-  $form->{PD}{ $form->{type} }     = "selected";
-  $form->{DF}{ $form->{format} }   = "selected";
-  $form->{OP}{ $form->{media} }    = "selected";
-  $form->{SM}{ $form->{sendmode} } = "selected";
-
-  $type = qq|
-           <option value=statement $form->{PD}{statement}>|
-    . $locale->text('Statement');
-
-  if ($form->{media} eq 'email') {
-    $media = qq|
-           <option value=attachment $form->{SM}{attachment}>|
-      . $locale->text('Attachment') . qq|
-           <option value=inline $form->{SM}{inline}>| . $locale->text('In-line');
-  } else {
-    $media = qq|
-           <option value=screen $form->{OP}{screen}>| . $locale->text('Screen');
-    if ($myconfig{printer} && $latex) {
-      $media .= qq|
-            <option value=printer $form->{OP}{printer}>|
-        . $locale->text('Printer');
-    }
-  }
-
-  if ($latex) {
-    $format .= qq|
-            <option value=postscript $form->{DF}{postscript}>|
-      . $locale->text('Postscript') . qq|
-           <option value=pdf $form->{DF}{pdf}>| . $locale->text('PDF');
-  }
-
-  print qq|
-<table>
-  <tr>
-    <td><select name=type>$type</select></td>
-    <td><select name=format>$format</select></td>
-    <td><select name=media>$media</select></td>
-|;
-
-  if ($myconfig{printer} && $latex && $form->{media} ne 'email') {
-    print qq|
-      <td>| . $locale->text('Copies') . qq|
-      <input name=copies size=2 value=$form->{copies}></td>
-|;
-  }
-
-  print qq|
-  </tr>
-</table>
-|;
-
-  $lxdebug->leave_sub();
-}
-
 sub e_mail {
   $lxdebug->enter_sub();
 
@@ -2170,11 +2054,6 @@ sub print_form {
 
   $form->{templates} = "$myconfig{templates}";
 
-  # setup variables for the form
-  @a = qw(company address businessnumber tel fax);
-  map { $form->{$_} = $myconfig{$_} } @a;
-  $form->format_string(@a);
-
   $form->{IN} = "$form->{type}.html";
 
   if ($form->{format} eq 'postscript') {
@@ -2202,7 +2081,6 @@ sub print_form {
           (name, street, zipcode, city, country, contact, email,
            "$form->{ct}phone", "$form->{ct}fax");
         map { $form->{$_} = $ref->{$_} } @a;
-        $form->format_string(@a);
 
         $form->{ $form->{ct} } = $form->{name};
         $form->{"$form->{ct}_id"} = $ref->{ctid};
@@ -2248,7 +2126,13 @@ sub print_form {
       }
     }
   }
-
+  # saving the history
+  if(!exists $form->{addition} && $form->{id} ne "") {
+       $form->{addition} = "PRINTED";
+       $form->{what_done} = $form->{type};
+       $form->save_history($form->dbconnect(\%myconfig));
+  }
+  # /saving the history 
   $lxdebug->leave_sub();
 }
 
@@ -2261,10 +2145,10 @@ sub statement_details {
   push @{ $form->{duedate} },   $ref->{duedate};
 
   foreach $item (qw(c0 c30 c60 c90)) {
-    eval {
+    if ($ref->{exchangerate} * 1) {
       $ref->{$item} =
         $form->round_amount($ref->{$item} / $ref->{exchangerate}, 2);
-    };
+    }
     $form->{"${item}total"} += $ref->{$item};
     $form->{total}          += $ref->{$item};
     push @{ $form->{$item} },
@@ -2755,7 +2639,6 @@ sub debug {
 
 sub winston_export {
   $lxdebug->enter_sub();
-  print(STDERR "Winston Export1\n");
 
   #create_winston();
   $form->{winston} = 1;
@@ -2767,7 +2650,16 @@ sub print_options {
   $lxdebug->enter_sub();
 
   $form->{sendmode} = "attachment";
-  $form->{copies}   = 2 unless $form->{copies};
+
+  $form->{"format"} =
+    $form->{"format"} ? $form->{"format"} :
+    $myconfig{"template_format"} ? $myconfig{"template_format"} :
+    "pdf";
+
+  $form->{"copies"} =
+    $form->{"copies"} ? $form->{"copies"} :
+    $myconfig{"copies"} ? $myconfig{"copies"} :
+    2;
 
   $form->{PD}{ $form->{type} }     = "selected";
   $form->{DF}{ $form->{format} }   = "selected";
@@ -2791,14 +2683,14 @@ sub print_options {
   } else {
     $media = qq|
            <option value=screen $form->{OP}{screen}>| . $locale->text('Screen');
-    if ($myconfig{printer} && $latex) {
+    if ($myconfig{printer} && $latex_templates) {
       $media .= qq|
             <option value=printer $form->{OP}{printer}>|
         . $locale->text('Printer');
     }
   }
 
-  if ($latex) {
+  if ($latex_templates) {
     $format .= qq|
             <option value=html $form->{DF}{html}>|
       . $locale->text('HTML') . qq|
@@ -2818,7 +2710,7 @@ sub print_options {
     <td><select name=media>$media</select></td>
 |;
 
-  if ($myconfig{printer} && $latex && $form->{media} ne 'email') {
+  if ($myconfig{printer} && $latex_templates && $form->{media} ne 'email') {
     print qq|
       <td>| . $locale->text('Copies') . qq|
       <input name=copies size=2 value=$form->{copies}></td>
@@ -2840,8 +2732,6 @@ sub generate_bwa {
   $form->{endbold} = "</b>";
   $form->{br}      = "<br>";
 
-  #  &get_project(generate_bwa);
-
   if ($form->{reporttype} eq "custom") {
 
     #forgotten the year --> thisyear
@@ -3007,10 +2897,10 @@ sub generate_bwa {
     $longfromdate  = $locale->date(\%germandate, $form->{fromdate}, 1);
     $shortfromdate = $locale->date(\%germandate, $form->{fromdate}, 0);
 
-    $form->{this_period} = "$shortfromdate<br>\n$shorttodate";
+    $form->{this_period} = "$shortfromdate\n$shorttodate";
     $form->{period}      =
         $locale->text('for Period')
-      . qq|<br>\n$longfromdate |
+      . qq|\n$longfromdate |
       . $locale->text('bis')
       . qq| $longtodate|;
   }
@@ -3018,7 +2908,6 @@ sub generate_bwa {
   # setup variables for the form
   @a = qw(company address businessnumber);
   map { $form->{$_} = $myconfig{$_} } @a;
-  $form->{address} =~ s/\\n/<br>/g;
   $form->{templates} = $myconfig{templates};
 
   $form->{IN} = "bwa.html";
@@ -3033,7 +2922,6 @@ sub generate_ustva {
 
   # Hier Aufruf von get_config aus bin/mozilla/fa.pl zum
   # Einlesen der Finanzamtdaten
-  print(STDERR "Winston4\n");
   get_config($userspath, 'finanzamt.ini');
 
   #  &get_project(generate_bwa);
@@ -3043,7 +2931,6 @@ sub generate_ustva {
   foreach $item (@anmeldungszeitraum) {
     $form->{$item} = "";
   }
-  print(STDERR "Winston2\n");
   if ($form->{reporttype} eq "custom") {
 
     #forgotten the year --> thisyear
@@ -3189,7 +3076,7 @@ sub generate_ustva {
     $longfromdate  = $locale->date(\%myconfig, $form->{fromdate}, 1);
     $shortfromdate = $locale->date(\%myconfig, $form->{fromdate}, 0);
 
-    $form->{this_period} = "$shortfromdate<br>\n$shorttodate";
+    $form->{this_period} = "$shortfromdate\n$shorttodate";
     $form->{period}      =
         $locale->text('for Period')
       . qq|<br>\n$longfromdate |
@@ -3206,9 +3093,9 @@ sub generate_ustva {
     $longcomparetodate  = $locale->date(\%myconfig, $form->{comparetodate}, 1);
     $shortcomparetodate = $locale->date(\%myconfig, $form->{comparetodate}, 0);
 
-    $form->{last_period} = "$shortcomparefromdate<br>\n$shortcomparetodate";
+    $form->{last_period} = "$shortcomparefromdate\n$shortcomparetodate";
     $form->{period} .=
-        "<br>\n$longcomparefromdate "
+        "\n$longcomparefromdate "
       . $locale->text('bis')
       . qq| $longcomparetodate|;
   }
@@ -3244,7 +3131,6 @@ sub generate_ustva {
   $form->{address} =~ s/\\n/$form->{br}/g;
 
   if ($form->{winston} eq '1') {
-    print(STDERR "fast bei winston\n");
     create_winston();
 
   } else {