_setResourceModel(ConfigResource::class, ConfigCollection::class); } public function beforeSave() { $items = []; $value = $this->getValue(); if (is_array($value)) { unset($value['__empty']); foreach ($value as $row) { if (!is_array($row)) { continue; } $amount = max(0.0, (float)($row['amount'] ?? 0)); $quantity = max(0, (int)($row['qty'] ?? 0)); if ($quantity <= 0) { continue; } $items[] = ['amount' => $amount, 'qty' => $quantity]; } } usort($items, static fn (array $left, array $right): int => $left['amount'] <=> $right['amount']); $this->setValue($items); return parent::beforeSave(); } }