В записи счета-фактуры NetSuite есть 2 поля.
Одно поле poUnitCost , другое поле poTotalCost".
Значение poTotalCost равно poUnitCost умножить количество .
( Формула: poTotalCost = poUnitCost x количество )
После создания записи скрипт вызовет pageInit, который найдет соответствующие поля и заполнит их в записи счета-фактуры.
Однако скрипт не только запускаетфункция pageInit, а также функция validateLine.
Как просто вызвать pageInit при создании записи, не вызывая функцию проверки?
Код выглядит следующим образом:
/**
*@NApiVersion 2.x
*@NScriptType ClientScript
*/
define(['N/currentRecord', 'N/record', 'N/search'],
function (currentRecord, record, search) {
function pageInit(context) {
console.log('inside pageinit function');
var rec = context.currentRecord;
var createdFromID = rec.getValue({
fieldId: 'createdfrom'
});
var so_record = record.load({
type: record.Type.SALES_ORDER,
id: createdFromID
// isDynamic: true
});
var inv_lines = rec.getLineCount({
sublistId: 'item'
});
for (var i = 0; i < inv_lines; i++) {
var soLineID = rec.getCurrentSublistValue({
sublistId: 'item',
fieldId: 'so_line_id_in_Inv',
line: i
});
// Find the index of line whose 'custcol_so_line_id' field is soLineIDINV
var soLineNumber = so_record.findSublistLineWithValue({
sublistId: 'item',
fieldId: 'so_line_id_in_SO',
value: soLineID
});
var poUnitCost = so_record.getSublistValue({
sublistId: 'item',
fieldId: 'unit_cost_in_SO',
line: soLineNumber
});
rec.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'unit_cost_in_Inv',
value: poUnitCost,
line: i
// fireSlavingSync: true
});
var lineQty = rec.getCurrentSublistValue({
sublistId: 'item',
fieldId: 'quantity',
line: i
});
var poTotalCost = lineQty * poUnitCost;
rec.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'total_cost_in_Inv',
value: poTotalCost,
line: i
// fireSlavingSync: true
});
}
return true;
}
function validateLine(context) {
console.log('inside validateLine function');
var rec = context.currentRecord;
var sublistName = context.sublistId;
if (sublistName == 'item') {
var poUnitCost = rec.getCurrentSublistValue({
sublistId: 'item',
fieldId: 'unit_cost_in_Inv',
});
var lineQty = rec.getCurrentSublistValue({
sublistId: 'item',
fieldId: 'quantity',
});
var poTotalCost = lineQty * poUnitCost;
rec.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'total_cost_in_Inv',
value: poTotalCost
// fireSlavingSync: true
});
}
return true;
}
return {
pageInit: pageInit,
validateLine: validateLine
}
});