Skip to content

Commit ee22db0

Browse files
authored
Merge pull request #2021 from Northeastern-Electric-Racing/#1661-add-auto-incrementing-int-in-RR
#1661: added auto-incrementing identifier in RR
2 parents fc18747 + 5456fd2 commit ee22db0

6 files changed

Lines changed: 59 additions & 0 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
Warnings:
3+
4+
- A unique constraint covering the columns `[identifier]` on the table `Reimbursement_Request` will be added. If there are existing duplicate values, this will fail.
5+
6+
*/
7+
-- Select all old RRs that has no identifier in dateCreated ascending order
8+
CREATE TEMP TABLE cte_table AS (
9+
WITH CTE AS (
10+
SELECT
11+
"reimbursementRequestId",
12+
row_number() OVER (ORDER BY "dateCreated" ASC, "reimbursementRequestId" ASC) AS new_identifier
13+
FROM
14+
"Reimbursement_Request"
15+
)
16+
SELECT * FROM CTE
17+
);
18+
19+
-- AlterTable
20+
ALTER TABLE "Reimbursement_Request" ADD COLUMN "identifier" SERIAL NOT NULL;
21+
22+
-- Assign Identifier to all old Reimbursement Requests based on their dateCreated order
23+
UPDATE "Reimbursement_Request" AS rr
24+
SET "identifier" = "cte_table".new_identifier
25+
FROM cte_table
26+
WHERE rr."reimbursementRequestId" = "cte_table"."reimbursementRequestId";
27+
28+
-- CreateIndex
29+
CREATE UNIQUE INDEX "Reimbursement_Request_identifier_key" ON "Reimbursement_Request"("identifier");
30+
31+
-- Remove the temporary table
32+
DROP TABLE cte_table;

src/backend/src/prisma/schema.prisma

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,7 @@ model Receipt {
419419

420420
model Reimbursement_Request {
421421
reimbursementRequestId String @id @default(uuid())
422+
identifier Int @unique @default(autoincrement())
422423
saboId Int? @unique
423424
dateCreated DateTime @default(now())
424425
dateDeleted DateTime?

src/backend/src/prisma/seed.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -957,6 +957,27 @@ const performSeed: () => Promise<void> = async () => {
957957
100
958958
);
959959

960+
await ReimbursementRequestService.createReimbursementRequest(
961+
thomasEmrax,
962+
new Date(),
963+
vendor.vendorId,
964+
ClubAccount.BUDGET,
965+
[],
966+
[
967+
{
968+
name: 'BOX',
969+
reason: {
970+
carNumber: 1,
971+
projectNumber: 1,
972+
workPackageNumber: 0
973+
},
974+
cost: 10000
975+
}
976+
],
977+
expenseType.expenseTypeId,
978+
200
979+
);
980+
960981
/**
961982
* Bill of Materials
962983
*/

src/backend/src/transformers/reimbursement-requests.transformer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export const reimbursementRequestTransformer = (
4343
): ReimbursementRequest => {
4444
return {
4545
reimbursementRequestId: reimbursementRequest.reimbursementRequestId,
46+
identifier: reimbursementRequest.identifier,
4647
saboId: reimbursementRequest.saboId ?? undefined,
4748
dateCreated: reimbursementRequest.dateCreated,
4849
dateDeleted: reimbursementRequest.dateDeleted ?? undefined,

src/backend/tests/test-data/reimbursement-requests.test-data.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export const Parts: PrismaExpenseType = {
4343

4444
export const GiveMeMyMoney: PrismaReimbursementRequest = {
4545
reimbursementRequestId: '',
46+
identifier: 1,
4647
saboId: null,
4748
dateCreated: new Date('20/8/2023'),
4849
dateDeleted: null,
@@ -57,6 +58,7 @@ export const GiveMeMyMoney: PrismaReimbursementRequest = {
5758

5859
export const GiveMeMyMoney2: PrismaReimbursementRequest = {
5960
reimbursementRequestId: '',
61+
identifier: 2,
6062
saboId: null,
6163
dateCreated: new Date('20/8/2023'),
6264
dateDeleted: new Date('25/8/2023'),
@@ -210,6 +212,7 @@ export const prismaGiveMeMyMoney3Approved: Prisma.Reimbursement_RequestGetPayloa
210212

211213
export const sharedGiveMeMyMoney: ReimbursementRequest = {
212214
reimbursementRequestId: GiveMeMyMoney.reimbursementRequestId,
215+
identifier: GiveMeMyMoney.identifier,
213216
dateCreated: GiveMeMyMoney.dateCreated,
214217
dateOfExpense: GiveMeMyMoney.dateOfExpense,
215218
totalCost: GiveMeMyMoney.totalCost,

src/shared/src/types/reimbursement-requests-types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export interface Receipt {
3131

3232
export interface ReimbursementRequest {
3333
reimbursementRequestId: string;
34+
identifier: number;
3435
saboId?: number;
3536
dateCreated: Date;
3637
dateDeleted?: Date;

0 commit comments

Comments
 (0)