AdminSettingsController.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Setting;
  5. use App\Models\User;
  6. use Illuminate\Http\RedirectResponse;
  7. use Illuminate\Http\Request;
  8. use Illuminate\View\View;
  9. class AdminSettingsController extends Controller
  10. {
  11. public function index(): View
  12. {
  13. $users = User::query()
  14. ->orderBy('name')
  15. ->pluck('name', 'id')
  16. ->toArray();
  17. return view('admin.settings.index', [
  18. 'active' => 'admin_settings',
  19. 'title' => 'Настройки',
  20. 'users' => $users,
  21. 'defaultMafOrderUserId' => Setting::getInt(
  22. Setting::KEY_DEFAULT_MAF_ORDER_USER_ID,
  23. (int) config('app.default_maf_order_user_id')
  24. ),
  25. 'reclamationActRepresentativeUserId' => Setting::getInt(
  26. Setting::KEY_RECLAMATION_ACT_REPRESENTATIVE_USER_ID
  27. ),
  28. 'ttnNextNumber' => Setting::getInt(
  29. Setting::KEY_TTN_NEXT_NUMBER,
  30. \App\Models\Ttn::getNextTtnNumber()
  31. ),
  32. ]);
  33. }
  34. public function store(Request $request): RedirectResponse
  35. {
  36. $data = $request->validate([
  37. 'default_maf_order_user_id' => ['nullable', 'integer', 'exists:users,id'],
  38. 'reclamation_act_representative_user_id' => ['nullable', 'integer', 'exists:users,id'],
  39. 'ttn_next_number' => ['required', 'integer', 'min:1'],
  40. ]);
  41. Setting::set(
  42. Setting::KEY_DEFAULT_MAF_ORDER_USER_ID,
  43. $data['default_maf_order_user_id'] ?? null
  44. );
  45. Setting::set(
  46. Setting::KEY_RECLAMATION_ACT_REPRESENTATIVE_USER_ID,
  47. $data['reclamation_act_representative_user_id'] ?? null
  48. );
  49. Setting::set(
  50. Setting::KEY_TTN_NEXT_NUMBER,
  51. $data['ttn_next_number']
  52. );
  53. return back()->with('success', 'Настройки сохранены.');
  54. }
  55. }