Script to set Email statement form to enter the details of the statement to print:

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}

    });

Leave a comment

Your email address will not be published. Required fields are marked *