Create a vendor bill view screen.

Jira Code: TRS:129

We can request to view the vendor bill created inside the view. The view screen contains specific fields and related journal entries information. Several buttons are implemented in the form.

Find the following points to navigate inside the view

Create a vendor bill using the ‘vendor bill create’ screen or default NetSuite method.
Navigate into a suitelet external link.
Check the values of the field in the screen, which are populated from the vendor bill record.
Click on the approve button, it will create a journal entry for the vendor bill and change the status as open.
Once the JE is created, then the subtab ‘Related Journal’ will display the JE details.
Click on the reject button. It will send an email to the user who created VB and changes the status from rejected.
Clicking on the Resubmit button will change the status into pending approval.
Another button GL Impact will list all GL impact related to the VB.
Also edit, list buttons will redirect into corresponding vendor bill edit and view screen respectively.

    /**
     * @NApiVersion 2.x
     * @NScriptType Suitelet
     * @NModuleScope SameAccount
     */
    /** Script Description
    * .
    ******************************************************************************************************
     TRUST BRIDGE GLOBAL

    VIEW SCRREN FOR VENDOR BILL
    ******************************************************************************************************

    * Date: 02-07-19
    * 
    * Author: MN
              Jobin & Jismi IT Services LLP 
    * 

    *****************************************************************************************************/




    define(['N/record', 'N/search', 'N/ui/serverWidget', 'N/url', 'N/runtime'],

        function(record, search, serverWidget, url, runtime) {


            var main = {

                onRequest: function(context) {


                    var listScriptId = 'customscript_trs116_sl_creat_list_for_je';
                    var listDepId = 'customdeploy_trs116_sl_creat_list_for_je';
                    var redirectListURL = url.resolveScript({ scriptId: listScriptId, deploymentId: listDepId, returnExternalUrl: false });


                    try {

                        if (context.request.method == 'GET') {
                            try {
                                var RECID = context.request.parameters.recid;

                                var VB_RECORD = record.load({
                                    type: record.Type.VENDOR_BILL,
                                    id: RECID,
                                    isDynamic: true,
                                });


                            } catch (e) {
                                context.response.write("<html><head><body><script>alert('Sorry we could not find vendor bill');window.location.href='" + redirectListURL + "';</script></body></head></html>");

                                return;
                            }

                            var VB_FIELD_VALUES = main.getVendorBillFields(VB_RECORD);
                            log.debug("VB_FIELD_VALUES", VB_FIELD_VALUES);

                            context.response.writePage(main.createForm(context.request.parameters, VB_FIELD_VALUES, RECID));



                        }


                    } catch (e) { log.debug("onRequest", e) }

                },
                getVendorBillFields: function(VB_RECORD) {
                    try {

                        var VB_field_Obj = {};
                        var VB_ACOUNT = '';

                        var field_id = ['entity', 'trandate', 'currency', 'usertotal', 'memo', 'cseg5', 'cseg6', 'transactionnumber', 'approvalstatus'];

                        var field_names = ['name', 'date', 'currency', 'amount', 'memo', 'fund', 'charityPurpose', 'transactionNo', 'status']

                        for (var i = 0; i < field_id.length; i++) {

                            VB_field_Obj[field_names[i]] = VB_RECORD.getValue({ fieldId: field_id[i] });
                        }

                        var VB_STATUSTEXT = VB_RECORD.getText({ fieldId: 'approvalstatus' });
                        VB_field_Obj.statusText = VB_STATUSTEXT;

                        var VB_CREATEDBY = VB_RECORD.getText({ fieldId: 'custbody_jj_created_by' });
                        VB_field_Obj.createdBy = VB_CREATEDBY;

                        var VB_MODIFIEDBY = VB_RECORD.getText({ fieldId: 'custbody_last_modifiedby' });
                        VB_field_Obj.modifiedBy = VB_MODIFIEDBY;

                        var line_Count = VB_RECORD.getLineCount({ sublistId: 'expense' })

                        if (line_Count) {

                            VB_ACOUNT = VB_RECORD.getSublistValue({
                                sublistId: 'expense',
                                fieldId: 'account',
                                line: 0
                            });
                        }
                        VB_field_Obj.account = VB_ACOUNT;

                        return VB_field_Obj;

                    } catch (e) { log.debug("getVendorBillFields", e); }
                },

                createForm: function(params, VB_FIELD_VALUES, RECID) {
                    try {


                        var accountList = main.findAccountList();
                        var relatedJE = main.findRelatedJE(RECID);
                        log.debug("relatedJE", relatedJE);

                        var form = serverWidget.createForm({ title: '#' + VB_FIELD_VALUES.transactionNo });

                        var vendor_name = form.addField({
                            id: "vendor_name_requested",
                            type: serverWidget.FieldType.SELECT,
                            label: 'vendor name',
                            source: "vendor"

                        });
                        vendor_name.defaultValue = VB_FIELD_VALUES.name;
                        vendor_name.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });


                        var date = form.addField({
                            id: "date_requested",
                            type: serverWidget.FieldType.DATE,
                            label: 'Date'

                        });
                        date.defaultValue = VB_FIELD_VALUES.date;
                        date.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });


                        var currency = form.addField({
                            id: "currency_requested",
                            type: serverWidget.FieldType.SELECT,
                            label: 'Currency',
                            source: "currency"

                        });
                        currency.defaultValue = VB_FIELD_VALUES.currency;
                        currency.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });

                        var account = form.addField({
                            id: 'account_requested',
                            type: serverWidget.FieldType.SELECT,
                            label: 'Account'
                        });
                        account.addSelectOption({
                            value: "",
                            text: ""
                        });
                        for (var i = 1; i < accountList.length; i++) {

                            account.addSelectOption({

                                value: accountList[i].id,
                                text: accountList[i].name

                            });
                        }
                        account.defaultValue = VB_FIELD_VALUES.account;
                        account.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });




                        var amount = form.addField({
                            id: "amount_requested",
                            type: serverWidget.FieldType.CURRENCY,
                            label: 'Amount'

                        });
                        amount.defaultValue = VB_FIELD_VALUES.amount;
                        amount.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });


                        var memo = form.addField({
                            id: 'memo_requested',
                            type: serverWidget.FieldType.TEXT,
                            label: 'Memo'
                        });

                        memo.defaultValue = VB_FIELD_VALUES.memo;
                        memo.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });


                        var fund = form.addField({
                            id: 'fund_requested',
                            type: serverWidget.FieldType.SELECT,
                            label: 'Fund number',
                            source: 'customrecord_cseg5'
                        });
                        fund.defaultValue = VB_FIELD_VALUES.fund;
                        fund.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });



                        var primary_Charity = form.addField({
                            id: 'cahrity_requested',
                            type: serverWidget.FieldType.SELECT,
                            label: 'Primary Charity Purpose',
                            source: 'customrecord_cseg6'
                        });

                        primary_Charity.defaultValue = VB_FIELD_VALUES.charityPurpose;
                        primary_Charity.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });

                        var statusValue = form.addField({
                            id: 'statusvalue_requested',
                            type: serverWidget.FieldType.TEXT,
                            label: 'STATUS',
                            source: 'customrecord_cseg6'
                        });
                        statusValue.defaultValue = VB_FIELD_VALUES.statusText;
                        statusValue.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });

                        var createdBy = form.addField({
                            id: 'createdby_requested',
                            type: serverWidget.FieldType.TEXT,
                            label: 'CREATED BY',
                            source: 'customrecord_cseg6'
                        });
                        createdBy.defaultValue = VB_FIELD_VALUES.createdBy;
                        createdBy.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });


                        var modifiedBy = form.addField({
                            id: 'modifiedby_requested',
                            type: serverWidget.FieldType.TEXT,
                            label: 'LAST MODIFIED BY',
                            source: 'customrecord_cseg6'
                        });
                        modifiedBy.defaultValue = VB_FIELD_VALUES.modifiedBy;
                        modifiedBy.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });


                        var sublist = form.addSublist({
                            id: 'custpage_table',
                            type: serverWidget.SublistType.STATICLIST,
                            label: 'Related Journals'
                        });


                        sublist.addField({
                            id: 'custpage_jenumber',
                            label: 'JE Number',
                            type: serverWidget.FieldType.TEXT
                        });

                        sublist.addField({
                            id: 'custpage_jedate',
                            label: 'Date',
                            type: serverWidget.FieldType.TEXT
                        });
                        sublist.addField({
                            id: 'custpage_jesubsidiary',
                            label: 'SUBSIDIARY ',
                            type: serverWidget.FieldType.TEXT
                        });
                        sublist.addField({
                            id: 'custpage_jecurrency',
                            label: 'CURRENCY ',
                            type: serverWidget.FieldType.TEXT
                        });
                        sublist.addField({
                            id: 'custpage_jeamount',
                            label: 'AMOUNT',
                            type: serverWidget.FieldType.TEXT
                        });
                        sublist.addField({
                            id: 'custpage_jedebit',
                            label: 'DEBIT',
                            type: serverWidget.FieldType.TEXT
                        });
                        sublist.addField({
                            id: 'custpage_jecredit',
                            label: 'CREDIT',
                            type: serverWidget.FieldType.TEXT
                        });
                        sublist.addField({
                            id: 'custpage_jeheadermemo',
                            label: 'HEADER MEMO ',
                            type: serverWidget.FieldType.TEXT
                        });
                        sublist.addField({
                            id: 'custpage_jelinememo',
                            label: 'LINE MEMO',
                            type: serverWidget.FieldType.TEXT
                        });
                        sublist.addField({
                            id: 'custpage_jefundsend',
                            label: 'FUND NUMBER SEND',
                            type: serverWidget.FieldType.TEXT
                        });
                        sublist.addField({
                            id: 'custpage_fundrecieved',
                            label: 'FUND NUMBER RECEIVED',
                            type: serverWidget.FieldType.TEXT
                        });

                        sublist.addField({
                            id: 'custpage_jecreatedby',
                            label: 'CREATED BY',
                            type: serverWidget.FieldType.TEXT
                        });
                        sublist.addField({
                            id: 'custpage_jemodifiedby',
                            label: 'LAST MODIFIED BY',
                            type: serverWidget.FieldType.TEXT
                        });


                        form.addButton({
                            id: 'buttonid_Edit',
                            label: 'Edit',
                            functionName: 'editVB'
                        });
                        form.addButton({
                            id: 'buttonid_list',
                            label: 'List',
                            functionName: 'listVB'
                        });
                        var resubBtn = form.addButton({
                            id: 'buttonid_cancell',
                            label: 'Resubmit Bill',
                            functionName: 'ResubmitBtn'

                        });
                        var appBtn = form.addButton({
                            id: 'buttonid_approve',
                            label: 'Approve',
                            functionName: 'ApproveBtn'
                        });
                        var rejBtn = form.addButton({
                            id: 'buttonid_reject',
                            label: 'Reject',
                            functionName: 'RejectBtn'
                        });

                        var glImpact = form.addButton({
                            id: 'buttonid_glimpact',
                            label: 'GL Impact',
                            functionName: 'glImpact'
                        });
                        if (VB_FIELD_VALUES.status == 1) {

                            resubBtn.isDisabled = true;


                        } else if (VB_FIELD_VALUES.status == 2) {

                            appBtn.isDisabled = true;
                            rejBtn.isDisabled = true;
                            resubBtn.isDisabled = true;


                        } else if (VB_FIELD_VALUES.status == 3) {

                            appBtn.isDisabled = true;
                            rejBtn.isDisabled = true;

                        }

                        if (relatedJE.length) {
                            for (var i = 0; i < relatedJE.length; i++) {
                                // var nill = 'null';

                                sublist.setSublistValue({
                                    id: 'custpage_jenumber',
                                    line: i,
                                    value: relatedJE[i].no || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_jedate',
                                    line: i,
                                    value: relatedJE[i].date || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_jesubsidiary',
                                    line: i,
                                    value: relatedJE[i].subsidiary || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_jecurrency',
                                    line: i,
                                    value: relatedJE[i].currency || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_jeamount',
                                    line: i,
                                    value: relatedJE[i].amount || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_jedebit',
                                    line: i,
                                    value: relatedJE[i].debit || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_jecredit',
                                    line: i,
                                    value: relatedJE[i].credit || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_jeheadermemo',
                                    line: i,
                                    value: relatedJE[i].headermemo || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_jelinememo',
                                    line: i,
                                    value: relatedJE[i].linememo || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_jefundsend',
                                    line: i,
                                    value: relatedJE[i].fundrecieved || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_fundrecieved',
                                    line: i,
                                    value: relatedJE[i].fundrecieved || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_jecreatedby',
                                    line: i,
                                    value: relatedJE[i].createdby || 'null'
                                });
                                sublist.setSublistValue({
                                    id: 'custpage_jemodifiedby',
                                    line: i,
                                    value: relatedJE[i].lastmodified || 'null'
                                });
                            }

                        }



                        form.clientScriptFileId = 674;


                        return form;

                    } catch (e) { log.debug("CreateForm", e); }
                },
                findAccountList: function() {

                    try {
                        var chartArr = [];

                        var accountSearchObj = search.create({
                            type: "account",
                            filters: [
                                ["parent", "anyof", "252"] //grant expense chart of account
                            ],
                            columns: [
                                search.createColumn({
                                    name: "name",
                                    sort: search.Sort.ASC,
                                    label: "Name"
                                }),
                                search.createColumn({ name: "internalid", label: "Internal ID" })
                            ]
                        });
                        var searchResultCount = accountSearchObj.runPaged().count;

                        accountSearchObj.run().each(function(result) {
                            var chartObj = {};
                            chartObj.name = result.getValue(accountSearchObj.columns[0]);
                            chartObj.id = result.getValue(accountSearchObj.columns[1]);
                            chartArr.push(chartObj);
                            return true;
                        });

                        return chartArr;

                    } catch (e) { log.debug("findAccountList", e); }
                },

                findRelatedJE: function(RECID) {
                    try {

                        var related_JE_Array = [];

                        var journalentrySearchObj = search.create({
                            type: "journalentry",
                            filters: [
                                ["type", "anyof", "Journal"],
                                "AND",
                                ["custbody_jj_source_of_origin", "anyof", RECID],
                                "AND",
                                ["mainline", "is", "T"]
                            ],
                            columns: [

                                search.createColumn({ name: "trandate", label: "Date" }),
                                search.createColumn({ name: "subsidiary", label: "Subsidiary" }),
                                search.createColumn({ name: "currency", label: "Currency" }),
                                search.createColumn({ name: "amount", label: "Amount" }),
                                search.createColumn({ name: "memomain", label: "Memo (Main)" }),
                                search.createColumn({ name: "custbody_fund_num_recvd", label: "Fund Number Received" }),
                                search.createColumn({ name: "custbody_fund_num_send", label: "Fund Number Send" }),
                                search.createColumn({ name: "memo", label: "Memo" }),
                                search.createColumn({ name: "custbody_jj_created_by", label: "Created By" }),
                                search.createColumn({ name: "custbody_last_modifiedby", label: "Last Modified By" }),
                                search.createColumn({ name: "tranid", label: "entityno" }),
                                search.createColumn({ name: "creditamount", label: "Amount (Credit)" }),
                                search.createColumn({ name: "debitamount", label: "Amount (Debit)" })
                            ]
                        });
                        var searchResultCount = journalentrySearchObj.runPaged().count;
                        //log.debug("journalentrySearchObj result count", searchResultCount);
                        journalentrySearchObj.run().each(function(result) {

                            var related_JE_Obj = {};
                            if (searchResultCount) {

                                related_JE_Obj.date = result.getValue(journalentrySearchObj.columns[0]);
                                related_JE_Obj.subsidiary = result.getText(journalentrySearchObj.columns[1]);
                                related_JE_Obj.currency = result.getText(journalentrySearchObj.columns[2]);
                                related_JE_Obj.amount = result.getValue(journalentrySearchObj.columns[3]);
                                related_JE_Obj.headermemo = result.getValue(journalentrySearchObj.columns[4]);
                                related_JE_Obj.fundrecieved = result.getText(journalentrySearchObj.columns[5]);
                                related_JE_Obj.fundsend = result.getText(journalentrySearchObj.columns[6]);
                                related_JE_Obj.linememo = result.getValue(journalentrySearchObj.columns[7]);
                                related_JE_Obj.createdby = result.getText(journalentrySearchObj.columns[8]);
                                related_JE_Obj.lastmodified = result.getText(journalentrySearchObj.columns[9]);
                                related_JE_Obj.no = result.getValue(journalentrySearchObj.columns[10]);
                                related_JE_Obj.debit = result.getValue(journalentrySearchObj.columns[11]);
                                related_JE_Obj.credit = result.getValue(journalentrySearchObj.columns[12]);


                                related_JE_Array.push(related_JE_Obj);
                            }
                            // .run().each has a limit of 4,000 results
                            return true;
                        });

                        return related_JE_Array;

                    } catch (e) { log.debug("findRelatedJE", e); }

                }




            }

            return main;

        });
