245 |
245 |
$form->{open} ='Y'; # nur die offenen rechnungen
|
246 |
246 |
if ($form->{ARAP} eq 'AR'){
|
247 |
247 |
AR->ar_transactions(\%myconfig, \%$form);
|
248 |
|
# den ersten treffen nehmen und mit dem namen überschreiben
|
249 |
|
$form->{$form->{vc}} = $form->{AR}[0]{name};
|
|
248 |
|
|
249 |
# if you search for invoice '11' ar_transactions will also match invoices
|
|
250 |
# 112, 211, ... due to the LIKE
|
|
251 |
|
|
252 |
# so there is now an extra loop that tries to match the invoice number
|
|
253 |
# exactly among all returned results, and then passes the customer_id instead of the name
|
|
254 |
# because the name may not be unique
|
|
255 |
|
|
256 |
my $found_exact_invnumber_match = 0;
|
|
257 |
foreach my $i ( @{ $form->{AR} } ) {
|
|
258 |
next unless $i->{invnumber} eq $form->{invnumber};
|
|
259 |
# found exactly matching invnumber
|
|
260 |
$form->{$form->{vc}} = $i->{name};
|
|
261 |
$form->{customer_id} = $i->{customer_id};
|
|
262 |
$found_exact_invnumber_match = 1;
|
|
263 |
};
|
|
264 |
|
|
265 |
unless ( $found_exact_invnumber_match ) {
|
|
266 |
# use first returned entry, may not be the correct one if invnumber doesn't match uniquely
|
|
267 |
$form->{$form->{vc}} = $form->{AR}[0]{name};
|
|
268 |
$form->{customer_id} = $form->{AR}[0]{customer_id};
|
|
269 |
};
|
250 |
270 |
} else {
|
251 |
271 |
# s.o. nur für zahlungsausgang
|
252 |
272 |
AP->ap_transactions(\%myconfig, \%$form);
|
... | ... | |
254 |
274 |
}
|
255 |
275 |
}
|
256 |
276 |
# get customer and invoices
|
257 |
|
$updated = &check_name($form->{vc});
|
|
277 |
$updated = &check_name($form->{vc}) unless $form->{customer_id};
|
|
278 |
|
|
279 |
if ( $form->{customer_id} ) {
|
|
280 |
# we already know the exact customer_id, fill $form with customer data
|
|
281 |
IS->get_customer(\%myconfig, \%$form);
|
|
282 |
$updated = 1;
|
|
283 |
};
|
258 |
284 |
|
259 |
285 |
if ($new_name_selected || $updated) {
|
|
286 |
# get open invoices from ar/ap using $form->{vc} and a.${vc}_id
|
260 |
287 |
CP->get_openinvoices(\%myconfig, \%$form);
|
261 |
288 |
($newvc) = split /--/, $form->{ $form->{vc} };
|
262 |
289 |
$form->{"old$form->{vc}"} = qq|$newvc--$form->{"$form->{vc}_id"}|;
|
Offene Posten nach Rechnungsnummer suchen
wurde die erste Rechnung aus den Ergebnissen verwendet
-> jetzt wird erst alle Rechnungen durchgegangen ob es eine genaue
Übereinstimmung gibt und dann die genommen, ansonsten wieder die Erste
der Kunden-ID nach Kunden gesucht, was schlecht ist wenn es viele Kunden mit
identischem Namen gibt
-> sofern die customer_id ermittelt wurde wird jetzt der Kunde anhand der ID
rausgesucht