From: Sven Schöling Date: Thu, 16 Feb 2012 09:38:20 +0000 (+0100) Subject: Merge branch 'master' of vc.linet-services.de:public/lx-office-erp X-Git-Tag: release-2.7.0rc1~37^2~7 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/9022ecda41297eefc607b19a9bb048a9db6569c4?hp=e4422bec7e6186fc8ce09cf6e412e7e1d2ac7c92 Merge branch 'master' of vc.linet-services.de:public/lx-office-erp --- diff --git a/SL/Template/LaTeX.pm b/SL/Template/LaTeX.pm index c6d54d593..a862431d8 100644 --- a/SL/Template/LaTeX.pm +++ b/SL/Template/LaTeX.pm @@ -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] =~ //) + || ( ref $longdescription_array eq 'ARRAY' + && $longdescription_array->[$i] =~ //)) { + 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(); diff --git a/doc/UPGRADE b/doc/UPGRADE index 192e0cb33..2208fd89f 100644 --- a/doc/UPGRADE +++ b/doc/UPGRADE @@ -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,