feature/IO-3357-Reynolds-and-Reynolds-DMS-API-Integration - Checkpoint
This commit is contained in:
@@ -47,9 +47,9 @@ function toCombinedSearchPayload(args = {}) {
|
||||
if (q.phone) kind = "phone";
|
||||
else if (q.license) kind = "license";
|
||||
else if (q.vin) kind = "vin";
|
||||
else if (q.nameRecId || q.custId) kind = "nameRecId";
|
||||
else if (q.nameRecId || q.custId) kind = "namerecid";
|
||||
else if (q.name && (q.name.fname || q.name.lname || q.name.mname || q.name.name)) kind = "name";
|
||||
else if (q.stkNo || q.stock) kind = "stkNo";
|
||||
else if (q.stkNo || q.stock) kind = "stkno";
|
||||
}
|
||||
|
||||
// Map loose aliases into the RR builder’s expected fields
|
||||
@@ -57,21 +57,41 @@ function toCombinedSearchPayload(args = {}) {
|
||||
|
||||
switch (kind) {
|
||||
case "phone":
|
||||
payload.kind = "phone";
|
||||
payload.phone = q.phone;
|
||||
break;
|
||||
case "license":
|
||||
payload.kind = "license";
|
||||
payload.license = q.license;
|
||||
break;
|
||||
case "vin":
|
||||
payload.kind = "vin";
|
||||
payload.vin = q.vin;
|
||||
break;
|
||||
case "namerecid":
|
||||
payload.kind = "nameRecId";
|
||||
payload.nameRecId = q.nameRecId || q.custId;
|
||||
break;
|
||||
case "name":
|
||||
payload.name = q.name; // { fname, lname, mname } or { name }
|
||||
case "name": {
|
||||
payload.kind = "name";
|
||||
const name = q.name;
|
||||
if (name.name) {
|
||||
payload.name = { name: name.name }; // For LName
|
||||
} else if (name.fname && name.lname) {
|
||||
payload.name = {
|
||||
fname: name.fname,
|
||||
lname: name.lname,
|
||||
...(name.mname ? { mname: name.mname } : {})
|
||||
}; // For FullName
|
||||
} else if (name.lname) {
|
||||
payload.name = { name: name.lname }; // Fallback to LName if only lname
|
||||
} else {
|
||||
// Invalid; but to handle gracefully, perhaps throw or skip
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "stkno":
|
||||
payload.kind = "stkNo";
|
||||
payload.stkNo = q.stkNo || q.stock;
|
||||
break;
|
||||
default:
|
||||
@@ -79,16 +99,20 @@ function toCombinedSearchPayload(args = {}) {
|
||||
payload.kind = q.kind; // may be undefined; RR lib will validate
|
||||
}
|
||||
|
||||
// Add compatible secondary fields for combinations
|
||||
if (q.vin && kind !== "vin") payload.vin = q.vin;
|
||||
if (q.phone && kind !== "phone") payload.phone = q.phone;
|
||||
if (q.license && kind !== "license") payload.license = q.license;
|
||||
|
||||
// Optional vehicle narrowing; the RR builder defaults to ANY/ANY/ANY if omitted
|
||||
if (q.make || q.model || q.year) {
|
||||
payload.make = q.make;
|
||||
payload.model = q.model;
|
||||
payload.year = q.year;
|
||||
payload.make = q.make || "ANY";
|
||||
payload.model = q.model || "ANY";
|
||||
payload.year = q.year || "ANY";
|
||||
}
|
||||
|
||||
return payload;
|
||||
}
|
||||
|
||||
/**
|
||||
* Combined customer/service/vehicle search
|
||||
* @param bodyshop - bodyshop row (must include rr_dealerid & rr_configuration with store/branch)
|
||||
|
||||
Reference in New Issue
Block a user