Create an edit screen for JE using Suitelet.

Jira Code: TRS:123

Creating an edit screen for Journal Entries. When clicking on the save button, JE gets saved with updated field values taken from JE form.

Also, a button to delete the JE record. Once we click the List button all the JE records were listed with create/edit options.

/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 * @NModuleScope SameAccount
 */
/** Script Description
* .
******************************************************************************************************
 TRUST BRIDGE GLOBAL
EDIT AND SAVE JE RECORD USING CUSTOM FORM
******************************************************************************************************
* Date: 29/06/2019
* 
* Author: Jobin & Jismi IT Services LLP 
* 
* Revision 1.0  MN 29/06/2019
*****************************************************************************************************/
define(['N/record', 'N/search', 'N/ui/serverWidget', 'N/url', 'N/runtime'],

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

        /**
         * 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 checkIf(param) {
            try {
                if (param == undefined || param == null || param == "" || param == " ")
                    return true;
                else
                    return false;

            } catch (e) {
                log.debug("err@ checkif", e)
                log.error("err@ checkif", e)
            }
        }

        function onRequest(context) {

            try {

                //CREATE JE LIST URL
                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 });

                //CREATE JE VIEW URL
                var viewScriptId = 'customscript_trs122_sl_view_journal_page';
                var viewDepId = 'customdeploy_trs122_sl_view_journal_page';
                var redirectViewURL = url.resolveScript({ scriptId: viewScriptId, deploymentId: viewDepId, returnExternalUrl: false });
                if (context.request.method == 'GET') {


                    var flag = 'true';
                    var JE_amount = '';
                    var JE_line_memo = '';

                    //LOAD JE RECORD
                    try {
                        var internalId = context.request.parameters.recid;

                        var JE_RECORD = record.load({
                            type: record.Type.JOURNAL_ENTRY,
                            id: internalId,
                            isDynamic: true,
                        });

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


                    //FETCH VALUES FROM JE RECORD
                    var JE_date = JE_RECORD.getValue({ fieldId: 'trandate' });

                    var JE_subsidary = JE_RECORD.getValue({ fieldId: 'subsidiary' });

                    var JE_currency = JE_RECORD.getValue({ fieldId: 'currency' });

                    var JE_fund_send = JE_RECORD.getValue({ fieldId: 'custbody_fund_num_send' });

                    var JE_fund_recieved = JE_RECORD.getValue({ fieldId: 'custbody_fund_num_recvd' });

                    var JE_header_memo = JE_RECORD.getValue({ fieldId: 'memo' });

                    var JE_created_by = JE_RECORD.getText({ fieldId: 'custbody_jj_created_by' });
                    log.debug("JE_created_by", JE_created_by);

                    var JE_source = JE_RECORD.getText({ fieldId: 'custbody_jj_source_of_origin' });

                    var JE_lastModifiedBy = JE_RECORD.getText({ fieldId: 'custbody_last_modifiedby' });

                    var JE_tranid = JE_RECORD.getText({ fieldId: 'tranid' });

                    var line_Count = JE_RECORD.getLineCount({ sublistId: 'line ' });

                    if (line_Count) {

                        JE_amount = JE_RECORD.getSublistValue({
                            sublistId: 'line',
                            fieldId: 'debit',
                            line: 0
                        });

                        if (!JE_amount) {
                            JE_amount = JE_RECORD.getSublistValue({
                                sublistId: 'line',
                                fieldId: 'credit',
                                line: 0
                            });

                            flag = 'false';
                        }

                        var JE_line_memo = JE_RECORD.getSublistValue({
                            sublistId: 'line',
                            fieldId: 'memo',
                            line: 0
                        });
                    }

                    //CREATE JE FORM
                    var form = serverWidget.createForm({
                        title: 'Journal' + '  ' + '#' + JE_tranid
                    });


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

                    });
                    date.isMandatory = true;
                    date.defaultValue = JE_date;


                    var subsidiary = form.addField({
                        id: "subsidiary",
                        type: serverWidget.FieldType.SELECT,
                        label: 'Subsidiary',
                        source: "subsidiary"

                    });
                    subsidiary.isMandatory = true;
                    subsidiary.defaultValue = JE_subsidary;

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


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

                    });
                    currency.isMandatory = true;
                    currency.defaultValue = JE_currency;
                    currency.updateDisplayType({
                        displayType: serverWidget.FieldDisplayType.DISABLED
                    });


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

                    });
                    amount.isMandatory = true;
                    amount.defaultValue = JE_amount;


                    var headerMemo = form.addField({
                        id: "header_memo",
                        type: serverWidget.FieldType.TEXT,
                        label: 'Header Memo'

                    });
                    headerMemo.isMandatory = true;
                    headerMemo.defaultValue = JE_header_memo;

                    var lineMemo = form.addField({
                        id: "line_memo",
                        type: serverWidget.FieldType.TEXT,
                        label: 'Line Memo'

                    });
                    lineMemo.defaultValue = JE_line_memo;

                    var fundNumberSend = form.addField({
                        id: "fund_send",
                        type: serverWidget.FieldType.SELECT,
                        label: 'Fund Number Send',
                        source: "customrecord_cseg5"

                    });
                    fundNumberSend.isMandatory = true;
                    fundNumberSend.defaultValue = JE_fund_send;

                    var fundNumberReceived = form.addField({
                        id: "fund_received",
                        type: serverWidget.FieldType.SELECT,
                        label: 'Fund Number Received',
                        source: "customrecord_cseg5"

                    });


                    fundNumberReceived.isMandatory = true;
                    fundNumberReceived.defaultValue = JE_fund_recieved;

                    var source = form.addField({
                        id: "source_received",
                        type: serverWidget.FieldType.TEXT,
                        label: 'Source',
                        source: "customrecord_cseg5"

                    });


                    //source.isMandatory = true;
                    source.defaultValue = JE_source;
                    source.updateDisplayType({
                        displayType: serverWidget.FieldDisplayType.DISABLED
                    });

                    var createdBy = form.addField({
                        id: "createdby_received",
                        type: serverWidget.FieldType.TEXT,
                        label: 'Created By',
                        source: "customrecord_cseg5"

                    });


                    //source.isMandatory = true;
                    createdBy.defaultValue = JE_created_by;
                    createdBy.updateDisplayType({
                        displayType: serverWidget.FieldDisplayType.DISABLED
                    });

                    var modifiedBy = form.addField({
                        id: "modifiedby_received",
                        type: serverWidget.FieldType.TEXT,
                        label: 'Last Modified By',
                        source: "customrecord_cseg5"

                    });


                    //source.isMandatory = true;
                    modifiedBy.defaultValue = JE_lastModifiedBy;
                    modifiedBy.updateDisplayType({
                        displayType: serverWidget.FieldDisplayType.DISABLED
                    });


                    var internalIdRequested = form.addField({
                        id: "internalid_received",
                        type: serverWidget.FieldType.TEXT,
                        label: 'internalIdRequested',
                        source: "customrecord_cseg5"

                    });


                    internalIdRequested.defaultValue = internalId;
                    internalIdRequested.updateDisplayType({
                        displayType: serverWidget.FieldDisplayType.HIDDEN
                    });

                    var flagValue = form.addField({
                        id: "flag_received",
                        type: serverWidget.FieldType.TEXT,
                        label: 'flag_received',
                        source: "customrecord_cseg5"

                    });


                    flagValue.defaultValue = flag;
                    flagValue.updateDisplayType({
                        displayType: serverWidget.FieldDisplayType.HIDDEN
                    });


                    form.addSubmitButton({
                        id: 'buttonid_create',
                        label: 'Save'
                    })
                    form.addButton({
                        id: 'buttonid_delete',
                        label: 'Delete',
                        functionName: 'deleteJE'
                    })
                    form.addButton({
                        id: 'buttonid_list',
                        label: 'List',
                        functionName: 'listJE'
                    })

                    context.response.writePage(form);
                    form.clientScriptFileId = 662;
                }

                //SET VALUES TO JE RECORD
                if (context.request.method == 'POST') {

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


                    var dateOfJE = context.request.parameters.date;

                    //var currencyOfJE = context.request.parameters.currency;

                    var amountOfJE = context.request.parameters.amount;

                    var headerMemoOfJE = context.request.parameters.header_memo;

                    var lineMemoOfJE = context.request.parameters.line_memo;

                    var fundNumberSendOfJE = context.request.parameters.fund_send;

                    var fundNumberReceivedOfJE = context.request.parameters.fund_received;

                    var internlaidOfJE = context.request.parameters.internalid_received;

                    var flagOfJE = context.request.parameters.flag_received;

                    var JE_RECORD = record.load({
                        type: record.Type.JOURNAL_ENTRY,
                        id: internlaidOfJE,
                        isDynamic: true,
                    });


                    JE_RECORD.setText({
                        fieldId: 'trandate',
                        text: dateOfJE
                    });

                    /*   JE_RECORD.setValue({
                           fieldId: 'currency',
                           value: currencyOfJE
                       });*/

                    JE_RECORD.setValue({
                        fieldId: 'memo',
                        value: headerMemoOfJE
                    });

                    JE_RECORD.setValue({
                        fieldId: 'custbody_fund_num_send',
                        value: fundNumberSendOfJE
                    });

                    JE_RECORD.setValue({
                        fieldId: 'custbody_fund_num_recvd',
                        value: fundNumberReceivedOfJE
                    });

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

                    var item_Line_Count = JE_RECORD.getLineCount({ sublistId: 'line' });

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

                        JE_RECORD.selectLine({ sublistId: 'line', line: i });

                        JE_RECORD.setCurrentSublistValue({
                            sublistId: 'line',
                            fieldId: 'memo',
                            value: lineMemoOfJE,
                            ignoreFieldChange: true
                        });
                         log.debug("flagOfJE",flagOfJE);

                        if (flagOfJE == 'true') {


                            if (i % 2 == 0) {
                                 log.debug("debit+even")


                                JE_RECORD.setCurrentSublistValue({
                                    sublistId: 'line',
                                    fieldId: 'debit',
                                    value: amountOfJE,
                                    ignoreFieldChange: true

                                });

                            } else {
                                     log.debug("debit+odd")

                                JE_RECORD.setCurrentSublistValue({
                                    sublistId: 'line',
                                    fieldId: 'credit',
                                    value: amountOfJE,
                                    ignoreFieldChange: true
                                });
                            }

                        } else {

                            if (i % 2 == 0) {

                                log.debug("credit+even")

                                JE_RECORD.setCurrentSublistValue({
                                    sublistId: 'line',
                                    fieldId: 'credit',
                                    value: amountOfJE, //Amount of checque
                                    ignoreFieldChange: true
                                });


                            } else {
                                 log.debug("credit+odd")

                                JE_RECORD.setCurrentSublistValue({
                                    sublistId: 'line',
                                    fieldId: 'debit',
                                    value: amountOfJE, //Amount of checque
                                    ignoreFieldChange: true
                                });

                            }
                        }

                        JE_RECORD.commitLine({ sublistId: 'line' });
                    }

                    var JE_RECORD_ID = JE_RECORD.save({
                        enableSourcing: 'false',
                        ignoreMandatoryFields: 'false'
                    });
                    log.debug("JE_RECORD_ID", JE_RECORD_ID);

                    redirectViewURL = redirectViewURL + '&recid=' + internlaidOfJE;
                    log.debug("redirectViewURL", redirectViewURL);
                    context.response.write("<html><head><body><script>window.location.href='" + redirectViewURL + "';</script></body></head></html>");

                }


            } catch (e) {
                log.debug("Err@ onRequest FN ", e);
                log.error("Err@ onRequest FN ", e);
                //console.log("Err@ FN =",e);
            }

        }

        return {
            onRequest: onRequest
        };

    });

Leave a comment

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