Bill Payment System

By default NetSuite functionality, in order to write a check, a bill payment record has to be created and then a check record has to be created. From this check record, a cheque can be printed. In our custom functionality, all these steps are done automatically and check is written. The bills which are unpaid will be listed and these bills can be selected for which the cheque has to be written. On clicking submit button corresponding cheques will be created and displayed.

Suitelet

	/**
	 * @NApiVersion 2.x
	 * @NScriptType Suitelet
	 * @NModuleScope SameAccount
	 */
	/**
	 * 
	 * 	Project	:CHESTNUT
	 * 
	 * 	Author	:	Jobin and Jismi IT services LLP
	 *         
	 * Created	:			:JOHN-11 JJ SL Custom Bill Payments Page
	 * updated	:1/5/2018 	:JOHN-53 bill payment/adding approved amount column 
	 * 
	 * 
	 */
	define(['N/https', 'N/record', 'N/runtime', 'N/search', 'N/ui/serverWidget'],
	    /**
	     * @param {https} https
	     * @param {record} record
	     * @param {runtime} runtime
	     * @param {search} search
	     * @param {serverWidget} serverWidget
	     */
	    function(https, record, runtime, search, serverWidget) {
	        /**
	         * 
	         * 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) {
	            if (context.request.method === 'GET') {
	                try {
	                    form = serverWidget.createForm({
	                        title: 'Bill Payments '
	                    });
	                    var addnewcustomer = form.addFieldGroup({
	                        id: 'fieldgroupidexisting',
	                        label: 'Primary Information'
	                    });
	                    var apaccount = form.addField({
	                        id: 'textfield_apaccount',
	                        type: serverWidget.FieldType.SELECT,
	                        label: 'A/P ACCOUNT',
	                        container: 'fieldgroupidexisting'
	                    });
	                    apaccount.defaultValue = 113;
	                    var userObj = runtime.getCurrentUser();
	                    log.debug({ title: "userObj", details: userObj })
	                    var role = userObj.role;
	                    var subsidiary = userObj.subsidiary;
	                    var empid = userObj.id;
	                    apaccount = addpayableaccounts(apaccount);
	                    var vendor = context.request.parameters.vendorid;
	                    var billobj = findpayables(113, "", "", empid, role, vendor);
	                    log.debug({ title: "billobj", details: billobj });
	                    var account = form.addField({
	                        id: 'textfield_account',
	                        type: serverWidget.FieldType.SELECT,
	                        label: 'ACCOUNT',
	                        container: 'fieldgroupidexisting'
	                    });
	                    var defaccount = addaccountlist(role, empid, subsidiary, account);
	                    //  account.defaultValue = 1297;
	                    var balance = form.addField({
	                        id: 'textfield_balance',
	                        type: serverWidget.FieldType.TEXT,
	                        label: 'Balance',
	                        container: 'fieldgroupidexisting'
	                    });
	                    balance.updateDisplayType({
	                        displayType: serverWidget.FieldDisplayType.DISABLED
	                    });
	                    balance.updateDisplaySize({
	                        height: 60,
	                        width: 34.8
	                    });
	                    var date = form.addField({
	                        id: 'textfield_date',
	                        type: serverWidget.FieldType.DATE,
	                        label: 'Date',
	                        container: 'fieldgroupidexisting'
	                    });
	                    date.updateBreakType({
	                        breakType: serverWidget.FieldBreakType.STARTCOL
	                    });
	                    date.updateDisplaySize({
	                        height: 60,
	                        width: 120
	                    });
	                    date.updateLayoutType({
	                        layoutType: serverWidget.FieldLayoutType.STARTROW
	                    });
	                    var postingperiod = form.addField({
	                        id: 'textfield_posting',
	                        type: serverWidget.FieldType.SELECT,
	                        label: 'Postingperiod',
	                        container: 'fieldgroupidexisting'
	                    });
	                    postingperiod.updateLayoutType({
	                        layoutType: serverWidget.FieldLayoutType.ENDROW
	                    });
	                    postingperiod.updateDisplaySize({
	                        height: 60,
	                        width: 120
	                    });
	                    var cheque = form.addField({
	                        id: 'textfield_cheque',
	                        type: serverWidget.FieldType.TEXT,
	                        label: 'Starting Check #',
	                        container: 'fieldgroupidexisting'
	                    });
	                    cheque.updateLayoutType({
	                        layoutType: serverWidget.FieldLayoutType.STARTROW
	                    });

	                    cheque.updateDisplaySize({
	                        height: 60,
	                        width: 14.3
	                    });
	                    var chequeending = form.addField({
	                        id: 'textfield_chequeend',
	                        type: serverWidget.FieldType.TEXT,
	                        label: 'Ending Check #',
	                        container: 'fieldgroupidexisting'
	                    });
	                    chequeending.updateLayoutType({
	                        layoutType: serverWidget.FieldLayoutType.ENDROW
	                    });
	                    chequeending.updateDisplaySize({
	                        height: 60,
	                        width: 14.3
	                    });
	                    chequeending.updateDisplayType({
	                        displayType: serverWidget.FieldDisplayType.DISABLED
	                    });
	                    var payeee = form.addField({
	                        id: 'textfield_payee',
	                        type: serverWidget.FieldType.SELECT,
	                        label: 'Payee',
	                        source: 'vendor',
	                        container: 'fieldgroupidexisting'
	                    })
	                    payeee.updateDisplaySize({
	                        height: 60,
	                        width: 34.8
	                    });
	                    addposting(postingperiod)
	                    // var startdate = form.addField({
	                    //     id: 'textfield_startdate',
	                    //     type: serverWidget.FieldType.DATE,
	                    //     label: 'Start Date',
	                    //     container: 'fieldgroupidexisting'
	                    // });

	                    // var enddate = form.addField({
	                    //     id: 'textfield_enddate',
	                    //     type: serverWidget.FieldType.DATE,
	                    //     label: 'End Date',
	                    //     container: 'fieldgroupidexisting'
	                    // });
	                    // var amount = form.addField({
	                    //     id: 'textfield_amount',
	                    //     type: serverWidget.FieldType.TEXT,
	                    //     label: 'Amount',
	                    //     container: 'fieldgroupidexisting'
	                    // });

	                    // amount.updateDisplayType({
	                    //     displayType: serverWidget.FieldDisplayType.DISABLED
	                    // });


	                    var addnewcustomer = form.addFieldGroup({
	                        id: 'fieldgroupidclass',
	                        label: 'Classification'
	                    });

	                    var newsub = form.addSublist({
	                        id: 'sublistidbilldetails',
	                        type: serverWidget.SublistType.LIST,
	                        label: 'Bill Details'
	                    });
	                    // newsub.addButton({
	                    //     id: 'buttoncheckall',
	                    //     label: 'Select All',
	                    //     functionName: 'processcheckbox'
	                    // });
	                    newsub.addMarkAllButtons();
	                    var checkbox = newsub.addField({
	                        id: 'custpage_check',
	                        label: 'check',
	                        type: serverWidget.FieldType.CHECKBOX
	                    });

	                    checkbox.updateDisplayType({ displayType: serverWidget.FieldDisplayType.ENTRY });


	                    var internalid = newsub.addField({
	                        id: 'custpage_internalid',
	                        label: 'Hidden',
	                        type: serverWidget.FieldType.TEXT
	                    });
	                    internalid.updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN });

	                    // <style> p.ex1 { margin-left: 10%; } </style>
	                    var duedate = newsub.addField({
	                        id: 'custpage_duedate',
	                        label: 'DUE DATE',
	                        type: serverWidget.FieldType.TEXT
	                    });
	                    duedate.updateDisplayType({ displayType: serverWidget.FieldDisplayType.DISABLED });

	                    var bill = newsub.addField({
	                        id: 'custpage_bill',
	                        label: 'Bill',
	                        type: serverWidget.FieldType.TEXT
	                    });

	                    bill.updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN });

	                    var vendorid = newsub.addField({
	                        id: 'custpage_vendorid',
	                        label: 'Vendorid',
	                        type: serverWidget.FieldType.TEXT
	                    });
	                    vendorid.updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN });
	                    var vendor = newsub.addField({
	                        id: 'custpage_vendor',
	                        label: 'Vendor',
	                        type: serverWidget.FieldType.TEXT
	                    });
	                    vendor.updateDisplayType({ displayType: serverWidget.FieldDisplayType.DISABLED });
	                    var vendorinternalid = newsub.addField({
	                        id: 'custpage_vendorint',
	                        label: 'Vendor',
	                        type: serverWidget.FieldType.TEXT
	                    });
	                    vendorinternalid.updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN });
	                    var reference = newsub.addField({
	                        id: 'custpage_reference',
	                        label: 'Invoice Number',
	                        type: serverWidget.FieldType.TEXT
	                    });
	                    reference.updateDisplayType({ displayType: serverWidget.FieldDisplayType.DISABLED });
	                    var orgamount = newsub.addField({
	                        id: 'custpage_amount',
	                        label: 'Orginal Amount',
	                        type: serverWidget.FieldType.TEXT
	                    });
	                    orgamount.updateDisplayType({ displayType: serverWidget.FieldDisplayType.DISABLED });
	                    var dueamount = newsub.addField({
	                        id: 'custpage_dueamount',
	                        label: 'Amount	 due',
	                        type: serverWidget.FieldType.TEXT
	                    });
	                    var approvedAmount = newsub.addField({
	                        id: 'custpage_upy_approved_payment',
	                        label: 'Approved amount',
	                        type: serverWidget.FieldType.TEXT
	                    });
	                    dueamount.updateDisplayType({ displayType: serverWidget.FieldDisplayType.DISABLED });
	                    var payment = newsub.addField({
	                        id: 'custpage_payment',
	                        label: 'Payment',
	                        type: serverWidget.FieldType.TEXT
	                    });
	                    payment.updateDisplayType({ displayType: serverWidget.FieldDisplayType.ENTRY });
	                    var set = setsublist(billobj, newsub);
	                    form.clientScriptFileId = '1999';
	                    form.addSubmitButton({
	                        label: 'Save and Print '
	                    });
	                    context.response.writePage(form);
	                } catch (e) {
	                    log.debug({ details: e, title: "e" });
	                }
	            }
	        }

	        return {
	            onRequest: onRequest
	        };
	        /*Add payables account to the payable dropdown list*/
	        function addpayableaccounts(field) {
	            try {
	                var accountSearchObj = search.create({
	                    type: "account",
	                    filters: [
	                        ["type", "anyof", "AcctPay"]
	                    ],
	                    columns: [
	                        search.createColumn({
	                            name: "name",
	                            sort: search.Sort.ASC
	                        })
	                    ]
	                });
	                var searchResultCount = accountSearchObj.runPaged().count;
	                var search_run = accountSearchObj.run().getRange({
	                    start: 0,
	                    end: 1000
	                });
	                if (search_run.length > 0) {
	                    field.addSelectOption({
	                        value: 0,
	                        text: " "
	                    });
	                    for (var i = 0; i < search_run.length; i++) {
	                        var name = search_run[i].getValue({
	                            name: 'name'
	                        });
	                        var id = search_run[i].id;

	                        field.addSelectOption({
	                            value: id,
	                            text: name
	                        });
	                    }
	                }

	                return field;
	            } catch (e) {
	                log.debug({ title: "e", details: e });
	            }
	        }

	        /*add select fied to posting period*/

	        function addposting(field) {
	            try {
	                var post = [{ "value": "54", "text": "Jan 2014" }, { "value": "55", "text": "Feb 2014" }, { "value": "56", "text": "Mar 2014" }, { "value": "58", "text": "Apr 2014" }, { "value": "59", "text": "May 2014" }, { "value": "60", "text": "Jun 2014" }, { "value": "62", "text": "Jul 2014" }, { "value": "63", "text": "Aug 2014" }, { "value": "64", "text": "Sep 2014" }, { "value": "66", "text": "Oct 2014" }, { "value": "67", "text": "Nov 2014" }, { "value": "68", "text": "Dec 2014" }, { "value": "37", "text": "Jan 2015" }, { "value": "38", "text": "Feb 2015" }, { "value": "39", "text": "Mar 2015" }, { "value": "41", "text": "Apr 2015" }, { "value": "42", "text": "May 2015" }, { "value": "43", "text": "Jun 2015" }, { "value": "45", "text": "Jul 2015" }, { "value": "46", "text": "Aug 2015" }, { "value": "47", "text": "Sep 2015" }, { "value": "49", "text": "Oct 2015" }, { "value": "50", "text": "Nov 2015" }, { "value": "51", "text": "Dec 2015" }, { "value": "20", "text": "Jan 2016" }, { "value": "21", "text": "Feb 2016" }, { "value": "22", "text": "Mar 2016" }, { "value": "24", "text": "Apr 2016" }, { "value": "25", "text": "May 2016" }, { "value": "26", "text": "Jun 2016" }, { "value": "28", "text": "Jul 2016" }, { "value": "29", "text": "Aug 2016" }, { "value": "30", "text": "Sep 2016" }, { "value": "32", "text": "Oct 2016" }, { "value": "33", "text": "Nov 2016" }, { "value": "34", "text": "Dec 2016" }, { "value": "3", "text": "Jan 2017" }, { "value": "4", "text": "Feb 2017" }, { "value": "5", "text": "Mar 2017" }, { "value": "7", "text": "Apr 2017" }, { "value": "8", "text": "May 2017" }, { "value": "9", "text": "Jun 2017" }, { "value": "11", "text": "Jul 2017" }, { "value": "12", "text": "Aug 2017" }, { "value": "13", "text": "Sep 2017" }, { "value": "15", "text": "Oct 2017" }, { "value": "16", "text": "Nov 2017" }, { "value": "17", "text": "Dec 2017" }, { "value": "71", "text": "Jan 2018" }, { "value": "72", "text": "Feb 2018" }, { "value": "73", "text": "Mar 2018" }, { "value": "75", "text": "Apr 2018" }, { "value": "76", "text": "May 2018" }, { "value": "77", "text": "Jun 2018" }, { "value": "79", "text": "Jul 2018" }, { "value": "80", "text": "Aug 2018" }, { "value": "81", "text": "Sep 2018" }, { "value": "83", "text": "Oct 2018" }, { "value": "84", "text": "Nov 2018" }, { "value": "85", "text": "Dec 2018" }, { "value": "88", "text": "Jan 2019" }, { "value": "89", "text": "Feb 2019" }, { "value": "90", "text": "Mar 2019" }, { "value": "92", "text": "Apr 2019" }, { "value": "93", "text": "May 2019" }, { "value": "94", "text": "Jun 2019" }, { "value": "96", "text": "Jul 2019" }, { "value": "97", "text": "Aug 2019" }, { "value": "98", "text": "Sep 2019" }, { "value": "100", "text": "Oct 2019" }, { "value": "101", "text": "Nov 2019" }, { "value": "102", "text": "Dec 2019" }, { "value": "105", "text": "Jan 2020" }, { "value": "106", "text": "Feb 2020" }, { "value": "107", "text": "Mar 2020" }, { "value": "109", "text": "Apr 2020" }, { "value": "110", "text": "May 2020" }, { "value": "111", "text": "Jun 2020" }, { "value": "113", "text": "Jul 2020" }, { "value": "114", "text": "Aug 2020" }, { "value": "115", "text": "Sep 2020" }, { "value": "117", "text": "Oct 2020" }, { "value": "118", "text": "Nov 2020" }, { "value": "119", "text": "Dec 2020" }, { "value": "122", "text": "Jan 2021" }, { "value": "123", "text": "Feb 2021" }, { "value": "124", "text": "Mar 2021" }, { "value": "126", "text": "Apr 2021" }, { "value": "127", "text": "May 2021" }, { "value": "128", "text": "Jun 2021" }, { "value": "130", "text": "Jul 2021" }, { "value": "131", "text": "Aug 2021" }, { "value": "132", "text": "Sep 2021" }, { "value": "134", "text": "Oct 2021" }, { "value": "135", "text": "Nov 2021" }, { "value": "136", "text": "Dec 2021" }];
	                for (var i = 0; i < post.length; i++) {
	                    field.addSelectOption({
	                        value: post[i].value,
	                        text: post[i].text
	                    });
	                }
	            } catch (e) {
	                log.debug({ title: "e", details: e });

	            }
	        }
	        /*Add account to the Drop down field */
	        function addaccountlist(role, empid, subsidiary, field) {
	            try {
	                var subsidiary = findsubsidiaryfilter(empid, role);
	                // var employeeSearchObj = search.create({
	                //     type: "employee",
	                //     filters: [
	                //         ["internalidnumber", "equalto", empid],
	                //         "AND", ["role.internalidnumber", "equalto", role]
	                //     ],
	                //     columns: [
	                //         "altname",
	                //         "role",
	                //         "subsidiary",
	                //         search.createColumn({
	                //             name: "subsidiaries",
	                //             join: "role"
	                //         })
	                //     ]
	                // });
	                // var searchResultCount = employeeSearchObj.runPaged().count;
	                // var subsidiaries = [];
	                // employeeSearchObj.run().each(function(result) {
	                //     var sub = result.getValue({
	                //         name: "subsidiaries",
	                //         join: "role"
	                //     });
	                //     if (sub != null || sub != "" || sub != undefined)
	                //         subsidiaries.push(sub);
	                //     return true;
	                // });
	                // log.debug({ title: "subsidiaries", details: subsidiaries });

	                // if (subsidiaries[0] == "" || subsidiaries[0] == null) {
	                //     subsidiaries = ["Chestnut Group"]
	                // }
	                // var subsidiary = ["subsidiary", "anyof"];
	                // for (var i = 0; i < subsidiaries.length; i++) {
	                //     subsidiary.push(subsidiaries[i]);
	                // }
	                // // ["user.role", "anyof", role],
	                // //         "AND",
	                log.debug({ details: subsidiary, title: "subsidiary" });
	                var accountSearchObj = search.create({
	                    type: "account",
	                    filters: [
	                        ["type", "anyof", "Bank"],
	                        "AND", subsidiary
	                    ],
	                    columns: [
	                        search.createColumn({
	                            name: "name",
	                            sort: search.Sort.ASC
	                        }),
	                        "type",
	                        "description",
	                        "balance",
	                        "internalid"
	                    ]
	                });

	                var searchResultCount = accountSearchObj.runPaged().count;
	                accountSearchObj.run().each(function(result) {
	                    var accountstext = result.getValue({

	                        name: "name"
	                    });
	                    var accountsvalue = result.getValue({
	                        name: "internalid"
	                    });
	                    field.addSelectOption({
	                        value: accountsvalue,
	                        text: accountstext
	                    });
	                    return true;
	                });
	            } catch (e) {
	                log.debug({ title: "e", details: e });

	            }
	        }
	        /*for getting the bill details for adding into the custom sublist */

	        function findsubsidiaryfilter(empid, role) {
	            try {
	                var employeeSearchObj = search.create({
	                    type: "employee",
	                    filters: [
	                        ["internalidnumber", "equalto", empid],
	                        "AND", ["role.internalidnumber", "equalto", role]
	                    ],
	                    columns: [
	                        "role",
	                        "subsidiary",
	                        search.createColumn({
	                            name: "subsidiaries",
	                            join: "role"
	                        })
	                    ]
	                });
	                //var searchResultCount = employeeSearchObj.runPaged().count;
	                var searchResultCount = 1;
	                var subsidiaries = [];
	                employeeSearchObj.run().each(function(result) {
	                    var sub = result.getValue({
	                        name: "subsidiaries",
	                        join: "role"
	                    });
	                    if (sub != null || sub != "" || sub != undefined)
	                        subsidiaries.push(sub);
	                    return true;
	                });
	                log.debug({ title: "subsidiaries", details: subsidiaries });

	                if (subsidiaries[0] == "" || subsidiaries[0] == null) {
	                    subsidiaries = ["Chestnut Group"]
	                }
	                var subsidiary = ["subsidiary", "anyof"];
	                for (var i = 0; i < subsidiaries.length; i++) {
	                    subsidiary.push(subsidiaries[i]);
	                }
	                return subsidiary;
	            } catch (e) {
	                log.debug({ title: "e", details: e });
	            }
	        }

	        function findpayables(account, startdate, enddate, empid, role, vendor) {
	            try {
	                var subsidiary = findsubsidiaryfilter(empid, role);
	                log.debug({ details: account + " " + startdate + " " + enddate + " " })
	                if (vendor != null && vendor != undefined && vendor != "") {
	                    var vendorfilter = ["vendor.internalidnumber", "equalto", vendor];
	                } else {

	                    var vendorfilter = ["vendor.internalidnumber", "isnotempty", ""];
	                }

	                var filtersarray = [
	                    ["account", "anyof", account],
	                    "AND", ["type", "anyof", "VendBill"],
	                    "AND", ["billingstatus", "is", "T"],
	                    "AND", ["approvalstatus", "anyof", "2"],
	                    "AND", ["mainline", "is", "T"],
	                    "AND", vendorfilter,
	                    "AND", subsidiary
	                ];

	                if (startdate == null || startdate == undefined || startdate == "") {

	                } else {
	                    filtersarray.push("AND", ["duedate", "onorafter", startdate]);

	                }
	                if (enddate == null || enddate == undefined || enddate == "") {

	                } else {

	                    filtersarray.push("AND", ["duedate", "onorbefore", enddate]);

	                }

	                var vendorbillSearchObj = search.create({
	                    type: "vendorbill",
	                    filters: filtersarray,
	                    columns: [
	                        search.createColumn({
	                            name: "duedate",
	                            sort: search.Sort.ASC
	                        }),
	                        "type",
	                        "entity",
	                        "amount",
	                        "print",
	                        "refnumber",
	                        "statusref",
	                        "duedate",
	                        "internalid",
	                        "custbody_sii_ref_no",
	                        "tranid",
	                        "amountremaining",
	                        "custbody_upy_approved_amt",
	                        "custbody_upy_approved_payment",
	                        search.createColumn({
	                            name: "entityid",
	                            join: "vendor"
	                        }),
	                        search.createColumn({
	                            name: "legalname",
	                            join: "vendor",
	                            label: "Legal Name"
	                        }),
	                        search.createColumn({
	                            name: "internalid",
	                            join: "vendor"
	                        }),

	                    ]
	                });
	                var search_run = vendorbillSearchObj.run().getRange({
	                    start: 0,
	                    end: 1000
	                });
	                var billarray = [];
	                log.debug({ details: search_run, title: "search_run" });
	                if (search_run.length > 0) {

	                    for (var i = 0; i < search_run.length; i++) {
	                        var billobj = {};

	                        billobj.trandate = search_run[i].getValue({
	                            name: 'duedate'
	                        });
	                        billobj.type = search_run[i].getValue({
	                            name: 'type'
	                        });
	                        billobj.entity = search_run[i].getValue({
	                            name: "legalname",
	                            join: "vendor",
	                            label: "Legal Name"
	                        });
	                        billobj.amount = search_run[i].getValue({
	                            name: 'amount'
	                        });

	                        billobj.vendorid = search_run[i].getValue({
	                            name: 'entityid',
	                            join: 'vendor'
	                        });
	                        billobj.vendorinternalid = search_run[i].getValue({
	                            name: 'internalid',
	                            join: 'vendor'
	                        });
	                        billobj.refnumber = search_run[i].getValue({
	                            name: 'tranid'
	                        });
	                        billobj.currency = search_run[i].getText({
	                            name: 'currency'
	                        });
	                        billobj.internalid = search_run[i].getText({
	                            name: 'internalid'
	                        });
	                        billobj.orgamount = search_run[i].getValue({
	                            name: 'amount'
	                        });
	                        billobj.dueamount = search_run[i].getValue({
	                            name: 'amount'
	                        });
	                        billobj.discountamount = search_run[i].getValue({
	                            name: 'discountamount'
	                        });
	                        billobj.amountremaining = search_run[i].getValue({
	                            name: 'amountremaining'
	                        });

	                        billobj.termsdiscountdate = search_run[i].getValue({
	                            name: 'termsdiscountdate'
	                        });
	                        billobj.custbody_upy_approved_amt = search_run[i].getValue({
	                            name: 'custbody_upy_approved_amt'
	                        });
	                        billobj.custbody_upy_approved_payment = search_run[i].getValue({
	                            name: 'custbody_upy_approved_payment'
	                        });
	                        billarray.push(billobj);
	                    }
	                }
	                return billarray;
	            } catch (e) {
	                log.debug({ details: e, title: "e" });
	            }
	        }


	        // '<center>CHECKBOX</center>',
	        /*Setting sublist on page init */
	        function setsublist(billobj, records) {
	            try {
	                for (var i = 0, k = 0; i < billobj.length; i++) {
	                    if (billobj[i].refnumber != "Memorized") {
	                        records.setSublistValue({
	                            id: 'custpage_check',
	                            line: k,
	                            value: 'F'
	                        });
	                        records.setSublistValue({
	                            id: 'custpage_duedate',
	                            line: k,
	                            value: billobj[i].trandate
	                        });
	                        records.setSublistValue({
	                            id: 'custpage_internalid',
	                            line: k,
	                            value: billobj[i].internalid
	                        });
	                        records.setSublistValue({
	                            id: 'custpage_bill',
	                            line: k,
	                            value: billobj[i].type
	                        });
	                        records.setSublistValue({
	                            id: 'custpage_duedate',
	                            line: k,
	                            value: billobj[i].trandate
	                        });

	                        records.setSublistValue({
	                            id: 'custpage_vendor',
	                            line: k,
	                            value: billobj[i].entity
	                        });

	                        records.setSublistValue({
	                            id: 'custpage_vendorid',
	                            line: k,
	                            value: billobj[i].vendorid
	                        });

	                        records.setSublistValue({
	                            id: 'custpage_vendorint',
	                            line: k,
	                            value: billobj[i].vendorinternalid
	                        });

	                        if (billobj[i].refnumber != "" && billobj[i].refnumber != null) {
	                            records.setSublistValue({
	                                id: 'custpage_reference',
	                                line: k,
	                                value: billobj[i].refnumber
	                            });
	                        }

	                        records.setSublistValue({
	                            id: 'custpage_amount',
	                            line: k,
	                            value: billobj[i].amount
	                        });

	                        records.setSublistValue({
	                            id: 'custpage_dueamount',
	                            line: k,
	                            value: billobj[i].amountremaining
	                        });

	                        records.setSublistValue({
	                            id: 'custpage_payment',
	                            line: k,
	                            value: billobj[i].amountremaining
	                        });
	                        //if vendor bill is approved
	                        if (billobj[i].custbody_upy_approved_payment) {
	                            var approvedAmnt = billobj[i].custbody_upy_approved_amt;
	                            if (approvedAmnt == "") approvedAmnt = billobj[i].amountremaining;
	                            log.debug("approvedAmnt", approvedAmnt);
	                            records.setSublistValue({
	                                id: 'custpage_upy_approved_payment',
	                                line: k,
	                                value: approvedAmnt
	                            });
	                            records.setSublistValue({
	                                id: 'custpage_payment',
	                                line: k,
	                                value: approvedAmnt
	                            });

	                        }


	                        k++;
	                    }
	                }
	            } catch (e) {
	                log.debug({ details: e, title: "e in setsublist" })
	            }
	        }
	    });
