/**
* @NApiVersion 2.1
* @NScriptType Suitelet
*/
/*************************************************************************************************************************
*
* Script Description : This Script Sample will create suitelet page that list out search results in 2 different subtab but for the same filter triggered in the body level field
* Date created : 31/01/2022
*
* REVISION HISTORY
*
* Revision 1.0 ${31/01/2022} created
*
**************************************************************************************************************************/
var CLIENT_SCRIPT_FILE_ID = 8757;
define( [ 'N/ui/serverWidget', 'N/search', 'N/https', 'N/file', 'N/render', 'N/record', 'N/runtime', 'N/redirect', 'N/task' ],
function ( serverWidget, search, https, file, render, record, runtime, redirect, task )
{
/**
* Defines the Suitelet script trigger point.
* @param {Object} scriptContext
* @param {ServerRequest} scriptContext.request - Incoming request
* @param {ServerResponse} scriptContext.response - Suitelet response
* @since 2015.2
*/
function onRequest ( scriptContext )
{
try
{
var request = scriptContext.request;
var response = scriptContext.response;
if ( scriptContext.request.method == 'GET' )
{
var form = serverWidget.createForm( { title: 'Sample Order Items Page' } );
form.addSubmitButton( {
label: 'Search'
} );
form.addButton( {
id: 'clearbutton',
label: 'Clear All',
functionName: 'clearButtonFunction'
} );
form.addButton( {
id: 'backbutton',
label: 'Back',
functionName: 'backButtonFunction'
} );
var mainTab = form.addSubtab( {
id: 'custpage_main_tab',
label: "First Tab"
} );
var y = form.addField( {
id: 'custpage_vendor',
type: serverWidget.FieldType.SELECT,
label: 'Vendor',
source: 'vendor'
} );
var entity = form.addField( {
id: 'custpage_customer',
type: serverWidget.FieldType.SELECT,
label: 'Prefered Buyer',
source: 'Customer'
} );
form.clientScriptFileId = CLIENT_SCRIPT_FILE_ID;
var entityField = scriptContext.request.parameters.entityField || "";
entity.defaultValue = entityField;
var sublist1 = form.addSublist( {
id: 'custpage_sublist_1',
type: serverWidget.SublistType.LIST,
label: 'Sublist 1',
tab: 'custpage_main_tab'
} );
sublist1.addField( {
id: 'custpage_fld1',
type: serverWidget.FieldType.TEXT,
label: 'Field 1'
} );
sublist1.addField( {
id: 'custpage_fld2',
type: serverWidget.FieldType.TEXT,
label: 'Field 2'
} );
var addedfilter;
if ( entityField )
{
addedfilter = [
[ "type", "anyof", "SalesOrd" ],
"AND",
[ "mainline", "is", "T" ],
"AND",
[ "status", "anyof", "SalesOrd:C", "SalesOrd:A", "SalesOrd:B" ],
"AND",
[ "name", "anyof", entityField ]
]
}
else
{
addedfilter = [
[ "type", "anyof", "SalesOrd" ],
"AND",
[ "mainline", "is", "T" ],
"AND",
[ "status", "anyof", "SalesOrd:C", "SalesOrd:A", "SalesOrd:B" ]
]
}
var salesorderSearchObj = search.create( {
type: "salesorder",
filters: addedfilter,
columns:
[
search.createColumn( {
name: "trandate",
summary: "GROUP",
label: "Date"
} ),
search.createColumn( {
name: "tranid",
summary: "GROUP",
label: "Document Number"
} )
]
} );
var searchResultCount = salesorderSearchObj.runPaged().count;
log.debug( "salesorderSearchObj result count", searchResultCount );
var Array1 = []
salesorderSearchObj.run().each( function ( result )
{
itemObj = {}
itemObj.Date = result.getValue( salesorderSearchObj.columns[ 0 ] )
itemObj.DocNum = result.getValue( salesorderSearchObj.columns[ 1 ] )
Array1.push( itemObj )
return true;
} );
for ( var i = 0; i < Array1.length; i++ )
{
sublist1.setSublistValue( {
id: 'custpage_fld1',
line: i,
value: Array1[ i ].Date
} )
sublist1.setSublistValue( {
id: 'custpage_fld2',
line: i,
value: Array1[ i ].DocNum
} )
}
var mainTab = form.addSubtab( {
id: 'custpage_main_tab2',
label: "Second Tab"
} );
form.addField( {
id: 'custpage_abc_text',
type: serverWidget.FieldType.SELECT,
label: 'pagiation for Tab 2',
container: 'custpage_main_tab'
} )
form.addField( {
id: 'custpage_abc_textttt',
type: serverWidget.FieldType.SELECT,
label: 'pagiation for Tab 1',
container: 'custpage_main_tab'
} )
var sublist2 = form.addSublist( {
id: 'custpage_sublist_2',
type: serverWidget.SublistType.LIST,
label: 'Sublist 2',
tab: 'custpage_main_tab2'
} );
sublist2.addField( {
id: 'custpage_fld3',
type: serverWidget.FieldType.TEXT,
label: 'Field 3'
} );
var salesorderSearchObj = search.create( {
type: "salesorder",
filters: addedfilter,
columns:
[
search.createColumn( {
name: "trandate",
summary: "GROUP",
label: "Date"
} ),
search.createColumn( {
name: "tranid",
summary: "GROUP",
label: "Document Number"
} )
]
} );
var searchResultCount = salesorderSearchObj.runPaged().count;
log.debug( "salesorderSearchObj result count", searchResultCount );
var Array2 = []
salesorderSearchObj.run().each( function ( result )
{
itemObj = {}
itemObj.Date = result.getValue( salesorderSearchObj.columns[ 0 ] )
Array2.push( itemObj )
return true;
} );
for ( var i = 0; i < Array2.length; i++ )
{
sublist2.setSublistValue( {
id: 'custpage_fld3',
line: i,
value: Array2[ i ].Date
} )
}
scriptContext.response.writePage( form );
}
} catch ( e )
{
log.debug( 'onRequest:error', e.message );
}
}
return {
onRequest: onRequest
};
} )