diff --git a/src/modules/season-related/season-period/domain/usecases/managers/helpers/validate.helper.ts b/src/modules/season-related/season-period/domain/usecases/managers/helpers/validate.helper.ts index eb233bd..994d287 100644 --- a/src/modules/season-related/season-period/domain/usecases/managers/helpers/validate.helper.ts +++ b/src/modules/season-related/season-period/domain/usecases/managers/helpers/validate.helper.ts @@ -31,7 +31,7 @@ export async function ValidateSeasonPeriodHelper(dataService, data) { query.andWhere('data.id != :dataId', { dataId: data.id }) } - const datas = await query + let datas = await query .andWhere('data.priority = :priority', { priority: priority }) .andWhere( new Brackets(query => { @@ -54,14 +54,25 @@ export async function ValidateSeasonPeriodHelper(dataService, data) { return query; }) ) - .getCount(); + .getMany(); - if (datas > 0) { - throw new UnprocessableEntityException({ - statusCode: HttpStatus.UNPROCESSABLE_ENTITY, - message: `Failed! there is another season period in same range date`, - error: 'Unprocessable Entity', - }); + if (priority == 2) { + datas = datas?.filter(item => { + const sameDate = item.days.filter((day) => { + return data.days.some((day2) => { + return day == day2; + }); + }); + return sameDate.length > 0 + }) + } + + if (datas.length > 0) { + throw new UnprocessableEntityException({ + statusCode: HttpStatus.UNPROCESSABLE_ENTITY, + message: `Failed! there is another season period in same range date`, + error: 'Unprocessable Entity', + }); } return priority;