You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

PaymentTerms.php 1.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Enums;
  3. use Filament\Support\Contracts\HasLabel;
  4. enum PaymentTerms: string implements HasLabel
  5. {
  6. case DueOnReceipt = 'due_on_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::DueOnReceipt->value;
  14. public function getLabel(): ?string
  15. {
  16. return match ($this) {
  17. self::DueOnReceipt => 'Due on Receipt',
  18. self::Net7 => 'Net 7',
  19. self::Net10 => 'Net 10',
  20. self::Net15 => 'Net 15',
  21. self::Net30 => 'Net 30',
  22. self::Net60 => 'Net 60',
  23. self::Net90 => 'Net 90',
  24. };
  25. }
  26. public function getDays(): int
  27. {
  28. return match ($this) {
  29. self::DueOnReceipt => 0,
  30. self::Net7 => 7,
  31. self::Net10 => 10,
  32. self::Net15 => 15,
  33. self::Net30 => 30,
  34. self::Net60 => 60,
  35. self::Net90 => 90,
  36. };
  37. }
  38. }