This commit is contained in:
@@ -38,7 +38,7 @@ export enum PermissionEnum {
|
|||||||
|
|
||||||
MANAGE_FORM_BUILDER = 'manage_form_builder',
|
MANAGE_FORM_BUILDER = 'manage_form_builder',
|
||||||
|
|
||||||
MANAGE_PRINT = 'manage_print'
|
CREATE_PRINT = 'create_print'
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,7 +62,6 @@ export const PermissionTitles: Record<PermissionEnum, string> = {
|
|||||||
[PermissionEnum.MANAGE_PAYMENTS]: 'مدیریت پرداختها',
|
[PermissionEnum.MANAGE_PAYMENTS]: 'مدیریت پرداختها',
|
||||||
[PermissionEnum.MANAGE_SETTINGS]: 'مدیریت تنظیمات',
|
[PermissionEnum.MANAGE_SETTINGS]: 'مدیریت تنظیمات',
|
||||||
[PermissionEnum.MANAGE_FORM_BUILDER]: "مدیریت فرم بیلدر",
|
[PermissionEnum.MANAGE_FORM_BUILDER]: "مدیریت فرم بیلدر",
|
||||||
[PermissionEnum.MANAGE_PRINT]: 'مدیریت فرم پرینت',
|
|
||||||
[PermissionEnum.VIEW_REQUESTS]: "مشاهده همه درخواست سفارش ها",
|
[PermissionEnum.VIEW_REQUESTS]: "مشاهده همه درخواست سفارش ها",
|
||||||
[PermissionEnum.VIEW_All_INVOICED_ORDERS]: "مشاهده همه سفارشات پیش فاکتور شده",
|
[PermissionEnum.VIEW_All_INVOICED_ORDERS]: "مشاهده همه سفارشات پیش فاکتور شده",
|
||||||
[PermissionEnum.VIEW_MY_ASSIGNED_INVOICED_REQUESTS]: "مشاهده همه پیش فاکتور های من",
|
[PermissionEnum.VIEW_MY_ASSIGNED_INVOICED_REQUESTS]: "مشاهده همه پیش فاکتور های من",
|
||||||
@@ -73,4 +72,5 @@ export const PermissionTitles: Record<PermissionEnum, string> = {
|
|||||||
[PermissionEnum.UPDATE_INVOICE]: "",
|
[PermissionEnum.UPDATE_INVOICE]: "",
|
||||||
[PermissionEnum.DELETE_INVOICE]: "",
|
[PermissionEnum.DELETE_INVOICE]: "",
|
||||||
[PermissionEnum.DELETE_ORDER]: "",
|
[PermissionEnum.DELETE_ORDER]: "",
|
||||||
|
[PermissionEnum.CREATE_PRINT]: "ایجاد فرم چاپ",
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -99,9 +99,9 @@ export class OrderController {
|
|||||||
|
|
||||||
@Post('admin/orders/:orderId/print')
|
@Post('admin/orders/:orderId/print')
|
||||||
@UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@Permissions(PermissionEnum.ASSIGN_DESIGNER)
|
@Permissions(PermissionEnum.MANAGE_PRINT)
|
||||||
@ApiOperation({ summary: 'Create order print' })
|
@ApiOperation({ summary: 'Create order print' })
|
||||||
createPrint(@Param('orderId') orderId: string, @Body() body: CreateOrderPrintDto) {
|
createPrint(@Param('orderId') orderId: string, @Body() body: CreateOrderPrintDto) {
|
||||||
// return this.orderService.assignDesigner(orderId, body.designerId);
|
return this.orderService.createPrint(orderId, body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export class OrderPrint extends BaseEntity {
|
|||||||
[OptionalProps]?: 'createdAt' | 'deletedAt'
|
[OptionalProps]?: 'createdAt' | 'deletedAt'
|
||||||
|
|
||||||
@Property({ type: 'json', nullable: true })
|
@Property({ type: 'json', nullable: true })
|
||||||
attributes?: IField[]
|
fileds?: IField[]
|
||||||
|
|
||||||
|
|
||||||
@OneToOne(() => Order, (order) => order.print, { mappedBy: 'print' })
|
@OneToOne(() => Order, (order) => order.print, { mappedBy: 'print' })
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ import { InvoiceItem } from 'src/modules/invoice/entities/invoice-item.entity';
|
|||||||
import { PaginatedResult } from 'src/common/interfaces/pagination.interface';
|
import { PaginatedResult } from 'src/common/interfaces/pagination.interface';
|
||||||
import { UpdateStatusAsDesignerDto } from '../dto/update-status-as-designer.dto';
|
import { UpdateStatusAsDesignerDto } from '../dto/update-status-as-designer.dto';
|
||||||
import { UpdateStatusDto } from '../dto/update-status.dto';
|
import { UpdateStatusDto } from '../dto/update-status.dto';
|
||||||
|
import { CreateOrderPrintDto } from '../dto/create-order-print.dto';
|
||||||
|
import { OrderPrint } from '../entities/print.entity';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class OrderService {
|
export class OrderService {
|
||||||
@@ -233,9 +235,26 @@ export class OrderService {
|
|||||||
return order
|
return order
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async createPrint(orderId: string, dto: CreateOrderPrintDto): Promise<OrderPrint> {
|
||||||
|
const order = await this.findOrderOrFail(orderId);
|
||||||
|
|
||||||
|
if (order.print) {
|
||||||
|
order.print.fileds = dto.fields;
|
||||||
|
await this.em.flush();
|
||||||
|
return order.print;
|
||||||
|
}
|
||||||
|
|
||||||
|
const print = this.em.create(OrderPrint, {
|
||||||
|
order,
|
||||||
|
fileds: dto.fields,
|
||||||
|
});
|
||||||
|
await this.em.persistAndFlush(print);
|
||||||
|
return print;
|
||||||
|
}
|
||||||
|
|
||||||
// -----------Hrlper Methods -----------
|
// -----------Hrlper Methods -----------
|
||||||
async findOrderOrFail(id: string): Promise<Order> {
|
async findOrderOrFail(id: string): Promise<Order> {
|
||||||
const order = await this.em.findOne(Order, { id }, { populate: ['user', 'type', 'product', 'creator'] });
|
const order = await this.em.findOne(Order, { id }, { populate: ['user', 'type', 'product', 'creator', 'print'] });
|
||||||
if (!order) {
|
if (!order) {
|
||||||
throw new NotFoundException(`Order with ID ${id} not found.`);
|
throw new NotFoundException(`Order with ID ${id} not found.`);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user