Client script

/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */
define(['N/http', 'N/https', 'N/record', 'N/search',
        'N/url', 'N/runtime', 'N/format',
        'N/ui/message', 'N/currentRecord'
    ],

    function(http, https, record, search, url, runtime, format, message, currentRecord) {

        /**
         * Function to be executed after page is initialized.
         *
         * @param {Object} scriptContext
         * @param {Record} scriptContext.currentRecord - Current form record
         * @param {string} scriptContext.mode - The mode in which the record is being accessed (create, copy, or edit)
         *
         * @since 2015.2
         */
        var checksarray = [];
        var check = true;

        function pageInit(scriptContext) {
            try {
                form = serverWidget.createForm({
                    title: 'Bill Payments '
                });

                var records = scriptContext.currentRecord;

                jQuery("#sublistidbilldetailsmarkall,#sublistidbilldetailsunmarkall").click(function() {
                    findcheckend(jQuery('.checkbox'), records);


                });
                var value = records.getValue({
                    fieldId: 'textfield_apaccount'
                });
                //   var billobj = findpayables(value, "", "");
                var value = records.getValue({
                    fieldId: 'textfield_account'
                });
                var balance = findbalance(value)
                records.setValue({
                    fieldId: 'textfield_balance',
                    value: balance,
                    ignoreFieldChange: true
                });
                var date = new Date()
                var day = date.getDate();
                var monthIndex = date.getMonth() + 1;

                var year = date.getFullYear();
                var days = monthIndex + "/" + day + "/" + year;


                records.setValue({
                    fieldId: 'textfield_posting',
                    value: findposting(),
                    ignoreFieldChange: true
                });
                var parsedDate = format.parse({
                    value: days,
                    type: format.Type.DATE
                });

                records.setValue({
                    fieldId: 'textfield_date',
                    value: parsedDate,
                    ignoreFieldChange: true
                });
                //  setsublist(billobj, records);



            } catch (e) {
                console.log(e);
            }
        }


        /**
         * Function to be executed when field is changed.
         *
         * @param {Object} scriptContext
         * @param {Record} scriptContext.currentRecord - Current form record
         * @param {string} scriptContext.sublistId - Sublist name
         * @param {string} scriptContext.fieldId - Field name
         * @param {number} scriptContext.lineNum - Line number. Will be undefined if not a sublist or matrix field
         * @param {number} scriptContext.columnNum - Line number. Will be undefined if not a matrix field
         *
         * @since 2015.2
         */
        function fieldChanged(scriptContext) {
            try {
                var records = scriptContext.currentRecord;
                if (scriptContext.fieldId == 'textfield_account') {
                    var value = records.getValue({
                        fieldId: 'textfield_account'
                    });

                    var balance = findbalance(value);
                    records.setValue({
                        fieldId: 'textfield_balance',
                        value: balance,
                        ignoreFieldChange: true
                    });
                }

                if (scriptContext.fieldId == 'textfield_cheque') {

                    findcheckend(jQuery('.checkbox'), records);
                }
                // if (scriptContext.fieldId == 'textfield_startdate') {
                //     var value = records.getValue({
                //         fieldId: 'textfield_apaccount'
                //     });
                //     var startdate = jQuery("#textfield_startdate").val();
                //     var enddate = jQuery("#textfield_enddate").val();
                //     var billobj = findpayables(value, startdate, enddate);
                //     setsublist(billobj, records);
                // }

                // if (scriptContext.fieldId == 'textfield_enddate') {
                //     var value = records.getValue({
                //         fieldId: 'textfield_apaccount'
                //     });
                //     var startdate = jQuery("#textfield_startdate").val();
                //     var enddate = jQuery("#textfield_enddate").val();
                //     var billobj = findpayables(value, startdate, enddate);

                //     setsublist(billobj, records);
                // }
            } catch (e) {

                console.log(e);
            }
        }

        /**
         * Function to be executed after sublist is inserted, removed, or edited.
         *
         * @param {Object} scriptContext
         * @param {Record} scriptContext.currentRecord - Current form record
         * @param {string} scriptContext.sublistId - Sublist name
         *
         * @since 2015.2
         */
        function sublistChanged(scriptContext) {
            try {
                var records = scriptContext.currentRecord;
                var rambo = findcheckend(jQuery('.checkbox'), records);


                // var total = findduetotal(records)

                // records.setValue({
                //     fieldId: 'textfield_amount',
                //     value: total,
                //     ignoreFieldChange: true
                // });
            } catch (e) {
                console.log(e);
            }
        }

        /**
         * Validation function to be executed when record is saved.
         *
         * @param {Object} scriptContext
         * @param {Record} scriptContext.currentRecord - Current form record
         * @returns {boolean} Return true if record is valid
         *
         * @since 2015.2
         */
        function saveRecord(scriptContext) {
            try {
                // jQuery("#secondarysubmitter").attr("disabled", true);

                var records = scriptContext.currentRecord;

                var rambo = getsublist(records);
                console.log(rambo);
                var bills = paybills(rambo);
            } catch (e) {
                console.log(e);
            }
        }

        return {
            pageInit: pageInit,
            fieldChanged: fieldChanged,
            saveRecord: saveRecord,
            sublistChanged: sublistChanged,
            processcheckbox: processcheckbox

        };
        // /*for getting the bill details for adding into the custom sublist */
        // function findpayables(account, startdate, enddate) {
        //     try {
        //         console.log(account, startdate, enddate);
        //         var filtersarray = [
        //             ["account", "anyof", account],
        //             "AND", ["type", "anyof", "VendBill"],
        //             "AND", ["billingstatus", "is", "T"],
        //             "AND", ["approvalstatus", "anyof", "2"],
        //             "AND", ["mainline", "is", "T"]
        //         ];

        //         if (startdate == null || startdate == undefined || startdate == "") {} else {
        //             filtersarray.push("AND", ["duedate", "onorafter", startdate]);
        //         }
        //         if (enddate == null || enddate == undefined || enddate == "") {} else {
        //             filtersarray.push("AND", ["duedate", "onorbefore", enddate]);
        //         }
        //         var vendorbillSearchObj = search.create({
        //             type: "vendorbill",
        //             filters: filtersarray,
        //             columns: [
        //                 search.createColumn({
        //                     name: "duedate",
        //                     sort: search.Sort.ASC
        //                 }),
        //                 "type",
        //                 "entity",
        //                 "amount",
        //                 "print",
        //                 "refnumber",
        //                 "statusref",
        //                 "duedate",
        //                 "internalid",
        //                 "custbody_sii_ref_no",
        //                 "tranid",
        //                 search.createColumn({
        //                     name: "entityid",
        //                     join: "vendor"
        //                 }),
        //                 search.createColumn({
        //                     name: "altname",
        //                     join: "vendor"
        //                 }),
        //                 search.createColumn({
        //                     name: "internalid",
        //                     join: "vendor"
        //                 })
        //             ]
        //         });
        //         var search_run = vendorbillSearchObj.run().getRange({
        //             start: 0,
        //             end: 1000
        //         });
        //         var billarray = [];
        //         console.log(search_run);
        //         if (search_run.length > 0) {

        //             for (var i = 0; i < search_run.length; i++) {
        //                 var billobj = {};

        //                 billobj.trandate = search_run[i].getValue({
        //                     name: 'duedate'
        //                 });
        //                 billobj.type = search_run[i].getValue({
        //                     name: 'type'
        //                 });
        //                 billobj.entity = search_run[i].getValue({
        //                     name: "altname",
        //                     join: "vendor"
        //                 });
        //                 billobj.amount = search_run[i].getValue({
        //                     name: 'amount'
        //                 });

        //                 billobj.vendorid = search_run[i].getValue({
        //                     name: 'entityid',
        //                     join: 'vendor'
        //                 });
        //                 billobj.vendorinternalid = search_run[i].getValue({
        //                     name: 'internalid',
        //                     join: 'vendor'
        //                 });
        //                 billobj.refnumber = search_run[i].getValue({
        //                     name: 'tranid'
        //                 });
        //                 billobj.currency = search_run[i].getText({
        //                     name: 'currency'
        //                 });
        //                 billobj.internalid = search_run[i].getText({
        //                     name: 'internalid'
        //                 });
        //                 billobj.orgamount = search_run[i].getValue({
        //                     name: 'amount'
        //                 });
        //                 billobj.dueamount = search_run[i].getValue({
        //                     name: 'amount'
        //                 });
        //                 billobj.discountamount = search_run[i].getValue({
        //                     name: 'discountamount'
        //                 });
        //                 billobj.termsdiscountdate = search_run[i].getValue({
        //                     name: 'termsdiscountdate'
        //                 });
        //                 billarray.push(billobj);
        //             }
        //         }
        //         return billarray;
        //     } catch (e) {
        //         var errormsg = message.create({
        //             title: refund.substring(5),
        //             message: "",
        //             type: message.Type.ERROR
        //         });
        //         errormsg.show({
        //             duration: 5000
        //         });
        //         console.log(e);
        //     }
        // }
        // /*Setting sublist on page init */
        // function setsublist(billobj, records) {
        //     try {
        //         var numLines = records.getLineCount({
        //             sublistId: 'sublistidbilldetails'
        //         });
        //         for (var i = 0; i < numLines; i++) {
        //             records.removeLine({
        //                 sublistId: 'sublistidbilldetails',
        //                 line: 0,
        //                 ignoreRecalc: true
        //             });
        //         }
        //         for (var i = 0; i < billobj.length; i++) {
        //             if (billobj[i].refnumber != "Memorized") {
        //                 records.selectNewLine({
        //                     sublistId: 'sublistidbilldetails'
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_check',
        //                     value: false,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_duedate',
        //                     value: billobj[i].trandate,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_internalid',
        //                     value: billobj[i].internalid,
        //                     ignoreFieldChange: true
        //                 });

        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_bill',
        //                     value: billobj[i].type,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_duedate',
        //                     value: billobj[i].trandate,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_vendor',
        //                     value: billobj[i].entity,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_vendorid',
        //                     value: billobj[i].vendorid,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_vendorint',
        //                     value: billobj[i].vendorinternalid,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_reference',
        //                     value: billobj[i].refnumber,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_discamount',
        //                     value: billobj[i].discountamount,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_amount',
        //                     value: billobj[i].amount,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_dueamount',
        //                     value: billobj[i].amount,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.setCurrentSublistValue({
        //                     sublistId: 'sublistidbilldetails',
        //                     fieldId: 'custpage_payment',
        //                     value: billobj[i].amount,
        //                     ignoreFieldChange: true
        //                 });
        //                 records.commitLine({
        //                     sublistId: 'sublistidbilldetails'
        //                 });
        //             }

        //         }
        //         setfocus(true)
        //     } catch (e) {
        //         console.log(e);
        //     }
        // }
        // /*To set focus to the top of the screen*/
        // function setfocus(focus) {
        //     if (focus)
        //         setTimeout(function() {
        //             jQuery('#textfield_cheque').focus();
        //         }, 1000);
        // }


        /*on field change get the balance of the correspoding account */

        function findbalance(value) {
            try {
                var accountSearchObj = search.create({
                    type: "account",
                    filters: [
                        ["internalidnumber", "equalto", value]
                    ],
                    columns: [
                        "balance"
                    ]
                });
                var search_run = accountSearchObj.run().getRange({
                    start: 0,
                    end: 1000
                });
                var billarray = [];

                if (search_run.length > 0) {
                    var balance = search_run[0].getValue({
                        name: 'balance'
                    });
                }
                return balance;
            } catch (e) {
                console.log(e);
            }
        }

        /*getting sublist values  happens here*/

        function getsublist(record) {
            try {
                var bill_details = {};
                bill_details.cheque = record.getValue({
                    fieldId: 'textfield_cheque'
                });
                bill_details.account = record.getValue({
                    fieldId: 'textfield_account'
                });
                var numLines = record.getLineCount({
                    sublistId: 'sublistidbilldetails'
                });
                var sublistarray = [];
                for (var i = 0; i < numLines; i++) {

                    var currentItem = {};
                    var check = record.getSublistValue({
                        fieldId: 'custpage_check',
                        sublistId: 'sublistidbilldetails',
                        line: i
                    });
                    if (check) {
                        currentItem.bill = record.getSublistValue({
                            fieldId: 'custpage_internalid',
                            sublistId: 'sublistidbilldetails',
                            line: i
                        });
                        currentItem.payment = record
                            .getSublistText({
                                fieldId: 'custpage_payment',
                                sublistId: 'sublistidbilldetails',
                                line: i
                            });

                        currentItem.vendor = record
                            .getSublistValue({
                                fieldId: 'custpage_vendor',
                                sublistId: 'sublistidbilldetails',
                                line: i
                            });
                        currentItem.vendorid = record
                            .getSublistValue({
                                fieldId: 'custpage_vendorid',
                                sublistId: 'sublistidbilldetails',
                                line: i
                            });
                        currentItem.vendorinternalid = record
                            .getSublistValue({
                                fieldId: 'custpage_vendorint',
                                sublistId: 'sublistidbilldetails',
                                line: i
                            });
                        sublistarray.push(currentItem);
                    }
                }
                bill_details.sublist = sublistarray;
                return bill_details;
            } catch (e) {
                console.log(e);
            }

        }
        /*bill payment proccess happens here*/
        function paybills(bill_details) {
            try {
                var billstocheck = [];

                if (bill_details.sublist.length < 1) {
                    showmessage(false, "Please Enter atleast one line Item");
                    return false
                }

                if (bill_details.cheque == "" || bill_details.cheque == null || bill_details.cheque == undefined) {
                    showmessage(false, "Please Enter the Check  Number");
                    jQuery('#textfield_cheque').focus();
                    return false
                }

                for (var i = 0; i < bill_details.sublist.length; i++) {
                    var resultrec = record.transform({
                        fromType: record.Type.VENDOR_BILL,
                        fromId: bill_details.sublist[i].bill,
                        toType: record.Type.VENDOR_PAYMENT,
                        isDynamic: true
                    });
                    console.log("bill_details.bill" + bill_details.sublist[0].bill);
                    var checksnum = parseInt(bill_details.cheque) + i;
                    console.log(checksnum + "checksnum");
                    resultrec.setValue({
                        fieldId: 'tranid',
                        value: checksnum,
                        ignoreFieldChange: true
                    });
                    resultrec.setValue({
                        fieldId: 'total',
                        value: bill_details.sublist[i].payment,
                        ignoreFieldChange: true
                    });
                    // resultrec.setValue({
                    //     fieldId: 'account',
                    //     value: bill_details.account,
                    //     ignoreFieldChange: true
                    // });
                    resultrec.selectLine({
                        sublistId: 'apply',
                        line: 0
                    });
                    resultrec.setCurrentSublistValue({
                        sublistId: 'apply',
                        fieldId: 'amount',
                        value: bill_details.sublist[i].payment,
                        ignoreFieldChange: true
                    });
                    resultrec.setCurrentSublistValue({
                        sublistId: 'apply',
                        fieldId: 'total',
                        value: bill_details.sublist[i].payment,
                        ignoreFieldChange: true
                    });
                    resultrec.commitLine({
                        sublistId: 'apply'
                    });
                    var BPrecordId = resultrec.save({
                        enableSourcing: 'false',
                        ignoreMandatoryFields: 'false'
                    });
                    console.log("BPrecordId" + BPrecordId);
                    var checks = writechecks(bill_details.sublist[i].payment, checksnum, bill_details.sublist[i].vendorinternalid)
                    billstocheck.push(bill_details.sublist[i].bill)
                }
                var billstocheck = billstocheck.toString();
                var checks = checks.toString();
                var checkwite_url = url.resolveScript({
                    scriptId: "customscriptjohn11_sl_checkwriter",
                    deploymentId: "customdeployjohn11_sl_checkwriter",
                    returnExternalUrl: false
                });
                jQuery("#secondarysubmitter").attr("disabled", false);
                window.open(checkwite_url + "&id=" + checks + "&billid=" + billstocheck);
                window.location.reload();
            } catch (e) {
                showmessage(false, e.message);
                console.log(e);
            }
        }
        /*to find the due total to pay by the bill payment module*/
        function findduetotal(record) {
            try {
                var numLines = record.getLineCount({
                    sublistId: 'sublistidbilldetails'
                });
                var total = 0;
                for (var i = 0; i < numLines; i++) {
                    total += parseFloat(record.getSublistText({
                        fieldId: 'custpage_payment',
                        sublistId: 'sublistidbilldetails',
                        line: i
                    }));
                }
                return total.toFixed(2)
            } catch (e) {
                console.log(e);
            }
        }

        function writechecks(amount, checknum, vendor) {
            try {
                var resultrec = record.create({
                    type: record.Type.CHECK,
                    isDynamic: true
                });
                resultrec.setValue({
                    fieldId: 'entity',
                    value: vendor,
                    ignoreFieldChange: false
                });
                resultrec.setValue({
                    fieldId: 'tranid',
                    value: checknum,
                    ignoreFieldChange: false
                });
                var lineNum = resultrec.selectLine({
                    sublistId: 'expense',
                    line: 0
                });
                resultrec.setCurrentSublistValue({
                    sublistId: 'expense',
                    fieldId: 'amount',
                    value: amount,
                    ignoreFieldChange: true
                });
                resultrec.commitLine({
                    sublistId: 'expense'
                });
                var CWrecordId = resultrec.save({
                    enableSourcing: 'false',
                    ignoreMandatoryFields: 'false'
                });
                console.log("CWrecordId" + CWrecordId);
                checksarray.push(CWrecordId);
                console.log(checksarray);
                return checksarray;
            } catch (e) {
                console.log(e);
            }
        }
        /*To get posting Period */

        function findposting() {
            try {
                var post = [{ "value": "54", "text": "Jan 2014" }, { "value": "55", "text": "Feb 2014" }, { "value": "56", "text": "Mar 2014" }, { "value": "58", "text": "Apr 2014" }, { "value": "59", "text": "May 2014" }, { "value": "60", "text": "Jun 2014" }, { "value": "62", "text": "Jul 2014" }, { "value": "63", "text": "Aug 2014" }, { "value": "64", "text": "Sep 2014" }, { "value": "66", "text": "Oct 2014" }, { "value": "67", "text": "Nov 2014" }, { "value": "68", "text": "Dec 2014" }, { "value": "37", "text": "Jan 2015" }, { "value": "38", "text": "Feb 2015" }, { "value": "39", "text": "Mar 2015" }, { "value": "41", "text": "Apr 2015" }, { "value": "42", "text": "May 2015" }, { "value": "43", "text": "Jun 2015" }, { "value": "45", "text": "Jul 2015" }, { "value": "46", "text": "Aug 2015" }, { "value": "47", "text": "Sep 2015" }, { "value": "49", "text": "Oct 2015" }, { "value": "50", "text": "Nov 2015" }, { "value": "51", "text": "Dec 2015" }, { "value": "20", "text": "Jan 2016" }, { "value": "21", "text": "Feb 2016" }, { "value": "22", "text": "Mar 2016" }, { "value": "24", "text": "Apr 2016" }, { "value": "25", "text": "May 2016" }, { "value": "26", "text": "Jun 2016" }, { "value": "28", "text": "Jul 2016" }, { "value": "29", "text": "Aug 2016" }, { "value": "30", "text": "Sep 2016" }, { "value": "32", "text": "Oct 2016" }, { "value": "33", "text": "Nov 2016" }, { "value": "34", "text": "Dec 2016" }, { "value": "3", "text": "Jan 2017" }, { "value": "4", "text": "Feb 2017" }, { "value": "5", "text": "Mar 2017" }, { "value": "7", "text": "Apr 2017" }, { "value": "8", "text": "May 2017" }, { "value": "9", "text": "Jun 2017" }, { "value": "11", "text": "Jul 2017" }, { "value": "12", "text": "Aug 2017" }, { "value": "13", "text": "Sep 2017" }, { "value": "15", "text": "Oct 2017" }, { "value": "16", "text": "Nov 2017" }, { "value": "17", "text": "Dec 2017" }, { "value": "71", "text": "Jan 2018" }, { "value": "72", "text": "Feb 2018" }, { "value": "73", "text": "Mar 2018" }, { "value": "75", "text": "Apr 2018" }, { "value": "76", "text": "May 2018" }, { "value": "77", "text": "Jun 2018" }, { "value": "79", "text": "Jul 2018" }, { "value": "80", "text": "Aug 2018" }, { "value": "81", "text": "Sep 2018" }, { "value": "83", "text": "Oct 2018" }, { "value": "84", "text": "Nov 2018" }, { "value": "85", "text": "Dec 2018" }, { "value": "88", "text": "Jan 2019" }, { "value": "89", "text": "Feb 2019" }, { "value": "90", "text": "Mar 2019" }, { "value": "92", "text": "Apr 2019" }, { "value": "93", "text": "May 2019" }, { "value": "94", "text": "Jun 2019" }, { "value": "96", "text": "Jul 2019" }, { "value": "97", "text": "Aug 2019" }, { "value": "98", "text": "Sep 2019" }, { "value": "100", "text": "Oct 2019" }, { "value": "101", "text": "Nov 2019" }, { "value": "102", "text": "Dec 2019" }, { "value": "105", "text": "Jan 2020" }, { "value": "106", "text": "Feb 2020" }, { "value": "107", "text": "Mar 2020" }, { "value": "109", "text": "Apr 2020" }, { "value": "110", "text": "May 2020" }, { "value": "111", "text": "Jun 2020" }, { "value": "113", "text": "Jul 2020" }, { "value": "114", "text": "Aug 2020" }, { "value": "115", "text": "Sep 2020" }, { "value": "117", "text": "Oct 2020" }, { "value": "118", "text": "Nov 2020" }, { "value": "119", "text": "Dec 2020" }, { "value": "122", "text": "Jan 2021" }, { "value": "123", "text": "Feb 2021" }, { "value": "124", "text": "Mar 2021" }, { "value": "126", "text": "Apr 2021" }, { "value": "127", "text": "May 2021" }, { "value": "128", "text": "Jun 2021" }, { "value": "130", "text": "Jul 2021" }, { "value": "131", "text": "Aug 2021" }, { "value": "132", "text": "Sep 2021" }, { "value": "134", "text": "Oct 2021" }, { "value": "135", "text": "Nov 2021" }, { "value": "136", "text": "Dec 2021" }];
                var objDate = new Date();
                var locale = "en-us";
                var date = objDate.toLocaleString(locale, { month: "short" }) + " " + objDate.getFullYear();
                for (var i = 0; i < post.length; i++) {
                    if (date == post[i].text) {
                        var value = post[i].value;
                    }
                }
                return value
            } catch (e) {
                console.log(e);
            }
        }

        /*Check all and ucheck button functions */

        function processcheckbox() {
            try {
                console.log(check + "On entry");
                if (check) {
                    check = false;
                    jQuery("#buttoncheckall").val("Clear All");

                } else {
                    check = true;
                    jQuery("#buttoncheckall").val("Select All");

                }
                var records = currentRecord.get();
                var numLines = records.getLineCount({
                    sublistId: 'sublistidbilldetails'
                });
                console.log(check + "Before loop");

                for (var i = 0; i < numLines; i++) {

                    records.selectLine({
                        sublistId: 'sublistidbilldetails',
                        line: i
                    });
                    if (check) {
                        jQuery('.checkbox').prop('checked', false); // UnChecks it  
                    } else {
                        jQuery('.checkbox').prop('checked', true); // Checks it               
                    }
                    records.commitLine({
                        sublistId: 'sublistidbilldetails'
                    });
                }
                setfocus(true);
            } catch (e) {
                console.log(e);
            }
        }

        function showmessage(type, content) {
            if (type) {
                var messagetype = message.Type.CONFIRMATION
            } else {
                var messagetype = message.Type.ERROR
            }
            var msg = message.create({
                title: "ERROR",
                message: content,
                type: messagetype
            });
            jQuery("html, body").animate({
                scrollTop: 0
            }, 600);
            msg.show({
                duration: 5000
            });

        }

        function findcheckend(checkarray, records) {
            var count = 0;
            for (var i = 0; i < checkarray.length; i++) {
                if (checkarray[i].checked) {
                    count++
                }
            }
            var cheques = records.getValue({
                fieldId: 'textfield_cheque'
            });
            if (cheques == null && cheques == undefined || cheques == "") {
                records.setValue({
                    fieldId: 'textfield_cheque',
                    value: 0,
                    ignoreFieldChange: true
                });
                var cheques = 0;
            }
            if (count == 0) {

                records.setValue({
                    fieldId: 'textfield_chequeend',
                    value: count + parseInt(cheques),
                    ignoreFieldChange: true
                });
            } else {
                records.setValue({
                    fieldId: 'textfield_chequeend',
                    value: count + parseInt(cheques) - 1,
                    ignoreFieldChange: true
                });

            }


        }
    });

Leave a comment

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