Jira Code: TM 85
Create a customer profitability report using the script (It is not achievable through standard report customization). Add the fields – jobs, related amounts, transaction amounts, vendor bill, vendor bill amount.
Suitelet Script
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
* @Script Title TM 85 JJ Customer Profitability report
* @ScriptId customscript_tm85_jj_cust_prof_rep
* @Description This script is used to show all the Customer profitability as report
*/
/*******************************************************************************
*TAKE 5 MEDIA
* **************************************************************************
* Date: 13/07/2018
*
* Author: Jobin & Jismi IT Services LLP
*
*
* REVISION HISTORY :
*
* Revision 1.0 $ 13/07/2018 aj : Created
*
* Revision 2.0 $ 05/10/2018 aj : Add Download option
*
******************************************************************************/
define(['N/record', 'N/search', 'N/ui/serverWidget','N/url','N/file', 'N/encode','N/render','N/xml',"SuiteScripts/moment.js"],
/**
* @param {record} record
* @param {search} search
* @param {serverWidget} serverWidget
*/
function(record, search, serverWidget,url,file,encode,render,xml,moment) {
CLIENT_SCRIPT_FILE_ID = 1043;
var PAGE_SIZE = 50;
/**
* Definition of the Suitelet script trigger point.
*
* @param {Object} context
* @param {ServerRequest} context.request - Encapsulation of the incoming request
* @param {ServerResponse} context.response - Encapsulation of the Suitelet response
* @Since 2015.2
*/
function onRequest(context) {
// create a form
var response = context.response;
var entity = context.request.parameters.entity;
var MODE = context.request.parameters.MODE;
dateFrom = context.request.parameters.datefrom;
dateTo = context.request.parameters.dateto;
log.debug("MODE",MODE);
var mode = context.request.method;
log.debug("mode=",mode);
var dateFrom, dateTo;
dateFrom = context.request.parameters.datefrom;
dateTo = context.request.parameters.dateto;
customerIdurl = context.request.parameters.customerId;
if (checkifPresent(dateFrom)&& checkifPresent(dateTo)) {
try {
/* var d = new Date();
var date = d.getDate();
var m = d.getMonth();
var y = d.getFullYear();
var cM = parseInt(m) + 1;
dateFrom = m + '/' + date + '/' + y;
dateTo = cM + '/' + date + '/' + y;*/
var today=moment();
dateTo = today.format("MM/DD/YYYY");
dateFrom = today.subtract(1,"months").format("MM/DD/YYYY");
log.debug('dateFrom',dateFrom);
log.debug('dateTo',dateTo);
} catch (e) {
log.debug("Err@GET fn", e.message);
}
}
try {
if(MODE!='DOWNLOAD'){
var form = serverWidget.createForm({
title: 'Customer Profitability Report'
});
form.clientScriptFileId = CLIENT_SCRIPT_FILE_ID;
var pageId = parseInt(context.request.parameters.page);
var scriptId = context.request.parameters.script;
var deploymentId = context.request.parameters.deploy;
// to add sublist
var dashboardSublist = form.addSublist({
id: 'custpage_sublist',
type: serverWidget.SublistType.LIST,
label: 'Related Information'
});
var datefrm = form.addField({
id: 'custpage_datefrm',
type: serverWidget.FieldType.DATE,
label: 'Date From'
// source: 'department'
});
datefrm.defaultValue = dateFrom;
var dateTofield = form.addField({
id: 'custpage_dateto',
type: serverWidget.FieldType.DATE,
label: 'Date To'
// source: 'department'
});
dateTofield.defaultValue = dateTo;
var customerId = form.addField({
id: 'custpage_customerid',
type: serverWidget.FieldType.SELECT,
label: 'Customer Id',
source: 'customer'
});
log.debug('customerIdurl',customerIdurl)
// if(customerIdurl!=null && customerIdurl!=" " && customerIdurl!=undefined){
customerId.defaultValue = customerIdurl;
//}
// customerId = customerId.defaultValue;
var TotalCount = form.addField({
id: 'custpage_totalcount',
label: 'Total',
type: serverWidget.FieldType.INTEGER
});
form.addButton({
id: 'display',
label: 'Refresh',
functionName: 'display'
});
form.addButton({
id: 'download',
label: 'Download',
functionName: 'download'
});
var customer = dashboardSublist.addField({
id: 'custpage_customer',
label: 'Customer ID',
type: serverWidget.FieldType.TEXT
});
var totalCost = dashboardSublist.addField({
id: 'custpage_totalcost',
label: 'Total Cost',
type: serverWidget.FieldType.TEXT
});
var totalRevenue = dashboardSublist.addField({
id: 'custpage_revenue',
label: 'Total Revenue',
type: serverWidget.FieldType.TEXT
});
var totalProfit = dashboardSublist.addField({
id: 'custpage_profit',
label: 'Total Profit',
type: serverWidget.FieldType.FLOAT
});
//setting a hidden field for saving the entity
var entityid = form.addField({
id: 'custpage_entityid',
label: 'EntityId',
type: serverWidget.FieldType.TEXT
});
entityid.defaultValue = entity;
entityid.updateDisplayType({
displayType: serverWidget.FieldDisplayType.HIDDEN
});
//context.response.writePage(form);
/* if(!customerId)
{
customerId = null;
}
if(dateFrom)
{
customerId = customerIdurl;
// customerId.defaultValue = customerIdurl;
}
*/
// Run search and determine page count
var retrieveSearch = runSearch(PAGE_SIZE, entity, dateFrom, dateTo,MODE, customerIdurl);
// log.debug("retrieveSearch immediate after search",retrieveSearch);
// to get the Job results
var searchTrn = runSearchTransn(PAGE_SIZE, dateFrom, dateTo,MODE);
//log.debug("searchTrn immediate after search",searchTrn);
//getting the total count
var len = retrieveSearch.count;
var len2 = searchTrn.pageRanges.length;
TotalCount.defaultValue = len;
var pageCount = parseFloat(retrieveSearch.count / PAGE_SIZE);
// Set pageId to correct value if out of index
if (!pageId || pageId == '' || pageId < 0)
pageId = 0;
else if (pageId >= pageCount)
pageId = pageCount - 1;
// Add buttons to simulate Next & Previous
if (pageId != 0) {
form.addButton({
id: 'custpage_previous',
label: 'Previous',
functionName: 'getSuiteletPage(' + scriptId + ', ' +
deploymentId + ', ' + (pageId - 1) +
/*, '
+ entity +*/
')'
});
}
if (pageId <= pageCount - 1) {
form.addButton({
id: 'custpage_next',
label: 'Next',
functionName: 'getSuiteletPage(' + scriptId + ', ' +
deploymentId + ', ' + (pageId + 1) +
' , '+ dateFrom +', '+dateTo+
')'
});
}
// Add drop-down and options to navigate to specific page
var selectOptions = form.addField({
id: 'custpage_pageid',
label: 'Page Index',
type: serverWidget.FieldType.SELECT
});
var recordLength = len;
if (recordLength < 50) {
PAGE_SIZE = recordLength;
}
if (recordLength == 0) {
PAGE_SIZE = 1;
}
//log.debug('recordLength', recordLength);
//setting the page index
for (var i = 0; i < pageCount; i++) {
if (i == pageId) {
if (parseInt(pageCount) == i) {
selectOptions.addSelectOption({
value: 'pageid_' + i,
text: ((i * PAGE_SIZE) + 1) + ' - ' +
recordLength,
isSelected: true
});
} else {
selectOptions.addSelectOption({
value: 'pageid_' + i,
text: ((i * PAGE_SIZE) + 1) + ' - ' +
((i + 1) * PAGE_SIZE),
isSelected: true
});
}
} else {
if (parseInt(pageCount) == i) {
selectOptions.addSelectOption({
value: 'pageid_' + i,
text: ((i * PAGE_SIZE) + 1) + ' - ' +
recordLength
});
} else {
selectOptions.addSelectOption({
value: 'pageid_' + i,
text: ((i * PAGE_SIZE) + 1) + ' - ' +
((i + 1) * PAGE_SIZE)
});
}
}
}
if (pageId >= 0 && pageCount != 0) {
// Get subset of data to be shown on page
var addResults = fetchSearchResult(retrieveSearch, pageId, searchTrn,len,len2,MODE);
// log.debug("addResults", addResults);
// Set data returned to columns
// Set data returned to columns
var j = 0;
for (var key in addResults) {
/* dashboardSublist.setSublistValue({
id: 'custpage_jobid',
line: j,
value: checkif(result.jobId)
});
dashboardSublist.setSublistValue({
id: 'custpage_jobname',
line: j,
value: checkif(result.jobName)
});
*/
/* dashboardSublist.setSublistValue({
id: 'custpage_customer',
line: j,
value: checkif(key)
});*/
var obj = addResults[key];
var link_invoice = url.resolveScript({
scriptId : 'customscript_tm_85_jj_sl_invoicesearch',
deploymentId : 'customdeploy_jj_tm_85_invoicesearch',
params : {
'customerId' : key,
'dtFrm' : dateFrom,
'dtTo' : dateTo,
'page' : pageId
}
});
var link_job = url.resolveScript({
scriptId : 'customscript_tm_85_jj_sl_jobsearch',
deploymentId : 'customdeploy_tm_85_jj_sl_jobsearch',
params : {
'customerId' : key,
'dtFrm' : dateFrom,
'dtTo' : dateTo,
'page' : pageId
}
});
var cost = (parseFloat(checkif(obj.totalCost))+parseFloat(checkif(obj.exCart))).toFixed(2);
var link = '<a href= '+link_invoice+'>'+checkif(obj.totalRevenue)+'</a>';
var link1 = '<a href= '+link_job+'>'+checkif(cost)+'</a>';
log.debug("obj",obj)
dashboardSublist.setSublistValue({
id: 'custpage_customer',
line: j,
value: checkif(obj.customerName)
});
dashboardSublist.setSublistValue({
id: 'custpage_totalcost',
line: j,
value: checkif(link1)
});
dashboardSublist.setSublistValue({
id: 'custpage_revenue',
line: j,
value: checkif(link)
});
var profits= (parseFloat(checkif(obj.totalRevenue)) - parseFloat(checkif(cost))).toFixed(2);
dashboardSublist.setSublistValue({
id: 'custpage_profit',
line: j,
value: checkif(profits)
});
// your code
j++;
}
// });
}
context.response.writePage(form);
}
/****
* To download as excel
*/
if(MODE=='DOWNLOAD'){
log.debug("inn of download","in of download");
var retrieveSearch = runSearch(PAGE_SIZE, entity, dateFrom, dateTo,MODE,customerIdurl);
// log.debug("retrieveSearch immediate after search",retrieveSearch);
// to get the Job results
var len1= retrieveSearch.length;
var searchTrn = runSearchTransn(PAGE_SIZE, dateFrom, dateTo,MODE);
var len2 = searchTrn.length;
var resultToExcel = fetchSearchResult(retrieveSearch, 1, searchTrn,len1,len2,MODE);
var XML_TO_PRINT = getXMLDataExcel(resultToExcel, file);
var strXmlEncoded = encode.convert({
string : XML_TO_PRINT,
inputEncoding : encode.Encoding.UTF_8,
outputEncoding : encode.Encoding.BASE_64
});
if (checkForParameter(XML_TO_PRINT)) {
try{
var pdfFile = file.create({
name : 'CustomerProfitabilityReport.xls',
fileType : file.Type.EXCEL,
contents : strXmlEncoded
});
response.writeFile(pdfFile, true);
}catch(e)
{
response.write("File exceeds 10MB");
}
}
else{
response.write("No Result Found. Please change the filters");
}
}
} catch (e) {
log.debug('Err@ Create report', e.message);
}
//}
}
return {
onRequest: onRequest
};
function checkForParameter(parameter, parameterName) {
if (parameter != "" && parameter != null && parameter != undefined && parameter != "null" && parameter != "undefined" && parameter != " ") {
return true;
} else {
if (parameterName)
log.debug('Empty Value found', 'Empty Value for parameter ' + parameterName);
return false;
}
}
function runSearchTransn(searchPageSize, datefrom, dateto,MODE) {
var filters_all = [];
filters_all.push(["type", "anyof", "CustInvc"]);
filters_all.push("AND");
filters_all.push(["mainline","is","T"]);
if ((datefrom != "") && (datefrom != null) && (datefrom != undefined)) {
filters_all.push("AND");
filters_all.push(["trandate", "onorafter", datefrom]);
}
if ((dateto != "") && (dateto != null) && (dateto != undefined)) {
filters_all.push("AND");
filters_all.push(["trandate", "onorbefore", dateto]);
}
// Create Search
var jobSearchObj = search.create({
type: 'transaction',
/* columns : [ {
name: "entityid",
summary: "MAX"
}, {
name: "amount",
join: "transaction",
summary: "SUM"
}
], */
columns: [{
name: "internalid",
join: "customer",
summary: "GROUP",
sort: search.Sort.ASC,
label: "Name"
},
{
name: "amount",
summary: "SUM",
label: "Amount"
}
],
filters: filters_all
});
//if mode is not download
if(MODE!='DOWNLOAD')
{
return jobSearchObj.runPaged({
pageSize: 1000
});
}
else{
var responseArray=[];
var trnCount = jobSearchObj.runPaged().count;
log.debug("trnCount", trnCount);
if (trnCount < 1)
return responseArray;
var start = 0;
var end = 1000;
var raresultarray1 = [];
var singleresult;
var result = [];
for (var i = 0; i < Math.ceil(trnCount / 1000); i++) {
result = [];
result = jobSearchObj.run().getRange({
start: start,
end: end
});
for (var j = 0; j < result.length; j++) {
singleresult = result[j];
raresultarray1.push(singleresult);
responseArray.push(result[j]);
}
start = end;
end = end + 1000;
}
return responseArray;
}
}
//creating the search
function runSearch(searchPageSize, entity, dateFrom, dateto,MODE, customerId) {
var filters_all = [];
//filters_all.push(["stage","anyof","CUSTOMER"]);
/*filters_all.push("AND");*/
if ((dateFrom != "") && (dateFrom != null) && (dateFrom != undefined) && (dateto != "") && (dateto != null) && (dateto != undefined)) {
filters_all.push(["datecreated", "within", dateFrom, dateto]);
} else {
if ((dateFrom != "") && (dateFrom != null) && (dateFrom != undefined)) {
//filters_all.push("AND");
filters_all.push(["datecreated", "onorafter", dateFrom]);
}
if ((dateto != "") && (dateto != null) && (dateto != undefined)) {
//filters_all.push("AND");
filters_all.push(["datecreated", "onorbefore", dateto]);
}
}
// if(customerId)
if((customerId != "") && (customerId != null) && (customerId != undefined))
{
filters_all.push("AND");
filters_all.push(["customer","anyof",customerId]);
}
else
{
filters_all.push("AND");
filters_all.push(["customer","noneof","@NONE@"]);
}
// Create Search
var customerSearchObj = search.create({
type: 'job',
columns: [{
name: "amount",
join: "transaction",
summary: "SUM",
label: "Amount"
},
{
name: "customer",
summary: "GROUP",
sort: search.Sort.ASC,
label: "Customer"
},
{
name: "formulanumeric",
summary: "SUM",
formula: "TO_NUMBER({custentity_transaction_amount})",
label: "Formula (Numeric)"
}
],
filters: filters_all
});
log.debug({
title: ' filters_all',
details: filters_all
});
if(MODE!='DOWNLOAD'){
return customerSearchObj.runPaged({
pageSize: searchPageSize
});
}
else{
var responseArray=[];
var trnCount = customerSearchObj.runPaged().count;
// log.debug("trnCount", trnCount);
if (trnCount < 1)
return responseArray;
var start = 0;
var end = 1000;
var raresultarray1 = [];
var singleresult;
var result = [];
for (var i = 0; i < Math.ceil(trnCount / 1000); i++) {
result = [];
result = customerSearchObj.run().getRange({
start: start,
end: end
});
for (var j = 0; j < result.length; j++) {
singleresult = result[j];
raresultarray1.push(singleresult);
responseArray.push(result[j]);
}
start = end;
end = end + 1000;
}
return responseArray;
}
}
/****
* FOR DOWNLOAD
*/
//getting data based on the rage
function fetchSearchResult(pagedData, pageIndex, data2,len1,len2,MODE) {
try {
var results = new Array();
var resultsObj = {};
var Objct = {};
/*job search */
if(MODE!='DOWNLOAD'){
var searchPage = pagedData.fetch({
index: pageIndex
});
searchPage.data.forEach(function(result) { // fetching values
var customer = result.getValue({
name: "customer",
summary: "GROUP",
sort: search.Sort.ASC
});
var customerName = result.getText({
name: "customer",
summary: "GROUP"
});
var totalCost = result.getValue({
name: "amount",
join: "transaction",
summary: "SUM",
label: "Amount"
});
// to get the ext cart individual amt
var exCart = result.getValue({
name: "formulanumeric",
summary: "SUM",
formula: "TO_NUMBER({custentity_transaction_amount})",
label: "Formula (Numeric)"
});
Objct[customer] = {};
Objct[customer].exCart =0;
Objct[customer].totalCost = totalCost;
Objct[customer].customerName =customerName;
Objct[customer].exCart =exCart;
});
log.debug("len2",len2);
// run the search for trn invoice
for(var i =0;i<len2;i++){
var data2search = data2.fetch({
index: i
});
data2search.data.forEach(function(result1) {
// fetching values
// from saved search
// results
var customerTn = result1.getValue({
name: "internalid",
join: "customer",
summary: "GROUP",
sort: search.Sort.ASC
});
var totalRevenue = result1.getValue({
name: "amount",
summary: "SUM"
});
try {
Objct[customerTn].totalRevenue = totalRevenue;
} catch (e) {
}
});
}
}
else{
var lengthOfTotalData = pagedData.length;
pagedData.forEach(function(result) {
// fetching values
var customer = result.getValue({
name: "customer",
summary: "GROUP",
sort: search.Sort.ASC
});
var customerName = result.getText({
name: "customer",
summary: "GROUP"
});
var totalCost = result.getValue({
name: "amount",
join: "transaction",
summary: "SUM",
label: "Amount"
});
// to get the ext cart individual amt
var exCart = result.getValue({
name: "formulanumeric",
summary: "SUM",
formula: "TO_NUMBER({custentity_transaction_amount})",
label: "Formula (Numeric)"
});
Objct[customer] = {};
Objct[customer].exCart =0;
Objct[customer].totalCost = totalCost;
Objct[customer].customerName =customerName;
Objct[customer].exCart =exCart;
});
log.debug("len2",len2);
// run the search for trn invoice
data2.forEach(function(result1) { // fetching values
// from saved search
// results
var customerTn = result1.getValue({
name: "internalid",
join: "customer",
summary: "GROUP",
sort: search.Sort.ASC
});
var totalRevenue = result1.getValue({
name: "amount",
summary: "SUM"
});
try {
Objct[customerTn].totalRevenue = totalRevenue;
} catch (e) {
}
});
log.debug({
title: 'Objct',
details: Objct
});
}
return Objct;
} catch (e) {
log.debug({
title: 'err@search fetch',
details: e.message
});
}
}
function checkif(singleitem) {
if (singleitem == "" || singleitem == null || singleitem == undefined) {
return "0";
} else {
return singleitem;
}
}
function checkifPresent(singleitem) {
if (singleitem == "" || singleitem == null || singleitem == undefined) {
return true;
} else {
return false;
}
}
/*******************************************************************************
* To download XML
*/
function getXMLDataExcel(searchResult, file) {
try {
var XML = "";
var myXMLFile = file.load({
id : '1057'
});
var myXMLFile_value = myXMLFile.getContents();
var length = Object.keys(searchResult).length;
if (length > 0) {
var TABLE = "";
log.debug("searchResult.length", length);
for (var key in searchResult) {
var obj = searchResult[key];
var cost = (parseFloat(checkif(obj.totalCost))+parseFloat(checkif(obj.exCart))).toFixed(2);
var profits= (parseFloat(checkif(obj.totalRevenue)) - parseFloat(checkif(cost))).toFixed(2);
var strVar = "";
strVar += " <Row ss:AutoFitHeight=\"0\">";
strVar += " <Cell><Data ss:Type=\"String\">" + checkif(obj.customerName)
+ "<\/Data><\/Cell>";
strVar += " <Cell><Data ss:Type=\"String\">" + checkif(cost)
+ "<\/Data><\/Cell>";
strVar += " <Cell><Data ss:Type=\"String\">" + checkif(obj.totalRevenue)
+ "<\/Data><\/Cell>";
strVar += " <Cell><Data ss:Type=\"String\">" + checkif(profits)
+ "<\/Data><\/Cell>";
strVar += " <\/Row>";
if (i < (length - 1)) {
strVar = strVar + '\n';
}
TABLE = TABLE + strVar;
}
XML = myXMLFile_value.replace('<!-- REPLACEWITHTABLEBODY -->',
TABLE);
}
log.debug("XML", XML);
return XML;
} catch (e) {
log.debug("err@getXMLData", e);
}
}
});
Client script
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @Script Title TM 85 JJ CS Customer Profitability.js
* @Scriptid
* @Dependency TM 85 JJ Customer Profitability report,TM-85 JJ SL INVOICE SEARCH,TM 85 JJ JOB SEARCH.
* @Author Jobin and Jismi IT Services LLP
* @Description for implementing multiple pages,to refresh the result after selecting dates,to go back to the start page.
*/
define(['N/url','N/currentRecord','N/runtime','N/search'],
function (url,currentRecord,runtime,search) {
function pageInit(scriptContext) {
if (window.onbeforeunload) {
window.onbeforeunload = function() {
null;
};
}
}
function fieldChanged(context) {
try
{
// Navigate to selected page
if (context.fieldId == 'custpage_pageid') {
var pageId = context.currentRecord.getValue({
fieldId : 'custpage_pageid'
});
var dateFrom = context.currentRecord.getText({
fieldId : 'custpage_datefrm'
});
var dateTo = context.currentRecord.getText({
fieldId : 'custpage_dateto'
});
// console.log('dateTo',dateFrom+','+dateTo);
pageId = parseInt(pageId.split('_')[1]);
document.location = url.resolveScript({
scriptId : getParameterFromURL('script'),
deploymentId : getParameterFromURL('deploy'),
params : {
'page' : pageId,
'datefrom' : dateFrom,
'dateto' : dateTo
}
});
//console.log(document.location);
}
}
catch(e)
{
log.debug({
title: 'error',
details: e.message
});
}
}
//for next and previous buttons
function getSuiteletPage(suiteletScriptId, suiteletDeploymentId, pageId,dateFrom,dateTo) {
try
{
var record = currentRecord.get();
var datefrom = record.getText({
fieldId : 'custpage_datefrm'
});
var dateto = record.getText({
fieldId : 'custpage_dateto'
});
var urlToSend = url.resolveScript({
scriptId :'customscript_tm85_jj_cust_prof_rep',
deploymentId : 'customdeploy_tm85_jj_cust_prof_rep',
params : {
'page' : pageId,
'datefrom' : datefrom,
'dateto' : dateto
}
});
//var url = window.location.href;
if (urlToSend.indexOf('?') > -1) {
urlToSend += /*'&MODE=DOWNLOAD&'+*/'&datefrom='+datefrom +'&dateto='+dateto+'&page='+pageId;
} else {
urlToSend += /*'?MODE=DOWNLOAD&='+*/'&datefrom='+datefrom +'&dateto='+dateto+'&page='+pageId;
}
window.location.href = urlToSend;
}
catch(e)
{
log.debug({
title: 'getSuiteletPage',
details: e.message
});
}
}
function getParameterFromURL(param) {
try
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == param) {
return decodeURIComponent(pair[1]);
}
// console.log('inn');
}
return (false);
}
catch(e)
{
log.debug({
title: 'getParameterFromURL',
details: e.message
});
}
}
// for refresh button
function display(){
try{
var record = currentRecord.get();
var datefrom = record.getText({
fieldId : 'custpage_datefrm'
});
var dateto = record.getText({
fieldId : 'custpage_dateto'
});
var customerId = record.getValue({
fieldId : 'custpage_customerid'
});
var urlToSend = url.resolveScript({
scriptId :'customscript_tm85_jj_cust_prof_rep',
deploymentId : 'customdeploy_tm85_jj_cust_prof_rep',
params : {
'datefrom' : datefrom,
'dateto' : dateto,
'customerId' : customerId
}
});
//var url = window.location.href;
if (urlToSend.indexOf('?') > -1) {
urlToSend += /*'&MODE=DOWNLOAD&'+*/'&datefrom='+datefrom +'&dateto='+dateto+'&customerId='+customerId;
} else {
urlToSend += /*'?MODE=DOWNLOAD&='+*/'&datefrom='+datefrom +'&dateto='+dateto+'&customerId='+customerId;
}
window.location.href = urlToSend;
}catch(e)
{
console.log("Err@Fn Display",e);
}
}
// for refresh button
function download(){
try{
var record = currentRecord.get();
var datefrom = record.getText({
fieldId : 'custpage_datefrm'
});
var dateto = record.getText({
fieldId : 'custpage_dateto'
});
var customerId = record.getValue({
fieldId : 'custpage_customerid'
});
log.debug('customerId',customerId);
var urlToSend = url.resolveScript({
scriptId :'customscript_tm85_jj_cust_prof_rep',
deploymentId : 'customdeploy_tm85_jj_cust_prof_rep',
params : {
'MODE':'DOWNLOAD',
'datefrom' : datefrom,
'dateto' : dateto,
'customerId' : customerId
}
});
window.open(urlToSend);
console.log(urlToSend)
/*//var url = window.location.href;
if (urlToSend.indexOf('?') > -1) {
urlToSend += '&MODE=DOWNLOAD&'+'&datefrom='+datefrom +'&dateto='+dateto;
} else {
urlToSend += '?MODE=DOWNLOAD&='+'&datefrom='+datefrom +'&dateto='+dateto;
}
window.open(urlToSend);
console.log(urlToSend)*/
}catch(e)
{
console.log("Err@Fn Display",e);
}
}
//for return to summary button
function backButton(){
try{
var record = currentRecord.get();
var datefrom = record.getText({
fieldId : 'custpage_datefrm'
});
var dateto = record.getText({
fieldId : 'custpage_dateto'
});
var pageId = record.getText({
fieldId : 'custpage_pageid'
});
//alert("datefrom="+datefrom+"dateto="+dateto);
var urlToSend = url.resolveScript({
scriptId :'customscript_tm85_jj_cust_prof_rep',
deploymentId : 'customdeploy_tm85_jj_cust_prof_rep',
params : {
'datefrom' : datefrom,
'dateto' : dateto,
'page': pageId
}
});
if (urlToSend.indexOf('?') > -1) {
urlToSend += /*'&MODE=DOWNLOAD&'+*/'&datefrom='+datefrom +'&dateto='+dateto+'&page='+pageId;
} else {
urlToSend += /*'&MODE=DOWNLOAD&'+*/'&datefrom='+datefrom +'&dateto='+dateto+'&page='+pageId;
}
window.location.href = urlToSend;
}catch(e)
{
console.log("Err@Fn backButton",e);
}
}
//Download action on Job List
function download_job_report() {
try {
var get_url=window.location.href;
get_url += '&mode=DOWNLOAD';
window.open(get_url);
} catch (err) {
console.log(err)
}
}
//Download action on Job List
function downloadInvoice() {
try {
var get_url=window.location.href;
get_url += '&mode=DOWNLOAD';
window.open(get_url);
} catch (err) {
console.log(err)
}
}
/*function downloadTest() {
try {
var get_url=window.location.href;
get_url += '&mode=DOWNLOAD';
window.open(get_url);
} catch (err) {
console.log(err)
}
}
// for refresh button
function displayTest(){
try{
var record = currentRecord.get();
var datefrom = record.getText({
fieldId : 'custpage_datefrm'
});
var dateto = record.getText({
fieldId : 'custpage_dateto'
});
var urlToSend = url.resolveScript({
scriptId :'customscript_jj_test_customer_prof',
deploymentId : 'customdeploy_jj_test_customer_prof',
params : {
'datefrom' : datefrom,
'dateto' : dateto
}
});
//var url = window.location.href;
if (urlToSend.indexOf('?') > -1) {
urlToSend += '&MODE=DOWNLOAD&'+'&datefrom='+datefrom +'&dateto='+dateto;
} else {
urlToSend += '?MODE=DOWNLOAD&='+'&datefrom='+datefrom +'&dateto='+dateto;
}
window.location.href = urlToSend;
}catch(e)
{
console.log("Err@Fn Display",e);
}
} */
return {
pageInit:pageInit,
fieldChanged : fieldChanged,
getSuiteletPage : getSuiteletPage,
display: display,
backButton:backButton,
download:download,
download_job_report:download_job_report,
downloadInvoice:downloadInvoice/*,
downloadTest:downloadTest,
displayTest:displayTest*/
};
});