NickSuite
10/08/2021, 4:53 AMbattk
10/08/2021, 5:05 AMNickSuite
10/08/2021, 7:41 AMNickSuite
10/08/2021, 7:42 AMbattk
10/08/2021, 8:06 AMNickSuite
10/08/2021, 10:09 AMNickSuite
10/11/2021, 7:31 AMvar totalItem = rec.getLineCount({sublistId: 'item'});
for (var i = 0; i < totalItem; i++) {
try{
var itemId = rec.getSublistValue({sublistId: 'item', fieldId: 'item', line: i});
var uomFactor = rec.getSublistValue({sublistId: 'item', fieldId: 'unitconversionrate', line: i});
log.debug('uomFactor', uomFactor);
if (!uomFactor) {
/* This was blank that's why I am using lookup fields.
var itemUnit = rec.getSublistValue({sublistId: 'item', fieldId: 'units', line: i});
if (!itemUnit) {
log.audit('itemUnit -- not found', itemUnit);
continue;
}*/
var lookupResult = search.lookupFields({type: search.Type.ITEM, id: itemId, columns: ['unitstype', 'saleunit']});
log.debug('lookupResult', lookupResult);
var itemUnit = lookupResult.saleunit[0]?.value;
var unitsTypeRec = record.load({type: 'unitstype', id: lookupResult.unitstype[0]?.value});
var uomLength = unitsTypeRec.getLineCount('uom');
for (j = 0; j < uomLength; j++) {
var uomId = unitsTypeRec.getSublistValue({sublistId: 'uom', fieldId: 'internalid', line: j});
if (uomId == itemUnit) {
uomFactor = unitsTypeRec.getSublistValue({sublistId: 'uom', fieldId: 'conversionrate', line: j});
break;
}
}
}
log.audit('uomFactor -- final', uomFactor);
var origQty = rec.getSublistValue({sublistId: 'item', fieldId: 'custcol_bi_original_qty', line: i});
if (!origQty) {
log.audit('origQty -- not found', origQty);
continue;
}
if (uomFactor) {
rec.setSublistValue({sublistId: 'item', fieldId: 'quantity', line: i, value: (origQty / uomFactor)});
}
}
catch (e) {
log.error('Error::for loop', e);
}
}
battk
10/11/2021, 7:44 AMbattk
10/11/2021, 7:45 AMbattk
10/11/2021, 7:45 AMNickSuite
10/11/2021, 7:51 AMbattk
10/11/2021, 8:19 AM/**
* @NApiVersion 2.0
* @NScriptType UserEventScript
* @NModuleScope SameAccount
*/
define(["N/record", "N/runtime"], function (record, runtime) {
return {
afterSubmit: function (context) {
log.debug("executionContext", runtime.executionContext);
var rec = record.load({
type: context.newRecord.type,
id: context.newRecord.id,
});
var uomFactor = rec.getSublistValue({
sublistId: "item",
fieldId: "unitconversionrate",
line: 0,
});
log.debug("uomFactor", uomFactor);
},
};
});
logsNickSuite
10/11/2021, 8:51 AMNickSuite
10/11/2021, 8:51 AMbattk
10/11/2021, 8:57 AMNickSuite
10/11/2021, 9:08 AMNickSuite
10/11/2021, 9:19 AMbattk
10/11/2021, 10:10 AM<soapenv:Envelope xmlns:soapenv="<http://schemas.xmlsoap.org/soap/envelope/>" xmlns:xsi="<http://www.w3.org/2001/XMLSchema-instance>">
<soapenv:Header>
<tokenPassport>
<account>{{ACCOUNT_ID}}</account>
<consumerKey>{{CONSUMER_KEY}}</consumerKey>
<token>{{TOKEN_ID}}</token>
<nonce>{{nonce}}</nonce>
<timestamp>{{timestamp}}</timestamp>
<signature algorithm="HMAC-SHA256">{{signature}}</signature>
</tokenPassport>
</soapenv:Header>
<soapenv:Body>
<add>
<record xsi:type="tranSales:SalesOrder" xmlns:tranSales="urn:sales_2021_1.transactions.webservices.netsuite.com">
<entity internalId="9"/>
<itemList>
<item>
<item internalId="84"/></item>
</itemList>
</record>
</add>
</soapenv:Body>
</soapenv:Envelope>