Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 15f58ff3

Von Kivitendo Admin vor mehr als 9 Jahren hinzugefügt

  • ID 15f58ff3dfd79651a95535b53f864ea0e8cb6620
  • Vorgänger 6a349447
  • Nachfolger fc35d1dd

Sammelcommit Bankerweiterung und Skonto

Überarbeitung der Bankerweiterung vom Stand Niclas, und Einführung von
Bezahlung mit Skonto (alter payment Branch). Mehr Details siehe
changelog.

  • changelog
  • Ungültige Bankkonten ausblenden
  • Punktesystem in Hash %points ausgelagert
  • format_amount beim Erstellen von Kreditorenbuchungen behoben
  • Debug-Modus in manchen Templates für zusätzliche Tabellenfelder, muß im Template angeschaltet werden: [% SET debug=1 %]
Rechnung zuweisen:
  • Filterdatum bei Rechnungszuweisung repariert
  • bank_transactions vor reconciliation_starting_date ignorieren
  • Rechnungen mit offenem Betrag < 1 Cent ignorieren
  • Reihenfolge der Bankfelder in Tabelle angepasst
Bankbuchungen
  • Sortierreihenfolge ist standardmäßig Neueste zuerst
  • aqbanking Binary in configuration hinterlegen

acc_tran in acc_trans umbenannt in MetaSetup/ReconciliationLink

Kontenabgleich - EB- und SB-Buchungen ignorieren

Payment Helper mit Skontomodus und Skontoautomatik

neuer DB Helper zum Bezahlen von Rechnungsobjekten: pay_invoice

Drei Bezahlarten:
  • ohne Skonto
  • mit Skonto laut Zahlungsbedingungen
  • Differenz als Skonto

Neue Helpermethoden rund um Rechnungen für Einkauf und Verkauf.

Für das automatische Verbuchen von Skonto muß für jeden Steuertyp ein
Skontoautomatikkonto für Verkauf oder Einkauf konfiguriert (bei Steuerschlüssel
0 und 1 beides).

Skontomodi und pay_invoice für SEPA umgesetzt

Beim Auswählen von Rechnungen für den SEPA-Lauf kann nun auch Skonto
berücksichtigt werden.

Berichte Bankbewegungen - Export repariert

Bankkonten - Validierung beim Speichern temporär ausgeschaltet

CsvImport bank transactions - show name of bank in preview

Csv-Import Bank transaction - join remote names

like for purpose, join remote_name and remote_name_1 into one field

Punktesystem in Hash pflegen, und die Regeln, die matchen,
protokollieren, wird aber noch nirgends angezeigt.

Zahlungsauswahl bei el. Kontoauszug

im Tooltip auch Skonto-Information anzeigen
beim Auswählen Dropdown mit Bezahltyp anzeigen

pay_invoice aus Helper nutzt transdate_to_kivitendo

Bericht Bankbuchungen - Name des Bankkontos in eigener Spalte anzeigen

Übersetzung für Kontenabgleich - Bank und Buchung vertauscht

Kontenabgleich - bei Vorschlägen Rechnungsnummer verlinken

Kontenabgleich - "nicht abgeglichen" als Default

Vorschläge Kontenabgleich - Beschriftung und Template Default

Bankerweiterung CSV Import - Standardeinstellungen

Bankerweiterung - in Tooltip Skonto nur bei Bedarf anzeigen

BankAccounts Upgrade - bestehende Konten auf obsolete false setzen

displayable_name für BankAccount
kann im Bankkonto select_tag als title_key statt label_sub verwendet
werden.

SEPA - Umstellung auf Bankkonten-Controller

Bankerweiterung - BankAccount Dropdowns mit displayable_name
statt label_subs

Bankerweiterung - Übersetzung korrigiert

bank_accounts mit obsolete NOT NULL und DEFAULT FALSE intialisieren

SEPA payment - noch offene SEPA-Überweisungen mit berücksichtigen

Beim SEPA-Einzug und der SEPA-Überweisung wurden beim offenen Betrag die
noch nicht geschlossenen SEPA Aufträge mit berücksichtigt. Dies wird
jetzt auch bei der Skonto-Erweiterung berücksichtigt.
Dies ist v.A. dann wichtig, wenn man eine Rechnung in mehreren Schritten
per SEPA-Überweisung bezahlen möchte, oder vielleicht von mehreren
Bankkonten aus.
Beim SEPA-Einzug kommt der Fall wohl eher nicht vor.

Skontoerweiterung - Übersetzungen nachgepflegt

Bankerweiterung - Zahlungsverkehr Menü überarbeitet

CSV-Import der Bankbuchungen nach Menü "Zahlungsverkehr" verschoben
Reihenfolge geändert, entspricht der üblichen Abarbeitungsfolge:
Import -> Verbuchen -> Abgleich

SEPA Export - kein "Differenz als Skonto" vorschlagen

