123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
-
- namespace App\Filament\Company\Resources\Sales\EstimateResource\Pages;
-
- use App\Concerns\ManagesLineItems;
- use App\Concerns\RedirectToListPage;
- use App\Filament\Company\Resources\Sales\EstimateResource;
- use App\Models\Accounting\Estimate;
- use Filament\Actions;
- use Filament\Resources\Pages\EditRecord;
- use Filament\Support\Enums\MaxWidth;
- use Illuminate\Database\Eloquent\Model;
-
- class EditEstimate extends EditRecord
- {
- use ManagesLineItems;
- use RedirectToListPage;
-
- protected static string $resource = EstimateResource::class;
-
- protected function getHeaderActions(): array
- {
- return [
- Actions\DeleteAction::make(),
- ];
- }
-
- public function getMaxContentWidth(): MaxWidth | string | null
- {
- return MaxWidth::Full;
- }
-
- 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);
- }
- }
|