plate numbers
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Stock" ADD COLUMN "plateNumber" TEXT;
|
||||||
@@ -81,6 +81,7 @@ model Stock {
|
|||||||
paymentType String?
|
paymentType String?
|
||||||
leaseProviderType String?
|
leaseProviderType String?
|
||||||
financeCompanyName String?
|
financeCompanyName String?
|
||||||
|
plateNumber String?
|
||||||
createdAt DateTime @default(now())
|
createdAt DateTime @default(now())
|
||||||
updatedAt DateTime @updatedAt
|
updatedAt DateTime @updatedAt
|
||||||
|
|
||||||
|
|||||||
@@ -308,6 +308,25 @@ async function run(port) {
|
|||||||
'lease with both GCI and finance failed'
|
'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', {
|
const outside = await request(port, 'POST', '/api/stocks/CH-YELLOW/transfer', {
|
||||||
token: repToken,
|
token: repToken,
|
||||||
body: { dealerId: dealerC.json.data.id },
|
body: { dealerId: dealerC.json.data.id },
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ function serializeStock(stock) {
|
|||||||
paymentType: stock.paymentType,
|
paymentType: stock.paymentType,
|
||||||
leaseProviderType: stock.leaseProviderType,
|
leaseProviderType: stock.leaseProviderType,
|
||||||
financeCompanyName: stock.financeCompanyName,
|
financeCompanyName: stock.financeCompanyName,
|
||||||
|
plateNumber: stock.plateNumber,
|
||||||
ageInDays: days,
|
ageInDays: days,
|
||||||
badge: ageBadge(days),
|
badge: ageBadge(days),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -145,6 +145,11 @@ router.patch(
|
|||||||
data.financeCompanyName = null;
|
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({
|
const updated = await prisma.stock.update({
|
||||||
where: { id: stock.id },
|
where: { id: stock.id },
|
||||||
|
|||||||
Reference in New Issue
Block a user