/**
* @NApiVersion 2.x
* @NScriptType Suitelet
*/
define(['N/query', 'N/record', 'N/ui/serverWidget', 'N/log'], function(query, record, serverWidget, log) {
function onRequest(context) {
if (context.request.method === 'GET') {
var form = serverWidget.createForm({
title: 'Customer and Sales Order List'
});
var sublist = form.addSublist({
id: 'custpage_customer_sublist',
type: serverWidget.SublistType.LIST,
label: 'Customers and Sales Orders'
});
sublist.addField({
id: 'custpage_customerid',
type: serverWidget.FieldType.TEXT,
label: 'Customer ID'
});
sublist.addField({
id: 'custpage_customername',
type: serverWidget.FieldType.TEXT,
label: 'Customer Name'
});
sublist.addField({
id: 'custpage_salesorderid',
type: serverWidget.FieldType.TEXT,
label: 'Sales Order ID'
});
sublist.addField({
id: 'custpage_salesorderamount',
type: serverWidget.FieldType.CURRENCY,
label: 'Sales Order Amount'
});
var myQuery = query.create({
type: query.Type.CUSTOMER
});
var customerAlias = myQuery.join({
fieldId: 'salesorder'
});
myQuery.columns = [
myQuery.createColumn({ fieldId: 'entityid' }),
myQuery.createColumn({ fieldId: 'companyname' }),
customerAlias.createColumn({ fieldId: 'tranid' }),
customerAlias.createColumn({ fieldId: 'total' })
];
var resultSet = myQuery.run();
var results = resultSet.results;
for (var i = 0; i < results.length; i++) {
sublist.setSublistValue({
id: 'custpage_customerid',
line: i,
value: results[i].values[0].value
});
sublist.setSublistValue({
id: 'custpage_customername',
line: i,
value: results[i].values[1].value
});
sublist.setSublistValue({
id: 'custpage_salesorderid',
line: i,
value: results[i].values[2].value
});
sublist.setSublistValue({
id: 'custpage_salesorderamount',
line: i,
value: results[i].values[3].value
});
}
form.addSubmitButton({
label: 'Delete All Customers'
});
context.response.writePage(form);
} else if (context.request.method === 'POST') {
var deleteQuery = query.create({
type: query.Type.CUSTOMER
});
deleteQuery.columns = [
deleteQuery.createColumn({ fieldId: 'internalid' })
];
var deleteResultSet = deleteQuery.run();
var deleteResults = deleteResultSet.results;
for (var i = 0; i < deleteResults.length; i++) {
try {
record.delete({
type: record.Type.CUSTOMER,
id: deleteResults[i].values[0].value
});
log.audit('Customer Deleted', 'Customer ID: ' + deleteResults[i].values[0].value);
} catch (e) {
log.error('Error Deleting Customer', e.toString());
}
}
context.response.write('All customers have been deleted.');
}
}
return {
onRequest: onRequest
};
});