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.
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.