Aufrufe von 'exit' durch eigene Funktion '::end_of_request()' ersetzt.
[kivitendo-erp.git] / bin / mozilla / rc.pl
index d9e395c..0f01ac9 100644 (file)
 
 use SL::RC;
 
+require "bin/mozilla/common.pl";
+
+use strict;
+
 1;
 
 # end of main
 
 sub reconciliation {
-  $lxdebug->enter_sub();
+  $main::lxdebug->enter_sub();
+
+  my $form     = $main::form;
+  my %myconfig = %main::myconfig;
+  my $locale   = $main::locale;
+
+  $main::auth->assert('cash');
 
   RC->paymentaccounts(\%myconfig, \%$form);
 
-  $selection = "";
+  my $selection = "";
   map { $selection .= "<option>$_->{accno}--$_->{description}\n" }
     @{ $form->{PR} };
 
   $form->{title} = $locale->text('Reconciliation');
-
+  $form->{javascript} .= qq|<script type="text/javascript" src="js/common.js"></script>|;
+  $form->{"jsscript"} = 1;
   $form->header;
+  my $onload = qq|focus()|;
+  $onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|;
 
   print qq|
-<body>
+<body onLoad="$onload">
 
 <form method=post action=$form->{script}>
 
@@ -63,17 +76,19 @@ sub reconciliation {
   <tr>
     <td>
       <table>
-       <tr>
-         <th align=right nowrap>| . $locale->text('Account') . qq|</th>
-         <td colspan=3><select name=accno>$selection</select>
-         </td>
-       </tr>
-       <tr>
-         <th align=right>| . $locale->text('From') . qq|</th>
-         <td><input name=fromdate size=11 title="$myconfig{dateformat}"></td>
-         <th align=right>| . $locale->text('To') . qq|</th>
-         <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
-       </tr>
+        <tr>
+          <th align=right nowrap>| . $locale->text('Account') . qq|</th>
+          <td colspan=3><select name=accno>$selection</select>
+          </td>
+        </tr>
+        <tr>
+          <th align=right>| . $locale->text('From') . qq|</th>
+          <td><input name=fromdate id=fromdate size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
+         <input type="button" name="fromdate" id="trigger_fromdate" value="?"></td>
+          <th align=right>| . $locale->text('Until') . qq|</th>
+          <td><input name=todate id=todate size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
+         <input type="button" name="todate" id="trigger_todate" value="?"></td>
+        </tr>
       </table>
     </td>
   </tr>
@@ -82,13 +97,13 @@ sub reconciliation {
   </tr>
 </table>
 
+| . $form->write_trigger(\%myconfig, 2,
+                         "fromdate", "BL", "trigger_fromdate",
+                         "todate", "BL", "trigger_todate") . qq|
+
 <br>
 <input type=hidden name=nextsub value=get_payments>
 
-<input type=hidden name=path value=$form->{path}>
-<input type=hidden name=login value=$form->{login}>
-<input type=hidden name=password value=$form->{password}>
-
 <input type=submit class=submit name=action value="|
     . $locale->text('Continue') . qq|">
 
@@ -98,13 +113,18 @@ sub reconciliation {
 </html>
 |;
 
-  $lxdebug->leave_sub();
+  $main::lxdebug->leave_sub();
 }
 
-sub continue { &{ $form->{nextsub} } }
+sub continue { call_sub($main::form->{"nextsub"}); }
 
 sub get_payments {
-  $lxdebug->enter_sub();
+  $main::lxdebug->enter_sub();
+
+  my $form     = $main::form;
+  my %myconfig = %main::myconfig;
+
+  $main::auth->assert('cash');
 
   ($form->{accno}, $form->{account}) = split /--/, $form->{accno};
 
@@ -112,14 +132,20 @@ sub get_payments {
 
   &display_form;
 
-  $lxdebug->leave_sub();
+  $main::lxdebug->leave_sub();
 }
 
 sub display_form {
-  $lxdebug->enter_sub();
+  $main::lxdebug->enter_sub();
+
+  my $form     = $main::form;
+  my %myconfig = %main::myconfig;
+  my $locale   = $main::locale;
 
-  @column_index = qw(cleared transdate source name credit debit balance);
+  $main::auth->assert('cash');
 
+  my @column_index = qw(cleared transdate source name credit debit balance);
+  my %column_header;
   $column_header{cleared} = "<th>&nbsp;</th>";
   $column_header{source}  =
     "<th class=listheading>" . $locale->text('Source') . "</a></th>";
@@ -143,6 +169,7 @@ sub display_form {
   $column_header{balance} =
     "<th class=listheading>" . $locale->text('Balance') . "</a></th>";
 
+  my $option;
   if ($form->{fromdate}) {
     $option .= "\n<br>" if ($option);
     $option .=
@@ -152,7 +179,7 @@ sub display_form {
   if ($form->{todate}) {
     $option .= "\n<br>" if ($option);
     $option .=
-        $locale->text('Bis') . "&nbsp;"
+        $locale->text('Until') . "&nbsp;"
       . $locale->date(\%myconfig, $form->{todate}, 0);
   }
 
@@ -176,7 +203,7 @@ sub display_form {
   <tr>
     <td>
       <table width=100%>
-       <tr class=listheading>
+        <tr class=listheading>
 |;
 
   map { print "\n$column_header{$_}" } @column_index;
@@ -185,29 +212,36 @@ sub display_form {
         </tr>
 |;
 
-  $ml = ($form->{category} eq 'A') ? -1 : 1;
+  my $ml = ($form->{category} eq 'A') ? -1 : 1;
   $form->{beginningbalance} *= $ml;
-  $clearedbalance = $balance = $form->{beginningbalance};
-  $i              = 0;
-  $id             = 0;
+  my $balance        = $form->{beginningbalance};
+  my $clearedbalance = $balance;
+  my $i              = 0;
+  my $id             = 0;
 
+  my %column_data;
   map { $column_data{$_} = "<td>&nbsp;</td>" }
     qw(cleared transdate source name debit credit);
   $column_data{balance} =
     "<td align=right>"
     . $form->format_amount(\%myconfig, $balance, 2, 0) . "</td>";
-  $j = 0;
+  my $j = 0;
   print qq|
-       <tr class=listrow$j>
+        <tr class=listrow$j>
 |;
 
   map { print "\n$column_data{$_}" } @column_index;
 
   print qq|
-       </tr>
+        </tr>
 |;
 
-  foreach $ref (@{ $form->{PR} }) {
+  my $cleared;
+  my $totaldebits;
+  my $totalcredits;
+  my $fx_transaction;
+  my $fx;
+  foreach my $ref (@{ $form->{PR} }) {
 
     $balance += $ref->{amount} * $ml;
     $cleared += $ref->{amount} * $ml if $ref->{cleared};
@@ -258,13 +292,13 @@ sub display_form {
     $j++;
     $j %= 2;
     print qq|
-       <tr class=listrow$j>
+        <tr class=listrow$j>
 |;
 
     map { print "\n$column_data{$_}" } @column_index;
 
     print qq|
-       </tr>
+        </tr>
 |;
 
   }
@@ -280,14 +314,14 @@ sub display_form {
     . $form->format_amount(\%myconfig, $totalcredits, 2, "&nbsp;") . "</th>";
 
   print qq|
-       <tr class=listtotal>
+        <tr class=listtotal>
 |;
 
   map { print "\n$column_data{$_}" } @column_index;
 
   $form->{statementbalance} =
     $form->parse_amount(\%myconfig, $form->{statementbalance});
-  $difference =
+  my $difference =
     $form->format_amount(\%myconfig,
                         $form->{statementbalance} - $clearedbalance - $cleared,
                         2, 0);
@@ -297,18 +331,18 @@ sub display_form {
 
   $clearedbalance = $form->format_amount(\%myconfig, $clearedbalance, 2, 0);
 
+  my $exchdiff;
   if ($fx) {
     $fx       = $form->format_amount(\%myconfig, $fx, 2, 0);
     $exchdiff = qq|
-               <th align=right nowrap>|
-      . $locale->text('Exchangerate Difference') . qq|</th>
-               <td width=10%></td>
-               <td align=right>$fx</td>
+          <th align=right nowrap>| . $locale->text('Exchangerate Difference') . qq|</th>
+          <td width=10%></td>
+          <td align=right>$fx</td>
 |;
   }
 
   print qq|
-       </tr>
+        </tr>
       </table>
     </td>
   </tr>
@@ -316,34 +350,34 @@ sub display_form {
     <td>
       <table width=100%>
         <tr valign=top>
-         <td>
-           <table>
-             <tr>
-               <th align=right nowrap>| . $locale->text('Cleared Balance') . qq|</th>
-               <td width=10%></td>
-               <td align=right>$clearedbalance</td>
-             </tr>
-             <tr>
-               $exchdiff
-             </tr>
-           </table>
-         </td>
-         <td align=right>
-           <table>
-             <tr>
-               <th align=right nowrap>| . $locale->text('Statement Balance') . qq|</th>
-               <td width=10%></td>
-               <td align=right><input name=statementbalance size=11 value=$form->{statementbalance}></td>
-             </tr>
-             <tr>
-               <th align=right nowrap>| . $locale->text('Difference') . qq|</th>
-               <td width=10%></td>
-               <td align=right><input name=null size=11 value=$difference></td>
-               <input type=hidden name=difference value=$difference>
-             </tr>
-           </table>
-         </td>
-       </tr>
+          <td>
+            <table>
+              <tr>
+                <th align=right nowrap>| . $locale->text('Cleared Balance') . qq|</th>
+                <td width=10%></td>
+                <td align=right>$clearedbalance</td>
+              </tr>
+              <tr>
+                $exchdiff
+              </tr>
+            </table>
+          </td>
+          <td align=right>
+            <table>
+              <tr>
+                <th align=right nowrap>| . $locale->text('Statement Balance') . qq|</th>
+                <td width=10%></td>
+                <td align=right><input name=statementbalance size=11 value=$form->{statementbalance}></td>
+              </tr>
+              <tr>
+                <th align=right nowrap>| . $locale->text('Difference') . qq|</th>
+                <td width=10%></td>
+                <td align=right><input name=null size=11 value=$difference></td>
+                <input type=hidden name=difference value=$difference>
+              </tr>
+            </table>
+          </td>
+        </tr>
       </table>
     </td>
   </tr>
@@ -359,39 +393,35 @@ sub display_form {
 <input type=hidden name=fromdate value=$form->{fromdate}>
 <input type=hidden name=todate value=$form->{todate}>
 
-<input type=hidden name=path value=$form->{path}>
-<input type=hidden name=login value=$form->{login}>
-<input type=hidden name=password value=$form->{password}>
-
 <br>
 <input type=submit class=submit name=action value="|
     . $locale->text('Update') . qq|">
 <input type=submit class=submit name=action value="|
     . $locale->text('Select all') . qq|">
 <input type=submit class=submit name=action value="|
-    . $locale->text('Done') . qq|">|;
+    . $locale->text('Done') . qq|">
 
-  if ($form->{menubar}) {
-    require "$form->{path}/menu.pl";
-    &menubar;
-  }
-
-  print qq|
 </form>
 
 </body>
 </html>
 |;
 
-  $lxdebug->leave_sub();
+  $main::lxdebug->leave_sub();
 }
 
 sub update {
-  $lxdebug->enter_sub();
+  $main::lxdebug->enter_sub();
+
+  my $form     = $main::form;
+  my %myconfig = %main::myconfig;
+
+  $main::auth->assert('cash');
 
   RC->payment_transactions(\%myconfig, \%$form);
 
-  foreach $ref (@{ $form->{PR} }) {
+  my $i;
+  foreach my $ref (@{ $form->{PR} }) {
     if (!$ref->{fx_transaction}) {
       $i++;
       $ref->{cleared} = ($form->{"cleared_$i"}) ? "checked" : "";
@@ -400,11 +430,16 @@ sub update {
 
   &display_form;
 
-  $lxdebug->leave_sub();
+  $main::lxdebug->leave_sub();
 }
 
 sub select_all {
-  $lxdebug->enter_sub();
+  $main::lxdebug->enter_sub();
+
+  my $form     = $main::form;
+  my %myconfig = %main::myconfig;
+
+  $main::auth->assert('cash');
 
   RC->payment_transactions(\%myconfig, \%$form);
 
@@ -413,20 +448,25 @@ sub select_all {
 
   &display_form;
 
-  $lxdebug->leave_sub();
+  $main::lxdebug->leave_sub();
 }
 
 sub done {
-  $lxdebug->enter_sub();
+  $main::lxdebug->enter_sub();
+
+  my $form     = $main::form;
+  my %myconfig = %main::myconfig;
+  my $locale   = $main::locale;
+
+  $main::auth->assert('cash');
 
-  $form->{callback} =
-    "$form->{script}?path=$form->{path}&action=reconciliation&login=$form->{login}&password=$form->{password}";
+  $form->{callback} = "$form->{script}?action=reconciliation";
 
   $form->error($locale->text('Out of balance!')) if ($form->{difference} *= 1);
 
   RC->reconcile(\%myconfig, \%$form);
   $form->redirect;
 
-  $lxdebug->leave_sub();
+  $main::lxdebug->leave_sub();
 }