| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- <?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 App\Models\Common\Client;
 - use Filament\Resources\Pages\CreateRecord;
 - use Filament\Support\Enums\MaxWidth;
 - use Illuminate\Database\Eloquent\Model;
 - use Livewire\Attributes\Url;
 - 
 - class CreateEstimate extends CreateRecord
 - {
 -     use ManagesLineItems;
 -     use RedirectToListPage;
 - 
 -     protected static string $resource = EstimateResource::class;
 - 
 -     #[Url(as: 'client')]
 -     public ?int $clientId = null;
 - 
 -     public function mount(): void
 -     {
 -         parent::mount();
 - 
 -         if ($this->clientId) {
 -             $this->data['client_id'] = $this->clientId;
 - 
 -             if ($currencyCode = Client::find($this->clientId)?->currency_code) {
 -                 $this->data['currency_code'] = $currencyCode;
 -             }
 -         }
 -     }
 - 
 -     public function getMaxContentWidth(): MaxWidth | string | null
 -     {
 -         return MaxWidth::Full;
 -     }
 - 
 -     protected function handleRecordCreation(array $data): Model
 -     {
 -         /** @var Estimate $record */
 -         $record = parent::handleRecordCreation($data);
 - 
 -         $this->handleLineItems($record, collect($data['lineItems'] ?? []));
 - 
 -         $totals = $this->updateDocumentTotals($record, $data);
 - 
 -         $record->updateQuietly($totals);
 - 
 -         return $record;
 -     }
 - }
 
 
  |