X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/89015f89fe79f8924fbd1ed5f91ca01feac3e08c..a295ff26c39f57d4b36a4115309e5a68b08fbee2:/SL/Form.pm diff --git a/SL/Form.pm b/SL/Form.pm index 510e30561..53324c6c5 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -471,7 +471,7 @@ sub isblank { my ($self, $name, $msg) = @_; my $curr = $self; - foreach my $part (split '.', $name) { + foreach my $part (split /\./, $name) { if (!$curr->{$part} || ($curr->{$part} =~ /^\s*$/)) { $self->error($msg); } @@ -577,6 +577,7 @@ sub header { if ($self->{jsscript} == 1) { $jsscript = qq| + @@ -1246,25 +1247,40 @@ sub get_formname_translation { return $formname_translations{$formname} } -sub generate_attachment_filename { +sub get_number_prefix_for_type { my ($self) = @_; - my $attachment_filename = $main::locale->unquote_special_chars('HTML', $self->get_formname_translation()); my $prefix = (first { $self->{type} eq $_ } qw(invoice credit_note)) ? 'inv' : ($self->{type} =~ /_quotation$/) ? 'quo' : ($self->{type} =~ /_delivery_order$/) ? 'do' : 'ord'; + return $prefix; +} + +sub get_extension_for_format { + my ($self) = @_; + + my $extension = $self->{format} =~ /pdf/i ? ".pdf" + : $self->{format} =~ /postscript/i ? ".ps" + : $self->{format} =~ /opendocument/i ? ".odt" + : $self->{format} =~ /html/i ? ".html" + : ""; + + return $extension; +} + +sub generate_attachment_filename { + my ($self) = @_; + + my $attachment_filename = $main::locale->unquote_special_chars('HTML', $self->get_formname_translation()); + my $prefix = $self->get_number_prefix_for_type(); + if ($attachment_filename && $self->{"${prefix}number"}) { - $attachment_filename .= "_" . $self->{"${prefix}number"} - . ( $self->{format} =~ /pdf/i ? ".pdf" - : $self->{format} =~ /postscript/i ? ".ps" - : $self->{format} =~ /opendocument/i ? ".odt" - : $self->{format} =~ /html/i ? ".html" - : ""); - $attachment_filename = $main::locale->quote_special_chars('filenames', $attachment_filename); - $attachment_filename =~ s|[\s/\\]+|_|g; + $attachment_filename .= "_" . $self->{"${prefix}number"} . $self->get_extension_for_format(); + $attachment_filename = $main::locale->quote_special_chars('filenames', $attachment_filename); + $attachment_filename =~ s|[\s/\\]+|_|g; } else { $attachment_filename = ""; } @@ -1272,6 +1288,19 @@ sub generate_attachment_filename { return $attachment_filename; } +sub generate_email_subject { + my ($self) = @_; + + my $subject = $main::locale->unquote_special_chars('HTML', $self->get_formname_translation()); + my $prefix = $self->get_number_prefix_for_type(); + + if ($subject && $self->{"${prefix}number"}) { + $subject .= " " . $self->{"${prefix}number"} + } + + return $subject; +} + sub cleanup { $main::lxdebug->enter_sub(); @@ -1550,8 +1579,6 @@ sub check_exchangerate { my ($exchangerate) = selectrow_query($self, $dbh, $query, $currency, $transdate); - $exchangerate = 1 if ($exchangerate eq ""); - $main::lxdebug->leave_sub(); return $exchangerate; @@ -2302,6 +2329,9 @@ sub get_lists { if ($params{groups}) { $self->_get_groups($dbh, $params{groups}); } + if ($params{partsgroup}) { + $self->get_partsgroup(\%main::myconfig, { all => 1, target => $params{partsgroup} }); + } $main::lxdebug->leave_sub(); } @@ -3091,6 +3121,7 @@ sub get_partsgroup { $main::lxdebug->enter_sub(); my ($self, $myconfig, $p) = @_; + my $target = $p->{target} || 'all_partsgroup'; my $dbh = $self->get_standard_dbh($myconfig); @@ -3129,7 +3160,7 @@ sub get_partsgroup { @values = ($p->{language_code}); } - $self->{all_partsgroup} = selectall_hashref_query($self, $dbh, $query, @values); + $self->{$target} = selectall_hashref_query($self, $dbh, $query, @values); $main::lxdebug->leave_sub(); } @@ -3195,4 +3226,25 @@ sub all_years { $main::lxdebug->leave_sub(); } +sub backup_vars { + $main::lxdebug->enter_sub(); + my $self = shift; + my @vars = @_; + + map { $self->{_VAR_BACKUP}->{$_} = $self->{$_} if $self->{$_} } @vars; + + $main::lxdebug->leave_sub(); +} + +sub restore_vars { + $main::lxdebug->enter_sub(); + + my $self = shift; + my @vars = @_; + + map { $self->{$_} = $self->{_VAR_BACKUP}->{$_} if $self->{_VAR_BACKUP}->{$_} } @vars; + + $main::lxdebug->leave_sub(); +} + 1;