| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- namespace App\Http\Controllers\Admin;
- use App\Http\Controllers\Controller;
- use App\Models\CommonCatalogItem;
- use App\Models\Setting;
- use App\Models\User;
- use Illuminate\Http\RedirectResponse;
- use Illuminate\Http\Request;
- use Illuminate\Validation\Rule;
- use Illuminate\View\View;
- class AdminSettingsController extends Controller
- {
- public function index(): View
- {
- $users = User::query()
- ->orderBy('name')
- ->pluck('name', 'id')
- ->toArray();
- return view('admin.settings.index', [
- 'active' => 'admin_settings',
- 'title' => 'Настройки',
- 'users' => $users,
- 'defaultMafOrderUserId' => Setting::getInt(
- Setting::KEY_DEFAULT_MAF_ORDER_USER_ID,
- (int) config('app.default_maf_order_user_id')
- ),
- 'reclamationActRepresentativeUserId' => Setting::getInt(
- Setting::KEY_RECLAMATION_ACT_REPRESENTATIVE_USER_ID
- ),
- 'ttnNextNumber' => Setting::getInt(
- Setting::KEY_TTN_NEXT_NUMBER,
- \App\Models\Ttn::getNextTtnNumber()
- ),
- 'technicalDescriptionPriceFields' => CommonCatalogItem::PRICE_FIELDS,
- 'technicalDescriptionPriceField' => Setting::technicalDescriptionPriceField(),
- ]);
- }
- public function store(Request $request): RedirectResponse
- {
- $data = $request->validate([
- 'default_maf_order_user_id' => ['nullable', 'integer', 'exists:users,id'],
- 'reclamation_act_representative_user_id' => ['nullable', 'integer', 'exists:users,id'],
- 'ttn_next_number' => ['required', 'integer', 'min:1'],
- 'technical_description_price_field' => [
- 'required',
- 'string',
- Rule::in(array_keys(CommonCatalogItem::PRICE_FIELDS)),
- ],
- ]);
- Setting::set(
- Setting::KEY_DEFAULT_MAF_ORDER_USER_ID,
- $data['default_maf_order_user_id'] ?? null
- );
- Setting::set(
- Setting::KEY_RECLAMATION_ACT_REPRESENTATIVE_USER_ID,
- $data['reclamation_act_representative_user_id'] ?? null
- );
- Setting::set(
- Setting::KEY_TTN_NEXT_NUMBER,
- $data['ttn_next_number']
- );
- Setting::set(
- Setting::KEY_TECHNICAL_DESCRIPTION_PRICE_FIELD,
- $data['technical_description_price_field'],
- );
- return back()->with('success', 'Настройки сохранены.');
- }
- }
|