This script will create a custom statement form which resembles the the standard statement form .
/**
* @NApiVersion 2.1
* @NScriptType Suitelet
*/
/*******************************************************************
* Suitelet Script
****************************************************************
*
* Date: 07/04/2022
*
* Author: Jobin and Jismi IT Services LLP
*
* REVISION HISTORY
*
* Revision 1.0
*
* Description: Script to set a Email Statement Form to enter the details of the statement to print
*
* Revision 2.0
*
***************************************************************/
define(['N/record', 'N/ui/serverWidget','N/redirect','N/render','N/file'],
/**
* @param{record} record
* @param{serverWidget} serverWidget
*/
(record, newForm,redirect,render,file) => {
const FORM_ID=264;
/**
* @param function creates a form to enter statement details
* @param returns the form
*/
const onRequest = (scriptContext) => {
try {
var form = newForm.createForm({title: 'Email Statement Form'});
log.debug("form",form);
if (scriptContext.request.method === 'GET'){
form.addFieldGroup({id:'jjstmentdtls',label:'Statement details' });
var StartDate = form.addField({
id:'custrecord_jj_strtd',
type: newForm.FieldType.DATE,
label: 'Start date',
container:'jjstmentdtls'
});
log.debug("StartDate",StartDate)
//log.debug("date");
var newCustomer=form.addField({
id:'custrecord_jj_cust',
type:newForm.FieldType.TEXT,
label:'customers'
});
newCustomer.defaultValue=scriptContext.request.parameters.custscript_customer;
newCustomer.updateDisplayType({
displayType: newForm.FieldDisplayType.HIDDEN
});
log.debug("newCustomer",newCustomer);
var statementdate = form.addField({
id:'custrecord_jj_stmntd',
type: newForm.FieldType.DATE,
label: 'Statement date',
container:'jjstmentdtls'
});
var date = new Date();
log.debug("date", date);
var day=date.getDate()+1;
// log.debug("day", day);
var month = date.getMonth()+1;
// log.debug("month", month);
var year = date.getFullYear();
// log.debug("year", year);
statementdate.defaultValue = month + '/' + day + '/' + year;
log.debug("statementdate",statementdate)
statementdate.isMandatory = true;
var openTrasn = form.addField({
id:'custrecord_jj_opentrnsn',
type: newForm.FieldType.CHECKBOX,
label: 'Open Transactions Only',
container:'jjstmentdtls'
});
openTrasn.defaultValue='T';
form.addSubmitButton({
label: 'Attach'
});
scriptContext.response.writePage(form);
}
else if (scriptContext.request.method==='POST') {
// var param1=scriptContext.request.parameters.custscript_customer;
// log.debug("param1",param1)
var custid=scriptContext.request.parameters.custrecord_jj_cust;
log.debug("custid",custid)
var strtdate = scriptContext.request.parameters.custrecord_jj_strtd;
log.debug("strtdate",strtdate)
var statentdt = scriptContext.request.parameters.custrecord_jj_stmntd;
statentdt.isMandatory=true;
log.debug("statentdt",statentdt);
var openTransns =scriptContext.request.parameters.custrecord_jj_opentrnsn;
openTransns.defaultValue='T';
if (openTransns=='T'){
openTransns=true;
}else {
openTransns=false;
}
log.debug("openTransns",openTransns);
var fileObj=render.statement({
entityId:Number(custid),
formId:FORM_ID,
printMode:render.PrintMode.PDF,
startDate:scriptContext.request.parameters.custrecord_jj_strtd,
statementDate:scriptContext.request.parameters.custrecord_jj_stmntd,
// consolidateStatements:Boolean(scriptContext.request.parameters.custrecord_jj_stmnt),
// openTransactionsOnly:Boolean(scriptContext.request.parameters.custrecord_jj_opentrnsn),
//consolidateStatements:statement,
openTransactionsOnly:openTransns
});
log.debug("file",file);
fileObj.folder = 1517111;
var fileId = fileObj.save();
log.debug("fileObj",fileObj)
log.debug("fileId",fileId)
scriptContext.response.writePage(form);
redirect.redirect({// redirect to email widget
// url: 'https://5033030-sb1.app.netsuite.com/app/crm/common/crmmessage.nl?entitytype=custjob&entity=27574&l=T&templatetype=EMAIL',
url: 'https://5033030-sb1.app.netsuite.com/app/crm/common/crmmessage.nl?entitytype=custjob&entity='+ custid +'&l=T&templatetype=EMAIL&template=47',
parameters: {
// 'record.recipient': POCreator,
// 'record.template': emailTemaple,
'emailtype': 'suitelet',
'customersid':custid,
'statement_date':statentdt,
'start_date':strtdate,
'openonly':openTransns,
// 'letter':forms,
//'consolidated_stmnt':statement,
'printStatement':fileId
}
});
}
}catch (e) {
log.debug("error @ onRequest",e)
}
}
return {onRequest}
});