Milo
03/18/2024, 6:17 PMMatt Carter
03/18/2024, 6:31 PMMilo
03/18/2024, 6:32 PMbattk
03/18/2024, 6:45 PMMilo
03/18/2024, 6:49 PMMilo
03/18/2024, 6:49 PM/**
*@NApiVersion 2.1
* @NScriptType ClientScript
*/
define(['N/record', 'N/search', 'N/runtime'],
function (record, search, runtime) {
function fieldChanged(context) {
var currentRecord = context.currentRecord;
var fieldId = context.fieldId;
var sublistName = context.sublistId;
//if (sublistName == 'item' && fieldId !== 'price' && fieldId !== 'rate') {
if (sublistName == 'item' && fieldId == 'item') {
var item = currentRecord.getCurrentSublistValue({ sublistId: sublistName, fieldId: 'item' });
var tier = currentRecord.getValue({ fieldId: 'custbody_mr_discount_account' });
debugger;
if (tier && item) {
var tierData = getTier(tier);
let t = [];
search.create({
type: "customrecord_mr_rebate_tiers",
filters:
[
["custrecord_mr_rebate_item", "anyof", item],
"AND",
["custrecord_mr_rebate_tier_item", "anyof", tierData.custrecord_mr_dis_tier[0].value]
],
columns:
[
"custrecord_mr_rebate_vendor_item",
"custrecord_mr_rebate_tier_item",
"custrecord_mr_rebate_amount_item",
"custrecord_mr_rebate_fixed",
"custrecord_mr_rebate_item"
]
}).run().each(function (result) {
t.push({
id: result.id,
vendor: result.getValue('custrecord_mr_rebate_vendor_item'),
tier: result.getValue('custrecord_mr_rebate_tier_item'),
rebate: result.getValue('custrecord_mr_rebate_amount_item'),
fixed: result.getValue('custrecord_mr_rebate_fixed'),
item: result.getValue('custrecord_mr_rebate_item')
});
return true;
});
var itemTiers = getItemTiers();
let isFound = itemTiers.find(t => t.item == item);
if (!isFound)
return;
var priceLevel = tierData.custrecord_mr_dis_price_level[0].value;
var pl = currentRecord.getCurrentSublistValue({ sublistId: sublistName, fieldId: 'price' });
if (tier && priceLevel && item) {
currentRecord.setCurrentSublistValue({ sublistId: sublistName, fieldId: 'price', ignoreFieldChange: false, value: -1 });
//if (pl !== -1 && pl !== priceLevel) {
// currentRecord.setCurrentSublistValue({ sublistId: sublistName, fieldId: 'price', ignoreFieldChange: false, value: priceLevel });
//}
debugger;
currentRecord.setCurrentSublistValue({
sublistId: sublistName,
fieldId: 'custcol_mr_rebate_amount',
ignoreFieldChange: true,
value: parseFloat(t[0].rebate)
});
}
}
}
return true;
}
function getItemTiers() {
var data = [];
search.create({
type: "customrecord_mr_rebate_tiers",
filters:
[
["isinactive", "is", "F"]
],
columns:
[
"custrecord_mr_rebate_vendor_item",
"custrecord_mr_rebate_tier_item",
"custrecord_mr_rebate_amount_item",
"custrecord_mr_rebate_fixed",
"custrecord_mr_rebate_item"
]
}).run().each(function (result) {
data.push({
id: result.id,
vendor: result.getValue('custrecord_mr_rebate_vendor_item'),
tier: result.getValue('custrecord_mr_rebate_tier_item'),
rebate: result.getValue('custrecord_mr_rebate_amount_item'),
fixed: result.getValue('custrecord_mr_rebate_fixed'),
item: result.getValue('custrecord_mr_rebate_item')
});
return true;
});
return data;
}
function getTier(id) {
var tierLookup = search.lookupFields({
type: 'customrecord_mr_cus_discount_no',
id: id,
columns: ['custrecordcustrecord_dis_cus_no', 'custrecord_mr_cus_dis_exp_date', 'custrecord_mr_dis_price_level', 'custrecord_mr_dis_tier']
});
return tierLookup;
}
return {
fieldChanged: fieldChanged,
};
});
battk
03/18/2024, 6:52 PMbattk
03/18/2024, 6:53 PMMilo
03/19/2024, 1:21 PMbattk
03/19/2024, 2:05 PMMilo
03/19/2024, 2:38 PMMilo
03/19/2024, 2:42 PMMilo
03/19/2024, 2:43 PMbattk
03/19/2024, 2:44 PM