From: Moritz Bunkus Date: Fri, 28 Oct 2005 12:50:40 +0000 (+0000) Subject: Mehr Markup: Wenn in einer Rechnungszeile "" auftaucht, so wird es aus... X-Git-Tag: release-2.4.0^2~490 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/commitdiff_plain/f1b1481e52a4c61b6b050d38ede35741cef81ec2 Mehr Markup: Wenn in einer Rechnungszeile "" auftaucht, so wird es aus dem Text entfernt, und bei LaTeX-Ausgabe wird nach der Zeile ein Seitenumbruch erzwungen. --- diff --git a/SL/Form.pm b/SL/Form.pm index bfe8e4644..d6cbc0b7c 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -632,7 +632,7 @@ sub parse_template { # Some variables used for page breaks my ($chars_per_line, $lines_on_first_page, $lines_on_second_page) = (0, 0, 0); - my ($current_page, $current_line) = (1, 1); + my ($current_page, $current_line, $current_row) = (1, 1, 0); my $pagebreak = ""; my $sum = 0; @@ -736,8 +736,9 @@ sub parse_template { $lpp = $lines_on_second_page; } - # Yes we need a manual page break - if (($current_line + $lines) > $lpp) { + # Yes we need a manual page break -- or the user has forced one + if ((($current_line + $lines) > $lpp) || + ($self->{"_forced_pagebreaks"} && grep(/^${current_row}$/, @{$self->{"_forced_pagebreaks"}}))) { my $pb = $pagebreak; # replace the special variables <%sumcarriedforward%> @@ -758,6 +759,7 @@ sub parse_template { $current_line = 1; } $current_line += $lines; + $current_row++; } $sum += $self->parse_amount($myconfig, $self->{"linetotal"}[$i]); @@ -1023,6 +1025,18 @@ sub format_string { %unique_fields = map({ $_ => 1 } @fields); @fields = keys(%unique_fields); + + foreach my $field (@fields) { + next unless ($self->{$field} =~ /\/); + $self->{$field} =~ s/\//g; + if ($field =~ /.*_(\d+)$/) { + if ($self->{"_forced_pagebreaks"}) { + $self->{"_forced_pagebreaks"} = []; + } + push(@{ $self->{"_forced_pagebreaks"} }, "$1"); + } + } + my $format = $self->{format}; if ($self->{format} =~ /(postscript|pdf)/) { $format = 'tex';