"use strict"; // $('dcp.CDE4/csv/Avg', '') == '' ? '' : (parseFloat($('dcp.CDE4/csv/Dev', '0')) / parseFloat($('dcp.CDE4/csv/Avg', '0'))).toFixed(2) + '%' // getValue($('dcp.CDE4/csv/Avg', ''), $('dcp.CDE4/csv/Dev', '0'), $('dcp.CDE4/csv/Avg', '0')); function roundNumber(number, digits) { let result; const multiple = Math.pow(10, digits); result = Math.round(number * multiple) / multiple; return result; } function getValue(avgRaw, devZeroDefault, avgZeroDefault) { let result; if (avgRaw == '') result = ''; else { let raw = parseFloat(devZeroDefault) / parseFloat(avgZeroDefault); result = roundNumber(raw, 2); } return result; } const dev = 0.383; const avg = 33.5810; const value = getValue(avg, dev); console.log("value: " + value); // getValue(self, self.length, $('dcp.CDE4/csv/MesEntity', ''), $('dcp.CDE4/csv/Title', ''), $('dcp.CDE4/csv/Recipe', ''), getContextData('2', 'cds.PROCESS_JOBID', '')); function tryParseInt(str, defaultValue) { const parsedValue = parseInt(str); return isNaN(parsedValue) ? defaultValue : parsedValue; } function getReactorAndRDS(defaultReactor, defaultRDS, text, formattedText, segments) { let result = {}; let rds; let reactor; let rdsValue; if (text == null || text.length === 0 || segments.length === 0 || formattedText == null || formattedText.length === 0) reactor = defaultReactor; else reactor = segments[0]; if (segments.length <= 1 || !tryParseInt(segments[1], false) || rdsValue < 99) rds = defaultRDS; else rds = segments[1]; if (reactor.length > 3) { rds = reactor; reactor = defaultReactor; } result = { reactor: reactor, rds: rds }; return result; } function getLayerAndPSN(defaultLayer, defaultPSN, segments) { let result = {}; let psn; let layer; if (segments.length <= 2) { psn = defaultPSN; layer = defaultLayer; } else { let segmentsB = segments[2].split('.'); psn = segmentsB[0]; if (segmentsB.length <= 1) layer = defaultLayer; else { layer = segmentsB[1]; if (layer.length > 1 && layer[0] === '0') layer = layer.substring(1); } } result = { layer: layer, psn: psn }; return result; } function getZone(segments) { let result = ''; if (segments.length <= 3) result = ''; else { result = segments[3]; if (result.length > 1 && result[0] === '0') result = result.substring(1); } return result; } function getArray(text) { let result = {}; let lot = ''; let psn = ''; let rds = ''; let zone = ''; let layer = ''; let reactor = ''; let employee = ''; let defaultPSN = ''; let defaultRDS = ''; let defaultZone = ''; let defaultLayer = ''; let defaultReactor = ''; let defaultEmployee = ''; const processOnly = /^[a-zA-z]{2,3}/; const processOnlyB = /^[a-zA-z][0-9]{2,4}$/; const normal = /^[0-9]{2}[.][0-9]{1}[.]?[0-9]{0,1}/; const fileSystemSafe = /[\\,\/,\:,\*,\?,\"",\<,\>,\|]/; if (text.match(processOnlyB)) { lot = text.toUpperCase(); psn = defaultPSN; rds = defaultRDS; zone = defaultZone; layer = defaultLayer; reactor = defaultReactor; employee = defaultEmployee; } else if (text == null || text.length === 0 || (text.length == 2 && text.match(processOnly))) { lot = text; employee = lot; psn = defaultPSN; rds = defaultRDS; zone = defaultZone; layer = defaultLayer; reactor = defaultReactor; } else if (text.match(normal)) { let segments = text.split('.'); lot = text; psn = defaultPSN; rds = defaultRDS; layer = segments[1]; reactor = segments[0]; employee = defaultEmployee; if (segments.length <= 2) zone = defaultZone; else zone = segments[2]; } else { lot = text.replace(fileSystemSafe, "_").split('\r')[0].split('\n')[0]; if (lot.length > 2 && lot[0] == '1' && (lot[1] == 'T' || lot[1] == 't')) lot = lot.substring(2); let segments = lot.split('-'); let reactorAndRDS = getReactorAndRDS(defaultReactor, defaultRDS, text, lot, segments); reactor = reactorAndRDS.reactor; rds = reactorAndRDS.rds; let layerAndPSN = getLayerAndPSN(defaultLayer, defaultPSN, segments); layer = layerAndPSN.layer; psn = layerAndPSN.psn; zone = getZone(segments); if (segments.length <= 4) employee = defaultEmployee; else employee = segments[4]; } result = { rds: rds, psn: psn, reactor: reactor, layer: layer, zone: zone, employee: employee, lot: lot }; return result; }; function getValueReactor(value, length, mesEntity, title, recipe, processJobId) { if (recipe.toUpperCase() === 'RLOW_STD') return mesEntity; else if (recipe.toUpperCase() === 'RMID_STD') return mesEntity; else if (recipe.toUpperCase() === 'RHI_STD') return mesEntity; else if (recipe.toUpperCase() === 'THINSPC') return mesEntity; else if (length === 0 && processJobId == 0) return getArray(title).reactor; else if (length === 0) return processJobId; else return value; } const self = ''; const mesEntity = 'CDE4'; const title = '75-663192-5281.1'; const recipe = '8IN_INF'; const processJobId = '0'; const valueReactor = getValueReactor(self, self.length, mesEntity, title, recipe, processJobId); console.log("value: " + valueReactor);