From 80abf638fbfeda3c482a65139f045eb8104bd33e Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Fri, 26 Jun 2026 15:44:38 +0330 Subject: [PATCH] order --- src/modules/order/dto/create-order.dto.ts | 5 +++++ src/modules/order/providers/order.service.ts | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/modules/order/dto/create-order.dto.ts b/src/modules/order/dto/create-order.dto.ts index 6add827..cc0dfd1 100644 --- a/src/modules/order/dto/create-order.dto.ts +++ b/src/modules/order/dto/create-order.dto.ts @@ -15,6 +15,11 @@ export class CreateOrderAsAdminDto { @IsOptional() userId?: string; + @ApiPropertyOptional({ example: '' }) + @IsString() + @IsOptional() + designerId?: string; + @ApiPropertyOptional({ example: '' }) @IsString() @IsOptional() diff --git a/src/modules/order/providers/order.service.ts b/src/modules/order/providers/order.service.ts index e9f6258..aab198b 100644 --- a/src/modules/order/providers/order.service.ts +++ b/src/modules/order/providers/order.service.ts @@ -24,6 +24,7 @@ import { OrderPrintRepository } from '../repositories/order-print.repository'; import { Request } from 'src/modules/request/entities/request.entity'; import { Invoice } from 'src/modules/invoice/entities/invoice.entity'; import { OrderCreatedEvent } from '../events/order.events'; +import { InvoiceConfirmStatusEnum } from 'src/modules/invoice/enum/invoice-confirm-status.enum'; @Injectable() export class OrderService { @@ -48,6 +49,10 @@ export class OrderService { throw new NotFoundException(`Invoice item with ID ${dto.invoiceItemId} not found.`); } + if (!invoiceItem.confirmedAt ) { + throw new BadRequestException(`Invoice item is not confirmed`); + } + user = invoiceItem.invoice.user } @@ -83,9 +88,15 @@ export class OrderService { } } + let designer = null; + if (dto.designerId) { + designer = await this.adminService.findOrFail(dto.designerId); + } + const order = this.em.create(Order, { user, creator, + designer, type, product: product ?? null, title: dto.title,