Merge branch 'master' of ssh://lx-office.linet-services.de/~/lx-office-erp
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 27 Dec 2010 16:14:57 +0000 (17:14 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 27 Dec 2010 16:14:57 +0000 (17:14 +0100)
SL/RP.pm
bin/mozilla/io.pl
templates/German-ustva.html

index 99595c1..41cd390 100644 (file)
--- a/SL/RP.pm
+++ b/SL/RP.pm
@@ -49,12 +49,21 @@ use strict;
 # - subdescription
 # - proper testing for heading charts
 # - transmission from $form to TMPL realm is not as clear as i'd like
+
+sub get_openbalance_date {
+  my ($closedto, $target) = map { $::locale->parse_date_to_object(\%::myconfig, $_) } @_;
+
+  $closedto->subtract(years => 1) while ($target - $closedto)->is_negative;
+  $closedto->add(days => 1);
+  return $::locale->format_date(\%::myconfig, $closedto);
+}
+
 sub balance_sheet {
   $main::lxdebug->enter_sub();
 
   my $myconfig = \%main::myconfig;
   my $form     = $main::form;
-  my $dbh      = $form->get_standard_dbh($myconfig);
+  my $dbh      = $::form->get_standard_dbh;
 
   my $last_period = 0;
   my @categories  = qw(A C L Q);
@@ -64,12 +73,21 @@ sub balance_sheet {
     $form->{period} = $form->{this_period} = conv_dateq($form->{asofdate});
   }
 
-  get_accounts($dbh, $last_period, "", $form->{asofdate}, $form, \@categories);
+  # get end of financial year and convert to Date format
+  my ($closedto) = selectfirst_arrayref_query($form, $dbh, 'SELECT closedto FROM defaults');
+
+  # get date of last opening balance
+  my $startdate = get_openbalance_date($closedto, $form->{asofdate});
+
+  get_accounts($dbh, $last_period, $startdate, $form->{asofdate}, $form, \@categories);
 
   # if there are any compare dates
   if ($form->{compareasofdate}) {
     $last_period = 1;
-    get_accounts($dbh, $last_period, "", $form->{compareasofdate}, $form, \@categories);
+
+    $startdate = get_openbalance_date($closedto, $form->{compareasofdate});
+
+    get_accounts($dbh, $last_period, $startdate, $form->{compareasofdate}, $form, \@categories);
     $form->{last_period} = conv_dateq($form->{compareasofdate});
   }
 
@@ -118,7 +136,6 @@ sub balance_sheet {
         next if ($period eq 'last' && !$last_period);
         # only add assets
         $row->{$period}                    *= $ml;
-        $form->{total}{$category}{$period} += $row->{$period};      #      if ($row->{charttype} eq 'A') {   # why??
       }
 
       push @{ $TMPL_DATA->{$category} }, $row;
@@ -138,12 +155,11 @@ sub balance_sheet {
   for my $period (qw(this last)) {
     next if ($period eq 'last' && !$last_period);
 
-    $form->{E}{$period}             = $form->{total}{A}{$period} - $form->{total}{L}{$period} - $form->{total}{Q}{$period};
-    $form->{total}{Q}{$period}     += $form->{E}{$period};
-    $TMPL_DATA->{total}{Q}{$period} = $form->{total}{Q}{$period};
-    $TMPL_DATA->{total}{$period}    = $form->{total}{L}{$period} + $form->{total}{Q}{$period};
+    $form->{E}{$period}             = $TMPL_DATA->{total}{A}{$period} - $TMPL_DATA->{total}{L}{$period} - $TMPL_DATA->{total}{Q}{$period};
+    $TMPL_DATA->{total}{Q}{$period}     += $form->{E}{$period};
+    $TMPL_DATA->{total}{$period}    = $TMPL_DATA->{total}{L}{$period} + $TMPL_DATA->{total}{Q}{$period};
   }
-
+    $form->{E}{description}='nicht verbuchter Gewinn/Verlust';
   push @{ $TMPL_DATA->{Q} }, $form->{E};
 
   $main::lxdebug->leave_sub();
@@ -1186,11 +1202,11 @@ sub aging {
   if ($form->{review_of_aging_list}) {
     if ($form->{review_of_aging_list} =~ m "-"){
       my @period = split(/-/, $form->{review_of_aging_list});
-      $review_of_aging_list = " AND $period[0] < date_part('days', now() - duedate) 
+      $review_of_aging_list = " AND $period[0] < date_part('days', now() - duedate)
                                 AND date_part('days', now() - duedate)  < $period[1]";
     } else {
       $form->{review_of_aging_list} =~ s/[^0-9]//g;
-      $review_of_aging_list = " AND $form->{review_of_aging_list} < date_part('days', now() - duedate)"; 
+      $review_of_aging_list = " AND $form->{review_of_aging_list} < date_part('days', now() - duedate)";
     }
   }
 
index fed2ff7..0b3dfab 100644 (file)
@@ -810,7 +810,7 @@ sub remove_emptied_rows {
                 sellprice_pg pricegroup_old price_old price_new unit_old ordnumber
                 transdate longdescription basefactor marge_total marge_percent
                 marge_price_factor lastcost price_factor_id partnotes
-                stock_out stock_in has_sernumber);
+                stock_out stock_in has_sernumber reqdate);
 
   my $ic_cvar_configs = CVar->get_configs(module => 'IC');
   push @flds, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs };
index 0854e94..f73e608 100644 (file)
@@ -47,7 +47,7 @@ b.h3 { font-size:120%; }
 <h1>Vorschau Umsatzsteuer-Voranmeldung</h1>
 <h2>Zeitraum vom <%fromdate%> bis <%todate%> </h2>
 
-<!-- Diese HTML-Formular ist nicht selbstrechnend. 
+<!-- Diese HTML-Formular ist nicht selbstrechnend.
 <p><small>Wenn ein (selbstrechnendes) Formular verwendet wird, genügt es, die
 gelb hinterlegten Felder auszufüllen. Die anderen Felder werden dann
 automatisch berechnet.</small></p>
@@ -154,7 +154,7 @@ Vorsteuerabzug. </b><br />Ums&auml;tze nach &sect; 4 Nr. 8 bis 20 UStG</td>
       <td class="betrag ausfuellen" width="70"><%81%><br></td>
       <td class="spalte"><span class="nodis">(Spalte 81 rechts)</span></td>
       <td class="betrag"><%811%></td>
-    </tr>    
+    </tr>
 <%end year2007%>
 
     <tr>
@@ -286,7 +286,7 @@ Vorsteuerabzug. </b><br />Ums&auml;tze nach &sect; 4 Nr. 8 bis 20 UStG</td>
       <td class="betrag"><%53%></td>
     </tr>
     <tr>
-      <td class="text">Lieferungen sicherungsbereigneter Gegenst&auml;nde und 
+      <td class="text">Lieferungen sicherungsbereigneter Gegenst&auml;nde und
            Ums&auml;tze, die unter das GrEStG fallen.</td>
       <td class="spalte ausfuellen">73</td>
       <td class="betrag ausfuellen"><%73%></td>
@@ -340,13 +340,13 @@ Vorsteuerabzug. </b><br />Ums&auml;tze nach &sect; 4 Nr. 8 bis 20 UStG</td>
       <td class="betrag ausfuellen"><%62%></td>
     </tr>
     <tr>
-      <td class="text" colspan="3">Vorsteuerbetr&auml;ge aus Leistungen im Sinne 
+      <td class="text" colspan="3">Vorsteuerbetr&auml;ge aus Leistungen im Sinne
           des &sect;13b Abs. 1 UStG</td>
       <td class="spalte ausfuellen">67</td>
       <td class="betrag ausfuellen"><%67%></td>
     </tr>
     <tr>
-      <td class="text2" colspan="3">Vorsteuerbetr&auml;ge, die nach allgemeinen 
+      <td class="text2" colspan="3">Vorsteuerbetr&auml;ge, die nach allgemeinen
            Durchschnitts&auml;stzen berechnet sind </td>
       <td class="spalte ausfuellen">63</td>
       <td class="betrag ausfuellen"><%63%></td>
@@ -389,7 +389,7 @@ Vorsteuerabzug. </b><br />Ums&auml;tze nach &sect; 4 Nr. 8 bis 20 UStG</td>
     </tr>
     <tr>
       <td class="text" colspan="3">Anrechnung (Abzug) der festgesetzten Sondervorauszahlung
-        f&uuml;r Dauerfristverlngerung (nur in der letzten Voranmeldung des 
+        f&uuml;r Dauerfristverl&auml;ngerung (nur in der letzten Voranmeldung des
         Besteuerungszeitraums, ausf&uuml;llen)</td>
       <td class="spalte ausfuellen">39</td>
       <td class="betrag ausfuellen"><%39%></td>