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
};
});