Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

EditInvoice.php 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Filament\Company\Resources\Sales\InvoiceResource\Pages;
  3. use App\Concerns\HandlePageRedirect;
  4. use App\Concerns\ManagesLineItems;
  5. use App\Filament\Company\Resources\Sales\InvoiceResource;
  6. use App\Models\Accounting\Invoice;
  7. use Filament\Actions;
  8. use Filament\Resources\Pages\EditRecord;
  9. use Filament\Support\Enums\MaxWidth;
  10. use Illuminate\Database\Eloquent\Model;
  11. class EditInvoice extends EditRecord
  12. {
  13. use HandlePageRedirect;
  14. use ManagesLineItems;
  15. protected static string $resource = InvoiceResource::class;
  16. protected function getHeaderActions(): array
  17. {
  18. return [
  19. Actions\DeleteAction::make(),
  20. ];
  21. }
  22. public function getMaxContentWidth(): MaxWidth | string | null
  23. {
  24. return MaxWidth::Full;
  25. }
  26. protected function handleRecordUpdate(Model $record, array $data): Model
  27. {
  28. /** @var Invoice $record */
  29. $lineItems = collect($data['lineItems'] ?? []);
  30. $this->deleteRemovedLineItems($record, $lineItems);
  31. $this->handleLineItems($record, $lineItems);
  32. $totals = $this->updateDocumentTotals($record, $data);
  33. $data = array_merge($data, $totals);
  34. $record = parent::handleRecordUpdate($record, $data);
  35. if ($record->approved_at && $record->approvalTransaction) {
  36. $record->updateApprovalTransaction();
  37. }
  38. return $record;
  39. }
  40. }