Abo: Extern erledigt zaehlt als ausgefuehrte Abo-Lieferung
getCountPaidOrders() zaehlt jetzt bezahlte ODER extern erledigte (Status 8) Bestellungen als ausgefuehrte Lieferung. "Extern erledigt" = Lieferung ausgefuehrt und Punkte vergeben, daher muss der Lieferungs-Zaehler hochgehen (Anzeige "Abo-Lieferungen X / Mindestlaufzeit" sowie canCancelAbo), obwohl paid=false bleibt (Inkasso laeuft ausserhalb des Systems). Der Incentive-Zaehler (qualified_abos via IncentiveTracker::trackAboActivated) lief bereits korrekt; Test ergaenzt diese Absicherung explizit. Tests: getCountPaidOrders 0 -> 1 nach Erledigen, Incentive qualified_abos = 1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
321e7959da
commit
0d4c0b640c
2 changed files with 20 additions and 2 deletions
|
|
@ -220,8 +220,14 @@ class UserAbo extends Model
|
|||
|
||||
public function getCountPaidOrders()
|
||||
{
|
||||
// sind bezahlte Bestellungen
|
||||
return $this->user_abo_orders->where('status', '>=', 2)->where('paid', true)->count();
|
||||
// Ausgefuehrte Abo-Lieferungen: bezahlte sowie extern erledigte (Status 8,
|
||||
// abo_extern_done) Bestellungen. Extern erledigt = Lieferung ausgefuehrt und
|
||||
// Punkte vergeben, daher zaehlt sie wie eine bezahlte Lieferung (z. B. fuer die
|
||||
// Mindestlaufzeit), obwohl paid=false bleibt (Inkasso laeuft ausserhalb).
|
||||
return $this->user_abo_orders
|
||||
->where('status', '>=', 2)
|
||||
->filter(fn (UserAboOrder $order) => $order->paid || (int) $order->status === 8)
|
||||
->count();
|
||||
}
|
||||
|
||||
public function setStartDateAttribute($value)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue