diff --git a/src/service/invoice-service.ts b/src/service/invoice-service.ts index 3cd4e2f5..24c07a46 100644 --- a/src/service/invoice-service.ts +++ b/src/service/invoice-service.ts @@ -413,7 +413,8 @@ export default class InvoiceService extends WithManager { const transactions = await this.manager.find(Transaction, { where: { id: In(tIds), subTransactions: { subTransactionRows: { invoice: false } } }, - relations }); + relations, + withDeleted: true }); const response: Promise[] = []; transactions.forEach((t) => response.push(transactionService.asTransactionResponse(t))); diff --git a/src/service/transaction-service.ts b/src/service/transaction-service.ts index 4b31fd43..323789c2 100644 --- a/src/service/transaction-service.ts +++ b/src/service/transaction-service.ts @@ -80,6 +80,7 @@ import { } from '../helpers/transaction-mapper'; import ProductCategoryService from './product-category-service'; import WithManager from '../database/with-manager'; +import ProductService from './product-service'; export interface TransactionFilterParameters { transactionId?: number | number[], @@ -137,12 +138,9 @@ export default class TransactionService extends WithManager { public async getTotalCost(rows: SubTransactionRowRequest[]): Promise { // get costs of individual rows const rowCosts = await Promise.all(rows.map(async (row) => { - const rowCost = await this.manager.findOne(ProductRevision, { - where: { - revision: row.product.revision, - product: { id: row.product.id }, - }, - }).then((product) => product.priceInclVat.multiply(row.amount)); + const options = await ProductService.getOptions({ productRevision: row.product.revision, productId: row.product.id }); + const rowCost = await this.manager.findOne(ProductRevision, options) + .then((product) => product.priceInclVat.multiply(row.amount)); return rowCost; })); @@ -205,13 +203,9 @@ export default class TransactionService extends WithManager { } // check if product exists - const product = await this.manager.findOne(ProductRevision, { - where: { - revision: req.product.revision, - product: { id: req.product.id, deletedAt: IsNull() }, - }, - relations: ['product'], - }); + const options = await ProductService.getOptions({ productRevision: req.product.revision, productId: req.product.id }); + options.withDeleted = false; + const product = await this.manager.findOne(ProductRevision, options); if (!product) { return false; } @@ -443,6 +437,8 @@ export default class TransactionService extends WithManager { revision: req.container.revision, container: { id: req.container.id }, }, + withDeleted: true, + relations: ['container'], }); // sub transaction rows @@ -504,13 +500,9 @@ export default class TransactionService extends WithManager { if (!req) { return undefined; } - const product = await this.manager.findOne(ProductRevision, { - where: { - revision: req.product.revision, - product: { id: req.product.id }, - }, - relations: ['vat'], - }); + + const options = await ProductService.getOptions({ productRevision: req.product.revision, productId: req.product.id }); + const product = await this.manager.findOne(ProductRevision, options); return { product, amount: req.amount, subTransaction } as SubTransactionRow; }