]> wagnertech.de Git - mfinanz.git/commitdiff
In Absprache mit Sven pagebreak und sumcarriedforward wieder hergestellt, allerdings...
authorR. Karuschka <r.karuschka@ok-it-services.de>
Thu, 16 Feb 2012 09:01:43 +0000 (10:01 +0100)
committerR. Karuschka <r.karuschka@ok-it-services.de>
Thu, 16 Feb 2012 09:01:43 +0000 (10:01 +0100)
Diese Aktion ist einzig dazu gedacht die Leute beim upgrade weich fallen zu lassen, da diese Funktionen bislang als "Standard" galten
und sogar in den Vorlagen propagiert wurden. nach dem Release soll die Funktion endgueltig raus.
Bugs zu pagebreak, sumcarriedforward etc werden kuenftig abgelehnt, unsupported feature.

SL/Template/LaTeX.pm
doc/UPGRADE

index c6d54d5934a601488ac2e9480734d1363592ee31..a862431d81f4e32c28efedb2f3c3fcb56728be53 100644 (file)
@@ -63,6 +63,49 @@ sub parse_foreach {
     $form->{"__odd__"}     = (($i + 1) % 2) == 1;
     $form->{"__counter__"} = $i + 1;
 
+  #everything from here to the next marker should be removed after the release of 2.7.0
+    if (   ref $description_array       eq 'ARRAY'
+        && scalar @{$description_array} == scalar @{$ary}
+        && $self->{"chars_per_line"}    != 0)
+    {
+      my $lines = int(length($description_array->[$i]) / $self->{"chars_per_line"});
+      my $lpp;
+
+      $description_array->[$i] =~ s/(\\newline\s?)*$//;
+      $lines++ while ($description_array->[$i] =~ m/\\newline/g);
+      $lines++;
+
+      if ($current_page == 1) {
+        $lpp = $self->{"lines_on_first_page"};
+      } else {
+        $lpp = $self->{"lines_on_second_page"};
+      }
+
+      # Yes we need a manual page break -- or the user has forced one
+      if (   (($current_line + $lines) > $lpp)
+          || ($description_array->[$i]     =~ /<pagebreak>/)
+          || (   ref $longdescription_array eq 'ARRAY'
+              && $longdescription_array->[$i] =~ /<pagebreak>/)) {
+        my $pb = $self->{"pagebreak_block"};
+
+        # replace the special variables <%sumcarriedforward%>
+        # and <%lastpage%>
+
+        my $psum = $form->format_amount($self->{"myconfig"}, $sum, 2);
+        $pb =~ s/$self->{tag_start_qm}sumcarriedforward$self->{tag_end_qm}/$psum/g;
+        $pb =~ s/$self->{tag_start_qm}lastpage$self->{tag_end_qm}/$current_page/g;
+
+        my $new_text = $self->parse_block($pb, (@indices, $i));
+        return undef unless (defined($new_text));
+        $new_contents .= $new_text;
+
+        $current_page++;
+        $current_line = 0;
+      }
+      $current_line += $lines;
+    }
+  #stop removing code here.
+
     if (   ref $linetotal_array eq 'ARRAY'
         && $i < scalar(@{$linetotal_array})) {
       $sum += $form->parse_amount($self->{"myconfig"}, $linetotal_array->[$i]);
@@ -295,6 +338,18 @@ sub parse {
 
   my $contents = join("", @lines);
 
+  # detect pagebreak block and its parameters
+  if ($contents =~ /$self->{tag_start_qm}pagebreak\s+(\d+)\s+(\d+)\s+(\d+)\s*$self->{tag_end_qm}(.*?)$self->{tag_start_qm}end(\s*pagebreak)?$self->{tag_end_qm}/s) {
+    $self->{"chars_per_line"} = $1;
+    $self->{"lines_on_first_page"} = $2;
+    $self->{"lines_on_second_page"} = $3;
+    $self->{"pagebreak_block"} = $4;
+
+    substr($contents, length($`), length($&)) = "";
+  }
+
+  $self->{"forced_pagebreaks"} = [];
+
   my $new_contents = $self->parse_block($contents);
   if (!defined($new_contents)) {
     $main::lxdebug->leave_sub();
index 192e0cb33a25443be65ec9af579a4eb4a7d9a55d..2208fd89fcf97b1bb5555aded346cf1c3d8c44e3 100644 (file)
@@ -13,11 +13,12 @@ Upgrade auf v2.7.0
 
 * Das Lizenzenfeature wurde ersatzlos entfernt.
 
-* In den LaTeX Vorlagen wurde der Befehl "pagebreak" und die dazugehörigen
-  "sumcarriedforward" und "lastpage" entfernt. Alle Vorlagen die auf diesen
-  Informationen basieren müssen überarbeitet werden. Die Standardvorlagen sind
-  entsprechend angepasst worden, und müssen in der Administration neu angelegt
-  werden.
+* In den LaTeX Vorlagen wird der Befehl "pagebreak" und die dazugehörigen
+  "sumcarriedforward" und "lastpage" nicht mehr offiziell unterstuetzt. Diese 
+  Methoden gelten als "deprecated" und werden in der naechsten Version gaenzlich 
+  entfernt. Sie sollten bereitss jetzt nicht mehr verwendet werden da sie mehrere 
+  Fehler beinhalten. Die Standardvorlagen sind entsprechend angepasst worden 
+  und müssen in der Administration neu angelegt werden.
 
 * Das Druckvorlagensystem wurde umgestellt, dadurch ist der Name "print" für
   Druckvorlagen jetzt reserviert. Wenn eine Ihrer Vorlagensätze "print" heisst,