feat(lstv2 move): moved lstv2 into this app to keep them combined and easier to maintain
This commit is contained in:
67
lstV2/server/globalUtils/createSSCC.ts
Normal file
67
lstV2/server/globalUtils/createSSCC.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
import { query } from "../services/sqlServer/prodSqlServer.js";
|
||||
import { plantInfo } from "../services/sqlServer/querys/dataMart/plantInfo.js";
|
||||
import { createLog } from "../services/logger/logger.js";
|
||||
import { getSettings } from "../services/server/controller/settings/getSettings.js";
|
||||
|
||||
export const createSSCC = async (runningNumber: number) => {
|
||||
// get the token
|
||||
|
||||
let serverSettings = (await getSettings()) as any;
|
||||
const plantToken = serverSettings?.filter(
|
||||
(n: any) => n.name === "plantToken"
|
||||
);
|
||||
// const plantToken = await db
|
||||
// .select()
|
||||
// .from(settings)
|
||||
// .where(eq(settings.name, "plantToken"));
|
||||
let global: any = []; // get from plant address in basis enter the entire string here.
|
||||
|
||||
try {
|
||||
const res: any = await query(
|
||||
plantInfo.replaceAll("[token]", plantToken[0].value),
|
||||
"plantInfo"
|
||||
);
|
||||
global = res.data;
|
||||
} catch (error) {
|
||||
createLog(
|
||||
"error",
|
||||
"lst",
|
||||
"globalUtils",
|
||||
`There was an error getting the GLN: Error: ${error}`
|
||||
);
|
||||
}
|
||||
|
||||
// create the sscc without the check diget and make sure we have it all correct
|
||||
|
||||
let step1SSCC =
|
||||
global[0].gln.toString().slice(0, 7).padStart(10, "0") +
|
||||
runningNumber.toString().padStart(9, "0");
|
||||
|
||||
let sum = 0;
|
||||
for (let i = 0; i < step1SSCC.length; i++) {
|
||||
let digit = parseInt(step1SSCC[i], 10);
|
||||
if (i % 2 === 0) {
|
||||
// Even index in 0-based index system means odd position in 1-based index system
|
||||
sum += digit * 3;
|
||||
} else {
|
||||
sum += digit;
|
||||
}
|
||||
}
|
||||
let checkDigit = (10 - (sum % 10)) % 10;
|
||||
|
||||
// make sure the check digit is never 10
|
||||
|
||||
// let checkDigit = 10 - ((oddSum * 3 + evenSum) % 10) === 10 ? 0 : (oddSum * 3 + evenSum) % 10;
|
||||
|
||||
// return the true sscc
|
||||
let sscc = step1SSCC + checkDigit;
|
||||
// console.log(step1SSCC);
|
||||
// console.log(checkDigit);
|
||||
return sscc.padStart(20, "0");
|
||||
};
|
||||
|
||||
// let rn = 518475;
|
||||
|
||||
// console.log(`Creating sscc`);
|
||||
// let sscc = await createSSCC(rn);
|
||||
// console.log(sscc);
|
||||
Reference in New Issue
Block a user