| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | <?php
namespace App\Filament\Company\Resources\Sales\RecurringInvoiceResource\Pages;
use App\Concerns\ManagesLineItems;
use App\Filament\Company\Resources\Sales\RecurringInvoiceResource;
use App\Models\Accounting\Estimate;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
use Filament\Support\Enums\MaxWidth;
use Illuminate\Database\Eloquent\Model;
class EditRecurringInvoice extends EditRecord
{
    use ManagesLineItems;
    protected static string $resource = RecurringInvoiceResource::class;
    protected function getHeaderActions(): array
    {
        return [
            Actions\DeleteAction::make(),
        ];
    }
    public function getMaxContentWidth(): MaxWidth | string | null
    {
        return MaxWidth::Full;
    }
    protected function getRedirectUrl(): string
    {
        return $this->getResource()::getUrl('view', ['record' => $this->record]);
    }
    protected function handleRecordUpdate(Model $record, array $data): Model
    {
        /** @var Estimate $record */
        $lineItems = collect($data['lineItems'] ?? []);
        $this->deleteRemovedLineItems($record, $lineItems);
        $this->handleLineItems($record, $lineItems);
        $totals = $this->updateDocumentTotals($record, $data);
        $data = array_merge($data, $totals);
        return parent::handleRecordUpdate($record, $data);
    }
}
 |