1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
-
- namespace App\Filament\Company\Resources\Purchases\BillResource\Pages;
-
- use App\Concerns\HandlePageRedirect;
- use App\Concerns\ManagesLineItems;
- use App\Filament\Company\Resources\Purchases\BillResource;
- use App\Models\Accounting\Bill;
- use Filament\Actions;
- use Filament\Resources\Pages\EditRecord;
- use Filament\Support\Enums\MaxWidth;
- use Illuminate\Database\Eloquent\Model;
-
- class EditBill extends EditRecord
- {
- use HandlePageRedirect;
- use ManagesLineItems;
-
- protected static string $resource = BillResource::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 Bill $record */
- $lineItems = collect($data['lineItems'] ?? []);
-
- $this->deleteRemovedLineItems($record, $lineItems);
-
- $this->handleLineItems($record, $lineItems);
-
- $totals = $this->updateDocumentTotals($record, $data);
-
- $data = array_merge($data, $totals);
-
- $record = parent::handleRecordUpdate($record, $data);
-
- if (! $record->initialTransaction) {
- $record->createInitialTransaction();
- } else {
- $record->updateInitialTransaction();
- }
-
- return $record;
- }
- }
|