-
-
Save cafeasp/30318813c65199e167a94431ab8ea555 to your computer and use it in GitHub Desktop.
| /** | |
| * @NApiVersion 2.x | |
| * @NScriptType Restlet | |
| * @NModuleScope SameAccount | |
| */ | |
| define(['N/search', 'N/record', 'N/util', './momentjs.js', './cafeaspMagento.js'], | |
| /** | |
| * @param {search} search | |
| * @param {record} record | |
| * @param {util} util | |
| * @param {moment} moment | |
| * @param {cafeaspmagento} cafeaspmagento | |
| */ | |
| function (search, record, util, moment, cafeaspmagento) { | |
| /** | |
| * Function called upon sending a GET request to the RESTlet. | |
| * | |
| * @param {Object} requestParams - Parameters from HTTP request URL; parameters will be passed into function as an Object (for all supported content types) | |
| * @returns {string | Object} HTTP response body; return string when request Content-Type is 'text/plain'; return Object when request Content-Type is 'application/json' | |
| * @since 2015.1 | |
| */ | |
| function doGet() { | |
| } | |
| /** | |
| * Function called upon sending a PUT request to the RESTlet. | |
| * FOR CREATING ITEM FULFILLMENT | |
| * @param {string | Object} requestBody - The HTTP request body; request body will be passed into function as a string when request Content-Type is 'text/plain' | |
| * or parsed into an Object when request Content-Type is 'application/json' (in which case the body must be a valid JSON) | |
| * @returns {string | Object} HTTP response body; return string when request Content-Type is 'text/plain'; return Object when request Content-Type is 'application/json' | |
| * @since 2015.2 | |
| */ | |
| function doPut(requestBody) { | |
| if (requestBody) { | |
| var trackingNumber = '123'; | |
| var shipDate = '12/12/2019'; | |
| var status = salesOrderStatus(salesOrderid); | |
| if (status == 'Pending Fulfillment') { | |
| //create IF | |
| var fulfillment = record.transform({ | |
| fromType: record.Type.SALES_ORDER, | |
| fromId: salesOrderid, | |
| toType: record.Type.ITEM_FULFILLMENT | |
| }); | |
| fulfillment.setValue({ fieldId: 'shipstatus', value: 'C' }); | |
| fulfillment.setValue({ fieldId: 'custbody14333', value: trackingNumber }); | |
| //line below can be improved | |
| fulfillment.setValue({ fieldId: 'trandate', value: new Date(moment(shipDate).format('M/D/YYYY')) }); | |
| var fulfillmentLineCount = fulfillment.getLineCount({ | |
| sublistId: 'item' | |
| }); | |
| for (var i = 0; i < fulfillmentLineCount; i++) { | |
| fulfillment.setSublistValue({ | |
| sublistId: 'item', | |
| line: i, | |
| fieldId: 'itemReceive', | |
| value: true | |
| }); | |
| fulfillment.setSublistValue({ | |
| sublistId: 'item', | |
| line: i, | |
| fieldId: 'itemIsFulfilled', | |
| value: true | |
| }); | |
| } | |
| var itemFulfillmentId = fulfillment.save({ | |
| enableSourcing: true, | |
| ignoreMandatoryFields: false | |
| }); | |
| } | |
| } | |
| return "ok"; | |
| } | |
| /** | |
| * Function called upon sending a POST request to the RESTlet. | |
| * | |
| * @param {string | Object} requestBody - The HTTP request body; request body will be passed into function as a string when request Content-Type is 'text/plain' | |
| * or parsed into an Object when request Content-Type is 'application/json' (in which case the body must be a valid JSON) | |
| * @returns {string | Object} HTTP response body; return string when request Content-Type is 'text/plain'; return Object when request Content-Type is 'application/json' | |
| * @since 2015.2 | |
| */ | |
| function doPost(requestBody) { | |
| return "ok"; | |
| } | |
| /** | |
| * Function called upon sending a DELETE request to the RESTlet. | |
| * | |
| * @param {Object} requestParams - Parameters from HTTP request URL; parameters will be passed into function as an Object (for all supported content types) | |
| * @returns {string | Object} HTTP response body; return string when request Content-Type is 'text/plain'; return Object when request Content-Type is 'application/json' | |
| * @since 2015.2 | |
| */ | |
| function doDelete(requestParams) { | |
| } | |
| return { | |
| 'get': doGet, | |
| put: doPut, | |
| post: doPost, | |
| 'delete': doDelete | |
| }; | |
| }); |
Hello, not the same function that I had but it will give you an idea.
function findSalesOrderInternalId(salesOrderNumber) {
var salesOrderInternalId = '';
var salesorderSearchObj = search.create({
type: "salesorder",
filters:
[
["type", "anyof", "SalesOrd"],
"AND",
["transactionnumber", "is", salesOrderNumber],
"AND",
["mainline", "is", "T"]
],
columns:
[
search.createColumn({ name: "internalid", label: "Internal ID" })
]
});
var searchResultCount = salesorderSearchObj.runPaged().count;
log.debug("salesorderSearchObj result count", searchResultCount);
var resultSet = salesorderSearchObj.run();
var result = resultSet.getRange({ start: 0, end: 1 });
log.debug('search result', result);
if (searchResultCount > 0) {
salesOrderInternalId = result[0].getValue({ name: 'internalid' });
}
log.debug('internal id OC', salesOrderInternalId);
return salesOrderInternalId;
}
another idea is to use the search.lookupFields call
columns, you can add the fields you need.
var fieldLookUp = search.lookupFields({
type: search.Type.SALES_ORDER,
id: '87',
columns: ['entity', 'subsidiary', 'name', 'currency','status']
});
Question about the following line of logic: var status = salesOrderStatus(salesOrderid);
Is there a missing function called, salesOrderStatus?
Please provide if this is the case.
Thanks.