plate numbers

This commit is contained in:
2026-10-01 14:04:56 +05:30
parent a40274fdd8
commit 575b00172d
5 changed files with 28 additions and 0 deletions
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "Stock" ADD COLUMN "plateNumber" TEXT;
+1
View File
@@ -81,6 +81,7 @@ model Stock {
paymentType String?
leaseProviderType String?
financeCompanyName String?
plateNumber String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
+19
View File
@@ -308,6 +308,25 @@ async function run(port) {
'lease with both GCI and finance failed'
);
const registered = await request(port, 'PATCH', '/api/stocks/CH-GREEN/stage', {
token: dealerToken,
body: { stage: 'rmvRegistration' },
});
assert(registered.status === 200, 'rmv stage failed');
const plateMissing = await request(port, 'PATCH', '/api/stocks/CH-GREEN/stage', {
token: dealerToken,
body: { stage: 'plateReceived' },
});
assert(plateMissing.status === 400, 'plate received without a number should fail');
const plated = await request(port, 'PATCH', '/api/stocks/CH-GREEN/stage', {
token: dealerToken,
body: { stage: 'plateReceived', plateNumber: 'WP ABC-1234' },
});
assert(
plated.status === 200 && plated.json.data.plateNumber === 'WP ABC-1234',
'saving the plate number failed'
);
const outside = await request(port, 'POST', '/api/stocks/CH-YELLOW/transfer', {
token: repToken,
body: { dealerId: dealerC.json.data.id },
+1
View File
@@ -52,6 +52,7 @@ function serializeStock(stock) {
paymentType: stock.paymentType,
leaseProviderType: stock.leaseProviderType,
financeCompanyName: stock.financeCompanyName,
plateNumber: stock.plateNumber,
ageInDays: days,
badge: ageBadge(days),
};
+5
View File
@@ -145,6 +145,11 @@ router.patch(
data.financeCompanyName = null;
}
}
if (stage === 'plateReceived') {
const plateNumber = String(req.body?.plateNumber || '').trim();
if (!plateNumber) throw httpError(400, 'Plate number is required');
data.plateNumber = plateNumber;
}
const updated = await prisma.stock.update({
where: { id: stock.id },