//client script for button action
/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */

/*******************************************************************************
* Trust Bridge
*  
 ******************************************************************************
* Date: 
 
* Author: Jobin & Jismi IT Services LLP
* Script Description: Button action from create view of Vendor Bill.
* Date created :02/07/2019


 
******************************************************************************/
var url_aRRAY = [{
        "Name": "Vendor Bill Edit",
        "SuitletId": "customscript_trus74_sl_create_je_page",
        "DeploymentId": "customdeploy_trus74_sl_create_je_page",
    },
    {
        "Name": "Vendor Bill List",
        "SuitletId": "customscript_trus74_sl_create_je_page",
        "DeploymentId": "customdeploy_trus74_sl_create_je_page",
    }
];


define(['N/currentRecord', 'N/url', 'N/https', 'N/search', 'N/runtime', 'N/record', 'N/email'],

    function(currentRecord, url, https, search, runtime, record, email) {

        function pageInit(scriptContext) {

        }


        function listVB() {
            try {

                var listURL = getResolvedURL(url_aRRAY[0].SuitletId, url_aRRAY[0].DeploymentId);
                window.location.href = listURL;

            } catch (err3) {
                console.log('listVB', listVB);
            }
        }

        function editVB() {
            try {

                var editURL = getResolvedURL(url_aRRAY[1].SuitletId, url_aRRAY[1].DeploymentId);
                window.location.href = editURL;

            } catch (err3) {
                console.log('editVB', listVB);
            }
        }

        function ApproveBtn() {
            try {

                var VB_Rec_Id = getParameterByName('recid');

                var vendorBillFields = getVendorRecord(VB_Rec_Id);
                                console.log('vendorBillFields',vendorBillFields);


                var account_CurrencyId = getAccountCurrency(vendorBillFields);
                console.log('account_CurrencyId',account_CurrencyId);

                var JE_record_Id = createJERecord(vendorBillFields, account_CurrencyId);

                if (JE_record_Id) {

                    alert('Journal Entry id=' + JE_record_Id + ' created');


                    var journalField = record.submitFields({
                        type: record.Type.VENDOR_BILL,
                        id: VB_Rec_Id,
                        values: {
                            custbody_journal_field: JE_record_Id,
                            approvalstatus: 2
                        }

                    });


                    window.location.reload();

                } else {
                    alert('Sorry we canot create JE record');
                }

            } catch (er) {
                console.log('er', er);
            }

        }

        function RejectBtn() {
            try {

                var VB_Rec_Id = getParameterByName('recid');

                var currentUserMail = runtime.getCurrentUser().email;

                var mailRecipient = null;

                var currentUserMailId = getCurrentUserMailId(VB_Rec_Id);

                console.log("currentUserMailId", currentUserMailId);

                if (currentUserMailId) {
                    console.log("enter")
                    email.send({
                        author: -5,
                        recipients: currentUserMailId,
                        subject: 'Vendor bill id - ' + VB_Rec_Id + ' : Rejected',
                        body: 'The vendor bill of id = ' + VB_Rec_Id + ' has been rejected. Please do necessary changes and resubmit.'
                    });
                }

                var journalField = record.submitFields({
                    type: record.Type.VENDOR_BILL,
                    id: VB_Rec_Id,
                    values: {
                        approvalstatus: 3
                    }

                });

                window.location.reload();


            } catch (err2) {
                console.log('RejectBtn', err2);
            }
        }

        function ResubmitBtn() {
            try {

                var VB_Rec_Id = getParameterByName('recid');

                var satusField3 = record.submitFields({
                    type: record.Type.VENDOR_BILL,
                    id: VB_Rec_Id,
                    values: {
                        approvalstatus: 1
                    }

                });

                window.location.reload();

            } catch (err3) {
                console.log('ResubmitBtn', err3);
            }
        }

        function glImpact() {
            try {

                var vendorBiilId = getParameterByName('recid');
                var conpanyid = '5432341_SB1'

                var http = 'https://';
                var urlComponents = '/app/accounting/transactions/impact.nl?trantype=vendbill&searchid=-36&Transaction_INTERNALID=' + vendorBiilId + '&Transaction_INTERNALIDtype=ANYOF&label=Bill'

                var accountIdPart = url.resolveDomain({
                    hostType: url.HostType.APPLICATION,
                    accountId: conpanyid
                });

                var glURL = http + accountIdPart + urlComponents;
                console.log('glURL', glURL);

                window.location.href = glURL;




            } catch (err3) {
                console.log('glImpact', err3);
            }
        }

        function getCurrentUserMailId(VB_Rec_Id) {
            try {

                var mailRecipient = '';
                var vendorbillSearchObj2 = search.create({
                    type: "vendorbill",
                    filters: [
                        ["type", "anyof", "VendBill"],
                        "AND",
                        ["internalid", "anyof", VB_Rec_Id],
                        "AND",
                        ["mainline", "is", "T"]
                    ],
                    columns: [
                        search.createColumn({ name: "custbody_user_mailid", label: "USER MAILID" })
                    ]
                });
                var searchResultCount = vendorbillSearchObj2.runPaged().count;
                console.log("vendorbillSearchObj2 result count", searchResultCount);

                vendorbillSearchObj2.run().each(function(result) {

                    mailRecipient = result.getValue(vendorbillSearchObj2.columns[0]);
                    return true;
                });

                return mailRecipient;

            } catch (err3) {
                console.log('getCurrentUserMailId', err3);
            }
        }



        function getVendorRecord(VB_Rec_Id) {
            try {

                var billArr = [];

                var vendorbillSearchObj = search.create({
                    type: "vendorbill",
                    filters: [
                        ["type", "anyof", "VendBill"],
                        "AND",
                        ["mainline", "is", "F"],
                        "AND",
                        ["internalid", "anyof", VB_Rec_Id],
                        "AND",
                        ["taxline", "is", "F"],
                        "AND",
                        ["shipping", "is", "F"]
                    ],
                    columns: [
                        search.createColumn({ name: "memomain", label: "Memo (Main)" }),
                        search.createColumn({ name: "subsidiary", label: "Subsidiary" }),
                        search.createColumn({ name: "currency", label: "Currency" }),
                        search.createColumn({ name: "trandate", label: "Date" }),
                        search.createColumn({ name: "fxamount", label: "Amount (Foreign Currency)" }),
                        search.createColumn({
                            name: "entityid",
                            join: "vendor",
                            label: "Name"
                        }),
                        search.createColumn({ name: "account", label: "Account" }),
                        search.createColumn({ name: "cseg5", label: "Fund Number" }),
                        search.createColumn({ name: "custbody_jj_created_by", label: "Created By" }),
                        search.createColumn({ name: "internalid", label: "Internal ID" })


                    ]
                });
                var searchResultCount = vendorbillSearchObj.runPaged().count;


                vendorbillSearchObj.run().each(function(result) {
                    var billObj = {};
                    billObj.memomain = result.getValue(vendorbillSearchObj.columns[0]);
                    billObj.subsidiary = result.getValue(vendorbillSearchObj.columns[1]);
                    billObj.currency = result.getValue(vendorbillSearchObj.columns[2]);
                    billObj.trandate = result.getValue(vendorbillSearchObj.columns[3]);
                    billObj.amount = result.getValue(vendorbillSearchObj.columns[4]);
                    billObj.Name = result.getValue(vendorbillSearchObj.columns[5]);
                    billObj.account = result.getValue(vendorbillSearchObj.columns[6]);
                    billObj.fundnumber = result.getValue(vendorbillSearchObj.columns[7]);
                    billObj.createdBy = result.getValue(vendorbillSearchObj.columns[8]);
                    billObj.source = result.getValue(vendorbillSearchObj.columns[9]);
                    billArr.push(billObj);
                    return true
                });

                return billArr;
            } catch (err3) {
                console.log('getVendorRecord', getVendorRecord);
            }
        }

        function getAccountCurrency(vendorBillFields) {

            try {


                var currenntCurrency = vendorBillFields[0].currency;

                var currencyAccountId = '';


                var accountSearchObj = search.create({
                    type: "account",
                    filters: [
                        ["custrecord_virtual_currency.internalid", "anyof", currenntCurrency]
                    ],
                    columns: [

                        search.createColumn({ name: "internalid", label: "Internal ID" })
                    ]
                });
                var searchResultCount = accountSearchObj.runPaged().count;

                accountSearchObj.run().each(function(result) {

                    currencyAccountId = result.getValue(accountSearchObj.columns[0]);

                    return true;
                });

                return currencyAccountId;
            } catch (err3) {
                console.log('getAccountCurrency', err3);
            }

        }

        function createJERecord(vendorBillFields, account_CurrencyId) {

            try {

                var journalRecord = record.create({
                    type: record.Type.JOURNAL_ENTRY
                });
                journalRecord.setValue({
                    fieldId: 'trandate',
                    value: new Date(vendorBillFields[0].trandate)
                });
                journalRecord.setValue({
                    fieldId: 'subsidiary',
                    value: vendorBillFields[0].subsidiary
                });
                journalRecord.setValue({
                    fieldId: 'currency',
                    value: vendorBillFields[0].currency
                });

                journalRecord.setValue({
                    fieldId: 'memo',
                    value: vendorBillFields[0].memomain
                });

                journalRecord.setValue({
                    fieldId: 'memo',
                    value: vendorBillFields[0].memomain
                });

                journalRecord.setValue({
                    fieldId: 'custbody_jj_created_by',
                    value: vendorBillFields[0].createdBy
                });

                journalRecord.setValue({
                    fieldId: 'custbody_jj_source_of_origin',
                    value: vendorBillFields[0].source
                });

                var userObj = runtime.getCurrentUser();
                log.debug({
                    title: 'user',
                    details: userObj
                });
                var userId = userObj.id;

                journalRecord.setValue({
                    fieldId: 'custbody_last_modifiedby',
                    value: userId
                });



                journalRecord.setSublistValue({ sublistId: 'line', fieldId: 'account', line: 0, value: account_CurrencyId });
                journalRecord.setSublistValue({ sublistId: 'line', fieldId: 'debit', line: 0, value: vendorBillFields[0].amount });
                journalRecord.setSublistValue({ sublistId: 'line', fieldId: 'cseg5', line: 0, value: vendorBillFields[0].fundnumber });
                journalRecord.setSublistValue({ sublistId: 'line', fieldId: 'account', line: 1, value: account_CurrencyId });
                journalRecord.setSublistValue({ sublistId: 'line', fieldId: 'credit', line: 1, value: vendorBillFields[0].amount });
                journalRecord.setSublistValue({ sublistId: 'line', fieldId: 'cseg5', line: 1, value: vendorBillFields[0].fundnumber });

                var je_RecordId = journalRecord.save({
                    enableSource: false,
                    ignoreMandatoryFields: true
                });

                return je_RecordId;

            } catch (err3) {
                console.log('createJERecord', err3);
            }
        }

        function getResolvedURL(scriptId, deploymentId) {
            try {

                var urlid = url.resolveScript({ scriptId: scriptId, deploymentId: deploymentId, returnExternalUrl: false });
                return urlid;

            } catch (err3) {
                console.log("getResolvedURL", getResolvedURL);
            }
        }

        function getParameterByName(name, url) {
            try {
                if (!url)
                    url = window.location.href;
                name = name.replace(/[\[\]]/g, "\\$&");
                var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
                    results = regex
                    .exec(url);
                if (!results)
                    return null;
                if (!results[2])
                    return ' ';
                return decodeURIComponent(results[2].replace(/\+/g, " "));
            } catch (err3) {
                console.log('getParameterByName', err3);
            }
        }



        return {
            pageInit: pageInit,
            listVB: listVB,
            editVB: editVB,
            ApproveBtn: ApproveBtn,
            RejectBtn: RejectBtn,
            ResubmitBtn: ResubmitBtn,
            glImpact: glImpact


        };

    });

Leave a comment

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