From 02a7979c6b2ab2f44c7f62a357009e2219cda3b8 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Mon, 16 Mar 2026 10:02:29 +0330 Subject: [PATCH] fix: prohibit adding barname for expired contracts --- src/common/enums/message.enum.ts | 1 + src/modules/barname/barname.service.ts | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/common/enums/message.enum.ts b/src/common/enums/message.enum.ts index 2256b5d..1394522 100755 --- a/src/common/enums/message.enum.ts +++ b/src/common/enums/message.enum.ts @@ -532,6 +532,7 @@ export const enum IndustryMessage { export const enum CompanyMessage { RENT_CONTRACT_IMAGE_IS_REQUIRED="تصویر اجاره نامه الزامی است", RENT_END_IS_REQUIRED="تاریخ پایان قرارداد الزامی است", + RENT_CONTRACT_IS_EXPIRED="تاریخ قرارداد پایان یافته است", ADDRESS_MUST_BE_STRING = "آدرس شرکت باید یک رشته باشد", ADDRESS_REQUIRED = "آدرس شرکت مورد نیاز است", CHIEF_EXECUTIVE_MUST_BE_STRING = "نام مدیرعامل باید یک رشته باشد", diff --git a/src/modules/barname/barname.service.ts b/src/modules/barname/barname.service.ts index 8b5efb1..234f127 100644 --- a/src/modules/barname/barname.service.ts +++ b/src/modules/barname/barname.service.ts @@ -12,6 +12,7 @@ import { BarnameStatus } from "./enums/bill-type.enum"; import { UpdateBarnameAsWatcherDto } from "./dto/update-barname-watcher.dto"; import { RoleEnum } from "../users/enums/role.enum"; import { User } from "../users/entities/user.entity"; +import dayjs from "dayjs"; @Injectable() @@ -30,6 +31,15 @@ export class BarnameService { const company = await this.em.findOne(Company, { business, user: { id: userId }, deletedAt: null }); if (!company) throw new BadRequestException(CompanyMessage.COMPANY_NOT_FOUND); + if (company.isRented) { // validate for rented company + if (!company.rentEndAt) { + throw new BadRequestException(CompanyMessage.RENT_END_IS_REQUIRED) + } + if (dayjs().isAfter(company.rentEndAt)) { + throw new BadRequestException(CompanyMessage.RENT_CONTRACT_IS_EXPIRED) + } + } + const bill = this.em.create(Barname, { carType,