X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FForm.pm;h=9f0cf11bc3385cfbeaac74b3070906fa6b111883;hb=574855561514a864f554776c421e7037196e714d;hp=730d079ab824c8683f696b7a1bab661f9c586693;hpb=718f7a1b58963922cb3a4512692e15e2b4267ee7;p=kivitendo-erp.git diff --git a/SL/Form.pm b/SL/Form.pm index 730d079ab..9f0cf11bc 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -40,6 +40,7 @@ package Form; use Carp; use Data::Dumper; +use Carp; use CGI; use Cwd; use Encode; @@ -307,8 +308,7 @@ sub error { $self->show_generic_error($msg); } else { - print STDERR "Error: $msg\n"; - ::end_of_request(); + confess "Error: $msg\n"; } $main::lxdebug->leave_sub(); @@ -472,7 +472,7 @@ sub header { $layout->use_javascript("$_.js") for (qw( jquery jquery-ui jquery.cookie jquery.checkall jquery.download - jquery/jquery.form client_js + jquery/jquery.form jquery/fixes client_js common part_selection switchmenuframe autocomplete_part ), "jquery/ui/i18n/jquery.ui.datepicker-$::myconfig{countrycode}"); @@ -594,8 +594,11 @@ sub _prepare_html_template { if (-f "templates/webpages/${file}.html") { $file = "templates/webpages/${file}.html"; + } elsif (ref $file eq 'SCALAR') { + # file is a scalarref, use inline mode } else { my $info = "Web page template '${file}' not found.\n"; + $::form->header; print qq|
$info
|; ::end_of_request(); } @@ -673,6 +676,7 @@ sub init_template { 'COMPILE_EXT' => '.tcc', 'COMPILE_DIR' => $::lx_office_conf{paths}->{userspath} . '/templates-cache', 'ERROR' => 'templates/webpages/generic/exception.html', + 'ENCODING' => 'utf8', })) || die; } @@ -694,7 +698,6 @@ sub show_generic_error { } if ($::request->is_ajax) { - $::lxdebug->message(0, "trying to render AJAX response..."); SL::ClientJS->new ->error($error) ->render(SL::Controller::Base->new); @@ -1019,7 +1022,8 @@ sub parse_template { file_name => $self->{IN}, form => $self, myconfig => $myconfig, - userspath => $userspath); + userspath => $userspath, + %{ $self->{TEMPLATE_DRIVER_OPTIONS} || {} }); # Copy the notes from the invoice/sales order etc. back to the variable "notes" because that is where most templates expect it to be. $self->{"notes"} = $self->{ $self->{"formname"} . "notes" }; @@ -1080,8 +1084,9 @@ sub parse_template { } close OUT if $self->{OUT}; - - my $copy_to_webdav = $::instance_conf->get_webdav && $::instance_conf->get_webdav_documents && !$self->{preview} && $self->{tmpdir} && $self->{tmpfile} && $self->{type}; + # check only one flag (webdav_documents) + # therefore copy to webdav, even if we do not have the webdav feature enabled (just archive) + my $copy_to_webdav = $::instance_conf->get_webdav_documents && !$self->{preview} && $self->{tmpdir} && $self->{tmpfile} && $self->{type}; if ($self->{media} eq 'file') { copy(join('/', $self->{cwd}, $userspath, $self->{tmpfile}), $out =~ m|^/| ? $out : join('/', $self->{cwd}, $out)) if $template->uses_temp_file; @@ -3325,6 +3330,13 @@ sub prepare_for_printing { # compatibility. $self->{$_} = $defaults->$_ for qw(company address taxnumber co_ustid duns sepa_creditor_id); + $self->{"myconfig_${_}"} = $::myconfig{$_} for grep { $_ ne 'dbpasswd' } keys %::myconfig; + + if (!$self->{employee_id}) { + $self->{"employee_${_}"} = $::myconfig{$_} for qw(email tel fax name signature); + $self->{"employee_${_}"} = $defaults->$_ for qw(address businessnumber co_ustid company duns sepa_creditor_id taxnumber); + } + # set shipto from billto unless set my $has_shipto = any { $self->{"shipto$_"} } qw(name street zipcode city country contact); if (!$has_shipto && ($self->{type} =~ m/^(?:purchase_order|request_quotation)$/)) { @@ -3343,6 +3355,10 @@ sub prepare_for_printing { $output_longdates = 1; } + $self->{myconfig_output_dateformat} = $output_dateformat; + $self->{myconfig_output_longdates} = $output_longdates; + $self->{myconfig_output_numberformat} = $output_numberformat; + # Retrieve accounts for tax calculation. IC->retrieve_accounts(\%::myconfig, $self, map { $_ => $self->{"id_$_"} } 1 .. $self->{rowcount});