diff --git a/backend/src/controller/OrdersController.ts b/backend/src/controller/OrdersController.ts index fe0b353049a8b2cf3f1453019a60e2bc0924e279..2c58e20e0c77a206d537a9f9d6bf614ef0cfd37e 100644 --- a/backend/src/controller/OrdersController.ts +++ b/backend/src/controller/OrdersController.ts @@ -8,6 +8,12 @@ class OrdersController { try { const new_order = new Orders(); new_order.id = req.body.id; + if (new_order.id == null || new_order.id == undefined) { + await new OrdersRepo().getMaxId().then((value: number) => { + new_order.id = value + 1; + }); + } + new_order.id_table = req.body.id_table; new_order.id_tenant = req.body.id_tenant; new_order.status = req.body.status; diff --git a/backend/src/controller/PaymentsController.ts b/backend/src/controller/PaymentsController.ts index 131c701e679a49fd06e19daec9d8128eae11cfeb..3bec7c73af9c04eda9c804e211ea7b2303c020ef 100644 --- a/backend/src/controller/PaymentsController.ts +++ b/backend/src/controller/PaymentsController.ts @@ -7,6 +7,11 @@ class PaymentsController { try { const new_payment = new Payments(); new_payment.id = req.body.id; + if (new_payment.id == null || new_payment.id == undefined) { + await new PaymentsRepo().getMaxId().then((value: number) => { + new_payment.id = value + 1; + }); + } new_payment.id_order = req.body.id_order; new_payment.status = req.body.status; diff --git a/backend/src/repository/OrdersRepo.ts b/backend/src/repository/OrdersRepo.ts index 8760b7005aabf25c2857232ccd360912322bdbfc..8793ef66cb91e48489dec4e4164ea1f301689fb6 100644 --- a/backend/src/repository/OrdersRepo.ts +++ b/backend/src/repository/OrdersRepo.ts @@ -1,5 +1,6 @@ // OrdersRepo.ts /* eslint-disable no-unused-vars */ +import { type } from "os"; import { Orders } from "../model/Orders"; interface IOrdersRepo { @@ -31,6 +32,18 @@ export default class OrdersRepo implements IOrdersRepo { } } + async getMaxId(): Promise<number> { + try { + const maxId = await Orders.max("id"); + if (maxId != null && typeof maxId === "number") { + return maxId; + } + return 0; + } catch (error: any) { + throw new Error(`Error while fetching max id: ${error.message}`); + } + } + async createOrder(order: Orders): Promise<void> { try { await Orders.create({ diff --git a/backend/src/repository/PaymentsRepo.ts b/backend/src/repository/PaymentsRepo.ts index 7d92940cf65e7a6c2d15440a238bbfff36915bce..296d92404b8ca4a85fa47a470a0700bc5b9dccb2 100644 --- a/backend/src/repository/PaymentsRepo.ts +++ b/backend/src/repository/PaymentsRepo.ts @@ -33,6 +33,18 @@ export default class PaymentsRepo implements IPaymentsRepo { } } + async getMaxId(): Promise<number> { + try { + const maxId = await Payments.max("id"); + if (maxId != null && typeof maxId === "number") { + return maxId; + } + return 0; + } catch (error: any) { + throw new Error(`Error while fetching max id: ${error.message}`); + } + } + async createPayment(payment: Payments): Promise<void> { try { await Payments.create({