From: Moritz Bunkus Date: Fri, 20 Jan 2017 16:21:41 +0000 (+0100) Subject: Verkaufsrechnungen: Kundenwahl über Picker X-Git-Tag: release-3.5.4~1667^2~24 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=a99fc9f6b84fbf0effae46eb41fe056c960a1602;p=kivitendo-erp.git Verkaufsrechnungen: Kundenwahl über Picker --- diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index 5db9b9cf1..2f1f9b735 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -143,13 +143,6 @@ sub invoice_links { # create links $form->create_links("AR", \%myconfig, "customer"); - if ($form->{all_customer}) { - unless ($form->{customer_id}) { - $form->{customer_id} = $form->{all_customer}->[0]->{id}; - $form->{salesman_id} = $form->{all_customer}->[0]->{salesman_id}; - } - } - my $editing = $form->{id}; $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id @@ -158,11 +151,6 @@ sub invoice_links { IS->get_customer(\%myconfig, \%$form); - #quote all_customer Bug 133 - foreach my $ref (@{ $form->{all_customer} }) { - $ref->{name} = $form->quote($ref->{name}); - } - $form->restore_vars(qw(id)); IS->retrieve_invoice(\%myconfig, \%$form); @@ -171,23 +159,6 @@ sub invoice_links { $form->restore_vars(qw(taxincluded)) if $form->{id}; $form->restore_vars(qw(salesman_id)) if $editing; - - # build vendor/customer drop down compatibility... don't ask - if (@{ $form->{"all_customer"} }) { - $form->{"selectcustomer"} = 1; - $form->{customer} = qq|$form->{customer}--$form->{"customer_id"}|; - } - - $form->{"oldcustomer"} = $form->{customer}; - - if ($form->{"oldcustomer"} !~ m/--\d+$/ && $form->{"customer_id"}) { - $form->{"oldcustomer"} .= qq|--$form->{"customer_id"}| - } - - -# $form->{oldcustomer} = "$form->{customer}--$form->{customer_id}"; -# $form->{selectcustomer} = 1; - $form->{employee} = "$form->{employee}--$form->{employee_id}"; # forex @@ -291,10 +262,9 @@ sub form_header { my %TMPL_VAR = (); my @custom_hiddens; - if ($form->{id}) { - require SL::DB::Invoice; - $TMPL_VAR{invoice_obj} = SL::DB::Invoice->new(id => $form->{id})->load; - } + $TMPL_VAR{customer_obj} = SL::DB::Customer->load_cached($form->{customer_id}) if $form->{customer_id}; + $TMPL_VAR{invoice_obj} = SL::DB::Invoice->load_cached($form->{id}) if $form->{id}; + $form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id}; $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id}; @@ -302,7 +272,6 @@ sub form_header { $form->get_lists("taxzones" => ($form->{id} ? "ALL_TAXZONES" : "ALL_ACTIVE_TAXZONES"), "currencies" => "ALL_CURRENCIES", - "customers" => "ALL_CUSTOMERS", "price_factors" => "ALL_PRICE_FACTORS"); $form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all; @@ -342,14 +311,6 @@ sub form_header { ]); $TMPL_VAR{department_labels} = sub { "$_[0]->{description}--$_[0]->{id}" }; - # customer - $TMPL_VAR{vc_keys} = sub { "$_[0]->{name}--$_[0]->{id}" }; - $TMPL_VAR{vclimit} = $myconfig{vclimit}; - $TMPL_VAR{vc_select} = "customer_or_vendor_selection_window('customer', '', 0, 0)"; - push @custom_hiddens, "customer_id"; - push @custom_hiddens, "oldcustomer"; - push @custom_hiddens, "selectcustomer"; - # currencies and exchangerate my @values = map { $_ } @{ $form->{ALL_CURRENCIES} }; my %labels = map { $_ => $_ } @{ $form->{ALL_CURRENCIES} }; @@ -365,10 +326,6 @@ sub form_header { $TMPL_VAR{creditwarning} = ($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update}; $TMPL_VAR{is_credit_remaining_negativ} = $form->{creditremaining} =~ /-/; - my $follow_up_vc = $form->{customer}; - $follow_up_vc =~ s/--\d*\s*$//; - $TMPL_VAR{customer_name} = $follow_up_vc; - # set option selected foreach my $item (qw(AR)) { $form->{"select$item"} =~ s/ selected//; @@ -448,7 +405,7 @@ sub form_footer { $form->{taxaccounts_array} = [ split(/ /, $form->{taxaccounts}) ]; if( $form->{customer_id} && !$form->{taxincluded_changed_by_user} ) { - my $customer = SL::DB::Customer->new(id => $form->{customer_id})->load(); + my $customer = SL::DB::Customer->load_cached($form->{customer_id}); $form->{taxincluded} = defined($customer->taxincluded_checked) ? $customer->taxincluded_checked : $myconfig{taxincluded_checked}; } @@ -561,7 +518,11 @@ sub update { my $taxincluded = $form->{taxincluded} ? "checked" : ''; $form->{update} = 1; - &check_name("customer"); + if (($form->{previous_customer_id} || $form->{customer_id}) != $form->{customer_id}) { + $::form->{salesman_id} = SL::DB::Manager::Employee->current->id if exists $::form->{salesman_id}; + + IS->get_customer(\%myconfig, $form); + } $form->{taxincluded} ||= $taxincluded; @@ -750,7 +711,7 @@ sub post { $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); $form->isblank("invdate", $locale->text('Invoice Date missing!')); - $form->isblank("customer", $locale->text('Customer missing!')); + $form->isblank("customer_id", $locale->text('Customer missing!')); $form->error($locale->text('Cannot post invoice for a closed period!')) if ($form->date_closed($form->{"invdate"}, \%myconfig)); @@ -758,7 +719,7 @@ sub post { $form->{invnumber} =~ s/\s*$//g; # if oldcustomer ne customer redo form - if (&check_name('customer')) { + if (($form->{previous_customer_id} || $form->{customer_id}) != $form->{customer_id}) { &update; $::dispatcher->end_request; } diff --git a/templates/webpages/is/form_header.html b/templates/webpages/is/form_header.html index 28f3f4da4..4fcc5ace6 100644 --- a/templates/webpages/is/form_header.html +++ b/templates/webpages/is/form_header.html @@ -1,14 +1,12 @@ [%- USE T8 %] [%- USE HTML %] [%- USE LxERP %] -[%- USE L %] -[%- SET follow_up_trans_info = invnumber _ ' (' _ customer_name _ ')' %] +[%- USE L %][%- USE P -%] +[%- SET follow_up_trans_info = invnumber _ ' (' _ customer_obj.name _ ')' %] - -
@@ -52,23 +50,10 @@ [% 'Customer' | $T8 %] - [%- INCLUDE 'generic/multibox.html' - id = 'customer', - name = 'customer', - style = 'width: 250px', - class = 'initial_focus', - DATA = ALL_CUSTOMERS, - id_sub = 'vc_keys', - label_key = 'name', - select = vc_select, - limit = vclimit, - allow_textbox = 1, - onChange = "document.getElementById('update_button').click();" -%] - + [% P.customer_vendor_picker("customer_id", customer_id, type="customer", style="width: 250px", class="initial_focus") %] + [% L.button_tag("show_vc_details('customer')", LxERP.t8('Details (one letter abbreviation)')) %] + [% L.hidden_tag("previous_customer_id", customer_id) %] - - - [%- IF ALL_CONTACTS.size %]