Nilesh Patil
11/19/2020, 10:19 AM/**
* @param {String} type Context Types: scheduled, ondemand, userinterface, aborted, skipped
* @returns {Void}
*/
function scheduled(type) {
var context = nlapiGetContext();
var body_config_ids = getBodyEmailResults();
nlapiLogExecution('debug','body_config_ids',body_config_ids);
var script_param = nlapiGetContext().getSetting('SCRIPT', 'custscript_emailrecord');
// nlapiLogExecution('debug','script_param',script_param);
if(script_param){
// for (var i = 0;body_config_ids && i < body_config_ids.length; i++) {
//var conf_rec= nlapiLoadRecord('customrecord_body_email_config',body_config_ids[i]);
var conf_rec= nlapiLoadRecord('customrecord_body_email_config',script_param);
var sea_ids = conf_rec.getFieldValues('custrecord_email_search');
var emp_ids = conf_rec.getFieldValues('custrecord_emp_email');
var search_names = conf_rec.getFieldTexts('custrecord_email_search');
var emails =[]
for (var e = 0; e < emp_ids.length; e++) {
var email= nlapiLookupField('employee',emp_ids[e],'email');
emails.push(email);
}
var inline='';
for (var k = 0; sea_ids && k < sea_ids.length; k++) {
if(context.getRemainingUsage() <= 1000){
nlapiYieldScript();
}
nlapiLogExecution('debug','searchId',sea_ids[k]);
var headerLabels =[];
var getAllResults =[];
var search = nlapiLoadSearch(null, sea_ids[k]);
nlapiLogExecution('debug','search',search.name);
var searchResults = search.runSearch();
var resultIndex = 0;
var resultStep = 1000; // Number of records returned in one step (maximum is 1000)
var resultSet;
inline +='<h3>'+search_names[k]+':<h3>';
// nlapiLogExecution('debug','search_names',search_names[k]);
inline+='<table style ="border: 1px solid black;border-collapse: collapse;">';
var header_label = search.getColumns();
inline+='<tr>'
for (var x = 0; x < header_label.length; x++) {
var cName = header_label[x].label;
inline+='<td align ="center" style ="border: 1px solid black;background-color: #E2EAF0;"><b>'+cName+'</b></td>'
}
inline+='</tr>'
do
{
// fetch one result set
resultSet = searchResults.getResults(resultIndex, resultIndex + resultStep);
resultIndex = resultIndex + resultStep;
// nlapiLogExecution('debug','searchResults',resultSet.length);
for(var l=0;l<resultSet.length;l++){
var results = resultSet[l];
var column_results = results.getAllColumns();
inline+='<tr>';
for (var m = 0; m < column_results.length; m++) {
var field_type = column_results[m].getType();
// nlapiLogExecution('debug','field_type',field_type);
if(field_type =='select'){
inline+='<td align ="center" style ="border: 1px solid black;font-weight:normal;">'+results.getText(column_results[m])+'</td>';
}else if(field_type =='currency'){
inline+='<td align ="center" style ="border: 1px solid black;font-weight:normal;">'+format(results.getValue(column_results[m]))+'</td>';
}
else{
inline+='<td align ="center" style ="border: 1px solid black;font-weight:normal;">'+results.getValue(column_results[m])+'</td>';
}
}
inline+='</tr>'
// nlapiLogExecution('debug','getAllResults',getAllResults);
}
}while (resultSet && resultSet.length > 0)
inline+='</table><br/>';
nlapiLogExecution('debug','inline',inline);
}
if(emails.length > 0){
var today = new Date();
var currentDate= (today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear();
var subject = 'Daily Transactions Consolidated Report India: '+currentDate;
nlapiLogExecution('debug','emails.length',emails.length);
nlapiSendEmail(183273,emails,subject ,inline,null,null,null,null,null,null,'<mailto:create-netsuiteticket@rahisystems.com|create-netsuiteticket@rahisystems.com>');
}
//}
}
}
function getBodyEmailResults() {
var total_records =[];
var search = nlapiCreateSearch("customrecord_body_email_config",
[
["isinactive","is","F"]
],
[
new nlobjSearchColumn("internalid"),
new nlobjSearchColumn("custrecord_email_search"),
new nlobjSearchColumn("custrecord_emp_email")
]
);
var searchResults = search.runSearch();
var resultIndex = 0;
var resultStep = 1000; // Number of records returned in one step (maximum is 1000)
var resultSet;
do
{
resultSet = searchResults.getResults(resultIndex, resultIndex + resultStep);
resultIndex = resultIndex + resultStep;
nlapiLogExecution('debug','Body Email Search Results',resultSet.length);
for ( var j in resultSet ){
var body_email_id = resultSet[j].getId();
total_records.push(body_email_id);
}
// once no records are returned we already got all of them
} while (resultSet.length > 0){}
nlapiLogExecution('debug','total_records',total_records);
return total_records;
}
function format(amount) {
return amount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}