Kevin Baxter
06/16/2023, 8:49 PMconst beforeSubmit = (scriptContext) => {
var itemId = scriptContext.newRecord.id;
var item = scriptContext.newRecord;
var priceID = 'price1'
var basePrice = item.getValue({
fieldId: 'custitem6'
}); //64
var onefourtyN = item.getValue({
fieldId: 'custitem7'
}) ; //17
var fourtyEightN = item.getValue({
fieldId: 'custitem8'
}); //39
var seventyTwoN = item.getValue({
fieldId: 'custitem9'
}); //60
var folletN = item.getValue({
fieldId: 'custitem10'
}); //90
var mDenPrice = item.getValue({
fieldId: 'custitem12'
})
var rallyHousePrice = item.getValue({
fieldId:'custitem13'
})
var fanaticsPrice = item.getValue({
fieldId: 'custitem14'
})
var fanInVenue = item.getValue({
fieldId: 'custitem15'
})
var flcPrice = item.getValue({
fieldId: 'custitem11'
})
var sublistValueText = item.getSublistText({
sublistId: priceID,
fieldId: 'pricelevel',
line: 1
})
var objField = item.getSublistField({
sublistId: priceID,
fieldId: 'pricelevel',
line: 5
})
for( var i = 0; i <= 21 ; i++){
var sublistValue = item.getSublistValue({
sublistId: priceID,
fieldId: 'pricelevel',
line: i
})
if(sublistValue == "1"){
var number = onefourtyN * 1.111111
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if (sublistValue == "2"){
var number = onefourtyN * 1.123596
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "3"){
var number = onefourtyN * 1.136364
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "4"){
var number = onefourtyN * 1.136364
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "5"){
var number = onefourtyN * 1.149425
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "6"){
var number = onefourtyN * 1.162791
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "7"){
var number = onefourtyN * 1.176471
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "8"){
var number = onefourtyN * 1.190476
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue =="9"){
var number = onefourtyN * 1.204819
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "10"){
var number = onefourtyN * 1.219512
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "11"){
var number = onefourtyN * 1.25
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "12"){
var number = onefourtyN * 1.265823
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "13"){
var number = onefourtyN * 1.315789
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "14"){
var number = onefourtyN * 1.333333
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "15"){
var number = onefourtyN * 1.081081
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "16"){
var number = onefourtyN * 1.315789
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue =="17"){
var number = onefourtyN * 1.086957
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "18"){
var number = onefourtyN * 1.098901
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "19"){
var number = onefourtyN
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "20"){
var number = onefourtyN * 1.1
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "21"){
var number = onefourtyN * 1.07
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "22"){
var number = fourtyEightN * 1.111111
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "23"){
//48 11%
var number = fourtyEightN * 1.123596
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "24"){
var number = fourtyEightN * 1.136364
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "25"){
var number = fourtyEightN * 1.149425
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}else if(sublistValue == "21"){
var number = onefourtyN * 1.07
item.setSublistValue({
sublistId:priceID,
fieldId:'price_1_',
line: i,
value: number.toFixed(2)
})
}
}
}
scottvonduhn
06/16/2023, 9:15 PMehcanadian
06/16/2023, 9:17 PMvar lookup = {
"1": onefourtyN * 1.111111,
...
"19": onefourtyN * 1,
...
"22": fourtyEightN * 1.111111,
etc
};
for (var i = 0; i <= 21; i++) {
var sublistValue = item.getSublistValue({
sublistId: priceID,
fieldId: 'pricelevel',
line: i
});
var multipliedVal = lookup[sublistValue];
if (multipliedVal) {
item.setSublistValue({
sublistId: priceID,
fieldId: 'price_1_',
line: i,
value: multipliedVal.toFixed(2)
});
}
}
scottvonduhn
06/16/2023, 9:18 PMehcanadian
06/16/2023, 9:19 PMreptar
06/16/2023, 9:28 PMtoFixed
is unreliable. Use exponential notation. https://www.jacklmoore.com/notes/rounding-in-javascript/scottvonduhn
06/16/2023, 9:36 PMerictgrubaugh
06/17/2023, 4:04 PMreptar
06/17/2023, 4:07 PMerictgrubaugh
06/17/2023, 6:19 PMBigNumber.js
to overcome it. I'm just curious why exponential works. I certainly haven't dug in to the algorithms eithererictgrubaugh
06/17/2023, 6:22 PMerictgrubaugh
06/17/2023, 10:15 PM0
just to prevent an error, but y'all probably have a more sensible default value for your pricing.erictgrubaugh
06/17/2023, 10:16 PM1
, 2
, ... 22
, 23
, ...erictgrubaugh
06/17/2023, 10:19 PMbaseFields
and levelToPrice
with the appropriate values, and the rest of the work should be done for youbattk
06/17/2023, 11:51 PMbattk
06/17/2023, 11:51 PM