This commit is contained in:
@@ -4326,6 +4326,16 @@
|
||||
"nullable": true,
|
||||
"mappedType": "text"
|
||||
},
|
||||
"print_invoice": {
|
||||
"name": "print_invoice",
|
||||
"type": "boolean",
|
||||
"unsigned": false,
|
||||
"autoincrement": false,
|
||||
"primary": false,
|
||||
"nullable": false,
|
||||
"default": "false",
|
||||
"mappedType": "boolean"
|
||||
},
|
||||
"table_number": {
|
||||
"name": "table_number",
|
||||
"type": "varchar(255)",
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
import { Migration } from '@mikro-orm/migrations';
|
||||
|
||||
export class Migration20260701083547_addPrintInvoiceToOrders extends Migration {
|
||||
|
||||
override async up(): Promise<void> {
|
||||
this.addSql(`alter table "orders" add column "print_invoice" boolean not null default false;`);
|
||||
}
|
||||
|
||||
override async down(): Promise<void> {
|
||||
this.addSql(`alter table "orders" drop column "print_invoice";`);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
import { IsArray, IsNotEmpty, IsObject, IsOptional, IsString } from 'class-validator';
|
||||
import { IsArray, IsBoolean, IsNotEmpty, IsObject, IsOptional, IsString } from 'class-validator';
|
||||
import { SetCarDeliveryDto } from './set-car-delivery.dto';
|
||||
|
||||
|
||||
@@ -33,6 +33,16 @@ export class SetAllCartParmsDto {
|
||||
@IsString()
|
||||
tableNumber?: string;
|
||||
|
||||
@ApiProperty({
|
||||
description: 'Whether the customer wants a printed invoice',
|
||||
required: false,
|
||||
default: false,
|
||||
example: false,
|
||||
})
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
printInvoice?: boolean;
|
||||
|
||||
@ApiProperty()
|
||||
@IsOptional()
|
||||
@IsObject()
|
||||
|
||||
@@ -19,6 +19,7 @@ export interface Cart {
|
||||
paymentMethodId?: string;
|
||||
deliveryMethodId?: string;
|
||||
description?: string;
|
||||
printInvoice?: boolean;
|
||||
tableNumber?: string;
|
||||
attachments?: string[];
|
||||
paymentDesc?: string;
|
||||
|
||||
@@ -28,7 +28,7 @@ export class CartService {
|
||||
* Set all cart parameters at once
|
||||
*/
|
||||
async setAllCartParams(userId: string, restaurantId: string, params: SetAllCartParmsDto): Promise<Cart> {
|
||||
const { deliveryMethodId, paymentMethodId, addressId, carAddress, description, tableNumber, attachments, paymentDesc } = params;
|
||||
const { deliveryMethodId, paymentMethodId, addressId, carAddress, description, tableNumber, printInvoice, attachments, paymentDesc } = params;
|
||||
|
||||
// get existing cart (or throw)
|
||||
const cart = await this.findOneOrFail(userId, restaurantId);
|
||||
@@ -117,6 +117,10 @@ export class CartService {
|
||||
cart.description = description;
|
||||
}
|
||||
|
||||
if (printInvoice !== undefined) {
|
||||
cart.printInvoice = printInvoice;
|
||||
}
|
||||
|
||||
if (paymentMethod.method === PaymentMethodEnum.CreditCard) {
|
||||
this.validationService.assertCreditCardPaymentDetails(paymentMethod, paymentDesc, attachments);
|
||||
cart.paymentDesc = paymentDesc?.trim() || undefined;
|
||||
|
||||
@@ -92,6 +92,9 @@ export class Order extends BaseEntity {
|
||||
@Property({ type: 'text', nullable: true })
|
||||
description?: string;
|
||||
|
||||
@Property({ type: 'boolean', default: false })
|
||||
printInvoice: boolean = false;
|
||||
|
||||
@Property({ nullable: true })
|
||||
tableNumber?: string;
|
||||
|
||||
|
||||
@@ -87,6 +87,7 @@ export class OrdersService {
|
||||
total: cart.total || 0,
|
||||
totalItems: cart.totalItems || 0,
|
||||
description: cart.description,
|
||||
printInvoice: cart.printInvoice ?? false,
|
||||
tableNumber: cart.tableNumber,
|
||||
status: OrderStatus.PENDING_PAYMENT,
|
||||
history: [{ status: OrderStatus.PENDING_PAYMENT, changedAt: new Date() }],
|
||||
@@ -199,6 +200,7 @@ export class OrdersService {
|
||||
total,
|
||||
totalItems,
|
||||
description: dto.description,
|
||||
printInvoice: false,
|
||||
tableNumber: dto.tableNumber,
|
||||
status: OrderStatus.PENDING_PAYMENT,
|
||||
history: [{ status: OrderStatus.PENDING_PAYMENT, changedAt: new Date() }],
|
||||
|
||||
Reference in New Issue
Block a user