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/Presenter/Invoice.pm
5 5
use parent qw(Exporter);
6 6

  
7 7
use Exporter qw(import);
8
our @EXPORT = qw(sales_invoice ar_transaction purchase_invoice ap_transaction gl_transaction);
8
our @EXPORT = qw(invoice sales_invoice ar_transaction purchase_invoice ap_transaction gl_transaction);
9 9

  
10 10
use Carp;
11 11

  
12
sub invoice {
13
  my ($self, $invoice, %params) = @_;
14

  
15
  if ( $invoice->is_sales ) {
16
    if ( $invoice->invoice ) {
17
      return _is_ir_record($self, $invoice, 'is', %params);
18
    } else {
19
      return _is_ir_record($self, $invoice, 'ar', %params);
20
    }
21
  } else {
22
    if ( $invoice->invoice ) {
23
      return _is_ir_record($self, $invoice, 'ir', %params);
24
    } else {
25
      return _is_ir_record($self, $invoice, 'ap', %params);
26
    }
27
  };
28
};
29

  
12 30
sub sales_invoice {
13 31
  my ($self, $invoice, %params) = @_;
14 32

  
......
85 103
  my $object = SL::DB::Manager::PurchaseInvoice->get_first(where => [ or => [ invoice => undef, invoice => 0 ]]);
86 104
  my $html   = SL::Presenter->get->ar_transaction($object, display => 'inline');
87 105

  
106
  # use with any of the above ar/ap/is/ir types:
107
  my $html   = SL::Presenter->get->invoice($object, display => 'inline');
108

  
88 109
=head1 FUNCTIONS
89 110

  
90 111
=over 4
91 112

  
113
=item C<invoice $object, %params>
114

  
115
Returns a rendered version (actually an instance of
116
L<SL::Presenter::EscapedText>) of an ar/ap/is/ir object C<$object> . Determines
117
which type (sales or purchase, invoice or not) the object is.
118

  
119
C<%params> can include:
120

  
121
=over 2
122

  
123
=item * display
124

  
125
Either C<inline> (the default) or C<table-cell>. At the moment both
126
representations are identical and produce the invoice number linked
127
to the corresponding 'edit' action.
128

  
129
=item * no_link
130

  
131
If falsish (the default) then the invoice number will be linked to the
132
"edit invoice" dialog from the sales menu.
133

  
134
=back
135

  
92 136
=item C<sales_invoice $object, %params>
93 137

  
94 138
Returns a rendered version (actually an instance of

Auch abrufbar als: Unified diff