bei SEPA Export soll immer Geld fließen, wenn noch ein Betrag offen ist,
der nicht bezahlt werden soll, muß dies außerhalb des SEPA-Exports
verbucht werden.
Nur die Optionen "ohne Skonto" ohne "mit Skonto nach ZB" machen Sinn.

BankTransaction - diverse Änderungen

  • Punktesystem erweitert
  • Kontonummer und IBAN vergleichen
  • zutreffende Punkt-Regeln in Template im Debug-Modus anzeigen, als
    Mouseover Tooltip in der Punktespalte

Kontenabgleich verbessert

  • bei schon verknüpften Belegen kleine Abweichungen
    (Rundungsungenauigkeiten im Subcent-Bereich) tolerieren
  • Sowohl auf IBAN als auf Kontonummer prüfen
  • Kontenabgleichsstartdatum bei Gesamtsumme verwenden

Bankerweiterung: Bei Rechnung zuweisen Skontosumme anzeigen

Kontoauszug verbuchen: add_invoices um Parameter skonto erweitert

Wenn Zahlbetrag mit Skontobetrag übereinstimmt dann Dropdown mit
"mit Skonto nach ZB" vorausgewählt übergeben.
Kann an der Stelle im Template aber noch nicht prüfen, ob
Zahlungseingangsdatum innerhalb Skontofrist liegt.

Kontoauszug verbuchen - Payment Dropdown konditional

nur anzeigen, wenn überhaupt Skonto in Frage kommt

Es wird aber immer noch nicht auf Datum überprüft

bank_transactions: itime hinzugefügt

wird aber noch nirgends verwendet

Kontenabgleich - Gesamtsaldobeschriftungen waren vertauscht

BankTransaction-Controller: Paginaten beim CSV-/PDF-Export ausschalten
Analog zu Commit 06837707

Kontenabgleich - reconciliate nach reconcile umbenannt

Bankauszug verbuchen - leeren Konteninhaber nicht matchen

BankTransaction - Idee für Negativpunkt für Überzahlung

Kontoauszug verbuchen - korrekter Titel

Kontoauszug verbuchen - offenen Betrag berücksichtigen und anzeigen
und auf leere Regex-Ausdrücke prüfen

Payment Helper - Fließkommadifferenzen berücksichtigen

in pay_invoice für die Fälle "Differenz als Skonto" und "mit Skonto nach
ZB".

Moved BankTransaction matching from Controller to DB

There is now a new function in SL::DB::BankTransaction called
get_agreement_with_invoice that takes a Invoice or PurchaseInvoice
object as an argument and calculates the agreement.

Kontoauszug verbuchen - bei Zuweisung Zahlungsart berücksichtigen

Übernimmt man einen Vorschlag, wird nun per AJAX geprüft, ob die
Kombination aus $bt und $invoice mit Skonto verbucht wird oder nicht.
Es wird ein Optionsliste für eine select als HTML-Blog zurückgeliefert
und unter "Zugewiesene Rechnungen" eingefügt.

Wenn der Zahlungsbetrag genau dem Rechnungsbetrag abzgl. Skonto
entspricht, und die Zahlung innerhalb der Skontofrist erfolgt ist, wird
"mit Skonto nach ZB" vorausgewählt". Ist die Skontofrist vorbei wird
"ohne Skonto" vorausgewählt, dadurch bleibt der Skontobetrag offen,
sofern man nicht manuell auf "mit Skonto nach ZB" umstellt.

Gibt es für die Rechnung keine Skontooption so wird auch keine Dropdown
angezeigt.

Kontoauszug verbuchen - Übersetzung für "Add invoices" korrigiert

BankTransaction - Offene Subcent-Rechnungen rausfiltern
damit diese nicht mehr zum Zuweisen zur Verfügung stehen.

Payment Helper - Export get_payment_select_options_for_bank_transaction

EXPORT_OK angepasst und alle Methoden in SL::DB::Invoice und
SL::DB::PurchaseInvoice importieren

Doku von SL/DB/Helper/Payment.pm angepasst

Kontauszug verbuchen - max agreement refactored

Nicht mehr von einer hohen Zahl in einer Schleife herunterzählen,
sondern den Wert der höchsten Matches per map und max raussuchen und
direkt danach die Vorschläge greppen.

