diff --git a/src/time-and-attendance/modules/expenses/services/expense-upsert.service.ts b/src/time-and-attendance/modules/expenses/services/expense-upsert.service.ts index 9687bca..d2c4cb7 100644 --- a/src/time-and-attendance/modules/expenses/services/expense-upsert.service.ts +++ b/src/time-and-attendance/modules/expenses/services/expense-upsert.service.ts @@ -1,6 +1,6 @@ import { CreateExpenseResult, UpdateExpensePayload, UpdateExpenseResult, DeleteExpenseResult, NormalizedExpense } from "src/time-and-attendance/utils/type.utils"; -import { toDateFromString, toStringFromDate } from "src/time-and-attendance/utils/date-time.utils"; +import { toDateFromString, toStringFromDate, weekStartSunday } from "src/time-and-attendance/utils/date-time.utils"; import { Injectable, NotFoundException, Req } from "@nestjs/common"; import { expense_select } from "src/time-and-attendance/utils/selects.utils"; import { PrismaService } from "src/prisma/prisma.service"; @@ -27,13 +27,16 @@ export class ExpenseUpsertService { //normalize strings and dates const normed_expense = this.normalizeExpenseDto(dto); + //finds the timesheet using expense.date + const start_date = weekStartSunday(normed_expense.date); + //parse numbers const parsed_amount = this.parseOptionalNumber(dto.amount, "amount"); const parsed_mileage = this.parseOptionalNumber(dto.mileage, "mileage"); const parsed_attachment = this.parseOptionalNumber(dto.attachment, "attachment"); const timesheet = await this.prisma.timesheets.findFirst({ - where: { id: dto.timesheet_id, employee_id: employee_id }, + where: { start_date, employee_id }, select: { id: true, employee_id: true }, }); if(!timesheet) throw new NotFoundException(`Timesheet with id ${dto.timesheet_id} not found`);