rrScratch3 - Progress Commit
This commit is contained in:
@@ -90,11 +90,15 @@ const exportJobToRR = async (args) => {
|
||||
const story = txEnvelope?.story ? String(txEnvelope.story).trim() : null;
|
||||
const makeOverride = txEnvelope?.makeOverride ? String(txEnvelope.makeOverride).trim() : null;
|
||||
|
||||
// Optional RR OpCode segments coming from the FE (RRPostForm)
|
||||
const opPrefix = txEnvelope?.opPrefix ?? txEnvelope?.op_prefix ?? null;
|
||||
const opBase = txEnvelope?.opBase ?? txEnvelope?.op_base ?? null;
|
||||
const opSuffix = txEnvelope?.opSuffix ?? txEnvelope?.op_suffix ?? null;
|
||||
|
||||
// RR-only extras
|
||||
let rrCentersConfig = null;
|
||||
let allocations = null;
|
||||
let opCode = null;
|
||||
// let taxCode = null;
|
||||
|
||||
// 1) Responsibility center config (for visibility / debugging)
|
||||
try {
|
||||
@@ -139,7 +143,15 @@ const exportJobToRR = async (args) => {
|
||||
|
||||
const resolvedBaseOpCode = resolveRROpCodeFromBodyshop(bodyshop);
|
||||
|
||||
const opCodeOverride = txEnvelope?.opCode || txEnvelope?.opcode || txEnvelope?.op_code || null;
|
||||
let opCodeOverride = txEnvelope?.opCode || txEnvelope?.opcode || txEnvelope?.op_code || null;
|
||||
|
||||
// If the FE only sends segments, combine them here.
|
||||
if (!opCodeOverride && (opPrefix || opBase || opSuffix)) {
|
||||
const combined = `${opPrefix || ""}${opBase || ""}${opSuffix || ""}`.trim();
|
||||
if (combined) {
|
||||
opCodeOverride = combined;
|
||||
}
|
||||
}
|
||||
|
||||
if (opCodeOverride || resolvedBaseOpCode) {
|
||||
opCode = String(opCodeOverride || resolvedBaseOpCode).trim() || null;
|
||||
@@ -147,7 +159,10 @@ const exportJobToRR = async (args) => {
|
||||
|
||||
CreateRRLogEvent(socket, "SILLY", "RR OP config resolved", {
|
||||
opCode,
|
||||
baseFromConfig: resolvedBaseOpCode
|
||||
baseFromConfig: resolvedBaseOpCode,
|
||||
opPrefix,
|
||||
opBase,
|
||||
opSuffix
|
||||
});
|
||||
|
||||
// Build RO payload for create.
|
||||
|
||||
@@ -896,9 +896,26 @@ const registerRREvents = ({ socket, redisHelpers }) => {
|
||||
}
|
||||
});
|
||||
|
||||
socket.on("rr-calculate-allocations", async (jobid, cb) => {
|
||||
// RR allocations preview (RR-only)
|
||||
// Accepts either:
|
||||
// - legacy: (jobid, cb)
|
||||
// - new: ({ jobId, opCode, opPrefix, opBase, opSuffix }, cb)
|
||||
socket.on("rr-calculate-allocations", async (payload, cb) => {
|
||||
// Normalize arguments
|
||||
const isObjectPayload = payload && typeof payload === "object";
|
||||
const jobid = isObjectPayload ? payload.jobId || payload.jobid || payload.id : payload;
|
||||
|
||||
const opCodeFromClient =
|
||||
isObjectPayload &&
|
||||
(payload.opCode ||
|
||||
payload.opcode ||
|
||||
payload.op_code ||
|
||||
(payload.opPrefix || payload.opBase || payload.opSuffix
|
||||
? `${payload.opPrefix || ""}${payload.opBase || ""}${payload.opSuffix || ""}`.trim()
|
||||
: null));
|
||||
|
||||
try {
|
||||
CreateRRLogEvent(socket, "DEBUG", "rr-calculate-allocations: begin", { jobid });
|
||||
CreateRRLogEvent(socket, "DEBUG", "rr-calculate-allocations: begin", { jobid, opCodeFromClient });
|
||||
|
||||
const raw = await RRCalculateAllocations(socket, jobid);
|
||||
|
||||
@@ -925,20 +942,24 @@ const registerRREvents = ({ socket, redisHelpers }) => {
|
||||
jobAllocations = Array.isArray(ack.jobAllocations) ? ack.jobAllocations : [];
|
||||
}
|
||||
|
||||
// Try to derive OpCode from bodyshop.rr_configuration.defaults; fall back to default
|
||||
let opCode;
|
||||
// Start with client-supplied OpCode (if any); fall back to defaults.
|
||||
let opCode = opCodeFromClient || null;
|
||||
|
||||
try {
|
||||
const { bodyshopId } = await getSessionOrSocket(redisHelpers, socket);
|
||||
const bodyshop = await getBodyshopForSocket({ bodyshopId, socket });
|
||||
|
||||
// resolveRROpCodeFromBodyshop(bodyshop, existingOverride?)
|
||||
opCode = resolveRROpCodeFromBodyshop(bodyshop, opCode);
|
||||
|
||||
CreateRRLogEvent(socket, "DEBUG", "rr-calculate-allocations: resolved OpCode", {
|
||||
opCode
|
||||
opCode,
|
||||
opCodeFromClient
|
||||
});
|
||||
} catch (e) {
|
||||
CreateRRLogEvent(socket, "WARN", "rr-calculate-allocations: bodyshop lookup failed, using default OpCode", {
|
||||
error: e.message
|
||||
CreateRRLogEvent(socket, "WARN", "rr-calculate-allocations: bodyshop lookup failed, using existing OpCode", {
|
||||
error: e.message,
|
||||
opCodeFromClient
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user