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.

ConfigureCompanyDefault.php 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace App\Listeners;
  3. use App\Events\CompanyConfigured;
  4. use App\Services\CompanySettingsService;
  5. use App\Utilities\Currency\ConfigureCurrencies;
  6. use Filament\Facades\Filament;
  7. use Filament\Forms\Components\DatePicker;
  8. use Filament\Forms\Components\Section;
  9. use Filament\Forms\Components\Tabs\Tab;
  10. use Filament\Resources\Components\Tab as ResourcesTab;
  11. class ConfigureCompanyDefault
  12. {
  13. /**
  14. * Handle the event.
  15. */
  16. public function handle(CompanyConfigured $event): void
  17. {
  18. $company = $event->company;
  19. $companyId = $company->id;
  20. session(['current_company_id' => $companyId]);
  21. $settings = CompanySettingsService::getSettings($companyId);
  22. app()->setLocale($settings['default_language']);
  23. locale_set_default($settings['default_language']);
  24. config(['app.timezone' => $settings['default_timezone']]);
  25. date_default_timezone_set($settings['default_timezone']);
  26. Filament::getPanel('company')
  27. ->brandName($company->name);
  28. DatePicker::configureUsing(static function (DatePicker $component) use ($settings) {
  29. $component
  30. ->displayFormat($settings['default_date_format'])
  31. ->firstDayOfWeek($settings['default_week_start']);
  32. });
  33. Tab::configureUsing(static function (Tab $tab) {
  34. $label = $tab->getLabel();
  35. if ($label) {
  36. $translatedLabel = translate($label);
  37. $tab->label(ucwords($translatedLabel));
  38. }
  39. }, isImportant: true);
  40. Section::configureUsing(static function (Section $section): void {
  41. $heading = $section->getHeading();
  42. if ($heading) {
  43. $translatedHeading = translate($heading);
  44. $section->heading(ucfirst($translatedHeading));
  45. }
  46. }, isImportant: true);
  47. ResourcesTab::configureUsing(static function (ResourcesTab $tab): void {
  48. $tab->localizeLabel();
  49. }, isImportant: true);
  50. ConfigureCurrencies::syncCurrencies();
  51. }
  52. }