diff --git a/backend/services/falukantService.js b/backend/services/falukantService.js index af78960..7fbeb17 100644 --- a/backend/services/falukantService.js +++ b/backend/services/falukantService.js @@ -1769,19 +1769,16 @@ class FalukantService extends BaseService { return await sequelize.transaction(async (t) => { const user = await getFalukantUserOrFail(hashedUserId, { transaction: t }); - // Prüfe, ob User eine kirchliche Karriere hat (dann nur Direktoren können verkaufen) - const character = await FalukantCharacter.findOne({ where: { userId: user.id }, transaction: t }); - if (character) { - const churchOffice = await ChurchOffice.findOne({ where: { characterId: character.id }, transaction: t }); - if (churchOffice) { - throw new Error('churchCareerNoDirectTransactions'); - } - } - const branch = await getBranchOrFail(user.id, branchId); + // Prüfe, ob User eine kirchliche Karriere hat (dann nur Direktoren können verkaufen) const character = await FalukantCharacter.findOne({ where: { userId: user.id }, transaction: t }); if (!character) throw new Error('No character found for user'); + + const churchOffice = await ChurchOffice.findOne({ where: { characterId: character.id }, transaction: t }); + if (churchOffice) { + throw new Error('churchCareerNoDirectTransactions'); + } const stocks = await FalukantStock.findAll({ where: { branchId: branch.id }, @@ -1880,15 +1877,6 @@ class FalukantService extends BaseService { return await sequelize.transaction(async (t) => { const falukantUser = await getFalukantUserOrFail(hashedUserId, { transaction: t }); - // Prüfe, ob User eine kirchliche Karriere hat (dann nur Direktoren können verkaufen) - const character = await FalukantCharacter.findOne({ where: { userId: falukantUser.id }, transaction: t }); - if (character) { - const churchOffice = await ChurchOffice.findOne({ where: { characterId: character.id }, transaction: t }); - if (churchOffice) { - throw new Error('churchCareerNoDirectTransactions'); - } - } - const branch = await Branch.findOne({ where: { id: branchId, falukantUserId: falukantUser.id }, include: [{ model: FalukantStock, as: 'stocks' }], @@ -1896,8 +1884,15 @@ class FalukantService extends BaseService { }); if (!branch) throw new Error('Branch not found'); const stockIds = branch.stocks.map(s => s.id); + + // Prüfe, ob User eine kirchliche Karriere hat (dann nur Direktoren können verkaufen) const character = await FalukantCharacter.findOne({ where: { userId: falukantUser.id }, transaction: t }); if (!character) throw new Error('No character for user'); + + const churchOffice = await ChurchOffice.findOne({ where: { characterId: character.id }, transaction: t }); + if (churchOffice) { + throw new Error('churchCareerNoDirectTransactions'); + } const inventory = await Inventory.findAll({ where: { stockId: stockIds }, include: [