Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

PaymentTerms.php 1021B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace App\Enums;
  3. use Filament\Support\Contracts\HasLabel;
  4. enum PaymentTerms: string implements HasLabel
  5. {
  6. case DueUponReceipt = 'due_upon_receipt';
  7. case Net7 = 'net_7';
  8. case Net10 = 'net_10';
  9. case Net15 = 'net_15';
  10. case Net30 = 'net_30';
  11. case Net60 = 'net_60';
  12. case Net90 = 'net_90';
  13. public const DEFAULT = self::DueUponReceipt->value;
  14. public function getLabel(): ?string
  15. {
  16. $label = ucwords(str_replace('_', ' ', $this->value));
  17. return translate($label);
  18. }
  19. public function getDays(): int
  20. {
  21. return match ($this) {
  22. self::DueUponReceipt => 0,
  23. self::Net7 => 7,
  24. self::Net10 => 10,
  25. self::Net15 => 15,
  26. self::Net30 => 30,
  27. self::Net60 => 60,
  28. self::Net90 => 90,
  29. };
  30. }
  31. public function getDueDate(string $format): string
  32. {
  33. $days = $this->getDays() ?? 0;
  34. return now()->addDays($days)->translatedFormat($format);
  35. }
  36. }