diff --git a/backend/app/DataTransferObjects/UpdateAccountConfigurationDTO.php b/backend/app/DataTransferObjects/UpdateAccountConfigurationDTO.php new file mode 100644 index 0000000000..490085c8fa --- /dev/null +++ b/backend/app/DataTransferObjects/UpdateAccountConfigurationDTO.php @@ -0,0 +1,13 @@ +minimumAllowedRole(Role::SUPERADMIN); + + $validated = $request->validate([ + 'configuration_id' => 'required|integer|exists:account_configuration,id', + ]); + + $this->handler->handle($accountId, (int) $validated['configuration_id']); + + return $this->jsonResponse([ + 'message' => __('Configuration assigned successfully.'), + ]); + } +} diff --git a/backend/app/Http/Actions/Admin/Accounts/GetAccountAction.php b/backend/app/Http/Actions/Admin/Accounts/GetAccountAction.php new file mode 100644 index 0000000000..9598207787 --- /dev/null +++ b/backend/app/Http/Actions/Admin/Accounts/GetAccountAction.php @@ -0,0 +1,29 @@ +minimumAllowedRole(Role::SUPERADMIN); + + $account = $this->handler->handle($accountId); + + return $this->jsonResponse(new AdminAccountDetailResource($account), wrapInData: true); + } +} diff --git a/backend/app/Http/Actions/Admin/Accounts/UpdateAccountConfigurationAction.php b/backend/app/Http/Actions/Admin/Accounts/UpdateAccountConfigurationAction.php new file mode 100644 index 0000000000..c7fe7d6095 --- /dev/null +++ b/backend/app/Http/Actions/Admin/Accounts/UpdateAccountConfigurationAction.php @@ -0,0 +1,43 @@ +minimumAllowedRole(Role::SUPERADMIN); + + $validated = $request->validate([ + 'application_fees' => 'required|array', + 'application_fees.fixed' => 'required|numeric|min:0', + 'application_fees.percentage' => 'required|numeric|min:0|max:100', + ]); + + $configuration = $this->handler->handle(new UpdateAccountConfigurationDTO( + accountId: $accountId, + applicationFees: $validated['application_fees'], + )); + + return $this->resourceResponse( + resource: AccountConfigurationResource::class, + data: $configuration + ); + } +} diff --git a/backend/app/Http/Actions/Admin/Accounts/UpdateAccountVatSettingAction.php b/backend/app/Http/Actions/Admin/Accounts/UpdateAccountVatSettingAction.php new file mode 100644 index 0000000000..030d758712 --- /dev/null +++ b/backend/app/Http/Actions/Admin/Accounts/UpdateAccountVatSettingAction.php @@ -0,0 +1,51 @@ +minimumAllowedRole(Role::SUPERADMIN); + + $validated = $request->validate([ + 'vat_registered' => 'required|boolean', + 'vat_number' => 'nullable|string|max:20', + 'vat_validated' => 'nullable|boolean', + 'business_name' => 'nullable|string|max:255', + 'business_address' => 'nullable|string|max:500', + 'vat_country_code' => 'nullable|string|max:2', + ]); + + $vatSetting = $this->handler->handle(new UpdateAdminAccountVatSettingDTO( + accountId: $accountId, + vatRegistered: $validated['vat_registered'], + vatNumber: $validated['vat_number'] ?? null, + vatValidated: $validated['vat_validated'] ?? null, + businessName: $validated['business_name'] ?? null, + businessAddress: $validated['business_address'] ?? null, + vatCountryCode: $validated['vat_country_code'] ?? null, + )); + + return $this->resourceResponse( + resource: AccountVatSettingResource::class, + data: $vatSetting + ); + } +} diff --git a/backend/app/Http/Actions/Admin/Configurations/CreateConfigurationAction.php b/backend/app/Http/Actions/Admin/Configurations/CreateConfigurationAction.php new file mode 100644 index 0000000000..78d4bcde06 --- /dev/null +++ b/backend/app/Http/Actions/Admin/Configurations/CreateConfigurationAction.php @@ -0,0 +1,45 @@ +minimumAllowedRole(Role::SUPERADMIN); + + $validated = $request->validate([ + 'name' => 'required|string|max:255', + 'application_fees' => 'required|array', + 'application_fees.fixed' => 'required|numeric|min:0', + 'application_fees.percentage' => 'required|numeric|min:0|max:100', + ]); + + $configuration = $this->repository->create([ + 'name' => $validated['name'], + 'is_system_default' => false, + 'application_fees' => $validated['application_fees'], + ]); + + return $this->jsonResponse( + new AccountConfigurationResource($configuration), + statusCode: Response::HTTP_CREATED, + wrapInData: true + ); + } +} diff --git a/backend/app/Http/Actions/Admin/Configurations/DeleteConfigurationAction.php b/backend/app/Http/Actions/Admin/Configurations/DeleteConfigurationAction.php new file mode 100644 index 0000000000..650f0a8603 --- /dev/null +++ b/backend/app/Http/Actions/Admin/Configurations/DeleteConfigurationAction.php @@ -0,0 +1,36 @@ +minimumAllowedRole(Role::SUPERADMIN); + + try { + $this->handler->handle($configurationId); + } catch (CannotDeleteEntityException $e) { + throw ValidationException::withMessages([ + 'configuration' => [$e->getMessage()], + ]); + } + + return $this->deletedResponse(); + } +} diff --git a/backend/app/Http/Actions/Admin/Configurations/GetAllConfigurationsAction.php b/backend/app/Http/Actions/Admin/Configurations/GetAllConfigurationsAction.php new file mode 100644 index 0000000000..0ffcf213eb --- /dev/null +++ b/backend/app/Http/Actions/Admin/Configurations/GetAllConfigurationsAction.php @@ -0,0 +1,31 @@ +minimumAllowedRole(Role::SUPERADMIN); + + $configurations = $this->repository->all(); + + return $this->jsonResponse( + AccountConfigurationResource::collection($configurations), + wrapInData: true + ); + } +} diff --git a/backend/app/Http/Actions/Admin/Configurations/UpdateConfigurationAction.php b/backend/app/Http/Actions/Admin/Configurations/UpdateConfigurationAction.php new file mode 100644 index 0000000000..c83739ef3b --- /dev/null +++ b/backend/app/Http/Actions/Admin/Configurations/UpdateConfigurationAction.php @@ -0,0 +1,45 @@ +minimumAllowedRole(Role::SUPERADMIN); + + $validated = $request->validate([ + 'name' => 'required|string|max:255', + 'application_fees' => 'required|array', + 'application_fees.fixed' => 'required|numeric|min:0', + 'application_fees.percentage' => 'required|numeric|min:0|max:100', + ]); + + $configuration = $this->repository->updateFromArray( + id: $configurationId, + attributes: [ + 'name' => $validated['name'], + 'application_fees' => $validated['application_fees'], + ] + ); + + return $this->jsonResponse( + new AccountConfigurationResource($configuration), + wrapInData: true + ); + } +} diff --git a/backend/app/Http/Actions/Admin/Orders/GetAllOrdersAction.php b/backend/app/Http/Actions/Admin/Orders/GetAllOrdersAction.php new file mode 100644 index 0000000000..3e27fc0ef1 --- /dev/null +++ b/backend/app/Http/Actions/Admin/Orders/GetAllOrdersAction.php @@ -0,0 +1,39 @@ +minimumAllowedRole(Role::SUPERADMIN); + + $orders = $this->handler->handle(new GetAllOrdersDTO( + perPage: min((int)$request->query('per_page', 20), 100), + search: $request->query('search'), + sortBy: $request->query('sort_by', 'created_at'), + sortDirection: $request->query('sort_direction', 'desc'), + )); + + return $this->resourceResponse( + resource: AdminOrderResource::class, + data: $orders + ); + } +} diff --git a/backend/app/Repository/Eloquent/AccountRepository.php b/backend/app/Repository/Eloquent/AccountRepository.php index 2665dd2d7b..01b54785f2 100644 --- a/backend/app/Repository/Eloquent/AccountRepository.php +++ b/backend/app/Repository/Eloquent/AccountRepository.php @@ -55,4 +55,19 @@ public function getAllAccountsWithCounts(?string $search, int $perPage): LengthA return $query->orderBy('created_at', 'desc')->paginate($perPage); } + + public function getAccountWithDetails(int $accountId): Account + { + return $this->model + ->withCount(['events', 'users']) + ->with([ + 'configuration', + 'account_vat_setting', + 'users' => function ($query) { + $query->select('users.id', 'users.first_name', 'users.last_name', 'users.email') + ->withPivot('role'); + } + ]) + ->findOrFail($accountId); + } } diff --git a/backend/app/Repository/Eloquent/OrderRepository.php b/backend/app/Repository/Eloquent/OrderRepository.php index e7cc8f4920..535cd8deee 100644 --- a/backend/app/Repository/Eloquent/OrderRepository.php +++ b/backend/app/Repository/Eloquent/OrderRepository.php @@ -12,11 +12,14 @@ use HiEvents\Http\DTO\QueryParamsDTO; use HiEvents\Models\Order; use HiEvents\Models\OrderItem; +use HiEvents\Repository\Eloquent\Value\Relationship; use HiEvents\Repository\Interfaces\OrderRepositoryInterface; use Illuminate\Contracts\Pagination\LengthAwarePaginator; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; +use HiEvents\DomainObjects\EventDomainObject; +use HiEvents\DomainObjects\AccountDomainObject; class OrderRepository extends BaseRepository implements OrderRepositoryInterface { @@ -161,4 +164,41 @@ public function findOrdersAssociatedWithProducts(int $eventId, array $productIds ->get() ); } + + public function getAllOrdersForAdmin( + ?string $search = null, + int $perPage = 20, + ?string $sortBy = 'created_at', + ?string $sortDirection = 'desc' + ): LengthAwarePaginator { + $this->model = $this->model + ->select('orders.*') + ->join('events', 'orders.event_id', '=', 'events.id') + ->join('accounts', 'events.account_id', '=', 'accounts.id'); + + if ($search) { + $this->model = $this->model->where(function ($q) use ($search) { + $q->where(OrderDomainObjectAbstract::EMAIL, 'ilike', '%' . $search . '%') + ->orWhere(OrderDomainObjectAbstract::FIRST_NAME, 'ilike', '%' . $search . '%') + ->orWhere(OrderDomainObjectAbstract::LAST_NAME, 'ilike', '%' . $search . '%') + ->orWhere(OrderDomainObjectAbstract::PUBLIC_ID, 'ilike', '%' . $search . '%') + ->orWhere(OrderDomainObjectAbstract::SHORT_ID, 'ilike', '%' . $search . '%'); + }); + } + + $this->model = $this->model->where('orders.status', '!=', OrderStatus::RESERVED->name) + ->where('orders.status', '!=', OrderStatus::ABANDONED->name); + + $allowedSortColumns = ['created_at', 'total_gross', 'email', 'first_name', 'last_name']; + $sortColumn = in_array($sortBy, $allowedSortColumns, true) ? $sortBy : 'created_at'; + $sortDir = in_array(strtolower($sortDirection), ['asc', 'desc']) ? $sortDirection : 'desc'; + + $this->model = $this->model->orderBy('orders.' . $sortColumn, $sortDir); + + $this->loadRelation(new Relationship(EventDomainObject::class, nested: [ + new Relationship(AccountDomainObject::class, name: 'account') + ], name: 'event')); + + return $this->paginate($perPage); + } } diff --git a/backend/app/Repository/Interfaces/AccountRepositoryInterface.php b/backend/app/Repository/Interfaces/AccountRepositoryInterface.php index 9089411117..f3a72f98ff 100644 --- a/backend/app/Repository/Interfaces/AccountRepositoryInterface.php +++ b/backend/app/Repository/Interfaces/AccountRepositoryInterface.php @@ -5,6 +5,7 @@ namespace HiEvents\Repository\Interfaces; use HiEvents\DomainObjects\AccountDomainObject; +use HiEvents\Models\Account; use HiEvents\Repository\Eloquent\BaseRepository; use Illuminate\Contracts\Pagination\LengthAwarePaginator; @@ -16,4 +17,6 @@ interface AccountRepositoryInterface extends RepositoryInterface public function findByEventId(int $eventId): AccountDomainObject; public function getAllAccountsWithCounts(?string $search, int $perPage): LengthAwarePaginator; + + public function getAccountWithDetails(int $accountId): Account; } diff --git a/backend/app/Repository/Interfaces/OrderRepositoryInterface.php b/backend/app/Repository/Interfaces/OrderRepositoryInterface.php index aa44224434..a1dd38d0d5 100644 --- a/backend/app/Repository/Interfaces/OrderRepositoryInterface.php +++ b/backend/app/Repository/Interfaces/OrderRepositoryInterface.php @@ -29,4 +29,11 @@ public function addOrderItem(array $data): OrderItemDomainObject; public function findByShortId(string $orderShortId): ?OrderDomainObject; public function findOrdersAssociatedWithProducts(int $eventId, array $productIds, array $orderStatuses): Collection; + + public function getAllOrdersForAdmin( + ?string $search = null, + int $perPage = 20, + ?string $sortBy = 'created_at', + ?string $sortDirection = 'desc' + ): LengthAwarePaginator; } diff --git a/backend/app/Resources/Account/AdminAccountDetailResource.php b/backend/app/Resources/Account/AdminAccountDetailResource.php new file mode 100644 index 0000000000..d457899b71 --- /dev/null +++ b/backend/app/Resources/Account/AdminAccountDetailResource.php @@ -0,0 +1,59 @@ +resource->configuration; + $vatSetting = $this->resource->account_vat_setting; + + return [ + 'id' => $this->resource->id, + 'name' => $this->resource->name, + 'email' => $this->resource->email, + 'timezone' => $this->resource->timezone, + 'currency_code' => $this->resource->currency_code, + 'created_at' => $this->resource->created_at, + 'updated_at' => $this->resource->updated_at, + 'events_count' => $this->resource->events_count ?? 0, + 'users_count' => $this->resource->users_count ?? 0, + 'configuration' => $configuration ? [ + 'id' => $configuration->id, + 'name' => $configuration->name, + 'is_system_default' => $configuration->is_system_default, + 'application_fees' => $configuration->application_fees ?? [ + 'percentage' => 0, + 'fixed' => 0, + ], + ] : null, + 'vat_setting' => $vatSetting ? [ + 'id' => $vatSetting->id, + 'vat_registered' => $vatSetting->vat_registered, + 'vat_number' => $vatSetting->vat_number, + 'vat_validated' => $vatSetting->vat_validated, + 'vat_validation_date' => $vatSetting->vat_validation_date, + 'business_name' => $vatSetting->business_name, + 'business_address' => $vatSetting->business_address, + 'vat_country_code' => $vatSetting->vat_country_code, + ] : null, + 'users' => $this->resource->users->map(function ($user) { + return [ + 'id' => $user->id, + 'first_name' => $user->first_name, + 'last_name' => $user->last_name, + 'email' => $user->email, + 'role' => $user->pivot->role, + ]; + }), + ]; + } +} diff --git a/backend/app/Resources/Order/AdminOrderResource.php b/backend/app/Resources/Order/AdminOrderResource.php new file mode 100644 index 0000000000..e5a9cfd8c1 --- /dev/null +++ b/backend/app/Resources/Order/AdminOrderResource.php @@ -0,0 +1,39 @@ +getEvent(); + $account = $event?->getAccount(); + + return [ + 'id' => $this->getId(), + 'short_id' => $this->getShortId(), + 'public_id' => $this->getPublicId(), + 'first_name' => $this->getFirstName(), + 'last_name' => $this->getLastName(), + 'email' => $this->getEmail(), + 'total_gross' => $this->getTotalGross(), + 'total_tax' => $this->getTotalTax(), + 'total_fee' => $this->getTotalFee(), + 'currency' => $this->getCurrency(), + 'status' => $this->getStatus(), + 'payment_status' => $this->getPaymentStatus(), + 'created_at' => $this->getCreatedAt(), + 'event_id' => $this->getEventId(), + 'event_title' => $event?->getTitle(), + 'account_id' => $account?->getId(), + 'account_name' => $account?->getName(), + ]; + } +} diff --git a/backend/app/Services/Application/Handlers/Admin/AssignConfigurationHandler.php b/backend/app/Services/Application/Handlers/Admin/AssignConfigurationHandler.php new file mode 100644 index 0000000000..3706b92d12 --- /dev/null +++ b/backend/app/Services/Application/Handlers/Admin/AssignConfigurationHandler.php @@ -0,0 +1,31 @@ +configurationRepository->findById($configurationId); + + $this->accountRepository->updateFromArray( + id: $accountId, + attributes: ['account_configuration_id' => $configurationId] + ); + } +} diff --git a/backend/app/Services/Application/Handlers/Admin/DTO/GetAllOrdersDTO.php b/backend/app/Services/Application/Handlers/Admin/DTO/GetAllOrdersDTO.php new file mode 100644 index 0000000000..dc3f6f9134 --- /dev/null +++ b/backend/app/Services/Application/Handlers/Admin/DTO/GetAllOrdersDTO.php @@ -0,0 +1,18 @@ +repository->findById($configurationId); + + if ($configuration->getIsSystemDefault()) { + throw new CannotDeleteEntityException( + __('The system default configuration cannot be deleted.') + ); + } + + $this->repository->deleteById($configurationId); + } +} diff --git a/backend/app/Services/Application/Handlers/Admin/GetAccountHandler.php b/backend/app/Services/Application/Handlers/Admin/GetAccountHandler.php new file mode 100644 index 0000000000..530099fb3b --- /dev/null +++ b/backend/app/Services/Application/Handlers/Admin/GetAccountHandler.php @@ -0,0 +1,19 @@ +accountRepository->getAccountWithDetails($accountId); + } +} diff --git a/backend/app/Services/Application/Handlers/Admin/GetAllOrdersHandler.php b/backend/app/Services/Application/Handlers/Admin/GetAllOrdersHandler.php new file mode 100644 index 0000000000..f2f2e961fb --- /dev/null +++ b/backend/app/Services/Application/Handlers/Admin/GetAllOrdersHandler.php @@ -0,0 +1,26 @@ +orderRepository->getAllOrdersForAdmin( + search: $dto->search, + perPage: $dto->perPage, + sortBy: $dto->sortBy, + sortDirection: $dto->sortDirection, + ); + } +} diff --git a/backend/app/Services/Application/Handlers/Admin/UpdateAccountConfigurationHandler.php b/backend/app/Services/Application/Handlers/Admin/UpdateAccountConfigurationHandler.php new file mode 100644 index 0000000000..d398dd5cb2 --- /dev/null +++ b/backend/app/Services/Application/Handlers/Admin/UpdateAccountConfigurationHandler.php @@ -0,0 +1,49 @@ +accountRepository + ->loadRelation('configuration') + ->findById($dto->accountId); + + $data = [ + 'application_fees' => $dto->applicationFees, + ]; + + if ($account->getConfiguration()) { + return $this->configurationRepository->updateFromArray( + id: $account->getConfiguration()->getId(), + attributes: $data + ); + } + + $configuration = $this->configurationRepository->create([ + 'name' => 'Account Configuration', + 'is_system_default' => false, + 'application_fees' => $dto->applicationFees, + ]); + + $this->accountRepository->updateFromArray( + id: $account->getId(), + attributes: ['account_configuration_id' => $configuration->getId()] + ); + + return $configuration; + } +} diff --git a/backend/app/Services/Application/Handlers/Admin/UpdateAdminAccountVatSettingHandler.php b/backend/app/Services/Application/Handlers/Admin/UpdateAdminAccountVatSettingHandler.php new file mode 100644 index 0000000000..4971856bf8 --- /dev/null +++ b/backend/app/Services/Application/Handlers/Admin/UpdateAdminAccountVatSettingHandler.php @@ -0,0 +1,40 @@ +vatSettingRepository->findByAccountId($dto->accountId); + + $data = [ + 'account_id' => $dto->accountId, + 'vat_registered' => $dto->vatRegistered, + 'vat_number' => $dto->vatNumber, + 'vat_validated' => $dto->vatValidated ?? false, + 'business_name' => $dto->businessName, + 'business_address' => $dto->businessAddress, + 'vat_country_code' => $dto->vatCountryCode, + ]; + + if ($existing) { + return $this->vatSettingRepository->updateFromArray( + id: $existing->getId(), + attributes: $data + ); + } + + return $this->vatSettingRepository->create($data); + } +} diff --git a/backend/routes/api.php b/backend/routes/api.php index 01c5d5817d..8cbe0ff460 100644 --- a/backend/routes/api.php +++ b/backend/routes/api.php @@ -156,9 +156,17 @@ use HiEvents\Http\Actions\Users\ResendInvitationAction; use HiEvents\Http\Actions\Users\UpdateMeAction; use HiEvents\Http\Actions\Users\UpdateUserAction; -use HiEvents\Http\Actions\Admin\Accounts\GetAllAccountsAction; -use HiEvents\Http\Actions\Admin\Events\GetAllEventsAction; +use HiEvents\Http\Actions\Admin\Accounts\AssignConfigurationAction; +use HiEvents\Http\Actions\Admin\Accounts\GetAccountAction as GetAdminAccountAction; +use HiEvents\Http\Actions\Admin\Accounts\GetAllAccountsAction as GetAllAdminAccountsAction; +use HiEvents\Http\Actions\Admin\Accounts\UpdateAccountVatSettingAction as UpdateAdminAccountVatSettingAction; +use HiEvents\Http\Actions\Admin\Configurations\CreateConfigurationAction; +use HiEvents\Http\Actions\Admin\Configurations\DeleteConfigurationAction; +use HiEvents\Http\Actions\Admin\Configurations\GetAllConfigurationsAction; +use HiEvents\Http\Actions\Admin\Configurations\UpdateConfigurationAction; +use HiEvents\Http\Actions\Admin\Events\GetAllEventsAction as GetAllAdminEventsAction; use HiEvents\Http\Actions\Admin\Events\GetUpcomingEventsAction; +use HiEvents\Http\Actions\Admin\Orders\GetAllOrdersAction; use HiEvents\Http\Actions\Admin\Stats\GetAdminStatsAction; use HiEvents\Http\Actions\Admin\Users\GetAllUsersAction; use HiEvents\Http\Actions\Admin\Users\StartImpersonationAction; @@ -386,10 +394,18 @@ function (Router $router): void { $router->prefix('/admin')->middleware(['auth:api'])->group( function (Router $router): void { $router->get('/stats', GetAdminStatsAction::class); - $router->get('/accounts', GetAllAccountsAction::class); + $router->get('/accounts', GetAllAdminAccountsAction::class); + $router->get('/accounts/{account_id}', GetAdminAccountAction::class); + $router->put('/accounts/{account_id}/vat-settings', UpdateAdminAccountVatSettingAction::class); + $router->put('/accounts/{account_id}/configuration', AssignConfigurationAction::class); + $router->get('/configurations', GetAllConfigurationsAction::class); + $router->post('/configurations', CreateConfigurationAction::class); + $router->put('/configurations/{configuration_id}', UpdateConfigurationAction::class); + $router->delete('/configurations/{configuration_id}', DeleteConfigurationAction::class); $router->get('/users', GetAllUsersAction::class); - $router->get('/events', GetAllEventsAction::class); + $router->get('/events', GetAllAdminEventsAction::class); $router->get('/events/upcoming', GetUpcomingEventsAction::class); + $router->get('/orders', GetAllOrdersAction::class); $router->post('/impersonate/{user_id}', StartImpersonationAction::class); $router->post('/stop-impersonation', StopImpersonationAction::class); } diff --git a/backend/tests/Unit/Services/Application/Handlers/Admin/AssignConfigurationHandlerTest.php b/backend/tests/Unit/Services/Application/Handlers/Admin/AssignConfigurationHandlerTest.php new file mode 100644 index 0000000000..596c2e899a --- /dev/null +++ b/backend/tests/Unit/Services/Application/Handlers/Admin/AssignConfigurationHandlerTest.php @@ -0,0 +1,79 @@ +accountRepository = Mockery::mock(AccountRepositoryInterface::class); + $this->configurationRepository = Mockery::mock(AccountConfigurationRepositoryInterface::class); + $this->handler = new AssignConfigurationHandler( + $this->accountRepository, + $this->configurationRepository + ); + } + + public function testHandleSuccessfullyAssignsConfiguration(): void + { + $accountId = 123; + $configurationId = 456; + $configuration = Mockery::mock(AccountConfigurationDomainObject::class); + $account = Mockery::mock(AccountDomainObject::class); + + $this->configurationRepository + ->shouldReceive('findById') + ->with($configurationId) + ->once() + ->andReturn($configuration); + + $this->accountRepository + ->shouldReceive('updateFromArray') + ->with($accountId, ['account_configuration_id' => $configurationId]) + ->once() + ->andReturn($account); + + $this->handler->handle($accountId, $configurationId); + + $this->assertTrue(true); + } + + public function testHandleThrowsExceptionWhenConfigurationNotFound(): void + { + $accountId = 123; + $configurationId = 999; + + $this->configurationRepository + ->shouldReceive('findById') + ->with($configurationId) + ->once() + ->andThrow(new ModelNotFoundException()); + + $this->accountRepository + ->shouldNotReceive('updateFromArray'); + + $this->expectException(ModelNotFoundException::class); + + $this->handler->handle($accountId, $configurationId); + } + + protected function tearDown(): void + { + Mockery::close(); + parent::tearDown(); + } +} diff --git a/backend/tests/Unit/Services/Application/Handlers/Admin/DeleteConfigurationHandlerTest.php b/backend/tests/Unit/Services/Application/Handlers/Admin/DeleteConfigurationHandlerTest.php new file mode 100644 index 0000000000..5026043751 --- /dev/null +++ b/backend/tests/Unit/Services/Application/Handlers/Admin/DeleteConfigurationHandlerTest.php @@ -0,0 +1,95 @@ +repository = Mockery::mock(AccountConfigurationRepositoryInterface::class); + $this->handler = new DeleteConfigurationHandler($this->repository); + } + + public function testHandleSuccessfullyDeletesConfiguration(): void + { + $configurationId = 123; + $configuration = Mockery::mock(AccountConfigurationDomainObject::class); + + $configuration + ->shouldReceive('getIsSystemDefault') + ->once() + ->andReturn(false); + + $this->repository + ->shouldReceive('findById') + ->with($configurationId) + ->once() + ->andReturn($configuration); + + $this->repository + ->shouldReceive('deleteById') + ->with($configurationId) + ->once(); + + $this->handler->handle($configurationId); + + $this->assertTrue(true); + } + + public function testHandleThrowsExceptionWhenDeletingSystemDefault(): void + { + $configurationId = 1; + $configuration = Mockery::mock(AccountConfigurationDomainObject::class); + + $configuration + ->shouldReceive('getIsSystemDefault') + ->once() + ->andReturn(true); + + $this->repository + ->shouldReceive('findById') + ->with($configurationId) + ->once() + ->andReturn($configuration); + + $this->repository + ->shouldNotReceive('deleteById'); + + $this->expectException(CannotDeleteEntityException::class); + $this->expectExceptionMessage('The system default configuration cannot be deleted.'); + + $this->handler->handle($configurationId); + } + + public function testHandleThrowsExceptionWhenConfigurationNotFound(): void + { + $configurationId = 999; + + $this->repository + ->shouldReceive('findById') + ->with($configurationId) + ->once() + ->andThrow(new \Illuminate\Database\Eloquent\ModelNotFoundException()); + + $this->expectException(\Illuminate\Database\Eloquent\ModelNotFoundException::class); + + $this->handler->handle($configurationId); + } + + protected function tearDown(): void + { + Mockery::close(); + parent::tearDown(); + } +} diff --git a/backend/tests/Unit/Services/Application/Handlers/Admin/GetAccountHandlerTest.php b/backend/tests/Unit/Services/Application/Handlers/Admin/GetAccountHandlerTest.php new file mode 100644 index 0000000000..92584a0455 --- /dev/null +++ b/backend/tests/Unit/Services/Application/Handlers/Admin/GetAccountHandlerTest.php @@ -0,0 +1,59 @@ +repository = Mockery::mock(AccountRepositoryInterface::class); + $this->handler = new GetAccountHandler($this->repository); + } + + public function testHandleReturnsAccountWithDetails(): void + { + $accountId = 123; + $account = Mockery::mock(Account::class); + + $this->repository + ->shouldReceive('getAccountWithDetails') + ->with($accountId) + ->once() + ->andReturn($account); + + $result = $this->handler->handle($accountId); + + $this->assertSame($account, $result); + } + + public function testHandleThrowsExceptionWhenAccountNotFound(): void + { + $accountId = 999; + + $this->repository + ->shouldReceive('getAccountWithDetails') + ->with($accountId) + ->once() + ->andThrow(new \Illuminate\Database\Eloquent\ModelNotFoundException()); + + $this->expectException(\Illuminate\Database\Eloquent\ModelNotFoundException::class); + + $this->handler->handle($accountId); + } + + protected function tearDown(): void + { + Mockery::close(); + parent::tearDown(); + } +} diff --git a/backend/tests/Unit/Services/Application/Handlers/Admin/GetAllOrdersHandlerTest.php b/backend/tests/Unit/Services/Application/Handlers/Admin/GetAllOrdersHandlerTest.php new file mode 100644 index 0000000000..7de4636130 --- /dev/null +++ b/backend/tests/Unit/Services/Application/Handlers/Admin/GetAllOrdersHandlerTest.php @@ -0,0 +1,134 @@ +repository = Mockery::mock(OrderRepositoryInterface::class); + $this->handler = new GetAllOrdersHandler($this->repository); + } + + public function testHandleReturnsPaginatedOrders(): void + { + $dto = new GetAllOrdersDTO( + perPage: 20, + search: null, + sortBy: 'created_at', + sortDirection: 'desc', + ); + + $paginator = Mockery::mock(LengthAwarePaginator::class); + + $this->repository + ->shouldReceive('getAllOrdersForAdmin') + ->with(null, 20, 'created_at', 'desc') + ->once() + ->andReturn($paginator); + + $result = $this->handler->handle($dto); + + $this->assertSame($paginator, $result); + } + + public function testHandleWithSearchQuery(): void + { + $dto = new GetAllOrdersDTO( + perPage: 10, + search: 'test@example.com', + sortBy: 'created_at', + sortDirection: 'desc', + ); + + $paginator = Mockery::mock(LengthAwarePaginator::class); + + $this->repository + ->shouldReceive('getAllOrdersForAdmin') + ->with('test@example.com', 10, 'created_at', 'desc') + ->once() + ->andReturn($paginator); + + $result = $this->handler->handle($dto); + + $this->assertSame($paginator, $result); + } + + public function testHandleWithCustomSorting(): void + { + $dto = new GetAllOrdersDTO( + perPage: 25, + search: null, + sortBy: 'total_gross', + sortDirection: 'asc', + ); + + $paginator = Mockery::mock(LengthAwarePaginator::class); + + $this->repository + ->shouldReceive('getAllOrdersForAdmin') + ->with(null, 25, 'total_gross', 'asc') + ->once() + ->andReturn($paginator); + + $result = $this->handler->handle($dto); + + $this->assertSame($paginator, $result); + } + + public function testHandleWithDefaultValues(): void + { + $dto = new GetAllOrdersDTO(); + + $paginator = Mockery::mock(LengthAwarePaginator::class); + + $this->repository + ->shouldReceive('getAllOrdersForAdmin') + ->with(null, 20, 'created_at', 'desc') + ->once() + ->andReturn($paginator); + + $result = $this->handler->handle($dto); + + $this->assertSame($paginator, $result); + } + + public function testHandleWithNameSearch(): void + { + $dto = new GetAllOrdersDTO( + perPage: 20, + search: 'John Doe', + sortBy: 'first_name', + sortDirection: 'asc', + ); + + $paginator = Mockery::mock(LengthAwarePaginator::class); + + $this->repository + ->shouldReceive('getAllOrdersForAdmin') + ->with('John Doe', 20, 'first_name', 'asc') + ->once() + ->andReturn($paginator); + + $result = $this->handler->handle($dto); + + $this->assertSame($paginator, $result); + } + + protected function tearDown(): void + { + Mockery::close(); + parent::tearDown(); + } +} diff --git a/backend/tests/Unit/Services/Application/Handlers/Admin/UpdateAccountConfigurationHandlerTest.php b/backend/tests/Unit/Services/Application/Handlers/Admin/UpdateAccountConfigurationHandlerTest.php new file mode 100644 index 0000000000..f5c270cdc5 --- /dev/null +++ b/backend/tests/Unit/Services/Application/Handlers/Admin/UpdateAccountConfigurationHandlerTest.php @@ -0,0 +1,170 @@ +configurationRepository = Mockery::mock(AccountConfigurationRepositoryInterface::class); + $this->accountRepository = Mockery::mock(AccountRepositoryInterface::class); + $this->handler = new UpdateAccountConfigurationHandler( + $this->configurationRepository, + $this->accountRepository + ); + } + + public function testHandleUpdatesExistingConfiguration(): void + { + $accountId = 123; + $configurationId = 456; + $applicationFees = ['fixed' => 100, 'percentage' => 2.5]; + + $existingConfig = Mockery::mock(AccountConfigurationDomainObject::class); + $existingConfig->shouldReceive('getId')->andReturn($configurationId); + + $account = Mockery::mock(AccountDomainObject::class); + $account->shouldReceive('getConfiguration')->andReturn($existingConfig); + + $updatedConfig = Mockery::mock(AccountConfigurationDomainObject::class); + + $dto = new UpdateAccountConfigurationDTO( + accountId: $accountId, + applicationFees: $applicationFees, + ); + + $this->accountRepository + ->shouldReceive('loadRelation') + ->with('configuration') + ->once() + ->andReturnSelf(); + + $this->accountRepository + ->shouldReceive('findById') + ->with($accountId) + ->once() + ->andReturn($account); + + $this->configurationRepository + ->shouldReceive('updateFromArray') + ->with($configurationId, ['application_fees' => $applicationFees]) + ->once() + ->andReturn($updatedConfig); + + $result = $this->handler->handle($dto); + + $this->assertSame($updatedConfig, $result); + } + + public function testHandleCreatesNewConfigurationWhenNoneExists(): void + { + $accountId = 123; + $applicationFees = ['fixed' => 50, 'percentage' => 1.5]; + + $account = Mockery::mock(AccountDomainObject::class); + $account->shouldReceive('getConfiguration')->andReturn(null); + $account->shouldReceive('getId')->andReturn($accountId); + + $newConfig = Mockery::mock(AccountConfigurationDomainObject::class); + $newConfig->shouldReceive('getId')->andReturn(789); + + $dto = new UpdateAccountConfigurationDTO( + accountId: $accountId, + applicationFees: $applicationFees, + ); + + $this->accountRepository + ->shouldReceive('loadRelation') + ->with('configuration') + ->once() + ->andReturnSelf(); + + $this->accountRepository + ->shouldReceive('findById') + ->with($accountId) + ->once() + ->andReturn($account); + + $this->configurationRepository + ->shouldReceive('create') + ->with([ + 'name' => 'Account Configuration', + 'is_system_default' => false, + 'application_fees' => $applicationFees, + ]) + ->once() + ->andReturn($newConfig); + + $this->accountRepository + ->shouldReceive('updateFromArray') + ->with($accountId, ['account_configuration_id' => 789]) + ->once() + ->andReturn($account); + + $result = $this->handler->handle($dto); + + $this->assertSame($newConfig, $result); + } + + public function testHandleWithZeroFees(): void + { + $accountId = 123; + $configurationId = 456; + $applicationFees = ['fixed' => 0, 'percentage' => 0]; + + $existingConfig = Mockery::mock(AccountConfigurationDomainObject::class); + $existingConfig->shouldReceive('getId')->andReturn($configurationId); + + $account = Mockery::mock(AccountDomainObject::class); + $account->shouldReceive('getConfiguration')->andReturn($existingConfig); + + $updatedConfig = Mockery::mock(AccountConfigurationDomainObject::class); + + $dto = new UpdateAccountConfigurationDTO( + accountId: $accountId, + applicationFees: $applicationFees, + ); + + $this->accountRepository + ->shouldReceive('loadRelation') + ->with('configuration') + ->once() + ->andReturnSelf(); + + $this->accountRepository + ->shouldReceive('findById') + ->with($accountId) + ->once() + ->andReturn($account); + + $this->configurationRepository + ->shouldReceive('updateFromArray') + ->with($configurationId, ['application_fees' => $applicationFees]) + ->once() + ->andReturn($updatedConfig); + + $result = $this->handler->handle($dto); + + $this->assertSame($updatedConfig, $result); + } + + protected function tearDown(): void + { + Mockery::close(); + parent::tearDown(); + } +} diff --git a/backend/tests/Unit/Services/Application/Handlers/Admin/UpdateAdminAccountVatSettingHandlerTest.php b/backend/tests/Unit/Services/Application/Handlers/Admin/UpdateAdminAccountVatSettingHandlerTest.php new file mode 100644 index 0000000000..eab678cfde --- /dev/null +++ b/backend/tests/Unit/Services/Application/Handlers/Admin/UpdateAdminAccountVatSettingHandlerTest.php @@ -0,0 +1,185 @@ +repository = Mockery::mock(AccountVatSettingRepositoryInterface::class); + $this->handler = new UpdateAdminAccountVatSettingHandler($this->repository); + } + + public function testHandleCreatesNewVatSetting(): void + { + $accountId = 123; + $dto = new UpdateAdminAccountVatSettingDTO( + accountId: $accountId, + vatRegistered: true, + vatNumber: 'DE123456789', + vatValidated: true, + businessName: 'Test Company', + businessAddress: '123 Test St', + vatCountryCode: 'DE', + ); + + $vatSetting = Mockery::mock(AccountVatSettingDomainObject::class); + + $this->repository + ->shouldReceive('findByAccountId') + ->with($accountId) + ->once() + ->andReturn(null); + + $this->repository + ->shouldReceive('create') + ->once() + ->withArgs(function ($data) use ($accountId) { + return $data['account_id'] === $accountId + && $data['vat_registered'] === true + && $data['vat_number'] === 'DE123456789' + && $data['vat_validated'] === true + && $data['business_name'] === 'Test Company' + && $data['business_address'] === '123 Test St' + && $data['vat_country_code'] === 'DE'; + }) + ->andReturn($vatSetting); + + $result = $this->handler->handle($dto); + + $this->assertSame($vatSetting, $result); + } + + public function testHandleUpdatesExistingVatSetting(): void + { + $accountId = 123; + $existingId = 456; + + $existing = Mockery::mock(AccountVatSettingDomainObject::class); + $existing->shouldReceive('getId')->andReturn($existingId); + + $dto = new UpdateAdminAccountVatSettingDTO( + accountId: $accountId, + vatRegistered: true, + vatNumber: 'IE1234567A', + vatValidated: false, + businessName: 'Updated Company', + businessAddress: '456 New St', + vatCountryCode: 'IE', + ); + + $updated = Mockery::mock(AccountVatSettingDomainObject::class); + + $this->repository + ->shouldReceive('findByAccountId') + ->with($accountId) + ->once() + ->andReturn($existing); + + $this->repository + ->shouldReceive('updateFromArray') + ->once() + ->with($existingId, Mockery::on(function ($data) use ($accountId) { + return $data['account_id'] === $accountId + && $data['vat_registered'] === true + && $data['vat_number'] === 'IE1234567A' + && $data['vat_validated'] === false + && $data['business_name'] === 'Updated Company' + && $data['business_address'] === '456 New St' + && $data['vat_country_code'] === 'IE'; + })) + ->andReturn($updated); + + $result = $this->handler->handle($dto); + + $this->assertSame($updated, $result); + } + + public function testHandleCreatesNonRegisteredVatSetting(): void + { + $accountId = 123; + $dto = new UpdateAdminAccountVatSettingDTO( + accountId: $accountId, + vatRegistered: false, + ); + + $vatSetting = Mockery::mock(AccountVatSettingDomainObject::class); + + $this->repository + ->shouldReceive('findByAccountId') + ->with($accountId) + ->once() + ->andReturn(null); + + $this->repository + ->shouldReceive('create') + ->once() + ->withArgs(function ($data) use ($accountId) { + return $data['account_id'] === $accountId + && $data['vat_registered'] === false + && $data['vat_number'] === null + && $data['vat_validated'] === false + && $data['business_name'] === null + && $data['business_address'] === null + && $data['vat_country_code'] === null; + }) + ->andReturn($vatSetting); + + $result = $this->handler->handle($dto); + + $this->assertSame($vatSetting, $result); + } + + public function testHandleWithPartialData(): void + { + $accountId = 123; + $dto = new UpdateAdminAccountVatSettingDTO( + accountId: $accountId, + vatRegistered: true, + vatNumber: 'FR12345678901', + ); + + $vatSetting = Mockery::mock(AccountVatSettingDomainObject::class); + + $this->repository + ->shouldReceive('findByAccountId') + ->with($accountId) + ->once() + ->andReturn(null); + + $this->repository + ->shouldReceive('create') + ->once() + ->withArgs(function ($data) use ($accountId) { + return $data['account_id'] === $accountId + && $data['vat_registered'] === true + && $data['vat_number'] === 'FR12345678901' + && $data['vat_validated'] === false + && $data['business_name'] === null + && $data['business_address'] === null + && $data['vat_country_code'] === null; + }) + ->andReturn($vatSetting); + + $result = $this->handler->handle($dto); + + $this->assertSame($vatSetting, $result); + } + + protected function tearDown(): void + { + Mockery::close(); + parent::tearDown(); + } +} diff --git a/frontend/src/api/admin.client.ts b/frontend/src/api/admin.client.ts index 39784340fb..62f0af8496 100644 --- a/frontend/src/api/admin.client.ts +++ b/frontend/src/api/admin.client.ts @@ -1,5 +1,5 @@ import {api} from "./client"; -import {GenericPaginatedResponse, IdParam, User} from "../types"; +import {GenericDataResponse, GenericPaginatedResponse, IdParam, User} from "../types"; export interface AdminUser extends User { accounts?: AccountWithRole[]; @@ -32,6 +32,64 @@ export interface AdminAccount { users: AdminAccountUser[]; } +export interface AccountConfiguration { + id: number; + name: string; + is_system_default: boolean; + application_fees: { + fixed: number; + percentage: number; + }; +} + +export interface CreateConfigurationData { + name: string; + application_fees: { + fixed: number; + percentage: number; + }; +} + +export interface UpdateConfigurationData { + name: string; + application_fees: { + fixed: number; + percentage: number; + }; +} + +export interface AssignConfigurationData { + configuration_id: number; +} + +export interface AccountVatSetting { + id: number; + account_id: number; + vat_registered: boolean; + vat_number: string | null; + vat_validated: boolean; + vat_validation_date: string | null; + business_name: string | null; + business_address: string | null; + vat_country_code: string | null; + created_at: string; + updated_at: string; +} + +export interface AdminAccountDetail extends AdminAccount { + configuration?: AccountConfiguration; + vat_setting?: AccountVatSetting; +} + + +export interface UpdateAccountVatSettingsData { + vat_registered: boolean; + vat_number?: string | null; + business_name?: string | null; + business_address?: string | null; + vat_country_code?: string | null; +} + export interface AdminStats { total_users: number; total_accounts: number; @@ -75,6 +133,14 @@ export interface GetAllEventsParams { sort_direction?: 'asc' | 'desc'; } +export interface GetAllOrdersParams { + page?: number; + per_page?: number; + search?: string; + sort_by?: string; + sort_direction?: 'asc' | 'desc'; +} + export interface AdminEventStatistics { total_gross_sales: number; products_sold: number; @@ -99,6 +165,26 @@ export interface AdminEvent { statistics: AdminEventStatistics | null; } +export interface AdminOrder { + id: number; + short_id: string; + public_id: string; + first_name: string; + last_name: string; + email: string; + total_gross: number; + total_tax: number; + total_fee: number; + currency: string; + status: string; + payment_status: string; + created_at: string; + account_id: number; + account_name: string; + event_id: number; + event_title: string; +} + export const adminClient = { getStats: async () => { const response = await api.get('admin/stats'); @@ -149,6 +235,19 @@ export const adminClient = { return response.data; }, + getAllOrders: async (params: GetAllOrdersParams = {}) => { + const response = await api.get>('admin/orders', { + params: { + page: params.page || 1, + per_page: params.per_page || 20, + search: params.search || undefined, + sort_by: params.sort_by || 'created_at', + sort_direction: params.sort_direction || 'desc', + } + }); + return response.data; + }, + startImpersonation: async (userId: IdParam, accountId: IdParam) => { const response = await api.post( `admin/impersonate/${userId}`, @@ -163,4 +262,55 @@ export const adminClient = { ); return response.data; }, + + getAccount: async (accountId: IdParam) => { + const response = await api.get>( + `admin/accounts/${accountId}` + ); + return response.data; + }, + + assignConfiguration: async (accountId: IdParam, data: AssignConfigurationData) => { + const response = await api.put( + `admin/accounts/${accountId}/configuration`, + data + ); + return response.data; + }, + + getAllConfigurations: async () => { + const response = await api.get>( + 'admin/configurations' + ); + return response.data; + }, + + createConfiguration: async (data: CreateConfigurationData) => { + const response = await api.post>( + 'admin/configurations', + data + ); + return response.data; + }, + + updateConfiguration: async (configurationId: IdParam, data: UpdateConfigurationData) => { + const response = await api.put>( + `admin/configurations/${configurationId}`, + data + ); + return response.data; + }, + + deleteConfiguration: async (configurationId: IdParam) => { + const response = await api.delete(`admin/configurations/${configurationId}`); + return response.data; + }, + + updateAccountVatSettings: async (accountId: IdParam, data: UpdateAccountVatSettingsData) => { + const response = await api.put>( + `admin/accounts/${accountId}/vat-settings`, + data + ); + return response.data; + }, }; diff --git a/frontend/src/components/common/AdminAccountsTable/index.tsx b/frontend/src/components/common/AdminAccountsTable/index.tsx index ebcf352ecf..1b358a9a9a 100644 --- a/frontend/src/components/common/AdminAccountsTable/index.tsx +++ b/frontend/src/components/common/AdminAccountsTable/index.tsx @@ -1,9 +1,10 @@ import {Badge, Button, Stack, Text} from "@mantine/core"; import {t} from "@lingui/macro"; import {AdminAccount} from "../../../api/admin.client"; -import {IconCalendar, IconWorld, IconBuildingBank, IconUsers} from "@tabler/icons-react"; +import {IconCalendar, IconWorld, IconBuildingBank, IconUsers, IconEye} from "@tabler/icons-react"; import classes from "./AdminAccountsTable.module.scss"; import {IdParam} from "../../../types"; +import {useNavigate} from "react-router"; interface AdminAccountsTableProps { accounts: AdminAccount[]; @@ -12,6 +13,8 @@ interface AdminAccountsTableProps { } const AdminAccountsTable = ({accounts, onImpersonate, isLoading}: AdminAccountsTableProps) => { + const navigate = useNavigate(); + if (!accounts || accounts.length === 0) { return (
@@ -53,6 +56,14 @@ const AdminAccountsTable = ({accounts, onImpersonate, isLoading}: AdminAccountsT

{account.name}

{account.email}
+
diff --git a/frontend/src/components/common/AdminOrdersTable/AdminOrdersTable.module.scss b/frontend/src/components/common/AdminOrdersTable/AdminOrdersTable.module.scss new file mode 100644 index 0000000000..b378c7b606 --- /dev/null +++ b/frontend/src/components/common/AdminOrdersTable/AdminOrdersTable.module.scss @@ -0,0 +1,13 @@ +.tableContainer { + overflow-x: auto; + border-radius: 8px; + border: 1px solid var(--mantine-color-gray-3); +} + +.emptyState { + display: flex; + justify-content: center; + align-items: center; + padding: 60px 20px; + text-align: center; +} diff --git a/frontend/src/components/common/AdminOrdersTable/index.tsx b/frontend/src/components/common/AdminOrdersTable/index.tsx new file mode 100644 index 0000000000..425d19b1d6 --- /dev/null +++ b/frontend/src/components/common/AdminOrdersTable/index.tsx @@ -0,0 +1,137 @@ +import {Badge, Table, Text, Button, Group} from "@mantine/core"; +import {t} from "@lingui/macro"; +import {AdminOrder} from "../../../api/admin.client"; +import {IconChevronDown, IconChevronUp} from "@tabler/icons-react"; +import {formatCurrency} from "../../../utilites/currency"; +import {prettyDate} from "../../../utilites/dates"; +import classes from "./AdminOrdersTable.module.scss"; + +interface AdminOrdersTableProps { + orders: AdminOrder[]; + onSort?: (column: string) => void; + sortBy?: string; + sortDirection?: 'asc' | 'desc'; +} + +const AdminOrdersTable = ({orders, onSort, sortBy, sortDirection}: AdminOrdersTableProps) => { + if (!orders || orders.length === 0) { + return ( +
+ {t`No orders found`} +
+ ); + } + + const handleSort = (column: string) => { + if (onSort) { + onSort(column); + } + }; + + const SortIcon = ({column}: {column: string}) => { + if (sortBy !== column) return null; + return sortDirection === 'asc' ? : ; + }; + + const getStatusBadgeColor = (status: string) => { + switch (status.toUpperCase()) { + case 'COMPLETED': + return 'green'; + case 'PENDING': + case 'RESERVED': + return 'yellow'; + case 'CANCELLED': + return 'red'; + case 'REFUNDED': + case 'PARTIALLY_REFUNDED': + return 'blue'; + default: + return 'gray'; + } + }; + + return ( +
+ + + + + + + {t`Account`} + {t`Customer`} + {t`Event`} + + + + {t`Tax`} + {t`Status`} + + + + + + + {orders.map((order) => ( + + + #{order.short_id} + + + {order.account_name} + + +
+ {order.first_name} {order.last_name} + {order.email} +
+
+ + {order.event_title} + + + {formatCurrency(order.total_gross, order.currency)} + + + {formatCurrency(order.total_tax, order.currency)} + + + + + {order.status} + + + + + {prettyDate(order.created_at, 'UTC')} + +
+ ))} +
+
+
+ ); +}; + +export default AdminOrdersTable; diff --git a/frontend/src/components/layouts/Admin/index.tsx b/frontend/src/components/layouts/Admin/index.tsx index 05296dd356..a084b67ee6 100644 --- a/frontend/src/components/layouts/Admin/index.tsx +++ b/frontend/src/components/layouts/Admin/index.tsx @@ -1,4 +1,4 @@ -import {IconUsers, IconBuildingBank, IconLayoutDashboard, IconCalendar} from "@tabler/icons-react"; +import {IconUsers, IconBuildingBank, IconLayoutDashboard, IconCalendar, IconReceipt, IconSettings} from "@tabler/icons-react"; import {t} from "@lingui/macro"; import {NavItem, BreadcrumbItem} from "../AppLayout/types"; import AppLayout from "../AppLayout"; @@ -14,6 +14,8 @@ const AdminLayout = () => { {link: 'accounts', label: t`Accounts`, icon: IconBuildingBank}, {link: 'users', label: t`Users`, icon: IconUsers}, {link: 'events', label: t`Events`, icon: IconCalendar}, + {link: 'orders', label: t`Orders`, icon: IconReceipt}, + {link: 'configurations', label: t`Configurations`, icon: IconSettings}, ]; const breadcrumbItems: BreadcrumbItem[] = [ diff --git a/frontend/src/components/modals/EditAccountConfigurationModal/index.tsx b/frontend/src/components/modals/EditAccountConfigurationModal/index.tsx new file mode 100644 index 0000000000..5a165c1031 --- /dev/null +++ b/frontend/src/components/modals/EditAccountConfigurationModal/index.tsx @@ -0,0 +1,121 @@ +import {Button, NumberInput, Stack} from "@mantine/core"; +import {GenericModalProps, IdParam} from "../../../types"; +import {useForm} from "@mantine/form"; +import {Modal} from "../../common/Modal"; +import {showSuccess, showError} from "../../../utilites/notifications"; +import {t} from "@lingui/macro"; +import {useUpdateAccountConfiguration} from "../../../mutations/useUpdateAccountConfiguration"; +import {useFormErrorResponseHandler} from "../../../hooks/useFormErrorResponseHandler"; +import {AccountConfiguration} from "../../../api/admin.client"; +import {useEffect} from "react"; + +interface EditAccountConfigurationModalProps extends GenericModalProps { + accountId: IdParam; + configuration?: AccountConfiguration; + currencyCode?: string; +} + +interface FormValues { + fixed_fee: number; + percentage_fee: number; +} + +export const EditAccountConfigurationModal = ({ + onClose, + accountId, + configuration, + currencyCode = 'USD', +}: EditAccountConfigurationModalProps) => { + const updateMutation = useUpdateAccountConfiguration(accountId); + const formErrorHandler = useFormErrorResponseHandler(); + + const form = useForm({ + initialValues: { + fixed_fee: 0, + percentage_fee: 0, + }, + validate: { + fixed_fee: (value) => { + if (value < 0) { + return t`Fixed fee must be 0 or greater`; + } + return null; + }, + percentage_fee: (value) => { + if (value < 0 || value > 100) { + return t`Percentage fee must be between 0 and 100`; + } + return null; + }, + }, + }); + + useEffect(() => { + if (configuration?.application_fees) { + form.setValues({ + fixed_fee: configuration.application_fees.fixed / 100, + percentage_fee: configuration.application_fees.percentage, + }); + } + }, [configuration]); + + const handleSubmit = (values: FormValues) => { + updateMutation.mutate( + { + fixed_fee: Math.round(values.fixed_fee * 100), + percentage_fee: values.percentage_fee, + }, + { + onSuccess: () => { + showSuccess(t`Account configuration updated successfully`); + onClose(); + }, + onError: (error: any) => { + formErrorHandler(form, error); + showError( + error?.response?.data?.message || + t`Failed to update account configuration` + ); + } + } + ); + }; + + return ( + +
+ + + + + + + +
+
+ ); +}; diff --git a/frontend/src/components/modals/EditAccountVatSettingsModal/index.tsx b/frontend/src/components/modals/EditAccountVatSettingsModal/index.tsx new file mode 100644 index 0000000000..cbc5f0ee28 --- /dev/null +++ b/frontend/src/components/modals/EditAccountVatSettingsModal/index.tsx @@ -0,0 +1,174 @@ +import {Button, Select, Stack, Switch, Text, TextInput} from "@mantine/core"; +import {GenericModalProps, IdParam} from "../../../types"; +import {useForm} from "@mantine/form"; +import {Modal} from "../../common/Modal"; +import {showSuccess, showError} from "../../../utilites/notifications"; +import {t} from "@lingui/macro"; +import {useUpdateAdminAccountVatSettings} from "../../../mutations/useUpdateAdminAccountVatSettings"; +import {useFormErrorResponseHandler} from "../../../hooks/useFormErrorResponseHandler"; +import {AccountVatSetting} from "../../../api/admin.client"; +import {useEffect} from "react"; + +interface EditAccountVatSettingsModalProps extends GenericModalProps { + accountId: IdParam; + vatSetting?: AccountVatSetting; +} + +interface FormValues { + vat_registered: boolean; + vat_number: string; + business_name: string; + business_address: string; + vat_country_code: string; +} + +const EU_COUNTRIES = [ + { value: 'AT', label: 'Austria' }, + { value: 'BE', label: 'Belgium' }, + { value: 'BG', label: 'Bulgaria' }, + { value: 'HR', label: 'Croatia' }, + { value: 'CY', label: 'Cyprus' }, + { value: 'CZ', label: 'Czech Republic' }, + { value: 'DK', label: 'Denmark' }, + { value: 'EE', label: 'Estonia' }, + { value: 'FI', label: 'Finland' }, + { value: 'FR', label: 'France' }, + { value: 'DE', label: 'Germany' }, + { value: 'GR', label: 'Greece' }, + { value: 'HU', label: 'Hungary' }, + { value: 'IE', label: 'Ireland' }, + { value: 'IT', label: 'Italy' }, + { value: 'LV', label: 'Latvia' }, + { value: 'LT', label: 'Lithuania' }, + { value: 'LU', label: 'Luxembourg' }, + { value: 'MT', label: 'Malta' }, + { value: 'NL', label: 'Netherlands' }, + { value: 'PL', label: 'Poland' }, + { value: 'PT', label: 'Portugal' }, + { value: 'RO', label: 'Romania' }, + { value: 'SK', label: 'Slovakia' }, + { value: 'SI', label: 'Slovenia' }, + { value: 'ES', label: 'Spain' }, + { value: 'SE', label: 'Sweden' }, +]; + +export const EditAccountVatSettingsModal = ({ + onClose, + accountId, + vatSetting, +}: EditAccountVatSettingsModalProps) => { + const updateMutation = useUpdateAdminAccountVatSettings(accountId); + const formErrorHandler = useFormErrorResponseHandler(); + + const form = useForm({ + initialValues: { + vat_registered: false, + vat_number: '', + business_name: '', + business_address: '', + vat_country_code: '', + }, + }); + + useEffect(() => { + if (vatSetting) { + form.setValues({ + vat_registered: vatSetting.vat_registered ?? false, + vat_number: vatSetting.vat_number || '', + business_name: vatSetting.business_name || '', + business_address: vatSetting.business_address || '', + vat_country_code: vatSetting.vat_country_code || '', + }); + } + }, [vatSetting]); + + const handleSubmit = (values: FormValues) => { + updateMutation.mutate( + { + vat_registered: values.vat_registered, + vat_number: values.vat_registered ? values.vat_number.trim() : null, + business_name: values.vat_registered ? values.business_name.trim() : null, + business_address: values.vat_registered ? values.business_address.trim() : null, + vat_country_code: values.vat_registered ? values.vat_country_code : null, + }, + { + onSuccess: () => { + showSuccess(t`VAT settings updated successfully`); + onClose(); + }, + onError: (error: any) => { + formErrorHandler(form, error); + showError( + error?.response?.data?.message || + t`Failed to update VAT settings` + ); + } + } + ); + }; + + return ( + +
+ + + + {form.values.vat_registered && ( + <> + + + + + {account.configuration && ( +
+
+ {t`Fixed Fee (USD)`} + + ${account.configuration.application_fees?.fixed || 0} + +
+
+ {t`Percentage Fee`} + + {account.configuration.application_fees?.percentage || 0}% + +
+
+ )} + + + {t`To edit configurations, go to the Configurations section in the admin menu.`} + +
+ + + + + + {t`VAT Settings`} + + + + {account.vat_setting ? ( +
+
+ {t`VAT Registered`} + + {account.vat_setting.vat_registered ? t`Yes` : t`No`} + +
+ {account.vat_setting.vat_registered && ( + <> +
+ {t`VAT Number`} + {account.vat_setting.vat_number || '-'} +
+
+ {t`Validated`} + + {account.vat_setting.vat_validated ? t`Valid` : t`Invalid`} + +
+ {account.vat_setting.business_name && ( +
+ {t`Business Name`} + {account.vat_setting.business_name} +
+ )} + {account.vat_setting.vat_country_code && ( +
+ {t`VAT Country`} + {account.vat_setting.vat_country_code} +
+ )} + + )} +
+ ) : ( + {t`No VAT settings configured`} + )} +
+
+ + {account.users && account.users.length > 0 && ( + + + {t`Users`} +
+ {account.users.map((user) => ( +
+
+ + {user.first_name} {user.last_name} + + {user.email} +
+ {user.role} +
+ ))} +
+
+
+ )} + + + + {showVatModal && ( + setShowVatModal(false)} + /> + )} + + ); +}; + +export default AccountDetail; diff --git a/frontend/src/components/routes/admin/Configurations/Configurations.module.scss b/frontend/src/components/routes/admin/Configurations/Configurations.module.scss new file mode 100644 index 0000000000..9bad488d7c --- /dev/null +++ b/frontend/src/components/routes/admin/Configurations/Configurations.module.scss @@ -0,0 +1,11 @@ +.configCard { + background: var(--mantine-color-body); + border: 1px solid var(--mantine-color-default-border); + border-radius: var(--mantine-radius-md); + padding: 1.25rem; + transition: box-shadow 0.2s; + + &:hover { + box-shadow: var(--mantine-shadow-sm); + } +} diff --git a/frontend/src/components/routes/admin/Configurations/index.tsx b/frontend/src/components/routes/admin/Configurations/index.tsx new file mode 100644 index 0000000000..fffc5ea30a --- /dev/null +++ b/frontend/src/components/routes/admin/Configurations/index.tsx @@ -0,0 +1,248 @@ +import {Container, Title, Stack, Card, Text, Group, Button, Badge, ActionIcon, Alert, NumberInput, TextInput, Skeleton} from "@mantine/core"; +import {t} from "@lingui/macro"; +import {useGetAllConfigurations} from "../../../../queries/useGetAllConfigurations"; +import {useCreateConfiguration} from "../../../../mutations/useCreateConfiguration"; +import {useUpdateConfiguration} from "../../../../mutations/useUpdateConfiguration"; +import {useDeleteConfiguration} from "../../../../mutations/useDeleteConfiguration"; +import {IconPlus, IconEdit, IconTrash, IconAlertTriangle} from "@tabler/icons-react"; +import {useState} from "react"; +import {Modal} from "../../../common/Modal"; +import {useForm} from "@mantine/form"; +import {showSuccess, showError} from "../../../../utilites/notifications"; +import {AccountConfiguration} from "../../../../api/admin.client"; +import classes from "./Configurations.module.scss"; + +interface ConfigurationFormValues { + name: string; + fixed_fee: number; + percentage_fee: number; +} + +const Configurations = () => { + const {data: configurationsData, isLoading} = useGetAllConfigurations(); + const deleteMutation = useDeleteConfiguration(); + const [showCreateModal, setShowCreateModal] = useState(false); + const [editingConfig, setEditingConfig] = useState(null); + + const configurations = configurationsData?.data || []; + + const handleDelete = (config: AccountConfiguration) => { + if (config.is_system_default) { + showError(t`Cannot delete the system default configuration`); + return; + } + + if (window.confirm(t`Are you sure you want to delete this configuration? This may affect accounts using it.`)) { + deleteMutation.mutate(config.id, { + onSuccess: () => showSuccess(t`Configuration deleted successfully`), + onError: () => showError(t`Failed to delete configuration`), + }); + } + }; + + if (isLoading) { + return ( + + + + + + + + ); + } + + return ( + <> + + + + {t`Configurations`} + + + + } color="yellow"> + {t`Configuration names are visible to end users. The "Fixed Fee" and "Percentage Fee" are application fees charged in USD on all transactions.`} + + + + {configurations.map((config) => ( + + + + + {config.name} + {config.is_system_default && ( + {t`System Default`} + )} + + +
+ {t`Fixed Fee (USD)`} + ${config.application_fees?.fixed || 0} +
+
+ {t`Percentage Fee`} + {config.application_fees?.percentage || 0}% +
+
+
+ + setEditingConfig(config)} + > + + + handleDelete(config)} + disabled={config.is_system_default} + > + + + +
+
+ ))} + + {configurations.length === 0 && ( + {t`No configurations found`} + )} +
+
+
+ + {showCreateModal && ( + setShowCreateModal(false)} + /> + )} + + {editingConfig && ( + setEditingConfig(null)} + /> + )} + + ); +}; + +interface ConfigurationModalProps { + configuration?: AccountConfiguration; + onClose: () => void; +} + +const ConfigurationModal = ({configuration, onClose}: ConfigurationModalProps) => { + const createMutation = useCreateConfiguration(); + const updateMutation = useUpdateConfiguration(configuration?.id || 0); + const isEditing = !!configuration; + + const form = useForm({ + initialValues: { + name: configuration?.name || '', + fixed_fee: configuration?.application_fees?.fixed || 0, + percentage_fee: configuration?.application_fees?.percentage || 0, + }, + validate: { + name: (value) => { + if (!value.trim()) return t`Name is required`; + if (value.length > 255) return t`Name must be less than 255 characters`; + return null; + }, + fixed_fee: (value) => value < 0 ? t`Fixed fee must be 0 or greater` : null, + percentage_fee: (value) => { + if (value < 0 || value > 100) return t`Percentage must be between 0 and 100`; + return null; + }, + }, + }); + + const handleSubmit = (values: ConfigurationFormValues) => { + const data = { + name: values.name, + application_fees: { + fixed: values.fixed_fee, + percentage: values.percentage_fee, + }, + }; + + const mutation = isEditing ? updateMutation : createMutation; + + mutation.mutate(data, { + onSuccess: () => { + showSuccess(isEditing ? t`Configuration updated successfully` : t`Configuration created successfully`); + onClose(); + }, + onError: () => { + showError(isEditing ? t`Failed to update configuration` : t`Failed to create configuration`); + }, + }); + }; + + return ( + + {isEditing && configuration?.is_system_default && ( + } color="orange" mb="md"> + {t`Warning: This is the system default configuration. Changes will affect all accounts that don't have a specific configuration assigned.`} + + )} + + + + + + + + + + + + + + ); +}; + +export default Configurations; diff --git a/frontend/src/components/routes/admin/Orders/index.tsx b/frontend/src/components/routes/admin/Orders/index.tsx new file mode 100644 index 0000000000..10841812cf --- /dev/null +++ b/frontend/src/components/routes/admin/Orders/index.tsx @@ -0,0 +1,80 @@ +import {Container, Title, TextInput, Skeleton, Pagination, Stack} from "@mantine/core"; +import {t} from "@lingui/macro"; +import {IconSearch} from "@tabler/icons-react"; +import {useState, useEffect} from "react"; +import {useGetAllAdminOrders} from "../../../../queries/useGetAllAdminOrders.ts"; +import AdminOrdersTable from "../../../common/AdminOrdersTable"; + +const Orders = () => { + const [page, setPage] = useState(1); + const [search, setSearch] = useState(""); + const [debouncedSearch, setDebouncedSearch] = useState(""); + const [sortBy, setSortBy] = useState("created_at"); + const [sortDirection, setSortDirection] = useState<'asc' | 'desc'>("desc"); + + const {data: ordersData, isLoading} = useGetAllAdminOrders({ + page, + per_page: 20, + search: debouncedSearch, + sort_by: sortBy, + sort_direction: sortDirection, + }); + + useEffect(() => { + const timer = setTimeout(() => { + setDebouncedSearch(search); + setPage(1); + }, 500); + + return () => clearTimeout(timer); + }, [search]); + + const handleSort = (column: string) => { + if (sortBy === column) { + setSortDirection(sortDirection === 'asc' ? 'desc' : 'asc'); + } else { + setSortBy(column); + setSortDirection('desc'); + } + }; + + return ( + + + {t`Orders`} + + } + value={search} + onChange={(e) => setSearch(e.target.value)} + /> + + {isLoading ? ( + + + + + ) : ( + + )} + + {ordersData?.meta && ordersData.meta.last_page > 1 && ( + + )} + + + ); +}; + +export default Orders; diff --git a/frontend/src/locales/de.po b/frontend/src/locales/de.po index 954d85302c..e0e4f63b1f 100644 --- a/frontend/src/locales/de.po +++ b/frontend/src/locales/de.po @@ -293,6 +293,7 @@ msgstr "Einladung annehmen" msgid "Access Denied" msgstr "Zugriff verweigert" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "Konto" msgid "Account already connected!" msgstr "Konto bereits verbunden!" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "Kontoname" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "Administrator" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "Admin Dashboard" @@ -663,6 +672,10 @@ msgstr "Alle Anfragen von Produktinhabern werden an diese E-Mail-Adresse gesende msgid "Appearance" msgstr "Aussehen" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "angewandt" @@ -971,6 +984,10 @@ msgstr "Awesome Events GmbH" msgid "Awesome Organizer Ltd." msgstr "Awesome Organizer Ltd." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "Brasilianisches Portugiesisch" msgid "Business" msgstr "Geschäftlich" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "Schaltflächenbeschriftung" @@ -1909,6 +1930,10 @@ msgstr "Erstellen Sie Ihre erste Veranstaltung, um Tickets zu verkaufen und Teil msgid "Create your own event" msgstr "Erstellen Sie Ihre eigene Veranstaltung" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "Veranstaltung wird erstellt..." @@ -1932,6 +1957,7 @@ msgstr "CTA-Beschriftung ist erforderlich" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "Benutzerdefinierter Bereich" msgid "Custom template" msgstr "Benutzerdefinierte Vorlage" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "Kunde" @@ -2082,6 +2109,7 @@ msgstr "Dunkel" msgid "Dashboard" msgstr "Dashboard" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2325,6 +2353,8 @@ msgstr "Früher Vogel" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "Bearbeiten" @@ -2442,6 +2472,7 @@ msgstr "Berechtigte Check-In-Listen" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2657,6 +2688,7 @@ msgstr "EU-umsatzsteuerregistrierte Unternehmen: Umkehrung der Steuerschuldnersc msgid "EUR" msgstr "EUR" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2822,6 +2854,7 @@ msgstr "Veranstaltungsort" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3110,6 +3143,10 @@ msgstr "Fest" msgid "Fixed amount" msgstr "Fester Betrag" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "Feste Gebühr:" @@ -3594,6 +3631,10 @@ msgstr "Variable einfügen" msgid "Instagram" msgstr "Instagram" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "Ungültige E-Mail" @@ -3956,7 +3997,7 @@ msgstr "Tickets verwalten" msgid "Manage your account details and default settings" msgstr "Verwalten Sie Ihre Kontodetails und Standardeinstellungen" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "Verwalten Sie Ihre Zahlungsabwicklung und sehen Sie die Plattformgebühren ein" @@ -4153,6 +4194,10 @@ msgstr "Neues Kennwort" msgid "Nightlife" msgstr "Nachtleben" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "Nein - Ich bin eine Privatperson oder ein nicht umsatzsteuerregistriertes Unternehmen" @@ -4265,6 +4310,10 @@ msgstr "Keine Protokolle gefunden" msgid "No messages to show" msgstr "Keine Nachrichten zum Anzeigen" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "Keine Bestellungen anzuzeigen" @@ -4353,6 +4402,10 @@ msgstr "Keine bevorstehenden Veranstaltungen" msgid "No users found" msgstr "Keine Benutzer gefunden" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "Für diesen Endpunkt wurden noch keine Webhook-Ereignisse aufgezeichnet. Ereignisse werden hier angezeigt, sobald sie ausgelöst werden." @@ -4389,6 +4442,11 @@ msgstr "Nicht Eingecheckt" msgid "Not Eligible" msgstr "Nicht Berechtigt" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4635,6 +4693,10 @@ msgstr "Die Bestellung wurde storniert und erstattet. Der Bestellinhaber wurde b msgid "Order has been canceled and the order owner has been notified." msgstr "Die Bestellung wurde storniert und der Bestellinhaber wurde benachrichtigt." +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "Bestellnummer: {0}" @@ -4740,7 +4802,9 @@ msgstr "Bestell-URL" msgid "Order was cancelled" msgstr "Bestellung wurde storniert" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5025,7 +5089,7 @@ msgstr "Zahlung erhalten" msgid "Payment Received" msgstr "Zahlung erhalten" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "Zahlungseinstellungen" @@ -5068,6 +5132,10 @@ msgstr "Prozentsatz" msgid "Percentage Amount" msgstr "Prozentualer Betrag" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "Leistung" @@ -5834,7 +5902,7 @@ msgstr "Vorlage speichern" msgid "Save Ticket Design" msgstr "Ticketdesign speichern" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "Umsatzsteuereinstellungen speichern" @@ -5884,6 +5952,10 @@ msgstr "Suchen nach Name, Bestellnummer, Teilnehmernummer oder E-Mail..." msgid "Search by name..." msgstr "Suche mit Name..." +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "" + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "Suche nach Thema oder Inhalt..." @@ -6375,6 +6447,7 @@ msgid "Statistics" msgstr "Statistiken" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6604,6 +6677,7 @@ msgstr "T-Shirt" msgid "Takes just a few minutes" msgstr "Dauert nur wenige Minuten" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7169,6 +7243,7 @@ msgstr "Anzahl der Verwendungen" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7194,6 +7269,7 @@ msgstr "Spalten umschalten" msgid "Tools" msgstr "Werkzeuge" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7511,6 +7587,8 @@ msgstr "Benutzerverwaltung" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "Benutzer" @@ -7527,14 +7605,26 @@ msgstr "Benutzer können ihre E-Mail in den <0>Profileinstellungen ändern." msgid "UTC" msgstr "koordinierte Weltzeit" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "Gültige Umsatzsteuer-ID" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "Umsatzsteuer" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "Umsatzsteuerinformationen" @@ -7544,6 +7634,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "Je nach Ihrem Umsatzsteuerregistrierungsstatus kann auf Plattformgebühren Umsatzsteuer erhoben werden. Bitte füllen Sie den Abschnitt mit den Umsatzsteuerinformationen unten aus." #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "Umsatzsteuer-ID" @@ -7555,15 +7646,23 @@ msgstr "" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "Validierung der Umsatzsteuer-ID fehlgeschlagen. Bitte überprüfen Sie Ihre Nummer und versuchen Sie es erneut." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "Umsatzsteuerregistrierungsinformationen" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "Umsatzsteuereinstellungen erfolgreich gespeichert und validiert" @@ -8021,6 +8120,10 @@ msgstr "X (Twitter)" msgid "Year to date" msgstr "Seit Jahresbeginn" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "Ja - Ich habe eine gültige EU-Umsatzsteuer-ID" @@ -8294,7 +8397,7 @@ msgstr "Ihr Ticket für" msgid "Your tickets have been confirmed." msgstr "Ihre Tickets wurden bestätigt." -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "Ihre Umsatzsteuer-ID wird beim Speichern automatisch validiert" diff --git a/frontend/src/locales/en.po b/frontend/src/locales/en.po index ab624cfdb7..1d4dda3df6 100644 --- a/frontend/src/locales/en.po +++ b/frontend/src/locales/en.po @@ -293,6 +293,7 @@ msgstr "Accept Invitation" msgid "Access Denied" msgstr "Access Denied" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "Account" msgid "Account already connected!" msgstr "Account already connected!" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "Account Information" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "Account Name" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "Account not found" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "Admin" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "Admin Dashboard" @@ -663,6 +672,10 @@ msgstr "Any queries from product holders will be sent to this email address. Thi msgid "Appearance" msgstr "Appearance" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "Application Fees" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "applied" @@ -971,6 +984,10 @@ msgstr "Awesome Events Ltd." msgid "Awesome Organizer Ltd." msgstr "Awesome Organizer Ltd." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "Back to Accounts" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "Brazilian Portuguese" msgid "Business" msgstr "Business" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "Business Name" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "Button Label" @@ -1909,6 +1930,10 @@ msgstr "Create your first event to start selling tickets and managing attendees. msgid "Create your own event" msgstr "Create your own event" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "Created" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "Creating Event..." @@ -1932,6 +1957,7 @@ msgstr "CTA label is required" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "Custom Range" msgid "Custom template" msgstr "Custom template" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "Customer" @@ -2082,6 +2109,7 @@ msgstr "Dark" msgid "Dashboard" msgstr "Dashboard" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2325,6 +2353,8 @@ msgstr "Early bird" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "Edit" @@ -2442,6 +2472,7 @@ msgstr "Eligible Check-In Lists" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2657,6 +2688,7 @@ msgstr "EU VAT-registered businesses: Reverse charge mechanism applies (0% - Art msgid "EUR" msgstr "EUR" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2822,6 +2854,7 @@ msgstr "Event Venue" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3110,6 +3143,10 @@ msgstr "Fixed" msgid "Fixed amount" msgstr "Fixed amount" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "Fixed Fee" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "Fixed Fee:" @@ -3596,6 +3633,10 @@ msgstr "Insert Variable" msgid "Instagram" msgstr "Instagram" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "Invalid" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "Invalid email" @@ -3958,7 +3999,7 @@ msgstr "Manage tickets" msgid "Manage your account details and default settings" msgstr "Manage your account details and default settings" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "Manage your payment processing and view platform fees" @@ -4155,6 +4196,10 @@ msgstr "New Password" msgid "Nightlife" msgstr "Nightlife" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "No" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "No - I'm an individual or non-VAT registered business" @@ -4267,6 +4312,10 @@ msgstr "No logs found" msgid "No messages to show" msgstr "No messages to show" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "No orders found" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "No orders to show" @@ -4355,6 +4404,10 @@ msgstr "No upcoming events" msgid "No users found" msgstr "No users found" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "No VAT settings configured" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." @@ -4391,6 +4444,11 @@ msgstr "Not Checked In" msgid "Not Eligible" msgstr "Not Eligible" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "Not set" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4637,6 +4695,10 @@ msgstr "Order has been canceled and refunded. The order owner has been notified. msgid "Order has been canceled and the order owner has been notified." msgstr "Order has been canceled and the order owner has been notified." +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "Order ID" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "Order ID: {0}" @@ -4742,7 +4804,9 @@ msgstr "Order URL" msgid "Order was cancelled" msgstr "Order was cancelled" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5027,7 +5091,7 @@ msgstr "Payment received" msgid "Payment Received" msgstr "Payment Received" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "Payment Settings" @@ -5070,6 +5134,10 @@ msgstr "Percentage" msgid "Percentage Amount" msgstr "Percentage Amount" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "Percentage Fee" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "Performance" @@ -5838,7 +5906,7 @@ msgstr "Save Template" msgid "Save Ticket Design" msgstr "Save Ticket Design" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "Save VAT Settings" @@ -5888,6 +5956,10 @@ msgstr "Search by name, order #, attendee # or email..." msgid "Search by name..." msgstr "Search by name..." +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "Search by order ID, customer name, or email..." + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "Search by subject or content..." @@ -6379,6 +6451,7 @@ msgid "Statistics" msgstr "Statistics" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6608,6 +6681,7 @@ msgstr "T-shirt" msgid "Takes just a few minutes" msgstr "Takes just a few minutes" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7173,6 +7247,7 @@ msgstr "Times Used" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7198,6 +7273,7 @@ msgstr "Toggle columns" msgid "Tools" msgstr "Tools" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7515,6 +7591,8 @@ msgstr "User Management" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "Users" @@ -7531,14 +7609,26 @@ msgstr "Users can change their email in <0>Profile Settings" msgid "UTC" msgstr "UTC" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "Valid" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "Valid VAT number" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "Validated" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "VAT" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "VAT Country" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "VAT Information" @@ -7548,6 +7638,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "VAT may be applied to platform fees depending on your VAT registration status. Please complete the VAT information section below." #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "VAT Number" @@ -7559,15 +7650,23 @@ msgstr "VAT number must not contain spaces" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "VAT number validation failed. Please check your number and try again." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "VAT Registered" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "VAT Registration Information" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "VAT Settings" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "VAT settings saved and validated successfully" @@ -8025,6 +8124,10 @@ msgstr "X (Twitter)" msgid "Year to date" msgstr "Year to date" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "Yes" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "Yes - I have a valid EU VAT registration number" @@ -8298,7 +8401,7 @@ msgstr "Your ticket for" msgid "Your tickets have been confirmed." msgstr "Your tickets have been confirmed." -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "Your VAT number will be validated automatically when you save" diff --git a/frontend/src/locales/es.po b/frontend/src/locales/es.po index 9bf0f089df..98ee5f7b84 100644 --- a/frontend/src/locales/es.po +++ b/frontend/src/locales/es.po @@ -293,6 +293,7 @@ msgstr "Aceptar la invitacion" msgid "Access Denied" msgstr "Acceso denegado" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "Cuenta" msgid "Account already connected!" msgstr "¡Cuenta ya conectada!" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "Nombre de la cuenta" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "Administración" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "Panel de Administración" @@ -663,6 +672,10 @@ msgstr "Cualquier consulta de los titulares de productos se enviará a esta dire msgid "Appearance" msgstr "Apariencia" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "aplicado" @@ -971,6 +984,10 @@ msgstr "Awesome Events S.A." msgid "Awesome Organizer Ltd." msgstr "Impresionante organizador Ltd." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "Portugués brasileño" msgid "Business" msgstr "Negocios" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "Etiqueta del botón" @@ -1909,6 +1930,10 @@ msgstr "Crea tu primer evento para comenzar a vender entradas y gestionar asiste msgid "Create your own event" msgstr "Crea tu propio evento" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "Creando evento..." @@ -1932,6 +1957,7 @@ msgstr "La etiqueta CTA es requerida" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "Rango personalizado" msgid "Custom template" msgstr "Plantilla personalizada" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "Cliente" @@ -2082,6 +2109,7 @@ msgstr "Oscuro" msgid "Dashboard" msgstr "Dashboard" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2325,6 +2353,8 @@ msgstr "Madrugador" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "Editar" @@ -2442,6 +2472,7 @@ msgstr "Listas de Check-In Elegibles" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2657,6 +2688,7 @@ msgstr "Empresas registradas para el IVA en la UE: Se aplica el mecanismo de inv msgid "EUR" msgstr "EUR" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2822,6 +2854,7 @@ msgstr "Lugar del Evento" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3110,6 +3143,10 @@ msgstr "Fijado" msgid "Fixed amount" msgstr "Cantidad fija" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "Tarifa fija:" @@ -3594,6 +3631,10 @@ msgstr "Insertar variable" msgid "Instagram" msgstr "Instagram" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "Correo inválido" @@ -3956,7 +3997,7 @@ msgstr "Gestionar entradas" msgid "Manage your account details and default settings" msgstr "Administre los detalles de su cuenta y la configuración predeterminada" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "Administra tu procesamiento de pagos y consulta las tarifas de la plataforma" @@ -4153,6 +4194,10 @@ msgstr "Nueva contraseña" msgid "Nightlife" msgstr "Vida nocturna" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "No - Soy un individuo o empresa no registrada para el IVA" @@ -4265,6 +4310,10 @@ msgstr "No se encontraron registros" msgid "No messages to show" msgstr "No hay mensajes para mostrar" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "No hay pedidos para mostrar" @@ -4353,6 +4402,10 @@ msgstr "No hay próximos eventos" msgid "No users found" msgstr "No se encontraron usuarios" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "Aún no se han registrado eventos de webhook para este punto de acceso. Los eventos aparecerán aquí una vez que se activen." @@ -4389,6 +4442,11 @@ msgstr "No Registrado" msgid "Not Eligible" msgstr "No Elegible" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4635,6 +4693,10 @@ msgstr "El pedido ha sido cancelado y reembolsado. El propietario del pedido ha msgid "Order has been canceled and the order owner has been notified." msgstr "El pedido ha sido cancelado y se ha notificado al propietario del pedido." +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "ID del pedido: {0}" @@ -4740,7 +4802,9 @@ msgstr "URL del pedido" msgid "Order was cancelled" msgstr "El pedido fue cancelado" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5025,7 +5089,7 @@ msgstr "Pago recibido" msgid "Payment Received" msgstr "Pago recibido" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "Configuración de pagos" @@ -5068,6 +5132,10 @@ msgstr "Porcentaje" msgid "Percentage Amount" msgstr "Monto porcentual" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "Rendimiento" @@ -5834,7 +5902,7 @@ msgstr "Guardar plantilla" msgid "Save Ticket Design" msgstr "Guardar Diseño del Ticket" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "Guardar Configuración del IVA" @@ -5884,6 +5952,10 @@ msgstr "Buscar por nombre, número de pedido, número de asistente o correo elec msgid "Search by name..." msgstr "Buscar por nombre..." +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "" + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "Buscar por tema o contenido..." @@ -6375,6 +6447,7 @@ msgid "Statistics" msgstr "Estadísticas" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6604,6 +6677,7 @@ msgstr "Camiseta" msgid "Takes just a few minutes" msgstr "Solo toma unos minutos" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7169,6 +7243,7 @@ msgstr "Veces usado" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7194,6 +7269,7 @@ msgstr "Alternar columnas" msgid "Tools" msgstr "Herramientas" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7511,6 +7587,8 @@ msgstr "Gestión de usuarios" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "Usuarios" @@ -7527,14 +7605,26 @@ msgstr "Los usuarios pueden cambiar su correo electrónico en <0>Configuración msgid "UTC" msgstr "UTC" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "Número de IVA válido" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "IVA" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "Información del IVA" @@ -7544,6 +7634,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "El IVA puede aplicarse a las tarifas de la plataforma según su estado de registro de IVA. Por favor complete la sección de información del IVA a continuación." #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "Número de IVA" @@ -7555,15 +7646,23 @@ msgstr "" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "La validación del número de IVA falló. Por favor verifique su número e intente nuevamente." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "Información de Registro del IVA" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "Configuración del IVA guardada y validada exitosamente" @@ -8021,6 +8120,10 @@ msgstr "X (Twitter)" msgid "Year to date" msgstr "Año hasta la fecha" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "Sí - Tengo un número de registro de IVA de la UE válido" @@ -8294,7 +8397,7 @@ msgstr "Tu billete para" msgid "Your tickets have been confirmed." msgstr "Tus entradas han sido confirmadas." -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "Su número de IVA se validará automáticamente cuando guarde" diff --git a/frontend/src/locales/fr.po b/frontend/src/locales/fr.po index fc770d3d18..028f945f1d 100644 --- a/frontend/src/locales/fr.po +++ b/frontend/src/locales/fr.po @@ -293,6 +293,7 @@ msgstr "Accepter l'invitation" msgid "Access Denied" msgstr "Accès refusé" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "Compte" msgid "Account already connected!" msgstr "Compte déjà connecté !" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "Nom du compte" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "Administrateur" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "Tableau de Bord Admin" @@ -663,6 +672,10 @@ msgstr "Toute question des détenteurs de produits sera envoyée à cette adress msgid "Appearance" msgstr "Apparence" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "appliqué" @@ -971,6 +984,10 @@ msgstr "Awesome Events SARL" msgid "Awesome Organizer Ltd." msgstr "Organisateur génial Ltd." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "Portugais brésilien" msgid "Business" msgstr "Affaires" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "Libellé du bouton" @@ -1909,6 +1930,10 @@ msgstr "Créez votre premier événement pour commencer à vendre des billets et msgid "Create your own event" msgstr "Créez votre propre événement" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "Création de l'événement..." @@ -1932,6 +1957,7 @@ msgstr "Le libellé CTA est requis" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "Plage personnalisée" msgid "Custom template" msgstr "Modèle personnalisé" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "Client" @@ -2082,6 +2109,7 @@ msgstr "Sombre" msgid "Dashboard" msgstr "Dashboard" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2325,6 +2353,8 @@ msgstr "Lève tôt" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "Modifier" @@ -2442,6 +2472,7 @@ msgstr "Listes d'Enregistrement Éligibles" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2657,6 +2688,7 @@ msgstr "Entreprises enregistrées à la TVA UE : Mécanisme d'autoliquidation ap msgid "EUR" msgstr "EUR" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2822,6 +2854,7 @@ msgstr "Lieu de l'Événement" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3110,6 +3143,10 @@ msgstr "Fixé" msgid "Fixed amount" msgstr "Montant fixé" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "Frais fixes :" @@ -3594,6 +3631,10 @@ msgstr "Insérer une variable" msgid "Instagram" msgstr "Instagram" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "E-mail invalide" @@ -3956,7 +3997,7 @@ msgstr "Gérer les billets" msgid "Manage your account details and default settings" msgstr "Gérez les détails de votre compte et les paramètres par défaut" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "Gérez votre traitement des paiements et consultez les frais de plateforme" @@ -4153,6 +4194,10 @@ msgstr "nouveau mot de passe" msgid "Nightlife" msgstr "Vie nocturne" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "Non - Je suis un particulier ou une entreprise non assujettie à la TVA" @@ -4265,6 +4310,10 @@ msgstr "Aucun journal trouvé" msgid "No messages to show" msgstr "Aucun message à afficher" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "Aucune commande à afficher" @@ -4353,6 +4402,10 @@ msgstr "Aucun événement à venir" msgid "No users found" msgstr "Aucun utilisateur trouvé" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "Aucun événement webhook n'a encore été enregistré pour ce point de terminaison. Les événements apparaîtront ici une fois qu'ils seront déclenchés." @@ -4389,6 +4442,11 @@ msgstr "Non Enregistré" msgid "Not Eligible" msgstr "Non Éligible" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4635,6 +4693,10 @@ msgstr "La commande a été annulée et remboursée. Le propriétaire de la comm msgid "Order has been canceled and the order owner has been notified." msgstr "La commande a été annulée et le propriétaire de la commande a été informé." +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "ID de commande : {0}" @@ -4740,7 +4802,9 @@ msgstr "URL de la commande" msgid "Order was cancelled" msgstr "La commande a été annulée" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5025,7 +5089,7 @@ msgstr "Paiement reçu" msgid "Payment Received" msgstr "Paiement reçu" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "Paramètres de paiement" @@ -5068,6 +5132,10 @@ msgstr "Pourcentage" msgid "Percentage Amount" msgstr "Montant en pourcentage" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "Performance" @@ -5834,7 +5902,7 @@ msgstr "Sauvegarder le modèle" msgid "Save Ticket Design" msgstr "Enregistrer le Design du Billet" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "Enregistrer les paramètres TVA" @@ -5884,6 +5952,10 @@ msgstr "Rechercher par nom, numéro de commande, numéro de participant ou e-mai msgid "Search by name..." msgstr "Rechercher par nom..." +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "" + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "Recherche par sujet ou contenu..." @@ -6375,6 +6447,7 @@ msgid "Statistics" msgstr "Statistiques" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6604,6 +6677,7 @@ msgstr "T-shirt" msgid "Takes just a few minutes" msgstr "Prend juste quelques minutes" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7169,6 +7243,7 @@ msgstr "Nombre d'utilisations" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7194,6 +7269,7 @@ msgstr "Basculer les colonnes" msgid "Tools" msgstr "Outils" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7511,6 +7587,8 @@ msgstr "Gestion des utilisateurs" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "Utilisateurs" @@ -7527,14 +7605,26 @@ msgstr "Les utilisateurs peuvent modifier leur adresse e-mail dans <0>Paramètre msgid "UTC" msgstr "UTC" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "Numéro de TVA valide" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "T.V.A." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "Informations TVA" @@ -7544,6 +7634,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "La TVA peut être appliquée aux frais de plateforme selon votre statut d'assujettissement à la TVA. Veuillez compléter la section d'informations TVA ci-dessous." #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "Numéro de TVA" @@ -7555,15 +7646,23 @@ msgstr "" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "La validation du numéro de TVA a échoué. Veuillez vérifier votre numéro et réessayer." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "" @@ -8021,6 +8120,10 @@ msgstr "X (Twitter)" msgid "Year to date" msgstr "Année à ce jour" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "" @@ -8294,7 +8397,7 @@ msgstr "Votre billet pour" msgid "Your tickets have been confirmed." msgstr "Vos billets ont été confirmés." -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "" diff --git a/frontend/src/locales/hu.po b/frontend/src/locales/hu.po index 28be509c79..469ae84264 100644 --- a/frontend/src/locales/hu.po +++ b/frontend/src/locales/hu.po @@ -293,6 +293,7 @@ msgstr "Meghívó elfogadása" msgid "Access Denied" msgstr "Hozzáférés megtagadva" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "Fiók" msgid "Account already connected!" msgstr "A fiók már csatlakoztatva van!" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "Fióknév" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "Adminisztrátor" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "Admin vezérlőpult" @@ -663,6 +672,10 @@ msgstr "A terméktulajdonosoktól érkező bármilyen kérdés erre az e-mail c msgid "Appearance" msgstr "Megjelenés" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "alkalmazva" @@ -971,6 +984,10 @@ msgstr "Awesome Events Kft." msgid "Awesome Organizer Ltd." msgstr "Awesome Organizer Kft." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "Brazíliai portugál" msgid "Business" msgstr "Üzlet" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "Gomb felirat" @@ -1909,6 +1930,10 @@ msgstr "Hozza létre első eseményét, hogy elkezdhesse a jegyek értékesíté msgid "Create your own event" msgstr "Hozza létre saját eseményét" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "Esemény létrehozása..." @@ -1932,6 +1957,7 @@ msgstr "" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "Egyedi tartomány" msgid "Custom template" msgstr "" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "Ügyfél" @@ -2082,6 +2109,7 @@ msgstr "" msgid "Dashboard" msgstr "Irányítópult" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2323,6 +2351,8 @@ msgstr "Korai madár" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "Szerkesztés" @@ -2440,6 +2470,7 @@ msgstr "" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2655,6 +2686,7 @@ msgstr "" msgid "EUR" msgstr "EUR" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2820,6 +2852,7 @@ msgstr "" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3108,6 +3141,10 @@ msgstr "Fix" msgid "Fixed amount" msgstr "Fix összeg" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "Fix díj:" @@ -3592,6 +3629,10 @@ msgstr "" msgid "Instagram" msgstr "Instagram" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "Érvénytelen e-mail" @@ -3954,7 +3995,7 @@ msgstr "Jegyek kezelése" msgid "Manage your account details and default settings" msgstr "Kezelje fiókadatait és alapértelmezett beállításait." -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "Kezelje fizetésfeldolgozását és tekintse meg a platformdíjakat." @@ -4151,6 +4192,10 @@ msgstr "Új jelszó" msgid "Nightlife" msgstr "Éjszakai élet" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "" @@ -4263,6 +4308,10 @@ msgstr "Nem található napló" msgid "No messages to show" msgstr "Nincs megjeleníthető üzenet" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "Nincs megjeleníthető megrendelés" @@ -4351,6 +4400,10 @@ msgstr "Nincsenek közelgő események" msgid "No users found" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "Ehhez a végponthoz még nem rögzítettek webhook eseményeket. Az események itt jelennek meg, amint aktiválódnak." @@ -4387,6 +4440,11 @@ msgstr "" msgid "Not Eligible" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4633,6 +4691,10 @@ msgstr "" msgid "Order has been canceled and the order owner has been notified." msgstr "A megrendelés törölve lett, és a megrendelő értesítést kapott." +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "Megrendelés azonosító: {0}" @@ -4738,7 +4800,9 @@ msgstr "" msgid "Order was cancelled" msgstr "" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5023,7 +5087,7 @@ msgstr "" msgid "Payment Received" msgstr "Fizetés beérkezett" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "Fizetési beállítások" @@ -5066,6 +5130,10 @@ msgstr "Százalék" msgid "Percentage Amount" msgstr "Százalékos összeg" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "Teljesítmény" @@ -5832,7 +5900,7 @@ msgstr "" msgid "Save Ticket Design" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "" @@ -5882,6 +5950,10 @@ msgstr "Keresés név, rendelési szám, résztvevő azonosító vagy e-mail ala msgid "Search by name..." msgstr "Keresés név alapján..." +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "" + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "Keresés tárgy vagy tartalom alapján..." @@ -6373,6 +6445,7 @@ msgid "Statistics" msgstr "" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6602,6 +6675,7 @@ msgstr "Póló" msgid "Takes just a few minutes" msgstr "" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7167,6 +7241,7 @@ msgstr "Felhasználások száma" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7192,6 +7267,7 @@ msgstr "" msgid "Tools" msgstr "Eszközök" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7509,6 +7585,8 @@ msgstr "Felhasználókezelés" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "Felhasználók" @@ -7525,14 +7603,26 @@ msgstr "A felhasználók módosíthatják e-mail címüket a <0>Profilbeállít msgid "UTC" msgstr "UTC" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "ÁFA" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "" @@ -7542,6 +7632,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "" #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "" @@ -7553,15 +7644,23 @@ msgstr "" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "" @@ -8019,6 +8118,10 @@ msgstr "X (Twitter)" msgid "Year to date" msgstr "Év elejétől napjainkig" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "" @@ -8292,7 +8395,7 @@ msgstr "Jegyéhez:" msgid "Your tickets have been confirmed." msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "" diff --git a/frontend/src/locales/it.po b/frontend/src/locales/it.po index 235d2f2678..573d07f73f 100644 --- a/frontend/src/locales/it.po +++ b/frontend/src/locales/it.po @@ -293,6 +293,7 @@ msgstr "Accetta Invito" msgid "Access Denied" msgstr "Accesso Negato" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "Account" msgid "Account already connected!" msgstr "Account già connesso!" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "Nome Account" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "Amministratore" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "Dashboard Amministratore" @@ -663,6 +672,10 @@ msgstr "Qualsiasi richiesta dai possessori di prodotti verrà inviata a questo i msgid "Appearance" msgstr "Aspetto" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "applicato" @@ -971,6 +984,10 @@ msgstr "Awesome Events S.r.l." msgid "Awesome Organizer Ltd." msgstr "Awesome Organizer Srl." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "Portoghese Brasiliano" msgid "Business" msgstr "Business" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "Etichetta Pulsante" @@ -1909,6 +1930,10 @@ msgstr "Crea il tuo primo evento per iniziare a vendere biglietti e gestire i pa msgid "Create your own event" msgstr "Crea il tuo evento" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "Creazione evento..." @@ -1932,6 +1957,7 @@ msgstr "L'etichetta CTA è obbligatoria" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "Intervallo Personalizzato" msgid "Custom template" msgstr "Modello personalizzato" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "Cliente" @@ -2082,6 +2109,7 @@ msgstr "Scuro" msgid "Dashboard" msgstr "Dashboard" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2325,6 +2353,8 @@ msgstr "Prevendita" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "Modifica" @@ -2442,6 +2472,7 @@ msgstr "Liste Check-In Idonee" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2657,6 +2688,7 @@ msgstr "Imprese registrate IVA nell'UE: Si applica il meccanismo del reverse cha msgid "EUR" msgstr "EUR" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2822,6 +2854,7 @@ msgstr "Sede dell'Evento" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3110,6 +3143,10 @@ msgstr "Fisso" msgid "Fixed amount" msgstr "Importo fisso" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "Commissione Fissa:" @@ -3594,6 +3631,10 @@ msgstr "Inserisci Variabile" msgid "Instagram" msgstr "Instagram" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "Email non valida" @@ -3956,7 +3997,7 @@ msgstr "Gestisci biglietti" msgid "Manage your account details and default settings" msgstr "Gestisci i dettagli del tuo account e le impostazioni predefinite" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "Gestisci l'elaborazione dei pagamenti e visualizza le commissioni della piattaforma" @@ -4153,6 +4194,10 @@ msgstr "Nuova Password" msgid "Nightlife" msgstr "Vita notturna" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "No - Sono un privato o un'azienda non registrata IVA" @@ -4265,6 +4310,10 @@ msgstr "Nessun log trovato" msgid "No messages to show" msgstr "Nessun messaggio da mostrare" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "Nessun ordine da mostrare" @@ -4353,6 +4402,10 @@ msgstr "Nessun evento in arrivo" msgid "No users found" msgstr "Nessun utente trovato" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "Nessun evento webhook è stato registrato per questo endpoint. Gli eventi appariranno qui una volta attivati." @@ -4389,6 +4442,11 @@ msgstr "Non Registrato" msgid "Not Eligible" msgstr "Non Idoneo" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4635,6 +4693,10 @@ msgstr "L'ordine è stato cancellato e rimborsato. Il proprietario dell'ordine msgid "Order has been canceled and the order owner has been notified." msgstr "L'ordine è stato annullato e il proprietario dell'ordine è stato avvisato." +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "ID ordine: {0}" @@ -4740,7 +4802,9 @@ msgstr "URL Ordine" msgid "Order was cancelled" msgstr "L'ordine è stato annullato" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5025,7 +5089,7 @@ msgstr "Pagamento ricevuto" msgid "Payment Received" msgstr "Pagamento Ricevuto" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "Impostazioni Pagamento" @@ -5068,6 +5132,10 @@ msgstr "Percentuale" msgid "Percentage Amount" msgstr "Importo Percentuale" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "Prestazione" @@ -5836,7 +5904,7 @@ msgstr "Salva Modello" msgid "Save Ticket Design" msgstr "Salva Design del Biglietto" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "Salva impostazioni IVA" @@ -5886,6 +5954,10 @@ msgstr "Cerca per nome, numero ordine, numero partecipante o email..." msgid "Search by name..." msgstr "Cerca per nome..." +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "" + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "Cerca per oggetto o contenuto..." @@ -6377,6 +6449,7 @@ msgid "Statistics" msgstr "Statistiche" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6606,6 +6679,7 @@ msgstr "T-shirt" msgid "Takes just a few minutes" msgstr "Richiede solo pochi minuti" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7171,6 +7245,7 @@ msgstr "Volte Utilizzato" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7196,6 +7271,7 @@ msgstr "Attiva colonne" msgid "Tools" msgstr "Strumenti" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7513,6 +7589,8 @@ msgstr "Gestione Utenti" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "Utenti" @@ -7529,14 +7607,26 @@ msgstr "Gli utenti possono modificare la loro email in <0>Impostazioni ProfiloProfielinstellingen msgid "UTC" msgstr "UTC" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "Geldig BTW-nummer" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "BTW" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "BTW-informatie" @@ -7543,6 +7633,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "BTW kan worden toegepast op platformkosten afhankelijk van uw BTW-registratiestatus. Vul het BTW-informatiegedeelte hieronder in." #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "BTW-nummer" @@ -7554,15 +7645,23 @@ msgstr "" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "BTW-nummervalidatie mislukt. Controleer uw nummer en probeer het opnieuw." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "BTW-registratie-informatie" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "BTW-instellingen succesvol opgeslagen en gevalideerd" @@ -8020,6 +8119,10 @@ msgstr "X (Twitter)" msgid "Year to date" msgstr "Jaar tot nu toe" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "Ja - Ik heb een geldig EU BTW-registratienummer" @@ -8293,7 +8396,7 @@ msgstr "Uw ticket voor" msgid "Your tickets have been confirmed." msgstr "Je tickets zijn bevestigd." -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "Uw BTW-nummer wordt automatisch gevalideerd wanneer u opslaat" diff --git a/frontend/src/locales/pt-br.po b/frontend/src/locales/pt-br.po index 75ccd4c48f..04b87855e8 100644 --- a/frontend/src/locales/pt-br.po +++ b/frontend/src/locales/pt-br.po @@ -293,6 +293,7 @@ msgstr "Aceitar convite" msgid "Access Denied" msgstr "Acesso negado" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "Conta" msgid "Account already connected!" msgstr "Conta já conectada!" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "Nome da conta" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "Administrador" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "Painel de Administração" @@ -663,6 +672,10 @@ msgstr "Quaisquer perguntas dos portadores de produtos serão enviadas para este msgid "Appearance" msgstr "Aparência" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "aplicado" @@ -971,6 +984,10 @@ msgstr "Awesome Events Lda." msgid "Awesome Organizer Ltd." msgstr "Awesome Organizer Ltd." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "Português brasileiro" msgid "Business" msgstr "Negócios" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "Rótulo do Botão" @@ -1909,6 +1930,10 @@ msgstr "Crie seu primeiro evento para começar a vender ingressos e gerenciar pa msgid "Create your own event" msgstr "Crie seu próprio evento" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "A criar evento..." @@ -1932,6 +1957,7 @@ msgstr "Rótulo do CTA é obrigatório" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "Intervalo personalizado" msgid "Custom template" msgstr "Modelo personalizado" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "Cliente" @@ -2082,6 +2109,7 @@ msgstr "Escuro" msgid "Dashboard" msgstr "Dashboard" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2325,6 +2353,8 @@ msgstr "Pássaro madrugador" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "Editar" @@ -2442,6 +2472,7 @@ msgstr "Listas de Check-In Elegíveis" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2657,6 +2688,7 @@ msgstr "Empresas registradas para IVA na UE: Aplica-se o mecanismo de autoliquid msgid "EUR" msgstr "EUR" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2822,6 +2854,7 @@ msgstr "Local do Evento" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3110,6 +3143,10 @@ msgstr "Fixo" msgid "Fixed amount" msgstr "Valor fixo" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "Taxa fixa:" @@ -3594,6 +3631,10 @@ msgstr "Inserir Variável" msgid "Instagram" msgstr "Instagram" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "Email inválido" @@ -3956,7 +3997,7 @@ msgstr "Gerenciar tíquetes" msgid "Manage your account details and default settings" msgstr "Gerenciar os detalhes de sua conta e as configurações padrão" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "Gerencie seu processamento de pagamentos e visualize as taxas da plataforma" @@ -4153,6 +4194,10 @@ msgstr "Nova senha" msgid "Nightlife" msgstr "Vida noturna" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "Não - Sou um indivíduo ou empresa não registrada para IVA" @@ -4265,6 +4310,10 @@ msgstr "Nenhum registro encontrado" msgid "No messages to show" msgstr "Nenhuma mensagem a ser exibida" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "Não há ordens para mostrar" @@ -4353,6 +4402,10 @@ msgstr "Nenhum evento futuro" msgid "No users found" msgstr "Nenhum usuário encontrado" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "Nenhum evento de webhook foi registrado para este endpoint ainda. Os eventos aparecerão aqui assim que forem acionados." @@ -4389,6 +4442,11 @@ msgstr "Não Registrado" msgid "Not Eligible" msgstr "Não Elegível" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4635,6 +4693,10 @@ msgstr "O pedido foi cancelado e reembolsado. O proprietário do pedido foi noti msgid "Order has been canceled and the order owner has been notified." msgstr "O pedido foi cancelado e o proprietário do pedido foi notificado." +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "ID do pedido: {0}" @@ -4740,7 +4802,9 @@ msgstr "URL do Pedido" msgid "Order was cancelled" msgstr "O pedido foi cancelado" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5025,7 +5089,7 @@ msgstr "Pagamento recebido" msgid "Payment Received" msgstr "Pagamento recebido" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "Configurações de pagamento" @@ -5068,6 +5132,10 @@ msgstr "Porcentagem" msgid "Percentage Amount" msgstr "Porcentagem Valor" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "Desempenho" @@ -5834,7 +5902,7 @@ msgstr "Salvar Modelo" msgid "Save Ticket Design" msgstr "Salvar Design do Ingresso" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "Salvar Configurações de IVA" @@ -5884,6 +5952,10 @@ msgstr "Pesquise por nome, número do pedido, número do participante ou e-mail. msgid "Search by name..." msgstr "Pesquisar por nome..." +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "" + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "Pesquise por assunto ou conteúdo..." @@ -6375,6 +6447,7 @@ msgid "Statistics" msgstr "Estatísticas" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6604,6 +6677,7 @@ msgstr "Camiseta" msgid "Takes just a few minutes" msgstr "Leva apenas alguns minutos" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7169,6 +7243,7 @@ msgstr "Vezes usado" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7194,6 +7269,7 @@ msgstr "Alternar colunas" msgid "Tools" msgstr "Ferramentas" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7511,6 +7587,8 @@ msgstr "Gerenciamento de usuários" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "Usuários" @@ -7527,14 +7605,26 @@ msgstr "Os usuários podem alterar seu e-mail em <0>Configurações de perfilConfigurações do perfil" msgid "UTC" msgstr "UTC" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "Número de IVA válido" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "CUBA" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "Informações de IVA" @@ -7544,6 +7634,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "O IVA pode ser aplicado às taxas da plataforma dependendo do seu estado de registo de IVA. Por favor, complete a secção de informações de IVA abaixo." #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "Número de IVA" @@ -7555,15 +7646,23 @@ msgstr "" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "A validação do número de IVA falhou. Por favor, verifique o seu número e tente novamente." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "Informações de Registo de IVA" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "Definições de IVA guardadas e validadas com sucesso" @@ -8021,6 +8120,10 @@ msgstr "X (Twitter)" msgid "Year to date" msgstr "Ano até agora" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "Sim - Tenho um número de registo de IVA da UE válido" @@ -8294,7 +8397,7 @@ msgstr "Seu ingresso para" msgid "Your tickets have been confirmed." msgstr "Os seus bilhetes foram confirmados." -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "" diff --git a/frontend/src/locales/ru.po b/frontend/src/locales/ru.po index 3edbc37e72..9571cffde0 100644 --- a/frontend/src/locales/ru.po +++ b/frontend/src/locales/ru.po @@ -293,6 +293,7 @@ msgstr "" msgid "Access Denied" msgstr "" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "" msgid "Account already connected!" msgstr "Аккаунт уже подключен!" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "" @@ -663,6 +672,10 @@ msgstr "" msgid "Appearance" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "" @@ -971,6 +984,10 @@ msgstr "" msgid "Awesome Organizer Ltd." msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "" msgid "Business" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "" @@ -1909,6 +1930,10 @@ msgstr "" msgid "Create your own event" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "" @@ -1932,6 +1957,7 @@ msgstr "" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "" msgid "Custom template" msgstr "" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "" @@ -2082,6 +2109,7 @@ msgstr "" msgid "Dashboard" msgstr "" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2323,6 +2351,8 @@ msgstr "" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "" @@ -2440,6 +2470,7 @@ msgstr "" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2655,6 +2686,7 @@ msgstr "" msgid "EUR" msgstr "" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2820,6 +2852,7 @@ msgstr "" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3108,6 +3141,10 @@ msgstr "" msgid "Fixed amount" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "" @@ -3592,6 +3629,10 @@ msgstr "" msgid "Instagram" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "" @@ -3954,7 +3995,7 @@ msgstr "" msgid "Manage your account details and default settings" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "" @@ -4151,6 +4192,10 @@ msgstr "" msgid "Nightlife" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "" @@ -4263,6 +4308,10 @@ msgstr "" msgid "No messages to show" msgstr "" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "" @@ -4351,6 +4400,10 @@ msgstr "" msgid "No users found" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "" @@ -4387,6 +4440,11 @@ msgstr "" msgid "Not Eligible" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4631,6 +4689,10 @@ msgstr "Заказ отменен и возвращен. Владелец зак msgid "Order has been canceled and the order owner has been notified." msgstr "" +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "" @@ -4736,7 +4798,9 @@ msgstr "" msgid "Order was cancelled" msgstr "" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5021,7 +5085,7 @@ msgstr "" msgid "Payment Received" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "" @@ -5064,6 +5128,10 @@ msgstr "" msgid "Percentage Amount" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "" @@ -5830,7 +5898,7 @@ msgstr "" msgid "Save Ticket Design" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "" @@ -5880,6 +5948,10 @@ msgstr "" msgid "Search by name..." msgstr "" +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "" + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "" @@ -6371,6 +6443,7 @@ msgid "Statistics" msgstr "" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6600,6 +6673,7 @@ msgstr "" msgid "Takes just a few minutes" msgstr "Займет всего несколько минут" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7165,6 +7239,7 @@ msgstr "" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7190,6 +7265,7 @@ msgstr "" msgid "Tools" msgstr "" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7507,6 +7583,8 @@ msgstr "" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "" @@ -7523,14 +7601,26 @@ msgstr "" msgid "UTC" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "" @@ -7540,6 +7630,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "" #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "" @@ -7551,15 +7642,23 @@ msgstr "" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "" @@ -8017,6 +8116,10 @@ msgstr "" msgid "Year to date" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "" @@ -8290,7 +8393,7 @@ msgstr "" msgid "Your tickets have been confirmed." msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "" diff --git a/frontend/src/locales/tr.po b/frontend/src/locales/tr.po index aea0b487c9..e019347378 100644 --- a/frontend/src/locales/tr.po +++ b/frontend/src/locales/tr.po @@ -293,6 +293,7 @@ msgstr "Davetiyeyi Kabul Et" msgid "Access Denied" msgstr "Erişim Reddedildi" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "Hesap" msgid "Account already connected!" msgstr "Hesap zaten bağlı!" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "Hesap Adı" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "Yönetici" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "Yönetici Paneli" @@ -663,6 +672,10 @@ msgstr "Ürün sahiplerinden gelen tüm sorular bu e-posta adresine gönderilece msgid "Appearance" msgstr "Görünüm" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "uygulandı" @@ -971,6 +984,10 @@ msgstr "Harika Etkinlikler Ltd." msgid "Awesome Organizer Ltd." msgstr "Harika Organizatör Ltd." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "Brezilya Portekizcesi" msgid "Business" msgstr "İş" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "Düğme Etiketi" @@ -1909,6 +1930,10 @@ msgstr "Bilet satmaya ve katılımcıları yönetmeye başlamak için ilk etkinl msgid "Create your own event" msgstr "Kendi etkinliğinizi oluşturun" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "Etkinlik Oluşturuluyor..." @@ -1932,6 +1957,7 @@ msgstr "Harekete geçirici düğme etiketi gerekli" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "Özel Aralık" msgid "Custom template" msgstr "Özel şablon" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "Müşteri" @@ -2082,6 +2109,7 @@ msgstr "Koyu" msgid "Dashboard" msgstr "Gösterge Paneli" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2323,6 +2351,8 @@ msgstr "Erken kuş" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "Düzenle" @@ -2440,6 +2470,7 @@ msgstr "Uygun Giriş Listeleri" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2655,6 +2686,7 @@ msgstr "AB KDV kayıtlı işletmeler: Ters ödeme mekanizması uygulanır (%0 - msgid "EUR" msgstr "EUR" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2820,6 +2852,7 @@ msgstr "Etkinlik Mekanı" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3108,6 +3141,10 @@ msgstr "Sabit" msgid "Fixed amount" msgstr "Sabit tutar" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "Sabit Ücret:" @@ -3592,6 +3629,10 @@ msgstr "Değişken Ekle" msgid "Instagram" msgstr "Instagram" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "Geçersiz e-posta" @@ -3954,7 +3995,7 @@ msgstr "Biletleri yönet" msgid "Manage your account details and default settings" msgstr "Hesap bilgilerinizi ve varsayılan ayarlarını yönetin" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "Ödeme işlemenizi yönetin ve platform ücretlerini görüntüleyin" @@ -4151,6 +4192,10 @@ msgstr "Yeni Şifre" msgid "Nightlife" msgstr "Gece Hayatı" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "Hayır - Bireyim veya KDV kayıtlı olmayan bir işletmeyim" @@ -4263,6 +4308,10 @@ msgstr "Günlük bulunamadı" msgid "No messages to show" msgstr "Gösterilecek mesaj yok" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "Gösterilecek sipariş yok" @@ -4351,6 +4400,10 @@ msgstr "Yaklaşan etkinlik yok" msgid "No users found" msgstr "Kullanıcı bulunamadı" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "" @@ -4387,6 +4440,11 @@ msgstr "Giriş Yapılmadı" msgid "Not Eligible" msgstr "Uygun Değil" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4633,6 +4691,10 @@ msgstr "Sipariş iptal edildi ve iade edildi. Sipariş sahibi bilgilendirildi." msgid "Order has been canceled and the order owner has been notified." msgstr "Sipariş iptal edildi ve sipariş sahibi bilgilendirildi." +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "Sipariş ID: {0}" @@ -4738,7 +4800,9 @@ msgstr "Sipariş URL'si" msgid "Order was cancelled" msgstr "Sipariş iptal edildi" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5023,7 +5087,7 @@ msgstr "Ödeme alındı" msgid "Payment Received" msgstr "Ödeme Alındı" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "Ödeme Ayarları" @@ -5066,6 +5130,10 @@ msgstr "Yüzde" msgid "Percentage Amount" msgstr "Yüzde Miktarı" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "Performans" @@ -5834,7 +5902,7 @@ msgstr "Şablonu Kaydet" msgid "Save Ticket Design" msgstr "Bilet Tasarımını Kaydet" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "KDV Ayarlarını Kaydet" @@ -5884,6 +5952,10 @@ msgstr "Ad, sipariş #, katılımcı # veya e-postaya göre ara..." msgid "Search by name..." msgstr "Ada göre ara..." +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "" + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "Konu veya içeriğe göre ara..." @@ -6375,6 +6447,7 @@ msgid "Statistics" msgstr "İstatistikler" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6604,6 +6677,7 @@ msgstr "Tişört" msgid "Takes just a few minutes" msgstr "Sadece birkaç dakika sürer" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7169,6 +7243,7 @@ msgstr "Kullanım Sayısı" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7194,6 +7269,7 @@ msgstr "Sütunları değiştir" msgid "Tools" msgstr "Araçlar" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7511,6 +7587,8 @@ msgstr "Kullanıcı Yönetimi" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "Kullanıcılar" @@ -7527,14 +7605,26 @@ msgstr "Kullanıcılar e-postalarını <0>Profil Ayarları'nda değiştirebi msgid "UTC" msgstr "UTC" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "Geçerli KDV numarası" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "KDV" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "KDV Bilgisi" @@ -7544,6 +7634,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "" #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "KDV Numarası" @@ -7555,15 +7646,23 @@ msgstr "" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "KDV numarası doğrulaması başarısız oldu. Lütfen numaranızı kontrol edin ve tekrar deneyin." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "KDV Kayıt Bilgisi" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "KDV ayarları başarıyla kaydedildi ve doğrulandı" @@ -8021,6 +8120,10 @@ msgstr "X (Twitter)" msgid "Year to date" msgstr "Yıl başından beri" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "Evet - Geçerli bir AB KDV kayıt numaram var" @@ -8294,7 +8397,7 @@ msgstr "Biletiniz" msgid "Your tickets have been confirmed." msgstr "Biletleriniz onaylandı." -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "KDV numaranız kaydettiğinizde otomatik olarak doğrulanacaktır" diff --git a/frontend/src/locales/vi.po b/frontend/src/locales/vi.po index d171bc20c6..6077e3258d 100644 --- a/frontend/src/locales/vi.po +++ b/frontend/src/locales/vi.po @@ -293,6 +293,7 @@ msgstr "Chấp nhận lời mời" msgid "Access Denied" msgstr "Truy cập bị từ chối" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "Tài khoản" msgid "Account already connected!" msgstr "Tài khoản đã được kết nối!" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "Tên tài khoản" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "Quản trị viên" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "Bảng Điều Khiển Quản Trị" @@ -663,6 +672,10 @@ msgstr "Mọi thắc mắc từ chủ sở hữu sản phẩm sẽ được gử msgid "Appearance" msgstr "Giao diện" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "đã được áp dụng" @@ -971,6 +984,10 @@ msgstr "Công ty TNHH Awesome Events" msgid "Awesome Organizer Ltd." msgstr "Nhà tổ chức tuyệt vời Ltd." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "Tiếng Bồ Đào Nha Brazil" msgid "Business" msgstr "Kinh doanh" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "Nhãn nút" @@ -1909,6 +1930,10 @@ msgstr "Tạo sự kiện đầu tiên để bắt đầu bán vé và quản l msgid "Create your own event" msgstr "Tạo sự kiện của riêng bạn" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "Đang tạo sự kiện..." @@ -1932,6 +1957,7 @@ msgstr "Nhãn CTA là bắt buộc" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "Phạm vi tùy chỉnh" msgid "Custom template" msgstr "Mẫu tùy chỉnh" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "Khách hàng" @@ -2082,6 +2109,7 @@ msgstr "Tối" msgid "Dashboard" msgstr "Dashboard" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2325,6 +2353,8 @@ msgstr "Ưu đãi sớm" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "Chỉnh sửa" @@ -2442,6 +2472,7 @@ msgstr "Danh Sách Đăng Ký Đủ Điều Kiện" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2657,6 +2688,7 @@ msgstr "Doanh nghiệp đã đăng ký VAT EU: Áp dụng cơ chế đảo ngư msgid "EUR" msgstr "EUR" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2822,6 +2854,7 @@ msgstr "Địa Điểm Sự Kiện" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3110,6 +3143,10 @@ msgstr "Đã sửa" msgid "Fixed amount" msgstr "Số tiền cố định" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "Phí cố định:" @@ -3594,6 +3631,10 @@ msgstr "Chèn biến" msgid "Instagram" msgstr "Instagram" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "Email không hợp lệ" @@ -3956,7 +3997,7 @@ msgstr "Quản lý Vé" msgid "Manage your account details and default settings" msgstr "Quản lý chi tiết tài khoản của bạn và cài đặt mặc định" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "Quản lý xử lý thanh toán và xem phí nền tảng của bạn" @@ -4153,6 +4194,10 @@ msgstr "Mật khẩu mới" msgid "Nightlife" msgstr "Cuộc sống về đêm" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "Không - Tôi là cá nhân hoặc doanh nghiệp không đăng ký VAT" @@ -4265,6 +4310,10 @@ msgstr "Không tìm thấy nhật ký" msgid "No messages to show" msgstr "Không có tin nhắn nào hiển thị" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "Không có đơn hàng nào để hiển thị" @@ -4353,6 +4402,10 @@ msgstr "Không có sự kiện sắp tới" msgid "No users found" msgstr "Không tìm thấy người dùng" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "Chưa có sự kiện webhook nào được ghi nhận cho điểm cuối này. Sự kiện sẽ xuất hiện ở đây khi chúng được kích hoạt." @@ -4389,6 +4442,11 @@ msgstr "Chưa Đăng Ký" msgid "Not Eligible" msgstr "Không Đủ Điều Kiện" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4635,6 +4693,10 @@ msgstr "Đơn hàng đã được hủy và hoàn tiền. Chủ đơn hàng đã msgid "Order has been canceled and the order owner has been notified." msgstr "Đơn hàng đã bị hủy và chủ sở hữu đơn hàng đã được thông báo." +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "Mã đơn hàng: {0}" @@ -4740,7 +4802,9 @@ msgstr "URL đơn hàng" msgid "Order was cancelled" msgstr "Đơn hàng đã bị hủy" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5025,7 +5089,7 @@ msgstr "Đã nhận thanh toán" msgid "Payment Received" msgstr "Thanh toán đã nhận" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "Cài đặt thanh toán" @@ -5068,6 +5132,10 @@ msgstr "Tỷ lệ phần trăm" msgid "Percentage Amount" msgstr "Tỷ lệ phần trăm" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "Hiệu suất" @@ -5836,7 +5904,7 @@ msgstr "Lưu mẫu" msgid "Save Ticket Design" msgstr "Lưu thiết kế vé" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "Lưu cài đặt VAT" @@ -5886,6 +5954,10 @@ msgstr "Tìm kiếm theo tên, mã đơn hàng #, người tham dự, hoặc ema msgid "Search by name..." msgstr "Tìm kiếm theo tên..." +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "" + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "Tìm kiếm theo chủ đề hoặc nội dung..." @@ -6377,6 +6449,7 @@ msgid "Statistics" msgstr "Thống kê" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6606,6 +6679,7 @@ msgstr "Áo thun" msgid "Takes just a few minutes" msgstr "Chỉ mất vài phút" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7171,6 +7245,7 @@ msgstr "Thời gian được sử dụng" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7196,6 +7271,7 @@ msgstr "Chuyển đổi cột" msgid "Tools" msgstr "Công cụ" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7513,6 +7589,8 @@ msgstr "Quản lý người dùng" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "Người dùng" @@ -7529,14 +7607,26 @@ msgstr "Người dùng có thể thay đổi email của họ trong <0>Cài đ msgid "UTC" msgstr "UTC" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "Thuế VAT" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "" @@ -7546,6 +7636,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "" #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "" @@ -7557,15 +7648,23 @@ msgstr "" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "" @@ -8023,6 +8122,10 @@ msgstr "X (Twitter)" msgid "Year to date" msgstr "Từ đầu năm đến nay" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "" @@ -8296,7 +8399,7 @@ msgstr "Vé của bạn cho" msgid "Your tickets have been confirmed." msgstr "Vé của bạn đã được xác nhận." -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "" diff --git a/frontend/src/locales/zh-cn.po b/frontend/src/locales/zh-cn.po index caa6d79a12..f40a26722c 100644 --- a/frontend/src/locales/zh-cn.po +++ b/frontend/src/locales/zh-cn.po @@ -293,6 +293,7 @@ msgstr "接受邀请" msgid "Access Denied" msgstr "访问被拒绝" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "账户" msgid "Account already connected!" msgstr "账户已连接!" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "账户名称" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "管理员" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "管理仪表板" @@ -663,6 +672,10 @@ msgstr "产品持有者的任何查询都将发送到此电子邮件地址。此 msgid "Appearance" msgstr "外观" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "应用" @@ -971,6 +984,10 @@ msgstr "精彩活动有限公司" msgid "Awesome Organizer Ltd." msgstr "Awesome Organizer Ltd." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "巴西葡萄牙语" msgid "Business" msgstr "商务" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "按钮标签" @@ -1909,6 +1930,10 @@ msgstr "创建您的第一个活动以开始售票并管理参与者。" msgid "Create your own event" msgstr "创建您自己的活动" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "正在创建活动..." @@ -1932,6 +1957,7 @@ msgstr "CTA标签是必需的" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "自定义范围" msgid "Custom template" msgstr "自定义模板" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "客户" @@ -2082,6 +2109,7 @@ msgstr "深色" msgid "Dashboard" msgstr "Dashboard" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2325,6 +2353,8 @@ msgstr "早起的鸟儿" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "编辑" @@ -2442,6 +2472,7 @@ msgstr "符合条件的签到列表" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2657,6 +2688,7 @@ msgstr "欧盟增值税注册企业:适用反向收费机制(0% - 增值税指 msgid "EUR" msgstr "欧元" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2822,6 +2854,7 @@ msgstr "活动场地" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3110,6 +3143,10 @@ msgstr "固定式" msgid "Fixed amount" msgstr "固定金额" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "固定费用:" @@ -3594,6 +3631,10 @@ msgstr "插入变量" msgid "Instagram" msgstr "Instagram" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "无效邮箱" @@ -3956,7 +3997,7 @@ msgstr "管理机票" msgid "Manage your account details and default settings" msgstr "管理账户详情和默认设置" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "管理您的支付处理并查看平台费用" @@ -4153,6 +4194,10 @@ msgstr "新密码" msgid "Nightlife" msgstr "夜生活" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "否 - 我是个人或未注册增值税的企业" @@ -4265,6 +4310,10 @@ msgstr "未找到日志" msgid "No messages to show" msgstr "无信息显示" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "无订单显示" @@ -4353,6 +4402,10 @@ msgstr "没有即将到来的活动" msgid "No users found" msgstr "未找到用户" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "此端点尚未记录任何 Webhook 事件。事件触发后将显示在此处。" @@ -4389,6 +4442,11 @@ msgstr "未签到" msgid "Not Eligible" msgstr "不符合条件" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4636,6 +4694,10 @@ msgstr "订单已取消并退款。订单所有者已收到通知。" msgid "Order has been canceled and the order owner has been notified." msgstr "订单已取消,并已通知订单所有者。" +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "订单号:{0}" @@ -4741,7 +4803,9 @@ msgstr "订单链接" msgid "Order was cancelled" msgstr "订单已被取消" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5026,7 +5090,7 @@ msgstr "已收到付款" msgid "Payment Received" msgstr "已收到付款" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "支付设置" @@ -5069,6 +5133,10 @@ msgstr "百分比" msgid "Percentage Amount" msgstr "百分比 金额" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "绩效" @@ -5835,7 +5903,7 @@ msgstr "保存模板" msgid "Save Ticket Design" msgstr "保存票券设计" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "保存增值税设置" @@ -5885,6 +5953,10 @@ msgstr "按姓名、订单号、参与者号或电子邮件搜索..." msgid "Search by name..." msgstr "按名称搜索..." +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "" + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "按主题或内容搜索..." @@ -6376,6 +6448,7 @@ msgid "Statistics" msgstr "统计数据" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6605,6 +6678,7 @@ msgstr "T恤衫" msgid "Takes just a few minutes" msgstr "只需几分钟" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7170,6 +7244,7 @@ msgstr "使用次数" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7195,6 +7270,7 @@ msgstr "切换列" msgid "Tools" msgstr "工具" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7512,6 +7588,8 @@ msgstr "用户管理" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "用户" @@ -7528,14 +7606,26 @@ msgstr "用户可在 <0>\"配置文件设置\" 中更改自己的电子邮 msgid "UTC" msgstr "世界协调时" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "有效的增值税号码" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "增值税" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "增值税信息" @@ -7545,6 +7635,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "根据您的增值税注册状态,平台费用可能需要缴纳增值税。请填写下面的增值税信息部分。" #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "增值税号码" @@ -7556,15 +7647,23 @@ msgstr "" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "增值税号码验证失败。请检查您的号码并重试。" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "增值税注册信息" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "增值税设置已成功保存并验证" @@ -8022,6 +8121,10 @@ msgstr "X(推特)" msgid "Year to date" msgstr "年度至今" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "是 - 我有有效的欧盟增值税注册号码" @@ -8295,7 +8398,7 @@ msgstr "您的入场券" msgid "Your tickets have been confirmed." msgstr "您的门票已确认。" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "保存时将自动验证您的增值税号码" diff --git a/frontend/src/locales/zh-hk.po b/frontend/src/locales/zh-hk.po index a82bb1f0c8..5fe128d385 100644 --- a/frontend/src/locales/zh-hk.po +++ b/frontend/src/locales/zh-hk.po @@ -293,6 +293,7 @@ msgstr "接受邀請" msgid "Access Denied" msgstr "訪問被拒絕" +#: src/components/common/AdminOrdersTable/index.tsx:68 #: src/components/routes/account/ManageAccount/index.tsx:24 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:53 msgid "Account" @@ -302,10 +303,18 @@ msgstr "賬户" msgid "Account already connected!" msgstr "帳戶已連接!" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:66 +msgid "Account Information" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:62 msgid "Account Name" msgstr "賬户名稱" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:42 +msgid "Account not found" +msgstr "" + #: src/components/common/GlobalMenu/index.tsx:45 #: src/components/routes/account/ManageAccount/index.tsx:19 msgid "Account Settings" @@ -484,7 +493,7 @@ msgid "Admin" msgstr "管理員" #: src/components/common/GlobalMenu/index.tsx:61 -#: src/components/layouts/Admin/index.tsx:22 +#: src/components/layouts/Admin/index.tsx:23 #: src/components/routes/admin/Dashboard/index.tsx:42 msgid "Admin Dashboard" msgstr "管理儀表板" @@ -663,6 +672,10 @@ msgstr "產品持有者的任何查詢都將發送到此電子郵件地址。此 msgid "Appearance" msgstr "外觀" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:120 +msgid "Application Fees" +msgstr "" + #: src/components/routes/product-widget/SelectProducts/index.tsx:554 msgid "applied" msgstr "應用" @@ -971,6 +984,10 @@ msgstr "Awesome Events 有限公司" msgid "Awesome Organizer Ltd." msgstr "Awesome Organizer Ltd." +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:57 +msgid "Back to Accounts" +msgstr "" + #: src/components/forms/StripeCheckoutForm/index.tsx:108 #: src/components/routes/product-widget/CollectInformation/index.tsx:323 #: src/components/routes/product-widget/CollectInformation/index.tsx:353 @@ -1035,6 +1052,10 @@ msgstr "巴西葡萄牙語" msgid "Business" msgstr "商務" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:188 +msgid "Business Name" +msgstr "" + #: src/components/common/EmailTemplateEditor/CTAConfiguration.tsx:27 msgid "Button Label" msgstr "按鈕標籤" @@ -1909,6 +1930,10 @@ msgstr "建立您的第一個活動以開始銷售門票並管理參加者。" msgid "Create your own event" msgstr "建立您自己的活動" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:75 +msgid "Created" +msgstr "" + #: src/components/routes/welcome/index.tsx:407 msgid "Creating Event..." msgstr "建立緊活動..." @@ -1932,6 +1957,7 @@ msgstr "CTA標籤是必需的" #: src/components/common/OrganizerReportTable/index.tsx:261 #: src/components/forms/OrganizerForm/index.tsx:49 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:73 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:92 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:115 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:51 #: src/components/routes/organizer/Reports/TaxSummaryReport/index.tsx:33 @@ -1969,6 +1995,7 @@ msgstr "自定義範圍" msgid "Custom template" msgstr "自定義範本" +#: src/components/common/AdminOrdersTable/index.tsx:69 #: src/components/common/OrdersTable/index.tsx:200 msgid "Customer" msgstr "客户" @@ -2082,6 +2109,7 @@ msgstr "深色" msgid "Dashboard" msgstr "Dashboard" +#: src/components/common/AdminOrdersTable/index.tsx:90 #: src/components/common/OrderDetails/index.tsx:39 #: src/components/forms/QuestionForm/index.tsx:136 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:56 @@ -2325,6 +2353,8 @@ msgstr "早起的鳥兒" #: src/components/common/TaxAndFeeList/index.tsx:65 #: src/components/modals/ManageAttendeeModal/index.tsx:221 #: src/components/modals/ManageOrderModal/index.tsx:203 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:127 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:162 msgid "Edit" msgstr "編輯" @@ -2442,6 +2472,7 @@ msgstr "符合條件的簽到列表" #: src/components/forms/AffiliateForm/index.tsx:89 #: src/components/modals/EditUserModal/index.tsx:80 #: src/components/modals/InviteUserModal/index.tsx:61 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:71 #: src/components/routes/auth/AcceptInvitation/index.tsx:99 #: src/components/routes/auth/Login/index.tsx:92 #: src/components/routes/auth/Register/index.tsx:98 @@ -2657,6 +2688,7 @@ msgstr "歐盟增值稅註冊企業:適用反向收費機制(0% - 增值稅 msgid "EUR" msgstr "歐元" +#: src/components/common/AdminOrdersTable/index.tsx:70 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:34 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:35 #: src/components/common/Editor/Controls/InsertLiquidVariableControl.tsx:36 @@ -2822,6 +2854,7 @@ msgstr "活動場地" #: src/components/layouts/Admin/index.tsx:16 #: src/components/layouts/OrganizerLayout/index.tsx:81 #: src/components/layouts/OrganizerLayout/index.tsx:141 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:102 #: src/components/routes/admin/Events/index.tsx:77 #: src/components/routes/organizer/Events/index.tsx:43 msgid "Events" @@ -3110,6 +3143,10 @@ msgstr "固定式" msgid "Fixed amount" msgstr "固定金額" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:133 +msgid "Fixed Fee" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:274 msgid "Fixed Fee:" msgstr "固定費用:" @@ -3594,6 +3631,10 @@ msgstr "插入變數" msgid "Instagram" msgstr "Instagram" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Invalid" +msgstr "" + #: src/components/common/ContactOrganizerModal/index.tsx:35 msgid "Invalid email" msgstr "無效電郵" @@ -3956,7 +3997,7 @@ msgstr "管理機票" msgid "Manage your account details and default settings" msgstr "管理賬户詳情和默認設置" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:789 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:794 msgid "Manage your payment processing and view platform fees" msgstr "管理您的支付處理並查看平台費用" @@ -4153,6 +4194,10 @@ msgstr "新密碼" msgid "Nightlife" msgstr "夜生活" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "No" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:113 msgid "No - I'm an individual or non-VAT registered business" msgstr "否 - 我是個人或非增值稅註冊企業" @@ -4265,6 +4310,10 @@ msgstr "未找到日誌" msgid "No messages to show" msgstr "無信息顯示" +#: src/components/common/AdminOrdersTable/index.tsx:20 +msgid "No orders found" +msgstr "" + #: src/components/common/OrdersTable/index.tsx:459 msgid "No orders to show" msgstr "無訂單顯示" @@ -4353,6 +4402,10 @@ msgstr "沒有即將舉行的活動" msgid "No users found" msgstr "未找到用戶" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:202 +msgid "No VAT settings configured" +msgstr "" + #: src/components/modals/WebhookLogsModal/index.tsx:180 msgid "No webhook events have been recorded for this endpoint yet. Events will appear here once they are triggered." msgstr "此端點尚未記錄任何 Webhook 事件。事件觸發後將顯示在此處。" @@ -4389,6 +4442,11 @@ msgstr "未簽到" msgid "Not Eligible" msgstr "不符合條件" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:137 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:145 +msgid "Not set" +msgstr "" + #: src/components/modals/ManageAttendeeModal/index.tsx:130 #: src/components/modals/ManageOrderModal/index.tsx:164 msgid "Notes" @@ -4635,6 +4693,10 @@ msgstr "訂單已取消並退款。訂單所有者已收到通知。" msgid "Order has been canceled and the order owner has been notified." msgstr "訂單已取消,並已通知訂單所有者。" +#: src/components/common/AdminOrdersTable/index.tsx:65 +msgid "Order ID" +msgstr "" + #: src/components/routes/organizer/OrganizerDashboard/index.tsx:277 msgid "Order ID: {0}" msgstr "訂單編號:{0}" @@ -4740,7 +4802,9 @@ msgstr "訂單連結" msgid "Order was cancelled" msgstr "訂單已被取消" +#: src/components/layouts/Admin/index.tsx:17 #: src/components/layouts/Event/index.tsx:100 +#: src/components/routes/admin/Orders/index.tsx:44 #: src/components/routes/event/orders.tsx:113 #: src/components/routes/organizer/Reports/EventsPerformanceReport/index.tsx:103 #: src/components/routes/organizer/Reports/RevenueSummaryReport/index.tsx:60 @@ -5025,7 +5089,7 @@ msgstr "已收到付款" msgid "Payment Received" msgstr "已收到付款" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:788 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/index.tsx:793 msgid "Payment Settings" msgstr "支付設置" @@ -5068,6 +5132,10 @@ msgstr "百分比" msgid "Percentage Amount" msgstr "百分比 金額" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:141 +msgid "Percentage Fee" +msgstr "" + #: src/components/common/AffiliateTable/index.tsx:84 msgid "Performance" msgstr "表現" @@ -5834,7 +5902,7 @@ msgstr "儲存範本" msgid "Save Ticket Design" msgstr "儲存門票設計" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:164 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:166 msgid "Save VAT Settings" msgstr "儲存增值稅設定" @@ -5884,6 +5952,10 @@ msgstr "按姓名、訂單號、參與者號或電子郵件搜索..." msgid "Search by name..." msgstr "按名稱搜索..." +#: src/components/routes/admin/Orders/index.tsx:47 +msgid "Search by order ID, customer name, or email..." +msgstr "" + #: src/components/routes/event/messages.tsx:34 msgid "Search by subject or content..." msgstr "按主題或內容搜索..." @@ -6375,6 +6447,7 @@ msgid "Statistics" msgstr "統計數據" #: src/components/common/AdminEventsTable/index.tsx:107 +#: src/components/common/AdminOrdersTable/index.tsx:82 #: src/components/common/AffiliateTable/index.tsx:83 #: src/components/common/AttendeeTable/index.tsx:274 #: src/components/common/OrderDetails/index.tsx:51 @@ -6604,6 +6677,7 @@ msgstr "T恤衫" msgid "Takes just a few minutes" msgstr "只需幾分鐘" +#: src/components/common/AdminOrdersTable/index.tsx:81 #: src/components/common/OrdersTable/index.tsx:351 #: src/components/forms/TaxAndFeeForm/index.tsx:12 #: src/components/forms/TaxAndFeeForm/index.tsx:39 @@ -7169,6 +7243,7 @@ msgstr "使用次數" #: src/components/forms/OrganizerForm/index.tsx:58 #: src/components/routes/account/ManageAccount/sections/AccountSettings/index.tsx:82 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:83 #: src/components/routes/auth/AcceptInvitation/index.tsx:106 #: src/components/routes/event/Settings/Sections/EventDetailsForm/index.tsx:124 #: src/components/routes/organizer/Settings/Sections/BasicSettings/index.tsx:125 @@ -7194,6 +7269,7 @@ msgstr "切換欄位" msgid "Tools" msgstr "工具" +#: src/components/common/AdminOrdersTable/index.tsx:78 #: src/components/common/InlineOrderSummary/index.tsx:156 #: src/components/common/OrderSummary/index.tsx:92 msgid "Total" @@ -7511,6 +7587,8 @@ msgstr "用户管理" #: src/components/common/AdminAccountsTable/index.tsx:78 #: src/components/layouts/Admin/index.tsx:15 #: src/components/routes/account/ManageAccount/index.tsx:32 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:109 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:210 #: src/components/routes/admin/Users/index.tsx:57 msgid "Users" msgstr "用户" @@ -7527,14 +7605,26 @@ msgstr "用户可在 <0>\"配置文件設置\" 中更改自己的電子郵 msgid "UTC" msgstr "世界協調時" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:138 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:183 +msgid "Valid" +msgstr "" + +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:139 msgid "Valid VAT number" msgstr "有效的增值稅號碼" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:181 +msgid "Validated" +msgstr "" + #: src/components/forms/TaxAndFeeForm/index.tsx:62 msgid "VAT" msgstr "增值税" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:194 +msgid "VAT Country" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:30 msgid "VAT Information" msgstr "增值稅資料" @@ -7544,6 +7634,7 @@ msgid "VAT may be applied to platform fees depending on your VAT registration st msgstr "根據您的增值稅註冊狀態,平台費用可能需要繳納增值稅。請填寫以下增值稅資料部分。" #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:125 +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:177 msgid "VAT Number" msgstr "增值稅號碼" @@ -7555,15 +7646,23 @@ msgstr "" msgid "VAT number must start with a 2-letter country code followed by 8-15 alphanumeric characters (e.g., DE123456789)" msgstr "" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:151 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:153 msgid "VAT number validation failed. Please check your number and try again." msgstr "增值稅號碼驗證失敗。請檢查您的號碼並重試。" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:169 +msgid "VAT Registered" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/index.tsx:44 #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsModal.tsx:18 msgid "VAT Registration Information" msgstr "增值稅登記資料" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:155 +msgid "VAT Settings" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:84 msgid "VAT settings saved and validated successfully" msgstr "增值稅設定已成功儲存並驗證" @@ -8021,6 +8120,10 @@ msgstr "X(Twitter)" msgid "Year to date" msgstr "年度至今" +#: src/components/routes/admin/Accounts/AccountDetail/index.tsx:171 +msgid "Yes" +msgstr "" + #: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:117 msgid "Yes - I have a valid EU VAT registration number" msgstr "" @@ -8294,7 +8397,7 @@ msgstr "您的入場券" msgid "Your tickets have been confirmed." msgstr "您的門票已確認。" -#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:168 +#: src/components/routes/account/ManageAccount/sections/PaymentSettings/VatSettings/VatSettingsForm.tsx:170 msgid "Your VAT number will be validated automatically when you save" msgstr "" diff --git a/frontend/src/mutations/useAssignConfiguration.ts b/frontend/src/mutations/useAssignConfiguration.ts new file mode 100644 index 0000000000..6be5de30bf --- /dev/null +++ b/frontend/src/mutations/useAssignConfiguration.ts @@ -0,0 +1,14 @@ +import {useMutation, useQueryClient} from "@tanstack/react-query"; +import {adminClient, AssignConfigurationData} from "../api/admin.client"; +import {IdParam} from "../types"; + +export const useAssignConfiguration = (accountId: IdParam) => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (data: AssignConfigurationData) => adminClient.assignConfiguration(accountId, data), + onSuccess: () => { + queryClient.invalidateQueries({queryKey: ['admin', 'account', accountId]}); + }, + }); +}; diff --git a/frontend/src/mutations/useCreateConfiguration.ts b/frontend/src/mutations/useCreateConfiguration.ts new file mode 100644 index 0000000000..8b561ee5dd --- /dev/null +++ b/frontend/src/mutations/useCreateConfiguration.ts @@ -0,0 +1,13 @@ +import {useMutation, useQueryClient} from "@tanstack/react-query"; +import {adminClient, CreateConfigurationData} from "../api/admin.client"; + +export const useCreateConfiguration = () => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (data: CreateConfigurationData) => adminClient.createConfiguration(data), + onSuccess: () => { + queryClient.invalidateQueries({queryKey: ['admin', 'configurations']}); + }, + }); +}; diff --git a/frontend/src/mutations/useDeleteConfiguration.ts b/frontend/src/mutations/useDeleteConfiguration.ts new file mode 100644 index 0000000000..0afd7871f1 --- /dev/null +++ b/frontend/src/mutations/useDeleteConfiguration.ts @@ -0,0 +1,14 @@ +import {useMutation, useQueryClient} from "@tanstack/react-query"; +import {adminClient} from "../api/admin.client"; +import {IdParam} from "../types"; + +export const useDeleteConfiguration = () => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (configurationId: IdParam) => adminClient.deleteConfiguration(configurationId), + onSuccess: () => { + queryClient.invalidateQueries({queryKey: ['admin', 'configurations']}); + }, + }); +}; diff --git a/frontend/src/mutations/useUpdateAccountConfiguration.ts b/frontend/src/mutations/useUpdateAccountConfiguration.ts new file mode 100644 index 0000000000..1865970089 --- /dev/null +++ b/frontend/src/mutations/useUpdateAccountConfiguration.ts @@ -0,0 +1,18 @@ +import {useMutation, useQueryClient} from '@tanstack/react-query'; +import {adminClient, UpdateAccountConfigurationData} from '../api/admin.client'; +import {IdParam} from '../types'; + +export const useUpdateAccountConfiguration = (accountId: IdParam) => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: async (data: UpdateAccountConfigurationData) => { + return await adminClient.updateAccountConfiguration(accountId, data); + }, + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: ['admin', 'account', accountId], + }); + }, + }); +}; diff --git a/frontend/src/mutations/useUpdateAdminAccountVatSettings.ts b/frontend/src/mutations/useUpdateAdminAccountVatSettings.ts new file mode 100644 index 0000000000..9b0454efd1 --- /dev/null +++ b/frontend/src/mutations/useUpdateAdminAccountVatSettings.ts @@ -0,0 +1,18 @@ +import {useMutation, useQueryClient} from '@tanstack/react-query'; +import {adminClient, UpdateAccountVatSettingsData} from '../api/admin.client'; +import {IdParam} from '../types'; + +export const useUpdateAdminAccountVatSettings = (accountId: IdParam) => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: async (data: UpdateAccountVatSettingsData) => { + return await adminClient.updateAccountVatSettings(accountId, data); + }, + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: ['admin', 'account', accountId], + }); + }, + }); +}; diff --git a/frontend/src/mutations/useUpdateConfiguration.ts b/frontend/src/mutations/useUpdateConfiguration.ts new file mode 100644 index 0000000000..3ba99fed1e --- /dev/null +++ b/frontend/src/mutations/useUpdateConfiguration.ts @@ -0,0 +1,14 @@ +import {useMutation, useQueryClient} from "@tanstack/react-query"; +import {adminClient, UpdateConfigurationData} from "../api/admin.client"; +import {IdParam} from "../types"; + +export const useUpdateConfiguration = (configurationId: IdParam) => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (data: UpdateConfigurationData) => adminClient.updateConfiguration(configurationId, data), + onSuccess: () => { + queryClient.invalidateQueries({queryKey: ['admin', 'configurations']}); + }, + }); +}; diff --git a/frontend/src/queries/useGetAdminAccount.ts b/frontend/src/queries/useGetAdminAccount.ts new file mode 100644 index 0000000000..2c2a7f8fa8 --- /dev/null +++ b/frontend/src/queries/useGetAdminAccount.ts @@ -0,0 +1,11 @@ +import {useQuery} from "@tanstack/react-query"; +import {adminClient} from "../api/admin.client"; +import {IdParam} from "../types"; + +export const useGetAdminAccount = (accountId: IdParam) => { + return useQuery({ + queryKey: ['admin', 'account', accountId], + queryFn: () => adminClient.getAccount(accountId), + enabled: !!accountId, + }); +}; diff --git a/frontend/src/queries/useGetAllAdminOrders.ts b/frontend/src/queries/useGetAllAdminOrders.ts new file mode 100644 index 0000000000..8c749f984d --- /dev/null +++ b/frontend/src/queries/useGetAllAdminOrders.ts @@ -0,0 +1,11 @@ +import {useQuery} from "@tanstack/react-query"; +import {adminClient, GetAllOrdersParams} from "../api/admin.client"; + +export const GET_ALL_ORDERS_QUERY_KEY = 'getAllOrders'; + +export const useGetAllAdminOrders = (params: GetAllOrdersParams = {}) => { + return useQuery({ + queryKey: [GET_ALL_ORDERS_QUERY_KEY, params], + queryFn: async () => await adminClient.getAllOrders(params), + }); +}; diff --git a/frontend/src/queries/useGetAllConfigurations.ts b/frontend/src/queries/useGetAllConfigurations.ts new file mode 100644 index 0000000000..c141d0029b --- /dev/null +++ b/frontend/src/queries/useGetAllConfigurations.ts @@ -0,0 +1,9 @@ +import {useQuery} from "@tanstack/react-query"; +import {adminClient} from "../api/admin.client"; + +export const useGetAllConfigurations = () => { + return useQuery({ + queryKey: ['admin', 'configurations'], + queryFn: () => adminClient.getAllConfigurations(), + }); +}; diff --git a/frontend/src/router.tsx b/frontend/src/router.tsx index f6c70b3cc7..797717186f 100644 --- a/frontend/src/router.tsx +++ b/frontend/src/router.tsx @@ -156,6 +156,13 @@ export const router: RouteObject[] = [ return {Component: Accounts.default}; } }, + { + path: "accounts/:accountId", + async lazy() { + const AccountDetail = await import("./components/routes/admin/Accounts/AccountDetail"); + return {Component: AccountDetail.default}; + } + }, { path: "users", async lazy() { @@ -169,6 +176,20 @@ export const router: RouteObject[] = [ const Events = await import("./components/routes/admin/Events"); return {Component: Events.default}; } + }, + { + path: "orders", + async lazy() { + const Orders = await import("./components/routes/admin/Orders"); + return {Component: Orders.default}; + } + }, + { + path: "configurations", + async lazy() { + const Configurations = await import("./components/routes/admin/Configurations"); + return {Component: Configurations.default}; + } } ] },