Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c3898bd8

Von G. Richardson vor fast 13 Jahren hinzugefügt

  • ID c3898bd886b47a36d64336342a95c584a12ad847
  • Vorgänger 388a2ff5
  • Nachfolger be4f8254

Offene Posten nach Rechnungsnummer suchen

  • wenn es mehrere Rechnungen gab, wo Rechnungsnummer übereinstimmt (LIKE),
    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

  • nach Ermittlung der Rechnung wurde anhand des Kundennamens und nicht anhand
    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

Unterschiede anzeigen:

bin/mozilla/cp.pl
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"}|;

Auch abrufbar als: Unified diff