X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FForm.pm;h=19f2b5cf59342f490a9085148d136b3720980153;hb=55af6244bd721f294ff5eee7e9357a3217318e5e;hp=450dd792d720f12c9b9e872920099aa2f9313c8c;hpb=2219d15895a48a6ec3aecef5ed3ae2313bf1c900;p=kivitendo-erp.git diff --git a/SL/Form.pm b/SL/Form.pm index 450dd792d..19f2b5cf5 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -56,6 +56,7 @@ use SL::DBUtils; use SL::DO; use SL::IC; use SL::IS; +use SL::Layout::Dispatcher; use SL::Locale; use SL::Mailer; use SL::Menu; @@ -454,11 +455,16 @@ sub header { my $db_charset = $::lx_office_conf{system}->{dbcharset} || Common::DEFAULT_CHARSET; my @header; - my $layout = $::request->{layout}; - $::lxdebug->leave_sub and return if !$ENV{HTTP_USER_AGENT} || $self->{header}++; + if ($params{no_layout}) { + $::request->{layout} = SL::Layout::Dispatcher->new(style => 'none'); + } + + my $layout = $::request->{layout}; + # standard css for all + # this should gradually move to the layouts that need it $layout->use_stylesheet("$_.css") for qw( main menu tabcontent list_accounts jquery.autocomplete jquery.multiselect2side frame_header/header @@ -488,7 +494,6 @@ sub header { push @header, map { qq|| } $layout->javascripts; push @header, $self->{javascript} if $self->{javascript}; push @header, map { $_->show_javascript } @{ $self->{AJAX} || [] }; - push @header, "" if $self->{fokus}; my %doctypes = ( strict => qq||, @@ -531,16 +536,14 @@ EOT } sub footer { - # TODO: fix abort conditions - return unless $::request->{layout}->need_footer; print $::request->{layout}->end_content; print $::request->{layout}->post_content; -# print "\n" for $::request->{layout}->javascripts; -# if (my @inline_scripts = $::request->{layout}->javascript_inline) { -# print "\n" for @inline_scripts; -# } + + if (my @inline_scripts = $::request->{layout}->javascripts_inline) { + print "\n"; + } print < @@ -631,11 +634,9 @@ sub _prepare_html_template { $additional_params->{"conf_latex_templates"} = $::lx_office_conf{print_templates}->{latex}; $additional_params->{"conf_opendocument_templates"} = $::lx_office_conf{print_templates}->{opendocument}; $additional_params->{"conf_vertreter"} = $::lx_office_conf{features}->{vertreter}; - $additional_params->{"conf_show_best_before"} = $::lx_office_conf{features}->{show_best_before}; $additional_params->{"conf_parts_image_css"} = $::lx_office_conf{features}->{parts_image_css}; $additional_params->{"conf_parts_listing_images"} = $::lx_office_conf{features}->{parts_listing_images}; $additional_params->{"conf_parts_show_image"} = $::lx_office_conf{features}->{parts_show_image}; - $additional_params->{"conf_payments_changeable"} = $::lx_office_conf{features}->{payments_changeable}; $additional_params->{"INSTANCE_CONF"} = $::instance_conf; if (my $debug_options = $::lx_office_conf{debug}{options}) { @@ -1094,6 +1095,7 @@ sub parse_template { UNLINK => ($::lx_office_conf{debug} && $::lx_office_conf{debug}->{keep_temp_files})? 0 : 1, ); close $temp_fh; + (undef, undef, $self->{template_meta}{tmpfile}) = File::Spec->splitpath( $self->{tmpfile} ); if ($template->uses_temp_file() || $self->{media} eq 'email') { $out = $self->{OUT}; @@ -1605,7 +1607,7 @@ sub get_exchangerate { my ($self, $dbh, $curr, $transdate, $fld) = @_; my ($query); - unless ($transdate) { + unless ($transdate && $curr) { $main::lxdebug->leave_sub(); return 1; } @@ -1738,10 +1740,9 @@ sub set_payment_options { $amounts{invtotal} = $self->{invtotal}; $amounts{total} = $self->{total}; } - $amounts{skonto_in_percent} = 100.0 * $self->{percent_skonto}; - map { $amounts{$_} = $self->parse_amount($myconfig, $amounts{$_}) } keys %amounts; + $amounts{skonto_in_percent} = 100.0 * $self->{percent_skonto}; $amounts{skonto_amount} = $amounts{invtotal} * $self->{percent_skonto}; $amounts{invtotal_wo_skonto} = $amounts{invtotal} * (1 - $self->{percent_skonto}); $amounts{total_wo_skonto} = $amounts{total} * (1 - $self->{percent_skonto}); @@ -1969,7 +1970,7 @@ sub get_duedate { $reference_date = $reference_date ? conv_dateq($reference_date) . '::DATE' : 'current_date'; my $dbh = $self->get_standard_dbh($myconfig); - my $payment_id; + my ($payment_id, $duedate); if($self->{payment_id}) { $payment_id = $self->{payment_id}; @@ -1978,8 +1979,10 @@ sub get_duedate { ($payment_id) = selectrow_query($self, $dbh, $query, $self->{vendor_id}); } - my $query = qq|SELECT ${reference_date} + terms_netto FROM payment_terms WHERE id = ?|; - my ($duedate) = selectrow_query($self, $dbh, $query, $payment_id); + if ($payment_id) { + my $query = qq|SELECT ${reference_date} + terms_netto FROM payment_terms WHERE id = ?|; + ($duedate) = selectrow_query($self, $dbh, $query, $payment_id); + } $main::lxdebug->leave_sub(); @@ -3580,7 +3583,6 @@ sub layout { my %style_to_script_map = ( v3 => 'v3', neu => 'new', - v4 => 'v4', ); my $menu_script = $style_to_script_map{$::myconfig{menustyle}} || ''; @@ -3607,7 +3609,7 @@ SL::Form.pm - main data object. =head1 SYNOPSIS -This is the main data object of Lx-Office. +This is the main data object of kivitendo. Unfortunately it also acts as a god object for certain data retrieval procedures used in the entry points. Points of interest for a beginner are: @@ -3632,7 +3634,7 @@ will in this case not increase the value, and return undef. Generates a HTTP redirection header for the new C<$url>. Constructs an absolute URL including scheme, host name and port. If C<$url> is a -relative URL then it is considered relative to Lx-Office base URL. +relative URL then it is considered relative to kivitendo base URL. This function Cs if headers have already been created with C<$::form-Eheader>.