Kontoauszug verbuchen - Refactoring von Rechnung zuweisen (html)

  • das HTML wird jetzt nicht mehr per javascript, sondern in
    SL/DB/Helper/Payment.pm mit Hilfe des Presenters (für die Tags)
    als HTML Blob zusammengebaut
  • der Rückgabewert von get_payment_select_options_for_bank_transaction
    ist jetzt ein Array, mit dem direkt das select_tag erstellt werden kann.
  • Die Daten werden jetzt an to_json als to_json( { 'html' => $html } ...
    übergeben, und im AJAX code als data.html ausgelesen.

Reconciliation auf record umgestellt

Reconciliation - ajax as POST bei Vorschlägen, weil url zu lang werden
kann

Unterschiede anzeigen:

SL/AM.pm
45 45
use SL::DB::AuthUser;
46 46
use SL::DB::Default;
47 47
use SL::DB::Employee;
48
use SL::DB::Chart;
48 49
use SL::GenericTranslations;
49 50

  
50 51
use strict;
......
1286 1287
                   t.taxdescription,
1287 1288
                   round(t.rate * 100, 2) AS rate,
1288 1289
                   (SELECT accno FROM chart WHERE id = chart_id) AS taxnumber,
1289
                   (SELECT description FROM chart WHERE id = chart_id) AS account_description
1290
                   (SELECT description FROM chart WHERE id = chart_id) AS account_description,
1291
                   (SELECT accno FROM chart WHERE id = skonto_sales_chart_id) AS skonto_chart_accno,
1292
                   (SELECT description FROM chart WHERE id = skonto_sales_chart_id) AS skonto_chart_description,
1293
                   (SELECT accno FROM chart WHERE id = skonto_purchase_chart_id) AS skonto_chart_purchase_accno,
1294
                   (SELECT description FROM chart WHERE id = skonto_purchase_chart_id) AS skonto_chart_purchase_description
1290 1295
                 FROM tax t
1291 1296
                 ORDER BY taxkey, rate|;
1292 1297

  
......
1328 1333
    push @{ $form->{ACCOUNTS} }, $ref;
1329 1334
  }
1330 1335

  
1336
  $form->{AR_PAID} = SL::DB::Manager::Chart->get_all(where => [ link => { like => '%AR_paid%' } ], sort_by => 'accno ASC');
1337
  $form->{AP_PAID} = SL::DB::Manager::Chart->get_all(where => [ link => { like => '%AP_paid%' } ], sort_by => 'accno ASC');
1338

  
1339
  $form->{skontochart_value_title_sub} = sub {
1340
    my $item = shift;
1341
    return [
1342
      $item->{id},
1343
      $item->{accno} .' '. $item->{description},
1344
    ];
1345
  };
1346

  
1331 1347
  $sth->finish;
1332 1348

  
1333 1349
  $dbh->disconnect;
......
1350 1366
                   chart_id,
1351 1367
                   chart_categories,
1352 1368
                   (id IN (SELECT tax_id
1353
                           FROM acc_trans)) AS tax_already_used
1369
                           FROM acc_trans)) AS tax_already_used,
1370
                   skonto_sales_chart_id,
1371
                   skonto_purchase_chart_id
1354 1372
                 FROM tax
1355 1373
                 WHERE id = ? |;
1356 1374

  
......
1414 1432
  $chart_categories .= 'E' if $form->{expense};
1415 1433
  $chart_categories .= 'C' if $form->{costs};
1416 1434

  
1417
  my @values = ($form->{taxkey}, $form->{taxdescription}, $form->{rate}, conv_i($form->{chart_id}), conv_i($form->{chart_id}), $chart_categories);
1435
  my @values = ($form->{taxkey}, $form->{taxdescription}, $form->{rate}, conv_i($form->{chart_id}), conv_i($form->{chart_id}), conv_i($form->{skonto_sales_chart_id}), conv_i($form->{skonto_purchase_chart_id}), $chart_categories);
1418 1436
  if ($form->{id} ne "") {
1419 1437
    $query = qq|UPDATE tax SET
1420
                  taxkey         = ?,
1421
                  taxdescription = ?,
1422
                  rate           = ?,
1423
                  chart_id       = ?,
1424
                  taxnumber      = (SELECT accno FROM chart WHERE id= ? ),
1425
                  chart_categories = ?
1438
                  taxkey                   = ?,
1439
                  taxdescription           = ?,
1440
                  rate                     = ?,
1441
                  chart_id                 = ?,
1442
                  taxnumber                = (SELECT accno FROM chart WHERE id = ? ),
1443
                  skonto_sales_chart_id    = ?,
1444
                  skonto_purchase_chart_id = ?,
1445
                  chart_categories         = ?
1426 1446
                WHERE id = ?|;
1427 1447

  
1428 1448
  } else {
......
1434 1454
                  rate,
1435 1455
                  chart_id,
1436 1456
                  taxnumber,
1457
                  skonto_sales_chart_id,
1458
                  skonto_purchase_chart_id,
1437 1459
                  chart_categories,
1438 1460
                  id
1439 1461
                )
1440
                VALUES (?, ?, ?, ?, (SELECT accno FROM chart WHERE id = ?), ?, ?)|;
1462
                VALUES (?, ?, ?, ?, (SELECT accno FROM chart WHERE id = ?), ?, ?,  ?, ?)|;
1441 1463
  }
1442 1464
  push(@values, $form->{id});
1443 1465
  do_query($form, $dbh, $query, @values);

Auch abrufbar als: Unified diff