# 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
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);
$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
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};
$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;
]);
$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} };
$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//;
$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};
}
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;
$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));
$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;
}
[%- 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 _ ')' %]
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript" src="js/delivery_customer_selection.js"></script>
-<script type="text/javascript" src="js/vendor_selection.js"></script>
<script type="text/javascript" src="js/calculate_qty.js"></script>
<script type="text/javascript" src="js/follow_up.js"></script>
-<script type="text/javascript" src="js/customer_or_vendor_selection.js"></script>
<form method="post" name="invoice" action="[% script %]">
<tr>
<th align="right">[% 'Customer' | $T8 %]</th>
<td>
- [%- 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();" -%]
- <input type="button" value="[% 'Details (one letter abbreviation)' | $T8 %]" onclick="show_vc_details('[% HTML.escape(vc) %]')">
+ [% 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) %]
<input type="hidden" name="customer_pricegroup_id" value="[% HTML.escape(customer_pricegroup_id) %]">
- <input type="hidden" name="customer_id" value="[% HTML.escape(customer_id) %]">
- <input type="hidden" name="oldcustomer" value="[% HTML.escape(oldcustomer) %]">
- <input type="hidden" name="selectcustomer" value="[% HTML.escape(selectcustomer) %]">
</td>
</tr>
[%- IF ALL_CONTACTS.size %]