Revision 15f58ff3
Von Kivitendo Admin vor mehr als 9 Jahren hinzugefügt
SL/DB/Invoice.pm | ||
---|---|---|
9 | 9 |
use List::Util qw(first); |
10 | 10 |
|
11 | 11 |
use Rose::DB::Object::Helpers (); |
12 |
|
|
13 | 12 |
use SL::DB::MetaSetup::Invoice; |
14 | 13 |
use SL::DB::Manager::Invoice; |
14 |
use SL::DB::Helper::Payment qw(:ALL); |
|
15 | 15 |
use SL::DB::Helper::AttrHTML; |
16 | 16 |
use SL::DB::Helper::FlattenToForm; |
17 | 17 |
use SL::DB::Helper::LinkedRecords; |
... | ... | |
20 | 20 |
use SL::DB::Helper::TransNumberGenerator; |
21 | 21 |
use SL::Locale::String qw(t8); |
22 | 22 |
use SL::DB::CustomVariable; |
23 |
use SL::DB::AccTransaction; |
|
24 | 23 |
|
25 | 24 |
__PACKAGE__->meta->add_relationship( |
26 | 25 |
invoiceitems => { |
... | ... | |
368 | 367 |
goto &customer; |
369 | 368 |
} |
370 | 369 |
|
371 |
sub pay_invoice { |
|
372 |
my ($self, %params) = @_; |
|
373 |
|
|
374 |
#Mark invoice as paid |
|
375 |
$self->paid($self->paid+$params{amount}); |
|
376 |
$self->save; |
|
377 |
|
|
378 |
Common::check_params(\%params, qw(chart_id trans_id amount transdate)); |
|
379 |
|
|
380 |
#account of bank account or cash |
|
381 |
my $account_bank = SL::DB::Manager::Chart->find_by(id => $params{chart_id}); |
|
382 |
|
|
383 |
#Search the contra account |
|
384 |
my $acc_trans = SL::DB::Manager::AccTransaction->find_by(trans_id => $params{trans_id}, |
|
385 |
or => [ chart_link => { like => "%:AR" }, |
|
386 |
chart_link => { like => "AR:%" }, |
|
387 |
chart_link => "AR" ]); |
|
388 |
my $contra_account = SL::DB::Manager::Chart->find_by(id => $acc_trans->chart_id); |
|
389 |
|
|
390 |
#Two new transfers in acc_trans (for bank account and for contra account) |
|
391 |
my $new_acc_trans = SL::DB::AccTransaction->new(trans_id => $params{trans_id}, |
|
392 |
chart_id => $account_bank->id, |
|
393 |
chart_link => $account_bank->link, |
|
394 |
amount => (-1 * $params{amount}), |
|
395 |
transdate => $params{transdate}, |
|
396 |
source => $params{source}, |
|
397 |
memo => '', |
|
398 |
taxkey => 0, |
|
399 |
tax_id => SL::DB::Manager::Tax->find_by(taxkey => 0)->id); |
|
400 |
$new_acc_trans->save; |
|
401 |
$new_acc_trans = SL::DB::AccTransaction->new(trans_id => $params{trans_id}, |
|
402 |
chart_id => $contra_account->id, |
|
403 |
chart_link => $contra_account->link, |
|
404 |
amount => $params{amount}, |
|
405 |
transdate => $params{transdate}, |
|
406 |
source => $params{source}, |
|
407 |
memo => '', |
|
408 |
taxkey => 0, |
|
409 |
tax_id => SL::DB::Manager::Tax->find_by(taxkey => 0)->id); |
|
410 |
$new_acc_trans->save; |
|
411 |
} |
|
412 |
|
|
413 | 370 |
sub link { |
414 | 371 |
my ($self) = @_; |
415 | 372 |
|
... | ... | |
420 | 377 |
return $html; |
421 | 378 |
} |
422 | 379 |
|
423 |
>>>>>>> Test: Bank-Commit zusammengefasst |
|
424 | 380 |
1; |
425 | 381 |
|
426 | 382 |
__END__ |
Auch abrufbar als: Unified diff
Sammelcommit Bankerweiterung und Skonto
Überarbeitung der Bankerweiterung vom Stand Niclas, und Einführung von
Bezahlung mit Skonto (alter payment Branch). Mehr Details siehe
changelog.
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: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
Mouseover Tooltip in der Punktespalte
Kontenabgleich verbessert
(Rundungsungenauigkeiten im Subcent-Bereich) tolerieren
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)
SL/DB/Helper/Payment.pm mit Hilfe des Presenters (für die Tags)
als HTML Blob zusammengebaut
ist jetzt ein Array, mit dem direkt das select_tag erstellt werden kann.
ü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