Payment Helper setzt $self->transactions zurück
authorG. Richardson <information@kivitendo-premium.de>
Sun, 6 Mar 2016 19:29:40 +0000 (20:29 +0100)
committerG. Richardson <information@kivitendo-premium.de>
Sun, 6 Mar 2016 19:38:56 +0000 (20:38 +0100)
commit0d34b38184fdd6a6f1dd1bc7ce509c560e326b4e
treed6e5b19432fcc71d97b3c9740c0759febd7c8cf1
parent44703001ea7d51f4e1eda2db2cc040713661bffc
Payment Helper setzt $self->transactions zurück

Als es noch eine Methode transactions in SL::DB::Helper::Payment gab
wurden die acc_trans-Einträge bei Zugriff per $self->transactions jedes
Mal aus der Datenbank ausgelesen:
(SL::DB::Manager::AccTransaction->get_all(query => [ trans_id => $self->id ]);

Seit Commit 01b298ec3 wird stattdessen der aktuelle relationship Array
verwendet, wenn die transactions noch nicht ausgelesen wurden werden sie
wie oben geladen, wenn sie aber schon existieren dann werden die
Transaktionen im Speicher benutzt.

Bei den Tests gab es aber das Problem, daß in pay_invoice die
acc_trans-Einträge der Zahlungen als AccTrans-Objekte unabhängig vom
Rechnungsobjekt gespeichert wurden, und der transaction Array daher
nicht aktualisiert wurde. Am Ende von pay_invoice wird nun per
forget_related der transaction-Array zurückgesetzt, damit bei der
nächsten Verwendung die aktuell gespeicherten Transaktionen nachgeladen
werden.
SL/DB/Helper/Payment.pm
SL/DB/Invoice.pm
SL/DB/PurchaseInvoice.pm
t/db_helper/payment.t