authorizeTmsAccess('tms.access'); $business_id = $this->tmsUtil->getBusinessId(); return view('tms::settings.index', [ 'settings' => $this->tmsUtil->getTmsSettings($business_id), 'carriers' => $this->tmsUtil->getCarriersDropdown($business_id), 'accounting_enabled' => $this->tmsUtil->isAccountingEnabled($business_id), 'accounts' => $this->tmsUtil->getAccountingAccountsDropdown($business_id), ]); } public function update(Request $request) { $this->authorizeTmsAccess('tms.access'); $business_id = $this->tmsUtil->getBusinessId(); $existing = $this->tmsUtil->getTmsSettings($business_id); $data = $request->validate([ 'ref_prefix' => 'required|string|max:20', 'customs_ref_prefix' => 'nullable|string|max:20', 'default_carrier_id' => 'nullable|exists:tms_carriers,id', 'freight_expense_account_id' => 'nullable|integer', 'freight_payment_account_id' => 'nullable|integer', 'customs_duty_expense_account_id' => 'nullable|integer', 'customs_payment_account_id' => 'nullable|integer', ]); $settings = array_merge($existing, [ 'ref_prefix' => $data['ref_prefix'], 'customs_ref_prefix' => $data['customs_ref_prefix'] ?? ($existing['customs_ref_prefix'] ?? 'CUS'), 'default_carrier_id' => $data['default_carrier_id'] ?? null, 'auto_create_on_sale' => $request->boolean('auto_create_on_sale'), 'sync_transaction_shipping' => $request->boolean('sync_transaction_shipping'), 'auto_post_freight_journal' => $request->boolean('auto_post_freight_journal'), 'auto_post_customs_journal' => $request->boolean('auto_post_customs_journal'), 'freight_expense_account_id' => $data['freight_expense_account_id'] ?? null, 'freight_payment_account_id' => $data['freight_payment_account_id'] ?? null, 'customs_duty_expense_account_id' => $data['customs_duty_expense_account_id'] ?? null, 'customs_payment_account_id' => $data['customs_payment_account_id'] ?? null, 'sync_customs_shipment_status' => $request->boolean('sync_customs_shipment_status'), 'auto_link_customs_shipment' => $request->boolean('auto_link_customs_shipment'), 'auto_create_shipment_on_customs_import' => $request->boolean('auto_create_shipment_on_customs_import'), 'require_customs_cleared_before_transit' => $request->boolean('require_customs_cleared_before_transit'), 'exclude_uncleared_from_routes' => $request->boolean('exclude_uncleared_from_routes'), 'sync_mission_status' => $request->boolean('sync_mission_status'), ]); Business::where('id', $business_id)->update([ 'tms_settings' => json_encode($settings), ]); return redirect() ->action([self::class, 'index']) ->with('status', __('tms::lang.settings_saved')); } }