use SL::IR;
use SL::AR;
use SL::AP;
+use Data::Dumper;
use strict;
#use warnings;
# für bugfix 1771 (doppelte Leerzeichen werden nicht 'gepostet')
$form->{"select$form->{vc}"} = "";
+ $form->{selectcustomer} .= "<option value=\"\"></option>\n" if $form->{vc} eq "customer";
+
if ($form->{"all_$form->{vc}"}) {
# s.o. jb 12.10.2010
$form->{"$form->{vc}_id"} = $form->{"all_$form->{vc}"}->[0]->{id};
map { $form->{"select$form->{vc}"} .= "<option value=\"$_->{name}--$_->{id}\">$_->{name}--$_->{id}</option>\n" }
@{ $form->{"all_$form->{vc}"} };
}
-
CP->paymentaccounts(\%myconfig, \%$form);
# Standard Konto für Umlaufvermögen
if ($form->{ $form->{vc} } eq "") {
map { $form->{"addr$_"} = "" } (1 .. 4);
}
+
+ # sometimes it happens that values in customer arrive without the signs '--'
+ # but in order to select the right option field we need values with '--'
+ if ($form->{vc} eq "customer"){
+ my ($customername) = split /--/, $form->{ $form->{vc} };
+ $form->{ $form->{vc} } = $customername . "--" . $form->{customer_id};
+ }
# bugfix 1771
# geändert von <option>asdf--2929
# nach:
}
}
+ # search by customernumber
+ # the customernumber has to be correct otherwise nothing is found
+ if ($form->{vc} eq 'customer' and $form->{customernumber} and $form->{ARAP} eq 'AR') {
+ $form->{open} ='Y'; # only open invoices
+ # ar_transactions automatically searches by $form->{customer_id} or else
+ # $form->{customer} if available, and these variables will always be set
+ # so we have to empty these values first
+ $form->{customer_id} = '';
+ $form->{customer} = '';
+ AR->ar_transactions(\%myconfig, \%$form);
+
+ # Here we just take the first returned value even if the custumernumber
+ # may not be unique
+ $form->{customer} = $form->{AR}[0]{name};
+ $form->{customer_id} = $form->{AR}[0]{customer_id};
+ }
+
# search by invoicenumber,
if ($form->{invnumber}) {
- $form->{open} ='Y'; # nur die offenen rechnungen
+ $form->{open} ='Y'; # only open invoices
if ($form->{ARAP} eq 'AR'){
-
# ar_transactions automatically searches by $form->{customer_id} or else
# $form->{customer} if available, and these variables will always be set
- # when we have a dropdown field rather than an input field, so we have to
- # empty these values first
+ # so we have to empty these values first
$form->{customer_id} = '';
$form->{customer} = '';
AR->ar_transactions(\%myconfig, \%$form);
}
# determine customer/vendor
- if ( $form->{customer_id} and $form->{invnumber} ) {
+ if ( $form->{customer_id} and ($form->{invnumber} or $form->{customernumber}) ) {
# we already know the exact customer_id, so fill $form with customer data
IS->get_customer(\%myconfig, \%$form);
$updated = 1;
<tr>
<th align=right>[% is_customer ? LxERP.t8('Customer') : LxERP.t8('Vendor') %]</th>
<td>[% vccontent %]</td>
- [% IF vc == 'customer' %]
+ [% IF vc == 'customer' %]
[% L.hidden_tag('selectcustomer', selectcustomer) %]
[% L.hidden_tag('customer_id', customer_id) %]
[% L.hidden_tag('oldcustomer', oldcustomer) %]
[% L.hidden_tag('oldvendor', oldvendor) %]
[% END %]
</tr>
+ [% IF vc == 'customer' %]
+ <tr>
+ <th align=right>[% 'Customer Number' | $T8 %]</th>
+ <td><input name="customernumber" size="35"</td>
+ </tr>
+ [% END %]
<tr>
<th align=right>[% 'Invoice Number' | $T8 %]</th>
<td><input name="invnumber" size="35"</td>