X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fis.pl;h=685e7b1828e374fcb444fab8176bea290b73c156;hb=8a2d9daf01083e1271cf6118591bb2c242734261;hp=beb6093f358a883028d6b08c7063417c980d5de3;hpb=1167841707ec8fe4ac5964830cd292f129e9f98d;p=kivitendo-erp.git diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index beb6093f3..685e7b182 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -146,7 +146,7 @@ sub invoice_links { my $editing = $form->{id}; - $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes id shipto_id)); + $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded currency cp_id intnotes id shipto_id)); IS->get_customer(\%myconfig, \%$form); @@ -158,7 +158,7 @@ sub invoice_links { $form->restore_vars(qw(id)); IS->retrieve_invoice(\%myconfig, \%$form); - $form->restore_vars(qw(payment_id language_id taxzone_id intnotes cp_id shipto_id)); + $form->restore_vars(qw(payment_id language_id taxzone_id currency intnotes cp_id shipto_id)); $form->restore_vars(qw(taxincluded)) if $form->{id}; $form->restore_vars(qw(salesman_id)) if $editing; @@ -300,8 +300,7 @@ sub form_header { my @old_project_ids = ($form->{"globalproject_id"}); map { push @old_project_ids, $form->{"project_id_$_"} if $form->{"project_id_$_"}; } 1..$form->{"rowcount"}; - $form->get_lists("contacts" => "ALL_CONTACTS", - "shipto" => "ALL_SHIPTO", + $form->get_lists("shipto" => "ALL_SHIPTO", "projects" => { "key" => "ALL_PROJECTS", "all" => 0, "old_id" => \@old_project_ids }, @@ -313,9 +312,17 @@ sub form_header { "departments" => "all_departments", "price_factors" => "ALL_PRICE_FACTORS"); + $TMPL_VAR{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all(query => [ + or => [ + cp_cv_id => $::form->{"$::form->{vc}_id"} * 1, + and => [ + cp_cv_id => undef, + cp_id => $::form->{cp_id} * 1 + ] + ] + ]); $TMPL_VAR{sales_employee_labels} = sub { $_[0]->{name} || $_[0]->{login} }; $TMPL_VAR{shipto_labels} = sub { join "; ", grep { $_ } map { $_[0]->{"shipto${_}" } } qw(name department_1 street city) }; - $TMPL_VAR{contact_labels} = sub { join(', ', $_[0]->{"cp_name"}, $_[0]->{"cp_givenname"}) . ($_[0]->{cp_abteilung} ? " ($_[0]->{cp_abteilung})" : "") }; $TMPL_VAR{department_labels} = sub { "$_[0]->{description}--$_[0]->{id}" }; # customer @@ -332,7 +339,9 @@ sub form_header { $form->{currency} = $form->{defaultcurrency} unless $form->{currency}; $form->{show_exchangerate} = $form->{currency} ne $form->{defaultcurrency}; $TMPL_VAR{currencies} = NTI($::request->{cgi}->popup_menu('-name' => 'currency', '-default' => $form->{"currency"}, - '-values' => \@values, '-labels' => \%labels)) if scalar @values; + '-values' => \@values, '-labels' => \%labels, + '-onchange' => "document.getElementById('update_button').click();" + )) if scalar @values; push @custom_hiddens, "forex"; push @custom_hiddens, "exchangerate" if $form->{forex}; @@ -385,7 +394,6 @@ sub form_footer { $main::auth->assert('invoice_edit'); $form->{invtotal} = $form->{invsubtotal}; - $form->{oldinvtotal} = $form->{invtotal}; # note rows $form->{rows} = max 2, @@ -445,6 +453,8 @@ sub form_footer { $totalpaid += $form->{"paid_$i"}; } + $form->{oldinvtotal} = $form->{invtotal}; + print $form->parse_html_template('is/form_footer', { is_type_credit_note => ($form->{type} eq "credit_note"), totalpaid => $totalpaid, @@ -482,8 +492,6 @@ sub update { my ($recursive_call) = @_; - $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate}) unless $recursive_call; - $form->{print_and_post} = 0 if $form->{second_run}; my $taxincluded = $form->{taxincluded} ? "checked" : ''; $form->{update} = 1; @@ -492,6 +500,9 @@ sub update { $form->{taxincluded} ||= $taxincluded; + if (!$form->{forex}) { # read exchangerate from input field (not hidden) + $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate}) unless $recursive_call; + } $form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'buy'); $form->{exchangerate} = $form->{forex} if $form->{forex};