Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 1422e28a

Von G. Richardson vor mehr als 12 Jahren hinzugefügt

  • ID 1422e28a66f8a5def07ce531db0c07a3ff6e8432
  • Vorgänger ed276d35
  • Nachfolger ec5c7315

Bug 1676 - DATEV Export bei gemischter Rechnung/Gutschrift schlägt fehl

Bei ar/ap-Rechnungen wird jetzt nicht mehr nach dem größten Betrag gesucht,
sondern nach dem Buchungskonto wo link AR oder AP ist, also das Forderungs-
oder Verbindlichkeitskonto. Damit klappen auch gemischte
Rechnungen/Gutschriften im Export wieder.

Unterschiede anzeigen:

SL/DATEV.pm
426 426
        $ref->{is_tax} = 1;
427 427
      }
428 428

  
429
      if (   !$ref->{invoice}
430
          &&  $ref->{is_tax}
431
          && !($prev_ref->{is_tax})
432
          &&  (_sign($ref->{amount}) == _sign($prev_ref->{amount}))) {
429
      if (   !$ref->{invoice}   # we have a non-invoice booking (=gl)
430
          &&  $ref->{is_tax}    # that has "is_tax" set
431
          && !($prev_ref->{is_tax})  # previous line wasn't is_tax
432
          &&  (_sign($ref->{amount}) == _sign($prev_ref->{amount})))  # and sign same as previous sign
433
          {
433 434
        $trans->[$i - 1]->{tax_amount} = $ref->{amount};
434 435
      }
435 436
    }
......
442 443
    }
443 444

  
444 445
    for my $j (0 .. (scalar(@{$trans}) - 1)) {
445
      if (abs($trans->[$j]->{'amount'}) > abs($absumsatz)) {
446
      # for gl-bookings no split is allowed and there is no AR/AP account, so we always use the maximum value as a reference
447
      # for ap/ar bookings we can always search for AR/AP in link and use that
448
      if ( ( not $trans->[$j]->{'invoice'} and abs($trans->[$j]->{'amount'}) > abs($absumsatz) )
449
         or ($trans->[$j]->{'invoice'} and ($trans->[$j]->{'link'} eq 'AR' or $trans->[$j]->{'link'} eq 'AP'))) {
446 450
        $absumsatz     = $trans->[$j]->{'amount'};
447 451
        $notsplitindex = $j;
448 452
      }

Auch abrufbar als: Unified diff