/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope Public
*/
define([
‘../Library.FHL.2.0.js’
, ‘N/record’
, ‘N/search’
],
function(Library, Record, Search)
{
/**
* Initialise function for suitelet
*
* @param {Object} context
* @return {Any} data
*/
function getCommissionInformation(context)
{
var request = null;
var data = “”;
try
{
request = context.request;
if(request.method == “GET”)
{
switch(request.parameters.requestType)
{
case ‘getSupportPrice’:
data = getSupportPrice(request);
break;
}
}
data = JSON.stringify(data);
}
catch(e)
{
Library.errorHandler(‘getCommissionInformation’, e);
}
return context.response.write(data);
}
/**
* Get the valid support price for a customer, item and date range
*
* @param {Object} request
* @return {Object} record
*/
function getSupportPrice(request)
{
var customer = null;
var item = null;
var date = null;
var filters = [];
var columns = [];
var search = null;
var results = null;
var result = null;
var record = {};
try
{
customer = request.parameters.customer;
item = request.parameters.item;
date = request.parameters.date;
filters = [ Search.createFilter({name: “custrecord_customer”, operator: “anyof”, values: customer}),
Search.createFilter({name: “custrecord_item”, operator: “anyof”, values: item}),
Search.createFilter({name: “custrecord_startdate”, operator: “onorbefore”, values: date}),
Search.createFilter({name: “custrecord_enddate”, operator: “onorafter”, values: date})];
columns = [ Search.createColumn({name: “internalid”}),
Search.createColumn({name: “custrecord_rebate”})];
search = Search.create({type: ‘customrecord_supplierpricesupport’, filters: filters, columns: columns});
search = search.run();
results = search.getRange({start: 0, end: 1});
if(results && results.length > 0)
{
result = results[0];
record = {
id: result.getValue({name: “internalid”}),
rebate: result.getValue({name: “custrecord_rebate”}),
};
}
else
{
record = {id: ”, rebate: ”};
}
}
catch (e)
{
Library.errorHandler(‘getSupportPrice’, e);
}
return record;
}
return {
onRequest: getCommissionInformation
};
});